How to Check Redirects After a Site Migration (Status Codes & Chains)

Key takeaways

Ranking drops after a migration usually come from status codes and redirect chains, not content. Take a baseline before the migration, re-check 24–72 hours after — one batch check covers up to 20 URLs, hop by hop, from both Googlebot and browser views.

The short answer

In most post-migration traffic drops, the problem is not thinner content or moved structure — it is status codes and redirect chains: laddered 301s, loops, a pile of 404s, or crawlers seeing something different from browsers. You need two time points, not talent: a baseline before the migration and a re-check 24–72 hours after. One batch check covers up to 20 URLs, follows every hop with timing, and runs from two views (Googlebot / browser) — a 20-minute conclusion at most.

Status code cheat sheet (the ones migration troubleshooting uses)

Status

Meaning

What it means during a migration

200 / 204

OK / no content

A clean endpoint

301 / 308

Permanent redirect

URL identity moves — a migration is mostly these

302 / 307

Temporary redirect

Old URL still competes; do not use for permanent moves

404

Not found

Correct answer for genuinely removed pages

410

Gone permanently

Clearer: "does not exist and should not be looked for"

429

Rate limited

Crawler blocked; check Retry-After

500 / 502 / 503

Server errors

Worst during crawling — directly damages indexing

301 vs 302: which one for a migration

Wrong-direction redirects are the top reason ranking never comes back:

  • Permanent (301/308): the new URL becomes the identity; equity and history follow. Use for domain changes and URL-structure redesigns.
  • Temporary (302/307): the old URL remains the identity; the new URL is a temporary stop. Use for campaign pages and checkout transfers.

Mistake examples: a promo page that used 301 — when the promo ends, the old page's ranking history has already moved "permanently," and recovery means re-migrating. The reverse: a permanent redesign using 302 — the old address keeps competing for identity, and neither page ranks well.

Two time points: before and after

Before the migration (baseline, once): confirm the final status of your top 20 high-value URLs and their chains, and archive it. That file is the comparison base — without it you cannot tell "new problem" from "pre-existing."

After the migration (re-check, 24–72 h later): wait for the cutover to settle, then check four things:

  1. Old URLs all 301 as planned (not 200, not 404).
  2. New URLs return 200.
  3. No ladder chains (A→301→B→301→C should be one hop) and no loops (B→301→A→301→B — search crawlers give up).
  4. Crawler view and browser view match (mismatch → usually WAF / keep-alive / UA rules; this is the classic source of "it looks fine to me but indexing is broken").
Before vs after the migration: the baseline to archive, and the four things to re-check in the 24–72 h window

Running the check (free, no sign-up)

  1. Paste URLs, one per line, up to 20; duplicates are dropped automatically and bare domains get https:// automatically.
  2. Pick views: Googlebot, Bingbot, browser, etc. (add custom headers if needed). For a migration check, run Googlebot + browser at minimum.
  3. Read the chain: status code, status phrase, full redirect chain (every hop's status, Location, timing), response headers, body, and total time. Split timing by hop — the slow hop is the issue.
  4. Export CSV: land the results in your tracking sheet or ticket queue alongside other changes.

One free HTTP status code checker (simple human verification per check, no registration) does all of it in one pass, and ships a 54-code reference — which is also why the check follows chains instead of only final status.

The people who get burned forget month three. Keep an "unhealthy URLs" list and run the top 20 core URLs monthly. Status codes are like elevator buttons — they fail when you assume they are fine.

Common mistakes

  • Looking only at the final status: 301→301→200 is very different from a direct 200; the longer the chain, the more signal decays.
  • Fixing every 404: a 404 that is connected in a redirect chain is not a dead link — genuinely removed pages should stay 404/410. Fix only the dead links with traffic.
  • Testing only the browser view: WAFs return different content per UA. At least two views per check.

FAQ

How many URLs can I check at once? Up to 20; duplicate URLs are checked once. Larger lists just mean more batches.

Is it paid? No. Free and anonymous, with a simple human verification per check.

How soon after a migration is a 301 reliable? The check tool usually shows results within 24–72 hours; for full equity transfer, monitor GSC URL inspection over the following weeks.

Is 502/503 a "failure" or a wait? During crawling, it is serious. Find the cause (upstream, specific endpoints). 5xx seen from the crawler view is not a "wait a second" situation.

Author: Julian Mercer, 14-Year Technical SEO Practitioner at Auspia. Julian writes about crawlability, rendering, site architecture, and the technical foundations AI-readable content needs.

Explore this topic

Keep following the same growth thread