Figures in this case study are illustrative and drawn from an anonymised engagement. They are shared with permission in aggregate form.

The client came to us with a number they were proud of and a number they were not. The first was 340 published posts. The second was the count of opportunities their marketing team could attribute to any of them in the preceding two quarters: four.

That gap is not unusual, and it is almost never a writing problem. Their posts were competently written. The problem was that twelve topics had been covered 340 times, which meant that for every query they cared about, they were competing against themselves with a dozen near-identical pages, none of which had accumulated enough links, engagement or internal signal to be the obvious answer.

What the audit actually found

We chunked the site the way a retriever would and looked at what was left.

Of 340 posts, 187 had received fewer than 10 organic clicks in twelve months. Another 63 were topical duplicates — pairs and triplets covering the same question, usually written eighteen months apart by different contractors who had not been shown the archive. Twenty-two were seasonal pieces about product versions that no longer existed.

The commercially important pages — the ones describing what the product does and who it is for — numbered 40. Those 40 pages were receiving 6% of the site’s internal links. The other 94% flowed to the archive.

What we did, in order

Weeks 1–3: decide, do not guess. Every URL got one of three verdicts. Keep (40 commercial pages plus 50 posts that had earned links or ranked for something real). Merge (63 duplicates folded into their strongest sibling, 301’d). Retire (187 posts with no traffic, no links and no strategic purpose — 410 for the ones with nothing worth preserving, 301 to the relevant hub for the rest).

The argument we had to win internally was about the 187. Removing a page that gets ten clicks a year feels like destroying an asset. It is not an asset; it is a page competing with your good pages for crawl budget and for the site’s own topical focus. We put the decision in a spreadsheet with the four numbers behind each verdict — clicks, referring domains, internal links in, last meaningful update — and let the client overrule us on any row. They overruled us on nine.

Weeks 4–10: rebuild the survivors. The 40 commercial pages were restructured as evidence blocks. Every specific claim moved to sit adjacent to the data supporting it and the conditions under which it holds, so that a retrieved chunk carries its own justification. This is unglamorous editing work and it is the part that produced the AI citations.

Weeks 6–14: rewire discovery. The site’s only navigation into the archive had been a paginated index six pages deep. We replaced it with six topic hubs, each linking to the eight to twelve surviving posts in its cluster and to the commercial page the cluster supports. Crawl depth to the average surviving post went from four clicks to two.

The dip we warned about

We told the client to expect a traffic decline in months two and three, and to hold. It came: an 11% drop in total sessions, concentrated entirely in the retired archive. Two things made it survivable. We had agreed the metric in advance — non-branded clicks to commercial pages, not total sessions — so the dip was visible as a planned cost rather than a failure. And we had staged the retirement across six weeks rather than one, so the trajectory was legible while it was happening.

The mistake we have seen kill this work elsewhere is retiring everything on a Friday and then defending a traffic chart on Monday with no framing prepared.

What we would do differently

We under-invested in the 301 map. Nine months later the client found a batch of merged URLs still linked from a partner’s documentation, pointing at redirects we had chained two deep. Chained redirects work, but they leak and they are slow. Every retirement should map to its final destination on day one, not to whatever seemed closest at the time.