DomainLens

Templates

Website Migration URL Mapping Template

Every migration failure traces back to a URL nobody knew existed. The mapping sheet is the artefact that prevents it, and building the inventory is most of the work.

Check your site before you start fixing

Run a fresh DomainLens audit and use the report as your priority list.

Run a free SEO audit

Source the inventory from four places

A crawl alone is not enough — it finds only what your own site links to, and the URLs that matter most in a migration are frequently the ones with external links and no internal ones.

SourceFindsMisses
Site crawlEverything linked internallyOrphans
Search ConsoleEverything Google indexedNever-indexed pages
AnalyticsEverything with trafficZero-traffic pages
SitemapEverything you declaredAnything omitted
Server logsEverything actually requestedNeeds log access

The columns

The Template column is what makes a large mapping tractable. Ten thousand product URLs following one pattern is one rule, not ten thousand rows to decide individually.

ColumnContainsWhy
Old URLThe full existing URLThe key
New URLDestination, or blank if retiringThe mapping
Action301, 410, or unchangedExplicit decision per URL
Sessions (90d)Traffic before the movePriority when time runs short
Impressions (90d)Search visibilityCatches pages with no clicks yet
External linksWhether anything links inRaises priority sharply
TemplateWhich template produced itLets you map in bulk
VerifiedPost-launch check resultFilled in after go-live

Rules for mapping

The home-page default is the most damaging shortcut available. Google treats a bulk redirect of unrelated URLs to the home page as a soft 404, so those pages lose everything they had.

  • Every old URL gets an explicit decision. Blank is not a decision.
  • Map to the closest genuine equivalent, never to the home page as a default.
  • Where nothing equivalent exists, 410 rather than redirect somewhere unrelated.
  • Redirect directly to the final URL, not through an intermediate that also redirects.
  • Preserve query strings that carry meaning; strip tracking parameters.

Deciding what not to keep

A migration is the one moment when retiring pages is cheap, because you are already touching every URL. Taken seriously, the mapping sheet is as much a content decision as a technical one — every row marked for a 410 is a page you have decided the new site does not need.

Be deliberate about it rather than defaulting to keeping everything. Migrating a thousand thin pages preserves a thousand thin pages, and the effort of mapping them is spent carrying forward the problem rather than solving it.

The test is the same one you would apply outside a migration: does this page have traffic, external links, or a job to do. A page failing all three is one to retire, and doing it during the migration costs nothing extra because the redirect infrastructure is already being built.

Verifying after launch

For the surrounding process see the migration checklist and redirect chains .

  1. 1Run the whole old-URL list through a redirect check and record the final status for each.
  2. 2Filter to anything not ending at 200 — those are the ones to fix first.
  3. 3Count hops separately; a chain works but costs a round trip and should be collapsed.
  4. 4Spot-check that destinations are genuinely equivalent, not just returning 200.
  5. 5Re-run the check a week later, since caching and CDN rules can mask problems initially.
Verifying the whole mapping
while read -r url; do
  out=$(curl -sIL "$url" -o /dev/null \
    -w '%{http_code} %{num_redirects} %{url_effective}')
  echo "$out  <- $url"
done < old-urls.txt | tee verify.txt

# Anything not starting with 200
grep -v '^200' verify.txt

# Chains: more than one hop
awk '\$2 > 1' verify.txt
Do I need to map every URL?
Every URL needs an explicit decision, which can be a bulk rule per template. What you cannot do is leave URLs unaccounted for.
What about URLs with no traffic?
Check for external links before retiring them. A page with no traffic but an inbound link is still worth redirecting.
How long do I keep the mapping sheet?
For as long as the redirects run, which should be at least a year. It is the record of what was decided and why.

Check this on your own site

Related resources