Bulk Redirect Checker

Check a whole list of URLs at once and see the full redirect chain behind each: every hop, every status code, and the ones that quietly end on a dead page.

Just one link? Use the redirect checker. Only need to know which URLs are alive? Use the bulk URL checker.

Up to 25 per batch. Mixed domains are fine.

The one that hides from status checks

A redirect that ends on a 404 is the failure worth hunting for. Check the starting URL on its own and you get a 301: healthy, permanent, nothing to see. Follow it and the destination has been gone for two deploys.

Every visitor and every crawler following that link lands on a dead page, and nothing in a status-code report tells you, because the status code being reported is the redirect's, not the destination's. That is the whole reason this page follows the chain to the end rather than stopping at the first response.

What each result is telling you

Chain Meaning
200No redirect. The URL serves a page directly.
301 → 200The good one. Permanent, single hop, live destination.
302 → 200Works for people, tells search engines to keep indexing the old URL. Wrong for anything permanent.
301 → 301 → 200Works, but the first URL should point straight at the last.
301 → 404Invisible to a plain status check. The redirect is fine; what it points at is not.

Related checks

Three tools cover redirects here, and they answer genuinely different questions. Pick by the question you have rather than by the number of URLs.

"What does this one URL do?"

Redirect checker: one URL, with timings, cookies, security headers and the mechanism behind each hop.

"Are these URLs alive?"

Bulk URL checker: status codes in batch, without the per-hop detail.

"Did my migration go where I planned?"

URL migration checker: grades each redirect against the destination you expected.

Frequently asked questions

How is this different from the bulk URL checker?

The bulk URL checker answers "are these URLs alive": it flattens each chain to a starting status and a final one. This answers "what do the chains look like", and keeps every hop. A 301 that lands on a 302 that lands on a 200 is three separate facts, and only the full list tells them apart from one clean redirect.

And how is it different from the migration checker?

The migration checker needs to know where each URL was supposed to go, and grades the result against that. This one needs nothing but the URLs: use it when you want to see what your redirects currently do, rather than confirm they match a plan you already have.

Why does a 302 matter if visitors still arrive?

Because a 302 says the move is temporary, so search engines keep the old URL in the index and leave its ranking signals attached to it. Nobody browsing the site notices anything, which is exactly why it survives: the damage is invisible unless you look at the status code rather than the destination.

What counts as too many hops?

More than one is worth fixing when it is easy. Every extra hop costs a round trip for the visitor and another request from the crawl budget a search engine is willing to spend on you. Chains usually grow by accident, one migration layered on the last, so they are worth auditing periodically rather than once.

It says my redirect ends at 404. Is that bad?

It is the worst result on this page. The redirect exists, so a status check of the starting URL returns 301 and looks healthy, while every visitor and crawler following it lands on a dead page. This is the single failure most likely to be sitting on your site unnoticed, because nothing about it looks broken from the outside.

How many URLs can I check?

Twenty-five per batch, free and without an account. The cap is real rather than arbitrary: this runs on Cloudflare Workers, every hop costs an outbound request, and the platform limits how many a single invocation may make. Anything the budget could not reach is returned marked as unchecked rather than quietly dropped.