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.
SERP Blocks Team
Product
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=2Server-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:
| Section | Category | Count |
| Product Grids | Product List | 20 |
| Listing Cards | Card | 110 |
| Contact Forms | Contact | 33 |
| User Reviews | Reviews | 13 |
| Search Results | Blog List | 27 |
| Navigation | Navbar | 17 |
SERP Blocks includes 1200+ total blocks across 50+ categories. 60 are free, with the full library available through a one-time Pro purchase.