Blog

The Roadworthy Test: Migrate, Rewrite, or Scrap Each Page

· 6 min read · By the Replatform Radar team

Here is the whole method before I reach for the metaphor: you decide migrate, rewrite, or kill for every URL in a spreadsheet, using trailing traffic, referring domains, conversions, last meaningful update, and duplication. You do it before the new CMS exists, before anyone opens a sandbox, and long before someone starts arguing about hero layouts. The verdict is a data problem, not a design problem.

I keep writing this because of a pattern I watch play out on nearly every project. A team spends six weeks lovingly rebuilding templates, and then, about three weeks from cutover, somebody asks the question nobody budgeted time for: of our 11,000 pages, which ones are actually coming? Silence. Then a scramble. Then a migration that drags the whole junk drawer across because deleting things felt scary on a deadline.

Think of it as the night before the lot closes

Picture a used-car lot the evening before the dealership relocates. You cannot afford to tow every vehicle to the new address. Some of these cars run beautifully and people keep asking about them. Some are structurally fine but filthy, with a cracked dashboard and a 2014 brochure in the glovebox. And some are up on bricks, have been for years, and the only reason they are still here is that nobody wanted to be the person who scrapped them.

Your pages are that lot. The move forces the decision you have been politely avoiding.

A roadworthy car is a migrate. It earns traffic, it has links pointing at it, it converts or informs, and it is still true. You tow it over, keep its URL, and point a 301 at the new address so the mail still arrives. (Google has said for years that a 301 passes essentially all of a page's link equity, so a clean redirect map is the tow truck, not an afterthought.)

A fixable car is a rewrite. The topic still matters, the URL still has authority, but the content underneath is stale, thin, or duplicated three ways across the site. You keep the slug and the inbound links and you replace what is under the hood. This is the pile people forget to staff, and it is usually the biggest one.

A car on bricks is a kill. No traffic, no links, no conversions, no reason. You do not tow it, and you do not quietly leave it in the corner of the new lot either. You scrap it and redirect its URL to the nearest living relative so the few stray links and the occasional crawler land somewhere useful.

What goes in the spreadsheet

You want one row per URL and a small number of columns that can actually settle an argument. Here is the shape I use before anyone touches a template.

SignalWhere it comes fromWhat it tells you
Organic sessions, trailing 12 monthsAnalytics + Search ConsoleDoes anyone arrive here on purpose?
Referring domainsA backlink toolDoes the open web vouch for it?
Assisted conversions / goal valueAnalyticsDoes it earn, even if quietly?
Last meaningful updateCMS metadata, not the publish dateIs it still true?
Duplicate / near-duplicate clusterA content similarity crawlIs this the canonical version or one of five?
Crawl depth / orphan statusA crawler's internal link mapCan a machine even reach it?

That last row is the one teams underestimate. An orphaned page with no internal links pointing at it is a car parked behind the building where no customer ever walks. It might run fine. Nobody will ever know, because there is no path to it.

The scoring rule, plainly

I like a rule simple enough to survive a steering committee. If a page has real traffic or real links and it is still accurate, it migrates. If it has traffic or links but the content is stale or duplicated, it rewrites, and it keeps its URL while you do. If it has neither traffic nor links nor conversions, it is a kill, and the only decision left is where its 301 points.

Everything else is edge-case haggling: the brand-new page with no history yet, the legal notice nobody reads but counsel insists on, the campaign landing page that spikes once a year. Flag those, do not let them derail the run.

The reason to do this on paper, in a shared sheet, is that it is reversible and it is arguable in daylight. Make the same call inside a half-built sandbox and you have baked an opinion into a system where changing your mind costs a sprint. Our own crawler exists to fill that spreadsheet for you — duplication clusters, orphans, redirect risk, and the findability signals that decide whether answer engines still surface you — but the point stands even if you assemble it by hand: score first, build second.

What I'd actually do

Here is my honest position, not a balanced shrug. If I had one afternoon and a nervous stakeholder, I would freeze all template work and build the scored inventory first, because every hour spent on a layout for a page that should have been scrapped is an hour you will beg for during cutover week. I would rather launch with 3,000 pages I can defend than 11,000 I inherited out of guilt.

The hard part was never the scoring. It is being the person willing to put a kill verdict next to a page someone's director wrote in 2019. Do it anyway. The new lot only has so many parking spaces, and the cars on bricks are not getting any younger.

Questions and discussion

When you last cut pages before a migration, what was the one URL you knew should be killed but migrated anyway because of who wrote it or who'd notice — and what finally happened to it? And if your traffic or link numbers were actually a rough proxy rather than clean data, tell me, I'd love to know what you leaned on instead.
Steven Solano, who wrote this — and reads every reply

Loading discussion…

Want this analysis for your exact site before you migrate?

Request a scan →