How to use this tool

Bulk URL Redirect & 301 Chain Checker

Data checkedRedirects

How to use the bulk redirect chain checker

Back to the tool

Every URL is followed hop by hop, HTTP redirects and meta refreshes alike, until the chain stops.

  1. 01

    Enter the URLs to check

    Single mode checks one address and runs on Enter. Switch to Bulk to paste a list, one URL per line, up to 30 per run. Paste the old addresses, the ones you expect a rule to move; the destinations are what the check finds for you. Old URLs from a migration belong together, so one run shows the whole map.

  2. 02

    Choose the URL normalization level

    Normalize URL rewrites each address before fetching. Full URL keeps the path and query but drops tracking parameters and the fragment; No query removes the query string; Domain only keeps the domain. Redirect rules often key on the part it drops, so a stripped URL can fire a different rule, or none at all; keep the full address by default.

  3. 03

    Read the Chain column

    Rows appear as each URL finishes, so a slow host never holds up the rest. Chain carries every code the request met, in order, then the address it stopped at. A hop reading meta is a page that answered in full and then pushed on with a refresh tag: slower than an HTTP redirect, and weaker as a signal.

  4. 04

    Inspect a row and export the results

    View opens the one place a chain is judged: loops, missing destinations, error endings, chains longer than two, a landing on the homepage, a temporary code where a permanent one belongs, a meta refresh. Copy table copies the rows tab-separated; Export CSV writes them to a file. Both keep the full chain and add Hop URLs, every address in it.

How to read the redirect chain report

A row reads left to right: the address checked, and the route it took from there.

Result table columns

URL
The address exactly as it was checked — after normalization, not always what you typed.
Chain
Every code the request met, in order, then the address it stopped at. A hop reading meta is a refresh tag rather than an HTTP redirect. Past five hops the codes collapse into a count plus the final code.
Result
Whether the check itself finished. A URL that timed out, was refused, or ran past ten hops says so here, as a plain badge, not a control. The button that re-runs the row sits in Actions.
Actions
Buttons, not answers. A row with a chain to show gets View, including a row that ran past ten hops, because that chain is what you came to read. A failed row gets a retry that re-runs just that URL.

Redirect code reference

301 Moved Permanently
Permanent. Ranking signals pass to the destination and the old URL leaves the index: the right code for a move you mean to keep.
302 Found
Temporary. The original URL stays indexed and the destination is treated as a detour, which makes it the wrong code for a change that is not coming back.
303 See Other
See other. The next request is forced to GET, which is what you want after a form submission and not what you want for moving a page.
307 Temporary Redirect
Temporary, method preserved. Search engines read it exactly as they read 302; the difference only shows on a POST.
308 Permanent Redirect
Permanent, method preserved. Reads like 301 to a search engine, and is the correct choice when an endpoint that receives POST moves.