41,600
URL variants
Parameter explosion
Sort, page, price and filter parameters combined freely, turning 96 bairros into tens of thousands of crawlable, near-identical URLs with no canonical.
A fictional business. The figures are a modelled scenario, not a client result.
Varanda Imóveis · Property portal · São Paulo
140 pages at month 0, 2,300 pages at month 13. Solid floor ≈ 25 indexed pages; dashed floors exist but are not indexed yet.
Inspect a cluster
Pinheiros: 12 bairros, 290 of 290 pages indexed (12 of 12 floors). Template: /imoveis/sp/pinheiros/aluguel/
The challenge
Neighbourhood search pages were generated from parameters, duplicated, slow, and largely ignored by Google.
Varanda Imóveis lists rentals and sales across São Paulo, but its neighbourhood pages only existed as search results. Every combination of sort order, price band and page number produced a new address, so Google met the same Pinheiros listings under hundreds of URLs and trusted none of them. Only 140 bairro pages made it into the index, and the ones that did loaded in 1.4s.
Crawled last week · one bairro
Diagnosis
41,600
URL variants
Sort, page, price and filter parameters combined freely, turning 96 bairros into tens of thousands of crawlable, near-identical URLs with no canonical.
91%
of Googlebot hits
Log analysis showed nine in ten crawler requests landing on parameter variants; core bairro pages were recrawled every 19 days on average.
0
crawlable page-2 links
A JavaScript “ver mais” button loaded listings 21+ with no href, so most inventory in large bairros was never discovered.
1.4s
median TTFB
Each request ran a live listings query. Crawlers and users waited the same 1.4 seconds before the first byte.
38
unique words / page
Bairro pages shared one paragraph with the name swapped in. No prices, transport, schools or stock signal that a buyer could use.
0
structured-data types
No BreadcrumbList, ItemList or listing markup; Google had no machine-readable link between a page, its bairro and its zone.
The strategy
Built on our Signal plan: technical foundations first, so every page we published landed on clean, fast, crawlable ground. Four tactics, in the order the city needed them.
/imoveis/sp/{bairro}/{intent}/One clean template per bairro × intent (venda, aluguel, apartamento, casa, 2-quartos, perto-do-metrô), published only when live stock passed a minimum of 12 listings, with real price medians, transit lines and stock counts written in.
<a href="?pagina=2" rel="next">Replaced the JS button with plain linked pages, self-canonical on each page, a view-all cap of 60 listings, and noindex on sorted variants so depth became crawlable but not duplicated.
Disallow: /*?ordem=Robots rules and parameter stripping for sort and filter combinations, XML sitemaps split by zone with lastmod from stock changes, and edge caching that took TTFB from 1.4s to 0.3s.
"@type": "ItemList"BreadcrumbList from zone to bairro to intent, ItemList for the listing grid and Place data per bairro, validated against every template before each release.
13 months, 13 floors
30 days of server logs mapped against 41,600 discovered URLs.
96 bairros scored for stock depth, demand and duplication.
Sort and filter variants stripped or blocked; canonicals set.
Listings cached at the edge; TTFB falls under 0.8s.
Highest-demand cluster published on the new URL scheme.
Page-2+ links shipped; deep inventory starts to be crawled.
Breadcrumb, ItemList and Place markup across all templates.
Remaining clusters released; zone sitemaps submitted.
Casa, cobertura and 2-quartos variants where stock allowed.
Perto-do-metrô pages for 31 bairros on metro lines.
148 pages below stock threshold merged into parents.
Neighbour-bairro modules close the last orphan pages.
2,300 pages indexed; crawl waste under 12%.
Bars: neighbourhood pages indexed at the end of each month.
Results
Modelled scenario for a fictional business — not a client result. Rankings and traffic are never guaranteed; see our Terms.
| Query (pt-BR) | Bairro | Searches / mo | Before | After |
|---|---|---|---|---|
| apartamento para alugar pinheiros | Pinheiros | 9,900 | 41 | 3 |
| imóveis moema | Moema | 6,600 | 24 | 2 |
| casa à venda vila mariana | Vila Mariana | 4,400 | 52 | 4 |
| apartamento 2 quartos mooca | Mooca | 3,600 | not in top 100 | 5 |
| studio para alugar república | República | 2,900 | 67 | 6 |
| casa à venda butantã | Butantã | 2,400 | 44 | 3 |
| cobertura santana | Santana | 1,300 | not in top 100 | 7 |
| apartamento perto do metrô lapa | Lapa | 1,000 | not in top 100 | 4 |
varanda-imoveis.example › busca?bairro=pinheiros&ordem=preco&pagina=3
Busca de imóveis - Varanda
Encontre imóveis. Resultados da busca para pinheiros ordenados por preço…
varanda-imoveis.example › imoveis › sp › pinheiros › aluguel
Apartamentos para alugar em Pinheiros, SP | Varanda Imóveis
412 apartamentos disponíveis · aluguel mediano R$ 4.300 · linha 4-Amarela e 2 estações de metrô.
Illustrative results-page mock-ups for the query “apartamento para alugar pinheiros”. Positions, page copy and stock counts are modelled for illustration.
Your city, rebuilt
Hundreds of location or category pages that Google ignores? Signal fixes the ground before anything goes up on it.