Where they started
A multi-office franchise site with a healthy DR and 3,100 ranking keywords, almost all of them branded, agent names, or the handful of static area pages. The listings themselves, the actual product, were rendered through an IDX iframe: a widget from the MLS provider dropped into the page. To a visitor it looked like a full property catalog. To Googlebot it was one empty container. We ran a crawl and the site had roughly forty indexable URLs against an inventory of several thousand live properties. Every “3 bed in [suburb]” search the business should have owned was being answered by the portals instead.
What we did
- Rebuilt each listing as a server-rendered page, not an iframe. The MLS feed now generates a real URL per property with the address, price, photos, and description in the initial HTML, so a page exists for Google to read the moment a listing goes live. This is the whole reason keywords tripled: thousands of pages that literally did not exist before.
- Gave every listing a lifecycle instead of a permanent URL. A fresh listing is flagged for fast indexing; a sold one is held for a short grace period, then returns 410. That keeps the index full of buyable inventory and stops the site drowning in dead property pages that drag quality signals down.
- Rebuilt pagination and the suburb hubs to route crawl budget. Clean paginated category pages funnel Googlebot into the fresh listings, and each suburb hub links its live inventory, so new properties get discovered in days, not weeks.
- Built 16 links to the suburb hubs, not the listings. Listings churn too fast to link; the hubs are permanent, so a regional business journal and a relocation site pointed there, lifting DR from 42 to 44 and the whole listing tree beneath them.
Traffic barely moved for two months while the new pages were built and crawled, then stepped up sharply as the index absorbed the inventory in waves. Once it caught up, the curve tracks the inventory itself. It plateaus because the ceiling is now how many properties are for sale, not how many pages Google can see.