Case study
Why a 995-page site drew zero search traffic
Four mechanical causes, each measured, three fixed in code, and one documented as a dead end.
- median title length, characters
- 1,103 → 45median title length, characters
- pages with no inbound links
- 164 → 0pages with no inbound links
- URLs in the sitemap
- 725 → 944URLs in the sitemap
- referring domains that were spam
- 155 of 156referring domains that were spam
Figures measured 2026-08-23.
The problem
The site had 0 organic keywords and 0 organic visits despite a valid sitemap, correct canonicals, and 155 referring domains.
The obvious answers (thin content, duplicate content) were plausible and wrong. Picking one without measuring would have spent months on the wrong fix.
What was built
Ruled out duplication first: 8-word shingle overlap across 21,430 page pairs never exceeded 0.30.
Measured every page title: the median was 1,103 characters against the roughly 60 a results page shows, so stuffing at that scale reads as a site-wide quality signal. An idempotent script, dry-run by default, cut the median to 45 without touching body copy.
Built a link graph over the built HTML: 164 pages had no inbound links. One component mounted in the root layout took that to zero and the median inbound count from 2 to 9.
Found 219 indexable pages (22% of the site) missing from the sitemap because one registry was never imported. Added a check that fails if any indexable page is missing.
Pulled every referring domain: 155 of 156 belonged to one link-selling network. The authority was never real.
What changed
Three causes fixed and guarded so they cannot return. The fourth reframed the plan: authority has to be earned from one real referring domain, so organic search was demoted to a long-run channel and the site was treated as a conversion surface.
The write-up states plainly that rankings have not moved yet. The defects were real regardless, and the decision to stop investing in search came from the measurement, not the hope.
Inside your team
Funnel and attribution problems inside a company look the same: a confident theory, a missing measurement, and a fix aimed at the wrong layer. The method is to measure each layer, rule things out explicitly, and say what the data does not show.