Migration risk is measurable. Instead of treating a replatform as a wall of unknowns, you can score every URL on three signals — redirect risk, duplicate content, and orphaned files — and combine them into a single 0–100 risk number that tells you what to migrate, what to rewrite, and what to kill. This article gives you the exact formula, the inputs each factor needs, and the thresholds that turn a raw crawl into a defensible migration plan.
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.
A scoring model won't make migration painless, but it converts a fog of anxiety into a ranked list of decisions. Score once before you plan, score again after you launch, and the gap between the two is your migration's real cost — measured, not guessed.
