Skip to content

Case study · Property marketplace

A marketplace search engines can actually read

A property marketplace built in React had tens of thousands of listings and only a fraction of them in Google's index. This is how we made every listing and location page readable, and kept millions of filter combinations out of the way.

Project overview

Technical SEO for a JavaScript marketplace.

Industry
Property marketplace
Client
Confidential
Solution
JavaScript SEO
Platform
React, moved to Next.js
Timeline
12–18 weeks
Team
4 people
Pages
Listings, locations and filters
Change rate
Listings added and removed daily
Integration
Listings API and sitemaps

Expected business outcomes

What the client set out to achieve

Indexation comes first: a page that is not indexed cannot rank.

  • 90%+ Of live listings indexed

    Listings are rendered on the server and submitted through sitemaps that update daily.

    Target; measured in Search Console against the live inventory

  • 40–80% More organic visits to listing and location pages

    Location pages now rank for the searches buyers and renters make.

    Target range over six to nine months

  • Days → hours For a new listing to appear in search

    Sitemaps and internal links surface new listings the day they are published.

    Measured on a weekly sample of new listings

Business challenges

Where the client started

The site worked well for visitors and badly for crawlers.

Rendering

Pages were built in the browser, so crawlers often saw an empty shell.

Filters

Every filter combination created a new URL, millions in total.

Expired listings

Sold and let properties returned errors and lost their links.

Locations

No real pages for the towns and areas people search for.

Paid dependency

Most traffic was bought, because organic barely existed.

Proposed solution

What the technical work covered

Rendering, then control of what gets indexed, then the pages worth ranking.

  • Server-side rendering

    Listing and location pages rendered on the server with Next.js.

  • Filter rules

    A short list of useful filter pages indexed; the rest kept out with clear rules.

  • Location pages

    Pages for each town and area, with live listings and local content.

  • Expired listings

    Sold properties kept as pages that point to similar live listings.

  • Structured data

    Listing markup for price, location and availability.

  • Daily sitemaps

    Sitemaps generated from the listings API every day.

Project requirements

What the client asked us for

The request was to reduce the cost of paid traffic. The route was indexation: the marketplace had the content to rank, but search engines could not read most of it.

We treated filter pages as a product decision, not a technical one. The business chose which combinations deserved a page, and everything else stayed out of the index.

What the project had to deliver

  • 01Every live listing indexable
  • 02Location pages that rank
  • 03Filter pages under control
  • 04New listings found quickly

Key challenges & considerations

What made it harder, and what we did

  1. A single-page React application

    What we did

    Listing and location templates were moved to server-side rendering with Next.js, one template at a time.

  2. Millions of possible filter URLs

    What we did

    Filter combinations were classified with the business, and only the useful ones were allowed into the index.

  3. Listings that expire every day

    What we did

    Expired listings were kept as pages pointing to similar live listings, and removed from sitemaps.

  4. Releases that could not interrupt the live marketplace

    What we did

    Each template was released behind a flag and checked in Search Console before the next.

What we watched for

  • Check what crawlers see, not what browsers show
  • Decide filter pages as a business question
  • Never return an error for a sold listing
  • Track indexed pages against live inventory

Development process

Render, control, then build pages worth ranking

The order mattered: there was no point writing location content for pages nobody could crawl.

  1. Stage 1

    Crawl and log analysis

    What search engines actually requested and saw.

  2. Stage 2

    Rendering

    Server-side rendering rolled out template by template.

  3. Stage 3

    Indexation rules

    Filter combinations classified and controlled.

  4. Stage 4

    Location pages

    Templates built and populated for each area.

  5. Stage 5

    Sitemaps and structured data

    Generated from the live inventory.

  6. Stage 6

    Monitoring

    Indexed pages tracked against live listings every week.

Technology stack

Next.js, with the index under control

The front end stayed in React, rendered on the server where it matters.

Front end

  • React
  • Next.js
  • Server-side rendering

Search

  • Google Search Console
  • Screaming Frog
  • Server log analysis

Data

  • Listings API
  • Dynamic sitemaps
  • Structured data

Analytics

  • Google Analytics 4
  • Looker Studio
  • Index coverage tracking

Quality assurance & deployment

Checked before it went live, measured after

Marketing work is only as good as its measurement. Tracking was verified before anything launched, technical changes were tested on staging, and every result was reconciled with the client's own sales or booking data.

  • Conversion tracking tested end to end before launch
  • Technical changes checked on staging with a full crawl
  • Redirects, links and structured data validated
  • Copy and claims reviewed by the client's experts
  • Reported figures reconciled with the client's own system

Deployment

  • 01Sitemaps and structured dataGenerated from the live inventory.
  • 02MonitoringIndexed pages tracked against live listings every week.
  • 03Staged releasesChanges went live in small batches, each one watched in the first days.
  • 04Reporting and handoverA monthly review against the agreed targets, and documentation the client's team can work from.

Final deliverables

Listings that are found without being advertised

Live listings and location pages are now rendered for crawlers and visitors alike, and new listings reach the index the day they are published.

The client's developers have clear rules for new filters and templates, so the index stays clean as the marketplace grows.

  • Server-rendered listings and locations
  • A controlled set of filter pages
  • Expired listings handled gracefully
  • Sitemaps updated daily

Handed over to the client

  • 01Audit and roadmapFindings ranked by their effect
  • 02Implemented changesIn the client's own site, accounts and tools
  • 03Tracking and dashboardResults in the client's own figures
  • 04Content and campaign assetsTemplates, pages and creative
  • 05Documentation and trainingSo the client's team can carry on

Success metrics

How success is measured

MeasureOutcomeHow it is measured
Of live listings indexed 90%+ Target; measured in Search Console against the live inventory
More organic visits to listing and location pages 40–80% Target range over six to nine months
For a new listing to appear in search Days → hours Measured on a weekly sample of new listings

Verified reviews

What clients say about working with us

Verified reviews from our clients, published on Clutch.

5.0 27 verified reviews

Free discovery call

Have an idea? Let's turn it into AI-powered software.

Book a free discovery call with our experts. Share your idea and we will help you shape the scope, timeline and budget, under NDA.

  • Free consultation
  • NDA before we talk
  • Transparent estimate