A Scoring Model for CMS Migration Risk

Somebody on your team is about to say it with total confidence: "We'll just sort by traffic and migrate the top five hundred." It sounds so reasonable that nobody argues. Then, three months after launch, you find out that a lonely supplier PDF nobody remembered was quietly ranking for a query that actually made you money, and it went over the cliff because no internal link ever pointed at it. That's the thing that got me: the pages that hurt when you drop them are almost never the ones the spreadsheet flags. So instead of trusting the gut, you can score every URL on three signals redirect risk, duplicate content, and orphaned files, and roll them into a single 0–100 number that tells you what to migrate, what to rewrite, and what to quietly let go. This piece hands you the exact formula, the inputs each factor needs, and the thresholds that turn a raw crawl into a plan you can defend out loud in a meeting.

Why a score beats a spreadsheet gut-check

Most teams inventory pages, sort by traffic, and migrate the top few hundred. That misses the pages that are cheap to move but expensive to lose: a supplier PDF that ranks for a high-intent query, or a legacy landing page with 40 inbound links and no internal path to it. A weighted score forces every asset to declare itself. It also creates an audit trail: when a stakeholder asks why a page was cut, you point to its numbers, not a hunch.

The three risk factors

1. Redirect risk (weight: 40%)

Redirect risk estimates how much authority and traffic you lose if a URL breaks or maps poorly. It rises when a page has strong external signals and falls when the new URL is an obvious one-to-one match. Score each URL 0–100 on these inputs:

Inbound external links, referring domains pointing at the exact URL.

Organic entrances. Sessions that land directly on the page from search.

Ranking keywords: number and position of queries the page owns.

URL structure change. Does the new IA preserve the slug, or does it fragment (one page becoming three, or three collapsing into one)?

A high-authority page whose destination is ambiguous is your worst case. These are the URLs that justify hand-written 301s rather than pattern rules.

2. Duplicate content (weight: 35%)

Duplicate and near-duplicate content quietly dilutes rankings and confuses AI answer engines about which page is canonical. It also inflates migration effort, because you move the same thing five times. Score each URL on:

Exact-match body similarity, content hashing across the corpus.

Near-duplicate clusters, pages above ~85% shingled similarity (boilerplate-stripped).

Title and H1 collisions, multiple pages competing for the same query.

Parameter and pagination sprawl: the same content served under session IDs, sort orders, or print views.

The goal isn't to punish duplication. It's to surface the canonical winner in each cluster so you migrate one clean page and redirect the rest.

3. Orphaned files and pages (weight: 25%)

Orphans are assets no internal link points to, or that crawlers can only reach via a sitemap. They break silently during migration because export tools follow links; nothing links to the orphan, so nothing carries it across. Score on:

Internal inlink count. Zero inlinks is the classic orphan.

Crawl depth, reachable only at depth 6+ behaves like an orphan.

Asset type: PDFs, images, and downloads that rank or convert but live outside the CMS.

Still receiving traffic. An orphan with organic hits is a link magnet you can't afford to drop.

Combining the factors

Normalize each factor to 0–100, then apply the weights:

Risk = (0.40 × Redirect) + (0.35 × Duplicate) + (0.25 × Orphan)

Tune the weights to your situation. A link-heavy publisher should push redirect weight higher; a bloated enterprise DXP with a decade of drafts leans on duplicate and orphan weights. Document whatever you choose so the score stays comparable across re-crawls.

Turning scores into a migrate / rewrite / kill plan

Cross the risk score with business value (traffic, revenue, conversions) to get an action. The score tells you how much is at stake; value tells you whether it's worth saving.

Risk score | High value | Low value
70–100 | Migrate with hand-mapped redirects; canonicalize duplicates | Kill, but 301 to the nearest relevant page
40–69 | Migrate; consolidate near-duplicates into the winner | Rewrite or merge; retire thin variants
0–39 | Migrate with pattern-based redirects | Kill; let it 410 if it has no links or traffic

The high-risk / low-value quadrant is where teams waste the most effort, pages that are fragile and worthless, kept alive out of caution. A score gives you permission to let them go cleanly.

Working the model in practice

Crawl the full site, including non-linked assets. Pull the sitemap, server logs, and analytics so you catch orphans a link-following crawler misses.

Compute each factor per URL. Hash bodies for duplication, join link and analytics data for redirect risk, count inlinks for orphan status.

Score and sort. Attack the highest-risk, highest-value pages first, those need human decisions.

Freeze the mapping. Every migrated URL gets a destination; every killed URL gets a 301 or a deliberate 410.

Re-crawl after launch. Compare the post-migration score to your baseline to catch new orphans and redirect chains.

This is precisely the kind of triage a pre-migration content-intelligence pass automates, scoring pages and assets across these signals so the migrate/rewrite/kill decision is data-backed rather than a late-night judgment call.

The one number worth watching

Track the total risk score of everything you plan to drop. If that number is climbing, you're about to lose more authority than you realize, and it's cheaper to add a redirect now than to rebuild rankings for six months.

So here's what I actually think: run the score. Not because it makes the migration painless, it won't, but because it drags every one of those quiet, expensive pages into the open before launch day gets a chance to surprise you. If you only do one thing, score the stuff you plan to drop and watch that total. When it starts climbing, someone on the team is about to repeat that confident line about the top five hundred, and the model is your evidence that the cheap-to-move, expensive-to-lose pages deserve a seat too. Score once before you plan, score again after you launch, and the gap between those two numbers is what the move really cost you, measured for once instead of guessed at over drinks a quarter too late.