Back to blog
Niche SEO
12 min read
Shadcn UI
Directory

Directory & Listing Page Components for Marketplace Sites

Browse 20 directory and listing components for React and Next.js — search interfaces, filter panels, listing cards, detail pages, and map integrations. Built with Shadcn UI and Tailwind CSS for marketplace and directory applications.

SB

SERP Blocks Team

Product

Directory & Listing Page Components for Marketplace Sites cover

Directories and listing pages power some of the most valuable websites on the internet. Yelp, Zillow, Indeed, Airbnb, Product Hunt, Clutch — these are all directory products at their core. A structured collection of entries that users can search, filter, compare, and drill into. The business model varies (advertising, subscriptions, lead generation, transactions), but the UI patterns are remarkably consistent.

Building a directory from scratch is a significant frontend investment. The search interface, filter panels, listing cards, pagination, detail pages, and related listings all need to work together seamlessly. Each component has interaction patterns that users expect because they've used directories their entire internet lives. Deviate from those patterns and usability suffers. Implement them well and users find what they're looking for quickly, which is the entire point.

The SERP Blocks directory collection spans two categories: directory list (10 blocks) for search results and browse pages, and directory single (10 blocks) for individual listing detail pages. Together, these 20 components cover the full directory experience from discovery to decision.

The Anatomy of a Directory List Page

A directory list page is fundamentally a search results page. Users arrive with intent — they're looking for a specific type of business, a job in their field, a property in their price range, or a product that meets their requirements. The page's job is to help them find matches quickly and evaluate options efficiently.

Search Bar and Query Input

The search bar is the most important element on any directory page. It should be visually prominent, immediately focusable, and provide helpful feedback as the user types.

Effective directory search bars include:

  • Dual input fields — "What" (keyword, category, name) and "Where" (location, region, remote) is a pattern established by job boards and local business directories. Two distinct input fields set clear expectations about what the system can filter.

  • Autocomplete suggestions — As the user types, suggest matching categories, locations, and popular queries. This reduces the number of zero-result searches and helps users discover the right terminology for your directory.

  • Recent searches — Display the user's previous queries when they focus on the search bar. Returning users often repeat searches to check for new listings.

  • Search within results — Once filtered results are displayed, a secondary search field that filters within the current result set lets users refine without losing their filter state.

Filter Panels

Filters transform a directory from a simple list into a powerful discovery tool. The specific filters depend on your directory's domain, but the UI patterns are universal.

Sidebar filters display all filter options in a persistent panel beside the results. This pattern works well on desktop when you have 5-15 filter categories. Users can see all available filters at a glance and apply multiple filters without additional clicks. Sidebar filters should update results in real time — no "Apply" button needed.

Top bar filters condense filter options into a horizontal row of dropdowns above the results. This pattern uses less horizontal space and works well on narrower viewports. Each dropdown opens to reveal the filter options for that category. A "More Filters" button can expand into a full panel for additional options.

Filter chips display active filters as removable chips below the search bar or above the results. Each chip shows the filter name and value with an "x" to remove it. This pattern makes the current filter state visible at all times, which prevents the confusion of "why am I seeing these results?" that occurs when filters are applied but not visually represented.

Mobile filter drawers replace sidebar filters on small screens. A "Filters" button opens a full-screen or half-screen drawer with all filter options. Applied filters are summarized in the button label ("Filters (3)") so users know filters are active even when the panel is closed.

Listing Cards

Each listing in the results needs a card that communicates enough information for users to decide whether to click through to the detail page. The challenge is balancing information density with visual clarity.

Essential card elements:

  • Primary image or logo — Visual recognition is faster than reading. A business logo, property photo, or product image lets users scan results visually.

  • Title — The listing name, prominently displayed

  • Category or type — A badge or label showing what kind of listing this is

  • Location — Physical address, city, or "Remote" for location-independent listings

  • Rating and review count — Star rating with the number of reviews provides social proof and quality signal

  • Key attributes — 2-3 of the most important differentiating details (price range, company size, years in business, square footage)

  • CTA — A primary action button (View Details, Apply Now, Contact, Book)

The SERP Blocks card collection includes 110 card components that can serve as listing cards, offering layouts from minimal to information-dense. Many of these cards work directly as directory listing items with minor content adjustments.

Card layout variations:

  • Horizontal cards — Image on the left, details on the right. Best for desktop views where horizontal space is available. Shows more information per listing without requiring users to scan vertically.

  • Vertical cards — Image on top, details below. Best for grid layouts and mobile views. More visual, with the image serving as the primary attention grabber.

  • Compact rows — Minimal visual elements, maximum information density. Works for professional directories where users need to compare many listings quickly (job boards, supplier directories).

  • Featured cards — Larger size, additional details, or visual distinction for promoted or sponsored listings. Featured cards should be clearly labeled to maintain user trust.

Results Pagination and Sorting

Directory results need clear sorting and pagination controls. Users expect to sort by relevance, newest, rating, price (low to high / high to low), and distance (for location-based directories).

Pagination with page numbers (rather than infinite scroll) works better for directories because users often need to return to a specific position in the results. "Page 3 of the results for 'React developers in Austin'" is a mental bookmark that infinite scroll erases.

Display the total result count above the listing grid. "47 results for 'plumbers in Denver'" sets expectations and helps users decide whether to refine their search or browse the full set.

The Anatomy of a Directory Single Page

When a user clicks through from the listing card, the detail page needs to deliver comprehensive information about that listing and guide the user toward their next action — contacting, booking, purchasing, or saving for later.

Hero Section with Key Details

The top of a directory detail page should immediately confirm the user's choice. Display the listing name, primary image or image gallery, overall rating, category, location, and operating hours (if applicable). This hero section answers the question "Am I in the right place?" within two seconds.

For visual directories (real estate, restaurants, hotels, portfolios), an image gallery or carousel in the hero section is essential. Users want to see multiple photos before committing to further engagement.

Description and Features

Below the hero, a detailed description provides context that listing cards can't accommodate. For business directories, this might include company history, specialties, and differentiators. For job listings, the full job description, requirements, and benefits. For real estate, property details, neighborhood information, and school districts.

A structured features or amenities section using icon-labeled lists makes scanning efficient. Rather than burying "free parking, wheelchair accessible, outdoor seating" in prose, display them as a scannable grid of icons and labels.

Contact and Conversion Elements

Every directory detail page needs a clear conversion path. The specific conversion depends on the directory type:

  • Service directories — Contact form, phone number, website link, "Request a Quote" button

  • Job boards — "Apply Now" button, "Save Job" button, company profile link

  • Real estate — "Schedule a Tour" button, mortgage calculator, agent contact form

  • Marketplace — "Add to Cart" or "Buy Now" button, seller profile, shipping information

The SERP Blocks contact collection includes 33 contact form components — from simple name-and-email forms to multi-step inquiry flows with file attachments. These pair directly with directory detail pages where the conversion action is "get in touch."

For directories where social proof drives decisions, embed a reviews section directly on the detail page. The reviews collection (13 blocks) provides star rating displays, review cards with author information, and review submission forms.

Related Listings

At the bottom of a detail page, show related listings based on category, location, or user behavior. "Similar businesses in Denver" or "Other React development agencies" keeps users within your directory rather than bouncing back to Google for alternatives.

Related listing sections use the same card components as the main directory list, maintaining visual consistency and allowing users to continue their search without returning to the results page.

Directory Use Cases and Vertical Patterns

The 20 directory components in SERP Blocks are designed to be flexible across verticals. Here's how the same components adapt to different directory types.

Business Directories

Local business directories (restaurants, contractors, professional services) emphasize location, ratings, and contact information. Filter panels focus on location radius, category, rating threshold, and price range.

The listing card shows the business logo, name, star rating, category badge, neighborhood, and a one-line description. The detail page includes a map embed, full address, phone number, business hours, photos, and reviews.

Job Boards

Job directories prioritize role details, company information, and application mechanics. Filters include job type (full-time, part-time, contract), experience level, salary range, location (with remote option), and industry.

Listing cards display the company logo, job title, company name, location, salary range, and posting date. The detail page includes the full job description, requirements, benefits, company profile, and an apply button or form.

Real Estate Listings

Property directories are image-heavy and detail-rich. Filters include price range, bedrooms, bathrooms, square footage, property type, and neighborhood. Map-based browsing (where listings appear as pins on a map alongside a scrollable list) is a dominant pattern in real estate.

Listing cards show the primary property photo, price, address, bed/bath/sqft counts, and listing date. The detail page includes a photo gallery, property description, feature grid, neighborhood details, price history, and agent contact information.

Product and Service Marketplaces

Marketplace directories combine product information with seller reputation. Filters include category, price range, condition (new/used), seller rating, and shipping options.

The product list collection (20 blocks) provides additional product-specific listing layouts that complement directory components. For product marketplaces, these product list blocks often serve as the listing view within the directory structure.

Professional Portfolios and Agencies

Agency directories and freelancer marketplaces emphasize work quality and expertise. Filters include service type, industry experience, budget range, team size, and location.

Listing cards show a featured project image or logo, agency name, services offered, notable clients, and rating. The detail page includes a portfolio gallery, case studies, team information, and a project inquiry form.

Search UX Patterns That Drive Engagement

The search experience determines whether users find value in your directory. A directory with great data but poor search UX will underperform a directory with decent data and excellent search.

Zero-State Design

When users land on a directory page without a query, show them something useful. Popular categories, featured listings, recent additions, or trending searches give users a starting point. An empty search bar with no guidance creates a blank-page problem — users don't know where to begin.

No-Results Handling

Zero-result states need careful design. Rather than a blunt "No results found," provide actionable alternatives:

  • Suggest similar search terms

  • Show the closest matching results with a note about relaxed criteria

  • Offer to notify the user when matching listings are added

  • Display popular listings from the same category

Saved Searches and Alerts

For directories where users conduct repeated searches (job boards, real estate), saved search functionality turns one-time visitors into returning users. A "Save this search" button stores the query and filter state. Email alerts when new listings match the saved criteria drive return visits without requiring the user to remember to check back.

Building Directory Pages in Practice

Directory pages in React and Next.js applications follow common implementation patterns.

URL-Based Filter State

Store filter selections in URL query parameters rather than component state. This makes filtered views shareable, bookmarkable, and SEO-indexable. When a user shares a link to "React developers in Austin, sorted by rating," the recipient sees the same filtered results.

/directory?q=react+developer&location=austin&sort=rating&page=2

Server-side rendering with URL-based filter state means search engines can crawl and index filtered pages, creating long-tail SEO value for queries like "best react developers in Austin."

Server Components for Listing Data

In Next.js App Router, directory list pages benefit from server components. The listing data can be fetched at request time (or cached with ISR) and rendered on the server, providing fast initial page loads and strong SEO.

Client components handle interactive elements: filter toggles, sort dropdowns, search autocomplete, and map interactions. This hybrid approach — server-rendered listing content with client-side interactivity — gives directories the best of both worlds.

Responsive Grid Layouts

Directory listing grids need to adapt gracefully across breakpoints. A typical responsive pattern:

  • Desktop (1280px+) — 3-column grid with sidebar filters

  • Tablet (768-1279px) — 2-column grid with top bar filters

  • Mobile (< 768px) — Single column with filter drawer

The grid layout should maintain consistent card proportions across breakpoints. Cards that look good in a 3-column grid but break at 2 columns indicate a layout that hasn't been designed responsively.

SEO for Directory Pages

Directories have inherent SEO advantages: each listing creates a unique page targeting specific search queries. A directory with 1,000 listings automatically has 1,000 indexable pages, each targeting the listing's name, location, and category.

To maximize SEO value:

  • Unique meta titles and descriptions for every listing detail page, generated from listing data

  • Structured data using LocalBusiness, Product, JobPosting, or RealEstateListing schema types

  • Category hub pages that serve as authoritative pages for each directory category

  • Internal linking between related listings, categories, and geographic pages

  • User-generated content through reviews, which adds unique, keyword-rich text to listing pages

A directory with strong SEO becomes a self-reinforcing growth engine: more traffic brings more listings, more listings create more indexed pages, more indexed pages bring more traffic.

Performance at Scale

Directories with thousands or millions of listings need performance optimization beyond what typical web applications require.

Search Infrastructure

Full-text search across hundreds of thousands of listings requires dedicated search infrastructure. Services like Algolia, Typesense, Meilisearch, or Elasticsearch provide sub-100ms search responses with typo tolerance, faceted filtering, and relevance ranking that database queries cannot match at scale.

Image Optimization

Listing cards with images are the primary visual element of any directory. Optimizing images through Next.js Image component (with automatic WebP conversion, responsive sizes, and lazy loading) can reduce page weight by 60-80% compared to unoptimized images.

For directories with user-uploaded images, implement server-side image processing (resizing, cropping, format conversion) at upload time rather than serving original images. A 4000x3000 photo from a smartphone has no business being served as a 200x150 listing card thumbnail.

Caching Strategies

Directory list pages benefit from short-TTL caching (1-5 minutes) that balances freshness with performance. Listing detail pages can use longer cache durations (1-24 hours) since individual listings change infrequently.

For filter combinations that generate unique result sets, edge caching with query parameter awareness prevents repeated database queries for popular search combinations.

Related Block Categories

Directory components work alongside these collections:

SectionCategoryCount
Product GridsProduct List20
Listing CardsCard110
Contact FormsContact33
User ReviewsReviews13
Search ResultsBlog List27
NavigationNavbar17

SERP Blocks includes 1200+ total blocks across 50+ categories. 60 are free, with the full library available through a one-time Pro purchase.

Browse all 20 directory components →