Bulk URL Checker
Paste a list of URLs and find out which ones are still alive. HTTP status and final destination for every address, exportable as CSV. Free, no account.
Want every hop of each chain rather than just the outcome? Use the bulk redirect checker.
The row worth looking for
Most bulk checkers give you one status code per URL. The useful information is usually in the gap between two: what the URL you asked for returned, and what you actually ended up with.
| Pattern | What it means |
|---|---|
| 200 | Fine. Nothing to do. |
| 301 → 200 | A working permanent redirect. |
| 301 → 404 | The one to hunt for. The redirect exists and points at a page that does not. Invisible to any check that only reads the first status. |
| 302 → 200 | Works for visitors, tells search engines the move is temporary. Usually a mistake on anything permanent. |
| 3 hops → 200 | Works, but every visit and every crawl pays for the extra round trips. |
Frequently asked questions
How many URLs can I check at once?
Twenty-five per batch on the free tool, with no account. The limit exists because this runs on Cloudflare Workers, where a single request may make only a bounded number of outbound fetches, and a redirect chain costs several. Anything the budget could not reach comes back marked as unchecked rather than being silently omitted.
What is the difference between the two status columns?
The first status is what the URL you submitted returned; the final status is what you get after following any redirects. A row showing 301 then 200 is a working redirect. A row showing 301 then 404 is the dangerous one. The redirect exists and points at a page that no longer does, which no single status check would reveal.
Does it follow redirects?
Yes, up to four hops, keeping each status code along the way. It stops there rather than following indefinitely, because a chain longer than four is a problem in itself and worth reporting as one.
Can I export the results?
Yes, as CSV, generated in your browser from the results already on screen. Nothing is re-sent to build the file.
Why do some URLs report an error rather than a status code?
The request never completed: DNS did not resolve, the TLS handshake failed, or the server did not answer within the timeout. That is a different failure from a 404 and is reported differently, because the fixes are unrelated.
Can I check URLs on different domains in one batch?
Yes. There is no host restriction here, unlike IndexNow submission where every URL must be on the host whose key file you published. This is a plain HTTP check, so mixed domains are fine.