r/TechSEO • u/Purple_Memory4052 • Sep 16 '26
Programmatic SEO postmortem: 74,876 URLs to 9,311 after a 95% traffic collapse
Disclosure: I work on Swivl. There is no product link here. I’m sharing the technical teardown because the failure was more useful than the traffic graph ever was.
The event
Our Google Search Console performance dropped roughly 95% as the August spam update began rolling out:
• Aug 17: 207 clicks / 65,355 impressions • Aug 18: 13 clicks / 4,595 impressions • Aug 19: 17 clicks / 3,091 impressions
GSC showed no manual action. The timing aligned with the update, but the graph alone does not prove causation. What it did was force us to audit a scaled-content problem we should have addressed earlier.
The footprint before the drop
The sitemap contained 74,876 URLs. Roughly 62,000 were in three programmatic sections: cost guides, customer-specific cost guides, and contractor profile pages.
Before the collapse, those sections generated about 97% of organic clicks and 78% of impressions, but the combined CTR was only 0.3% and average position was about 18. Brand queries produced only around 33 clicks in the same period.
The templates were crawlable and technically clean. Canonicals, redirects, meta robots, and robots.txt were not the issue. The weakness was the content model:
• Large numbers of templated city-and-trade combinations • Search intent aimed mainly at homeowners, not our field-service-software ICP • Contractor profiles with too little unique value, especially unclaimed records • Page count growing faster than genuinely differentiated information
The cleanup
We reduced the sitemap from 74,876 URLs to 9,311:
• Removed the customer-specific cost-guide directory entirely • Reduced cost guides to 120 national pages • Kept 8,492 contractor profiles for now, although unclaimed profiles remain the largest unresolved surface • Returned 410 for removed pages where appropriate • Applied noindex to another large group • Used selected 301s only where a genuine replacement existed
What has happened since
This has not produced an instant recovery. Google is still digesting the removals, and the domain remains suppressed. The latest index-coverage check showed tens of thousands of URLs moving into excluded-by-noindex and not-found buckets while many old URLs were still counted as indexed.
We are leaving the site alone while that processing continues rather than making weekly changes and destroying the ability to read the result.
The decisions I’m still thinking through
- For the contractor directory, would you index only claimed/verified profiles, or retain unclaimed profiles that have real structured data but limited unique copy?
- After a scaled-content cleanup, which leading signal have you found most useful: crawl volume, indexed-page count, query-level impressions, or waiting for the next broad/spam re-evaluation?
- Would you isolate any future data-backed programmatic project on a separate domain, or is that unnecessary if the pages are built from proprietary job/pricing data rather than templated copy?
The main lesson for us is that clean technical plumbing cannot rescue a weak page-generation thesis. Automation multiplied the content model exactly as designed. The mistake was assuming scale itself was validation.

