A classifieds platform with millions of listings — and minimal organic visibility
One of Ukraine's leading classifieds platforms: real estate, vehicles, jobs, goods. Over 5.8 million active listings. A recognized brand with a large direct and paid traffic base.
Organic search, however, consistently underperformed relative to the platform's scale. Competitors with significantly smaller listing volumes held stronger positions in Google. The internal team attributed this to content quality and began investing in descriptions and structured data.
The problem was elsewhere entirely.
Scale without architecture is noise, not signal
With 5.8 million pages and only 490K indexed, Google was ignoring 92% of the platform's content. Not because the content was bad — because Google's crawl budget was being exhausted on low-value pages before it could reach the valuable ones.
Every expired listing, every filter URL combination, every near-duplicate regional page was consuming crawl budget that should have gone to active, high-value category and listing pages. The platform was essentially competing against itself for Google's attention — and losing.
Three structural problems — all system-level
First: no clear boundary between indexable and non-indexable content. The platform had no system to automatically remove expired listings from the index. The accumulation had been building for years.
Second: filter URLs were generating thousands of near-duplicates with minimal variation — "buy apartment Kyiv" and "buy apartment Kyiv price filter" existed as separate pages competing for the same query.
Third: category pages — the most valuable page type for organic search — were receiving insufficient internal authority from the rest of the site. They existed, but Google couldn't determine their priority.
Clear, prioritize, automate
Cleaned the index. Blocked over 3.2 million low-value pages from indexation — expired listings, duplicates, empty regional categories. Not deleted — hidden from crawlers via technical directives, keeping them accessible to users.
Eliminated URL duplication. Canonicalized filter URL variations, implemented a consistent URL formation logic for identical content types.
Rebuilt prioritization. Through sitemap structure and internal linking, established a clear hierarchy: the most valuable category and regional pages received priority in the crawl queue.
Introduced an operational protocol. Automatic expiration of outdated listings, regular index audits. A system that maintains itself without manual intervention.
| Before | After | |
|---|---|---|
| Pages indexed by Google | 490,000 | 2,100,000 |
| Organic traffic / month | 2,100,000 | 5,400,000 |
| New listings from organics / month | 118,000 | 347,000 |
| Revenue from organic channel / month | $160,000 | $530,000 |
| Organic share of total traffic | 34% | 63% |
The team was looking for the problem in content quality. The problem was in visibility architecture.
Scale is not an advantage by default. Millions of pages without a prioritization system are millions of pages competing against each other for crawler attention. And they all lose together.
Systems thinking starts with a question: what exactly are we asking Google to do — and does it even understand our logic?