Otziv.bg - UX/UI & Technical Audit

Executive Summary

Otziv.bg has a strong conceptual foundation and a partially compelling dark aesthetic, but it is currently operating well below its potential. Several critical structural, data-quality, and configuration issues must be resolved before this platform can credibly call itself premium. The backend shows signs of an accelerated, copy-paste setup without thorough cleanup, and the frontend's first impression is undermined by broken listing cards, missing content, and brand inconsistencies.

PART 1 — FRONT-END UX/UI & DESIGN AUDIT

1.1 Hero Section — Overall Impression

The Good The dark, textured hero background (#1a1a2e range) with the bold Cyrillic headline "Доверието започва с истински мнения" is conceptually the strongest design moment on the site. The crimson-red search button creates a powerful CTA contrast. The tabbed search form (Услуги / Събития / Хотели и настаняване) is a smart UX pattern.

The Bad

  • The logo is a critical problem. It is a detailed shield/badge design rendered at approximately 60×60px in the navbar. At this scale it becomes a muddled mess of noise — unreadable and unprofessional. A premium brand requires a logo that is legible at any size. This is currently a rasterized graphic, not an SVG-based mark with scalable simplicity.
  • Large dead whitespace exists below the hero search bar before the next section begins. There is no visual anchor pulling the user down (no scroll-cue, no stat counter, no featured category strip). The page just ends in dark void.
  • The hero is not full-viewport height. The actual visual headline and search form are visible but the section terminates awkwardly without filling the screen, creating an unbalanced ratio.

1.2 Color Palette — Brand Coherence

The stated brand identity is deep navy blue + polished gold + crimson red. The current implementation:

  • Primary navy ✅ — Used well as the page background on the hero section
  • Crimson red ✅ — Correctly used on the "Търсене" / "Добави Обява" buttons and category dot markers
  • Gold ❌ — Completely absent. There is not a single meaningful use of gold anywhere on the front-end. The most premium element of your brand palette is missing entirely. Gold should be present on verified badges, star ratings, featured/premium listing indicators, and call-to-attention elements.
  • Purple intrusion ❌ — A major visual inconsistency. The "Разгледай Места" category card has a solid bright purple overlay, and the "Discover events" card uses a vibrant purple background. Purple is completely foreign to the brand identity. These look like leftover MyListing demo theme colors and must be replaced.

1.3 Typography

  • The bold Cyrillic headline font is appropriately impactful — heavy weight, good vertical rhythm.
  • Body copy on listing cards and descriptions is acceptable but lacks sophistication. There is no evidence of a curated font pairing between a display serif/slab and a humanist sans-serif, which is characteristic of premium Bulgarian platforms.
  • "Filter by category" — This UI string appears in English on a Bulgarian-language site. This is a localization miss.
  • "Discover events" — Also in English. A second localization miss on the same visual block.
  • The William Blake quote ("Да видиш свят в едно зрънце пясък...") used as a filler tile in the category grid is filler placeholder content and should be replaced with a functional UI element.

1.4 Listing Cards (The Most Critical UX Failure)

This is the single most damaging issue on the entire platform. Across every section of the homepage — Featured Listings, Hotels, and the Explore page — the overwhelming majority of listing cards display solid gray placeholder boxes where cover images should be. Out of the listings visible during the audit:

  • Featured listings carousel: 3 of 3 cards have no cover image (gray boxes)
  • Hotel section: Both cards have no cover image (gray boxes)
  • Explore page (/explore/): Nearly all 14 visible service listings have no cover image

This is a two-part problem: (a) listing owners have not uploaded cover images, AND (b) the Preview Card template is set to "Alternate" with "Image" background but no fallback is configured. According to MyListing docs best practice, you must either (1) require a cover image in the submission form, (2) set a compelling category-specific fallback image in the Listing Type's "Default Cover Image" field, or (3) switch the Preview Card background to "Color" with a brand-appropriate gradient that looks intentional when no image exists.

1.5 Homepage Sections Inventory

Section Status Issue
Hero with search ✅ Functional Dead space below, logo size
Category grid ⚠️ Partial Purple brand mismatch, EN strings, Blake quote filler
Featured Listings carousel ❌ Broken visually All gray cards, no images
Upcoming Events ❌ Empty "Няма обяви" shown on public homepage
Hotels / Accommodation ❌ Broken Both cards gray + broken link (404 on click)
Footer ❌ Missing No footer was visible — the page terminates after Hotels

The absence of a footer is critical. A homepage without a footer lacks: privacy policy, terms, contact info, sitemap navigation, and trust signals — all of which are especially important for a review platform (GDPR compliance and legal coverage).

1.6 Explore Page UX Analysis

  • Strengths: The three-panel layout (filters / listing list / map) is textbook MyListing best practice and is correctly implemented. The map cluster markers use brand-crimson which is on-point. The split-view is responsive.
  • Weaknesses: All listing cards on the Explore page show gray placeholder images — same issue as homepage. The filter panel shows "Удобства" (Amenities) filters but these are generic/service-category amenities (Parking, Card Payment, Special Discounts). For a multi-type directory, these filters should be listing-type-specific — Hotels should show hotel amenities, Restaurants should show cuisine types, etc. The current universal filter sidebar is a configuration shortcut that reduces filter precision.
  • The "Изберете тип" tab defaults to showing all types, but the tab "Хотели и настаняване" is cut off at the right edge on standard viewport widths, suggesting an overflow issue.

1.7 Single Listing Page (АВТОРЕЗЕРВ EООД)

  • The hero cover image is good — warm amber bokeh background creates visual appeal, though this appears to be the same stock/default background for all "Services" listings rather than a listing-specific image.
  • The quick-action bar ("Как да стигна?", "Обадете се сега", "Добави в любими", "Сподели", "Остави Отзив", "Докладвай") is well-constructed and follows MyListing best practices. Excellent UX.
  • "Оставете отзив" CTA button (top right, crimson) is correctly prominently placed.
  • The content section (description + map in two columns) is clean and professional.
  • Rating/Review tab shows "Отзиви 0" — there are no reviews on any visible listing. This kills the social proof credibility of a review platform. This may be a data issue (the site is new) but it is also partially a UX discoverability issue — the review submission pathway is buried.
  • The contact form title is "Свържете се с бизнеса" which is appropriate.
  • No breadcrumb navigation is present — users have no path back to category or explore page without using the browser back button.

PART 2 — BACK-END CONFIGURATION & MYLISTING ARCHITECTURE AUDIT

2.1 Critical Server Error (Top Priority)

Every single admin page displays this error at the top:

Can NOT find LSCWP path for object cache initialization in /home/u292288244/domains/otziv.bg/public_html/wp-content/object-cache.php

This means LiteSpeed Cache (LSCWP) is partially configured but its object cache drop-in file is broken or missing. This can cause: inconsistent caching behavior, slow page loads, potential cache conflicts, and PHP errors in the log. This must be fixed immediately — either remove the object-cache.php file and reconfigure LSCWP, or restore it from the plugin package.

2.2 Listing Types — Structural Analysis

You have 6 listing types: Магазини, Фрийлансъри, Култура и развлечения, Услуги, Събития, Хотели и настаняване.

Architecture Problems Found:

A. Ghost Custom Taxonomies in the Sidebar (Critical Contamination)

The admin sidebar permanently displays: Custom Taxonomy: Car Brand, Custom Taxonomy: Vacancy type, Custom Taxonomy: Qualification, Custom Taxonomy: Salary. These taxonomies exist in the database and were clearly imported from incompatible listing type demos (automotive directory, job board). They have NO relevance to restaurants, hotels, shops, or services. They pollute the admin UI, confuse future editors, and may cause filtering bugs. These must be deleted via the Таксономии menu.

B. Duplicate Fields in Услуги and Магазини listing types

Both types contain:

  • "Социални мрежи" — appears TWICE (once as a Form Heading custom field, once as a Социални мрежи preset field). This creates duplicate form sections for listing owners.
  • "Работно време" — appears TWICE (same pattern). This means working hours will be added to the submission form in two places, creating data confusion.

These duplicates occurred when preset fields were added without removing the custom field versions created earlier. Delete the redundant entries.

C. Orphaned Preset Fields in the "Available Presets" Panel

In both Магазини and Услуги, the right-side Preset Fields panel still shows: Меню на ресторанта, Общ ретранслатор, Custom Taxonomy: Car Brand, Vacancy type, Qualification, Salary. These are visible to admins and suggest an uncleaned demo import. According to MyListing docs, unused preset fields that are based on deleted taxonomies create silent errors.

D. Preview Card — No Footer Sections Configured

As observed in the Магазини Preview Card configuration, the card footer shows "(no footer sections added)." This means listing cards in the grid/list view show no rating stars, no category badge, no price indicator, and no location — just a title and description excerpt. A well-configured preview card per MyListing best practice should include at minimum: Star rating, Category, and one key attribute (price/distance/phone). This is why all cards look identical and sparse.

E. Search Forms — Not Type-Specific

The Explore page shows the same generic filter panel (keyword + category + location + generic amenities) for ALL listing types. MyListing's Search Forms tab in each listing type allows you to build unique filter sets per type — Hotels should have: price range, room count, star rating, check-in dates; Restaurants should have: cuisine, price range, rating; Services should have: service category, availability. None of these have been configured. The current search UX is the same as having no type-specific filtering at all.

F. Hotels Listing Type — Single Page Cover Background

The Hotels & Accommodation listing type's Single Page is set to "Cover Image" background, which is correct. However, the "Default Cover Image" (fallback) field in the right sidebar is set to a generic office/street photo — not a hotel-appropriate image. This creates brand confusion.

G. Singular/Plural Name Not Distinguished

For Магазини, both the Singular name and Plural name fields contain "Магазини." Per MyListing documentation, the Singular field should be "Магазин" (one shop) and Plural "Магазини" (many shops). This affects UI strings in listing submission forms and breadcrumbs.

H. The Map Marker for Услуги Has No Custom Image

The Маркер по подразиране на картата (default map marker) for the Услуги type is empty, while Магазини has a street photo set as the map marker. Map markers should be small icons or brand-colored pins, not full photographs — a photo as a map marker creates visual noise on the map view.

2.3 Data Quality Issues

  • 18 total listings in the database. For a platform positioning itself as a premium discovery directory, this is an insufficient content base to be publicly launched. Empty sections ("no listings matching your search") destroy credibility.
  • "EXE Club" (Култура и развлечения) — Has no Category assigned, no Tags, no Description in the admin list. Appears essentially empty.
  • Hotel listings ("Къща за гости Ребека", "Апартамент Ребека") — Displayed on the homepage but their permalink URLs return 404 errors. This is a critical broken UX path. A user clicks → 404. These listings may have been deleted from the database while Elementor widgets still reference them by query.
  • Several listings have no cover image uploaded despite the cover image field existing in the form.

2.4 Review System Configuration

The Reviews configuration for Услуги is actually well set up: Star ratings enabled ✅, Gallery upload enabled ✅, Half-stars mode ✅, Four granular rating categories configured ✅ (Обща оценка, Обслужване, Качество на услугата, Съотношение цена-качество). This is genuinely good configuration. The problem is zero reviews exist across all listings, so this excellent setup is invisible to visitors.

2.5 WooCommerce Integration

WooCommerce is installed and active (visible in the admin sidebar with Продукти, Плащания sections). For a directory platform, WooCommerce is typically used for paid listing packages. This is appropriate. However, the presence of WooCommerce without confirming that all package pricing is configured and that checkout flows are tested adds maintenance overhead and potential performance cost.

PART 3 — STRENGTHS (What Is Working Well)

  • Review Architecture is well-configured — The multi-dimensional star rating system (4 categories, half-stars, gallery upload) is exactly what a review-focused platform should have. Well done.
  • Quick-Action Bar on Listing Pages — The horizontal pill-button strip (Directions, Call, Save, Share, Review, Report) is a textbook example of MyListing best practice and delivers excellent UX.
  • Search Tabs on Homepage — The tabbed search form (Услуги / Събития / Хотели) correctly exposes multiple listing type searches from the hero. Conceptually solid.
  • Map-Enabled Explore Page — The split layout with live map + listing list + filters is correctly implemented. The crimson map cluster markers align with brand colors.
  • Rank Math SEO Installed — Using a premium SEO plugin is a correct architectural choice for a directory that depends on organic discovery.
  • "Добави Обява" CTA button — Consistently placed in the top-right navbar, crimson red, visually prominent. Correct placement for a platform monetizing listing submissions.
  • Hotel Card Data Fields — The Хотели type correctly shows functional metrics in card footers: m², rooms, bathrooms, beds — this is the one listing type where the Preview Card footer sections ARE configured.

PART 4 — WEAKNESSES, FRICTION POINTS & BAD PRACTICES

UX/UI Friction Points

# Issue Severity Location
1100% of listing cards missing cover images (gray boxes)🔴 CriticalSitewide
2"Upcoming Events" section empty on homepage🔴 CriticalHomepage
3Hotel card links return 404🔴 CriticalHomepage
4No footer on the website🔴 CriticalSitewide
5Purple brand intrusion in category grid🟠 HighHomepage
6"Filter by category" / "Discover events" in English🟠 HighHomepage
7Gold brand color completely absent🟠 HighSitewide
8Logo unreadable at navbar scale🟠 HighNavbar
9William Blake quote filler content🟡 MediumHomepage
10No breadcrumb navigation on listings🟡 MediumListing pages
11Zero reviews on any listing (social proof = 0)🟠 HighSitewide
12Hero dead space / no scroll cue🟡 MediumHomepage

Backend Bad Practices

# Issue Severity Location
1LSCWP object-cache.php broken🔴 CriticalServer
2Ghost taxonomies (Car Brand, Vacancy, Salary)🔴 CriticalAdmin sidebar
3Duplicate fields (Социални мрежи ×2, Работно Време ×2)🟠 HighУслуги + Магазини types
4Preview Card footer empty on all service/shop types🔴 CriticalPreview Cards
5No type-specific Search Forms configured🟠 HighAll Listing Types
6Singular ≠ Plural name for Магазини🟡 MediumМагазини type
7Photo used as map marker instead of icon🟡 MediumУслуги type
8Default fallback images not set per listing type🟠 HighAll types
918 total listings — insufficient content mass🟠 HighDatabase
10Theme Options inaccessible to current user role🟠 HighAdmin

PART 5 — PRIORITIZED ACTION PLAN (10 Immediate Steps)

🔴 STEP 1 — Fix the Broken Object Cache (Do This Today)

Priority: Critical / Time: 15 minutes
SSH into your server (or use cPanel File Manager) and navigate to wp-content/. Delete the object-cache.php file. Then go to WordPress Admin → LiteSpeed Cache → Advanced → Object Cache and reconfigure it properly, or disable object caching entirely if you don't need it. This server error appears on every admin page and signals instability.

🔴 STEP 2 — Fix Broken Hotel Listings & Set Fallback Cover Images

Priority: Critical / Time: 1–2 hours
"Къща за гости Ребека" and "Апартамент Ребека" return 404. Go to Admin → Обяви and either republish these listings with proper slug permalinks (run a permalink flush via Settings → Permalinks → Save), or remove them from the Elementor homepage widget and replace with real, live listings. Simultaneously, for every listing type, go to Видове обяви → [Type] → General → Default Cover Image (right sidebar) and set a high-quality, category-appropriate fallback photo so that listings without images never show a gray box.

🔴 STEP 3 — Add Star Rating + Location to ALL Preview Card Footers

Priority: Critical / Time: 30 minutes
For each of the 6 listing types, go to Видове обяви → [Type] → Preview Card → Preview Card tab and scroll to the "Footer sections" area. Add: (1) Star Ratings widget, (2) Category tag, (3) Location. For Услуги and Магазини, also add Телефонен номер as a quick-access footer element. This single change will transform the listing cards from empty gray boxes with a title into compelling, informative cards that convey trust.

🔴 STEP 4 — Purge the Ghost Taxonomies and Duplicate Fields

Priority: Critical / Time: 45 minutes
Go to Admin → Обяви → Таксономии and permanently delete: Custom Taxonomy: Car Brand, Vacancy Type, Qualification, Salary. These are orphaned job-board/automotive demo remnants. Then for each listing type (Услуги, Магазини, others), go to Fields and delete the duplicate "Социални мрежи" Form Heading and the duplicate "Работно Време" Form Heading entries. Keep only the single preset-version of each. Test a listing submission form after cleanup.

🟠 STEP 5 — Build Type-Specific Search Forms

Priority: High / Time: 2–3 hours
For each listing type, navigate to Видове обяви → [Type] → Search Forms and build a tailored filter set:

  • Услуги: Keyword, Category, Location, Price Range, Star Rating, Amenities checkboxes
  • Хотели: Keyword, Location, Price Per Night (range), Rooms (range), Star Rating, Amenities (pool, parking, breakfast)
  • Ресторанти: Keyword, Cuisine category, Price Range, Open Now, Star Rating
  • Събития: Keyword, Location, Date range, Category

This is MyListing's most powerful competitive advantage and it is currently completely unused. Per the official docs (Listing Types → Search Forms), each type can have completely independent filter logic.

🟠 STEP 6 — Eliminate the Purple and Inject Gold

Priority: High / Time: 1 hour
In Elementor, locate the two purple category cards ("Разгледай Места" and "Discover events") on the homepage and replace their overlay/background colors with deep navy (#0a1628) or a gold-tinted dark tone (#1a1400). Next, identify 3–5 locations to introduce gold: the verified listing badge border, the star rating fill color, the "Featured" listing label, and the section heading underline decoration. The gold color creates the premium signal currently missing from the entire visual system.

🟠 STEP 7 — Fix All English-Language Strings

Priority: High / Time: 30 minutes
Using Loco Translate (already installed in your admin), translate:

  • "Filter by category" → "Филтрирай по категория"
  • "Discover events" → "Открий събития"
  • Any remaining English strings in the MyListing theme output

Also change the William Blake quote tile to a functional UI element — a "Добави своя бизнес" CTA card would be far more valuable in that grid position.

🟡 STEP 8 — Create a Proper Website Footer

Priority: High / Time: 1–2 hours
The site has no footer. Build one in Elementor with three columns: (1) Brand column — logo, tagline, social media icons; (2) Navigation column — Начало, Разгледай, Добави Обява, Блог, За нас, Контакти; (3) Legal/Trust column — Политика за поверителност, Общи условия, GDPR cookie notice link, © 2026 Otziv.bg. This is not optional — a review platform without a Privacy Policy footer link is potentially non-GDPR-compliant.

🟡 STEP 9 — Fix the Магазини Listing Type Naming and Map Marker

Priority: Medium / Time: 10 minutes
In Видове обяви → Магазини → General: Change Singular name from "Магазини" to "Магазин." In the "Default Map Marker" field (right sidebar), remove the street photograph and either leave it blank (using the default pin) or upload a clean, small icon (a shopping bag silhouette on a crimson circle, ~40×40px PNG).

🟡 STEP 10 — Launch a Seeding Campaign for Reviews

Priority: Strategic / Time: Ongoing
The platform's core value proposition — "Доверието започва с истински мнения" — is currently hollow because there are zero reviews on any listing. Before any marketing push, implement a review seeding strategy: (1) Email every listing owner and ask them to share their listing page with satisfied clients and request reviews; (2) Add a prominent "Остави отзив" prompt to the post-visit email if you have any automation; (3) Consider adding a "First Review" badge to listings that receive their first review, creating a gamification incentive. Also, ensure the review submission form is not requiring login (or make registration frictionless) — friction in the review submission flow is the #1 killer of review volume.

FINAL VERDICT

Otziv.bg has the right bones — a well-chosen theme, the right listing type architecture, solid review configuration, and a compelling headline proposition. However, it is currently operating as a framework without content or polish. The image-missing crisis, the ghost taxonomies, the broken links, the missing footer, and the absent gold brand color are not minor tweaks — they are the difference between a platform visitors trust and one they immediately close.

Execute the 10 steps above in order and you will transform this from a 4/10 rough draft to a 7.5/10 credible premium platform within a single focused work sprint. The path from 7.5 to 10 lies in content seeding, type-specific search refinement, and a purposeful brand redesign of the logo and category grid.