Bulk HTTP Status Checker
Free, no signup. A site migration or audit turns up hundreds of URLs to check, one at a time is not an option. Paste up to 500 and get status codes, full redirect chains, and final destinations, with the SEO problems already flagged.
Advanced: safe request headers
Up to 5 response-negotiation headers: Accept, Accept-Language,
Cache-Control, and Pragma. Credentials, cookies, and X-*
headers are refused. Headered checks are never cached or stored.
Example data — replace with your own, then press Check status codes
Checks run from our server; we fetch the URL you enter and don't keep the results. Re-running the same list within about ten minutes reuses a short-lived cache. Checks with custom headers deliberately bypass that cache. Anonymous run-level outcome counters may be used for aggregate research; URLs, domains, IPs, and identifiers are never included, and no statistic is released below 100 runs.
Sample report Illustrative status inventory — not a company audit
Say you paste four URLs:
https://example.com/old-trail-shoe
https://example.com/products/trail-runner
https://example.com/products/retired-boot
https://example.com/dead-link …and the checker returns:
- Two pages return 200 — that confirms successful HTTP responses, not necessarily healthy or indexable content. Inspect titles and rendered copy before calling either URL clean.
- One URL cleanly 301-redirects.
https://example.com/old-trail-shoelands onhttps://example.com/products/trail-runnerin a single hop (green→amber dots show it) — expand the row for the full chain detail. - One is a dead 404, flagged in red as a broken link — the row most worth fixing first, since every internal link pointing at it is wasted.
- Sort by status or expand any amber/red row to triage a big list fast instead of reading every line — see HTTP status codes for what each class means for SEO.
Soft-404 trap: green status, missing product
Suppose /products/retired-boot returns 200, but its title is
“Product unavailable” and its body is the same empty shell used by thousands of retired
SKUs. This checker correctly reports the HTTP response as successful; it does not pretend
that status alone proves useful content. Cluster repeated titles/body templates with a
crawler, inspect representative rendered pages, and confirm Google's classification in
Search Console. The `.example` URL and scenario are illustrative.
How to use it
- Paste your URLs into the box, one per line — up to 500. The scheme is optional; a bare
example.com/pricingis treated ashttps://. Duplicate lines are removed automatically. - Or press Import sitemap, paste a
sitemap.xmlURL, and the tool pulls every<loc>into the list for you (capped at 500). - Pick the user-agent — default, browser, Googlebot, Bingbot, or the listed AI crawlers — if you want to compare an anonymous crawler response with a browser response.
- For an opt-in content-negotiation check, open Advanced: safe request headers.
It accepts only
Accept,Accept-Language,Cache-Control, andPragma; credentials, cookies, andX-*headers are intentionally blocked. Those checks bypass the short-lived cache. - Press Check status codes. Results stream in per batch. Filter with the status chips (2xx / 3xx / 4xx / 5xx / error), sort by status, latency, or chain length, and expand any redirecting row to see every hop.
- Use Export CSV for the full list — input URL, final status, final URL, redirect count, chain, latency, flags, and errors. Export a snapshot to compare a later run; the comparison calls out status changes, new 4xx rows, and chains that grew.
+ saves the current site or page. Use ☆ beside any saved site, page, or list to favorite it. Recent check history appears below.
Create a named list
Target filled from your local choices.
Site passport Local context for this saved site
Local data
Saved targets, named lists, and recent check summaries remain only in this browser.
| URL | Final URL |
|---|
Rate this tool
Checks run from datacenter IPs at the edge — some bot-protected sites (Cloudflare challenges, WAFs, CDN bot rules) answer these requests differently than they would answer a real browser.
What the results mean
Every row's status pill is colored by its status class:
- 2xx Success (green) — the URL returned a live page (usually 200). Nothing to fix.
- 3xx Redirect (amber) — the URL redirects; the Final URL column shows where it lands. Expand the row for every hop.
- 4xx Client error (red) — broken or missing (404), forbidden (403), gone (410). These are dead links to fix or remove.
- 5xx Server error (red) — the server failed (500) or is unavailable (503). Often transient, worth re-checking.
- ERR Connection error (red) — the request timed out, the host didn't resolve, or the site refused it.
Amber flags on a row call out specific redirect problems the tool detects, including:
- Redirect chain — reduce to one hop — more than one redirect before the final page.
- 302 in chain — a temporary redirect where a permanent 301 belongs, so signals never consolidate.
- http → https → www multi-hop — a common canonicalization chain that should be collapsed to a single redirect straight to the final host.
- Meta refresh — a client-side refresh on the final page that header-only tools miss.
- Redirect loop and more than 5 redirects — shown as red error flags.
How it works
The page splits your list into batches of 25 URLs and posts them to a server-side checker (URL
fetching can't run in your browser). Up to four batches run in parallel, and each result streams
back into the table as it lands — you don't wait for the whole list to finish. For each URL the
checker requests it without auto-following redirects, records the status and
Location at every hop up to five, and reports the final status and destination. It also
reads the final HTML for a meta refresh.
Everything after the fetch — the status-class chips, sorting, filtering, and CSV export — runs entirely in your browser. No URLs are stored, and re-running the same list within about ten minutes reuses a short-lived edge cache.
Features
- Up to 500 URLs per run, checked in parallel batches with per-batch progress.
- Full redirect chain per URL — expand any row to see every hop, its code, and its target.
- Status-class filter chips and sortable columns (status, latency, chain length).
- SEO flags for long chains, 302-in-chain, multi-hop canonicalization, meta refresh, and loops.
- Sitemap import that pulls URLs straight from a
sitemap.xml. - Browser, search-bot, and AI-crawler user-agent choices; safe, bounded request-header overrides; CSV and local snapshot export.
- Runs against public URLs only — no sign-in, nothing stored.
Limitations
Checks run from datacenter IPs at the edge, so bot-protected sites (Cloudflare challenges, WAFs, CDN
bot rules) may answer differently than they would a real browser — and choosing the Googlebot
user-agent doesn't make the request pass reverse-DNS verification. It follows the HTTP
chain plus one layer of meta refresh, not JavaScript redirects (window.location,
framework routers won't appear). Each chain stops at five hops. It only reaches pages a public crawler
could reach — login-gated, IP-restricted, or private addresses are refused. And the 500-URL cap plus a
courtesy limit of 10 URLs per host per batch mean very large single-site lists are spread across
multiple batches.
Frequently asked questions
How many URLs can I check at once?
Up to 500 URLs per run. Paste them one per line, or import them straight from a sitemap URL. The tool splits the list into batches of 25 and deliberately paces requests to avoid overwhelming one host or the checking service, so a full single-site run can take a couple of minutes. Duplicate lines are removed before checking.
What is the difference between the status code and the final URL?
The status code shown is the final status — the code of the page the URL actually lands on after following any redirects. The Final URL column shows where a redirecting URL ended up. If a URL redirects, the tool follows the whole chain (up to five hops) and reports the destination, not the first hop. Expand any row to see every hop and its individual code.
Why is my status code colored red or orange?
Rows are colored by status class. Green is 2xx (success), amber is 3xx (redirect), and red is 4xx (client errors like 404), 5xx (server errors like 503), or a connection error. The color lets you scan a large list and spot the broken and redirecting URLs without reading every code.
Does it check the status code a crawler sees?
It can send the browser, Googlebot, Bingbot, GPTBot, ClaudeBot, or PerplexityBot user-agent string, which can surface crawler-specific rules. The request still comes from a datacenter IP, not that crawler's verified network, so IP-verifying sites may treat it as an unverified bot.
Are the URLs I paste stored anywhere?
No. URLs are sent to the checking endpoint only to fetch their status and are never saved. Filtering, sorting, and CSV export all run in your browser. Re-running the same list within about ten minutes reuses a short-lived cache so repeat checks are faster, but nothing is persisted to an account or database.
Feature requests for Http Status Checker
Upvote what you want most. New ideas can be submitted from the floating Feedback menu; requests appear here once approved, and the most-wanted rise to the top.
You won't be emailed about that request anymore.
Loading…
➕ Request a feature
New requests are reviewed before they appear here.
Über das Tool
Prüfe bis zu 500 öffentliche URLs in bewusst getakteten Batches. Das Werkzeug zeigt Statuscodes, vollständige Weiterleitungsketten, finale Ziele, Latenzen, Header-Evidenz, Canonical-Prüfungen und SEO-Hinweise; filtere, vergleiche Snapshots und exportiere CSV.
URLs werden nur zum Abruf ihres Status an den Endpoint gesendet und nicht gespeichert.
Funktionen
- Bis zu 500 URLs pro Lauf in Batches mit Fortschritt und begrenzter Last pro Host
- Vollständige Weiterleitungskette mit jedem Hop, Statuscode und Ziel
- Browser-, Googlebot-, Bingbot-, GPTBot-, ClaudeBot- und PerplexityBot-User-Agents
- Statusfilter, sortierbare Latenz- und Kettenlängenspalten sowie CSV- und lokale Snapshot-Exporte
Funktionsweise
Normalisiere jede URL, entferne Duplikate und teile die Liste in Batches. Der Dienst folgt bis zu fünf Redirect-Hops und einer Ebene Meta-Refresh, meldet jeden Status und jedes Ziel und gruppiert Zeilen in 2xx, 3xx, 4xx, 5xx oder Verbindungsfehler.
Einschränkungen
- Der Abruf läuft von Datacenter-IP-Adressen am Rand. Cloudflare-Challenges, WAFs und CDN-Botregeln können anders antworten als ein echter Browser.
- Login-geschützte, IP-beschränkte oder private Adressen werden abgelehnt; ein gewählter Crawler-User-Agent beweist keine verifizierte Crawler-IP. Statuscodes 503, 200, 404, 403, 410, 302 und 301 werden ausdrücklich ausgewiesen.
- Eine 2xx-Antwort bestätigt eine erfolgreiche HTTP-Antwort, aber nicht gesunden oder indexierbaren Inhalt. Prüfe Titel, gerenderte Inhalte und die vollständige Kette getrennt. Beispielziele wie https://example.com/old-trail-shoe und das Schema https:// bleiben sichtbar.
Häufig gestellte Fragen
Wie viele URLs kann ich gleichzeitig prüfen?
Bis zu 500 URLs pro Lauf. Füge sie zeilenweise ein oder importiere eine sitemap.xml-URL. Die Liste wird in 25er-Batches geteilt und bewusst getaktet; ein großer Lauf kann einige Minuten dauern.
Was ist der Unterschied zwischen Statuscode und finaler URL?
Der Statuscode ist der finale Status nach allen Weiterleitungen. Die Spalte „Finale URL“ zeigt das Ziel; bei einer Weiterleitung wird die gesamte Kette bis zu fünf Hops gemeldet.
Warum ist mein Statuscode rot oder orange?
Grün steht für 2xx, Bernstein für 3xx und Rot für 4xx, 5xx oder einen Verbindungsfehler. So erkennst du gebrochene und weiterleitende URLs, ohne jeden Code einzeln zu lesen.
Werden die eingefügten URLs gespeichert?
Nein. URLs werden nur zum Abruf an den Prüfendpoint gesendet. Filtern, Sortieren und CSV-Export laufen im Browser; ein kurzlebiger Cache kann eine Wiederholung innerhalb von etwa zehn Minuten beschleunigen, aber nichts wird dauerhaft gespeichert.