Bulk URL Redirect & 301 Chain Checker
Data checkedRedirects
How to use the bulk redirect chain checker
Back to the toolEvery URL is followed hop by hop, HTTP redirects and meta refreshes alike, until the chain stops.
- 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.
- 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.
- 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.
- 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.