Content Debt: Don't Migrate Thin, Stale, and Cannibal Pages

Right now, on the site you're about to migrate, there is almost certainly a page announcing something that stopped being true years ago. A promo that expired. A product you no longer sell. A press release about an office you've since left. Nobody reads it, nobody links to it, and it hasn't earned a click in longer than some of your teammates have worked there. And yet, come replatform day, it's going to get a URL mapped, a redirect written, a content model matched, and a QA pass, exactly like the pages that actually pay the bills. I know what you're thinking: it's one dead page, who cares. Fair. But it's never one. Content debt is the accumulated cost of pages that no longer earn their keep, thin, outdated, or duplicative content that costs crawl budget, dilutes ranking signals, and slows every migration. The reason it's worth naming before you move is simple math: a migration multiplies the cost of every page you drag along. Move 8,000 pages when only 3,000 deserve to live, and you've blown the timeline and the rankings in one go, all to carry things you'd have deleted in six months anyway.

Why migration is the moment to pay it down

Most teams know they have dead weight. They just never have a forcing function to deal with it. A replatform is that function. You are already touching every URL, so the marginal cost of deciding "keep or cut" is at its lowest. Skip the decision and you inherit the debt on the new stack, plus you've now spent engineering hours migrating pages you'll delete in six months anyway.

There's a compounding effect too. Thin and duplicate pages don't just underperform themselves; they drag on the pages you care about. Google allocates crawl attention per site, and answer engines increasingly pick a single canonical source per topic. When five pages half-cover the same query, none of them wins cleanly. Consolidation before launch is one of the few pre-migration moves that can lift performance rather than just preserve it.

The three forms of content debt

1. Thin pages

Pages with little unique value: stub category pages, tag archives, near-empty author pages, auto-generated location pages, old press releases, PDFs no one downloads. Thin isn't strictly about word count. A 200-word answer that fully resolves a query is fine. Thin means the page doesn't satisfy the intent it targets or duplicates value found elsewhere.

2. Stale pages

Content that was accurate once. Product pages for discontinued SKUs, "2019 guide to" posts, event recaps, pricing that changed, screenshots of a UI that no longer exists. Stale content erodes trust and, for YMYL topics, actively hurts your E-E-A-T signals. Some stale pages should be refreshed; others should be redirected to a current equivalent.

3. Cannibalizing pages

Multiple pages competing for the same query, splitting clicks and confusing which one search engines should surface. Classic causes: a blog post and a landing page targeting the same term, years of "best X" listicles, or the same topic covered by three authors. Cannibalization is the hardest to spot by eye and the most valuable to fix, because consolidation concentrates authority.

A prioritized audit workflow

Pull a full inventory. Every URL, not just what's in the CMS nav. Crawl the live site and reconcile against sitemaps, analytics, and server logs. Orphaned pages that aren't linked internally are prime debt candidates.

Attach performance data. For each URL: organic sessions, impressions, clicks, ranking keywords, backlinks, last-modified date, and last meaningful traffic. Twelve months of data is the minimum useful window.

Cluster by target query. Group URLs that rank for overlapping terms. This is where cannibalization surfaces. Any cluster with more than one contender needs a canonical decision.

Score each page. A simple rubric (traffic, links, conversions, freshness, uniqueness) turns opinion into a defensible list. This is the same migrate / rewrite / kill logic Replatform Radar applies at crawl time so the decision is made before mapping starts, not after.

Decide and document. Every URL gets a disposition and a destination. No page moves to the new stack without one.

The decision matrix

Signal | Migrate | Rewrite | Consolidate | Kill (301 or 410)
Traffic | Steady, meaningful | Declining but recoverable | Split across duplicates | Near zero for 12+ months
Backlinks | Has valuable links | Some links worth keeping | Links spread thin | None
Accuracy | Current | Fixable staleness | Overlapping/redundant | Obsolete, no equivalent
Action | Move as-is | Refresh, keep URL | Merge into one canonical, 301 the rest | 301 to relevant page, or 410 if none

Handling the kill list correctly

Deleting a page is not the same as removing content debt safely. Two rules save you:

Redirect anything with links or residual traffic. A page ranking for nothing but holding three referring domains still passes equity: 301 it to the closest relevant survivor, not the homepage.

Use 410 deliberately. For genuinely dead content with no equivalent (expired promotions, retired products with no successor), a 410 Gone tells crawlers to drop it faster than a soft 404. Don't 301 everything to the homepage; that pattern gets treated as a soft 404 anyway and wastes the signal.

Consolidation deserves its own care. When you merge three posts into one, preserve the strongest URL, fold in the unique value from the others, and 301 the retired URLs to the survivor. Losing the good paragraphs buried in a page you delete is a quiet way to lose rankings you thought you were protecting.

What this buys you at launch

So here's what I actually think, no hedging: audit first, every single time, before you so much as glance at the URL mapping. A paid-down content estate means fewer redirects to write, fewer content models to reconcile, fewer QA hours, and a cleaner crawl for both Google and AI answer engines on day one. Teams that prune first routinely cut migration scope by a third or more, and the launch metrics look better because ranking signals land in one place instead of scattered across near-duplicates. Do it the other way round and you're drafting redirects against an inventory that's already gone soft, then unwinding that mess later at a price the audit would never have charged you. I've watched a team spend a fortnight untangling redirects for pages nobody should have kept. That expired promo I mentioned at the top? The cheapest version of it is the one you decide to leave behind before you touch a thing. The debt you refuse to carry is the best deal in the whole project.