How to Bulk Check HTTP Status Codes
Learn how to build a URL list, run a bulk HTTP status check, interpret 2xx–5xx responses, and prioritize fixes for SEO, migrations, and release QA.
A bulk HTTP status check answers a deceptively useful question: what does the public web server return for every URL on this list right now?
The list may contain ten high-value landing pages or thousands of migration URLs split into batches. In either case, the goal is not to maximize the number of requests. It is to turn responses into a prioritized set of decisions.
Build the right URL list
The quality of a status audit depends on its inputs. A sitemap alone contains only URLs the site currently publishes, so it can miss old addresses that should redirect.
Combine sources when possible:
- current XML sitemaps;
- top landing pages from analytics;
- pages with search impressions and backlinks;
- the old-to-new migration mapping;
- links extracted from site navigation and content;
- known error reports from monitoring or Search Console;
- a sample from every important page template;
- campaign and short-link destinations.
Normalize obvious duplicates for reporting, but keep variants you intentionally need to test. http and https, www and non-www, uppercase paths, trailing slashes and query strings can produce different routes.
Run a bulk URL check
For a focused audit of up to 50 addresses:
- Open the Bulk URL Checker.
- Paste one URL per line or upload a CSV.
- Start the batch and watch results arrive.
- Export the completed data as CSV or JSON.
- Group results by status family and intended behavior.
For larger inventories, split the data into meaningful batches—top traffic, products, articles, old migration URLs and so on. Logical groups make failures easier to assign and retest.
Interpret each status family
2xx: successful responses
200 OK is the normal target for a canonical page. However, a 200 can still be wrong if it serves an error message, a login wall, the wrong locale or a duplicate page. Sample the content and title of important results rather than declaring every 200 healthy.
204 No Content can be correct for an API action but is unusual for a page expected to render content.
3xx: redirects
Do not classify all redirects as errors. Compare them with the intended mapping.
- A permanent move should normally use 301 or 308.
- A genuinely temporary route can use 302 or 307.
- The destination should be relevant and return a healthy final response.
- Internal links should point directly to the final canonical URL.
Use the Redirect Checker on suspicious results to see every hop and user-agent difference.
4xx: request or resource problems
404 Not Found is correct when no resource exists at that URL. It becomes a problem when the URL still has valuable links, appears in navigation or should have been mapped during a migration.
410 Gone explicitly communicates intentional removal. 401 and 403 may be correct for private areas, but they are serious findings on public landing pages. 429 indicates rate limiting and should be evaluated over time.
5xx: server failures
Persistent 5xx responses deserve high priority because the server or an upstream dependency could not complete the request. Retest to distinguish a short incident from a repeatable failure, then correlate timestamps with origin, proxy and application logs.
Prioritize by impact and intent
Status alone is not a priority score. A broken checkout page matters more than an obsolete tag page; a 404 on an intentionally removed resource may require no work.
Add business and search context:
| Signal | Higher priority when… |
|---|---|
| Organic traffic | The URL is a major search landing page |
| Backlinks | External sites still reference the URL |
| Revenue or leads | The page belongs to a conversion flow |
| Internal links | Many live pages point to the failing URL |
| Error type | The failure is persistent, server-side or widespread |
| Template scope | One defect affects an entire page class |
A practical order is: widespread 5xx failures, broken conversion pages, migration gaps with external value, important internal 404s, unintended redirects, then lower-impact cleanup.
Website migration workflow
Run three checkpoints:
Before launch
Check that current URLs return their expected state. Clean the mapping file, remove duplicates and verify every destination will exist.
Immediately after launch
Submit old URLs, new URLs and canonical variants. Old pages should reach relevant new destinations; new canonical pages should normally return 200 without unnecessary hops.
After recrawling
Retest priority URLs and review server logs, analytics and search-console reports. Keep redirects in place long enough for users, crawlers and external references to update.
Common audit mistakes
- Checking only the final status and hiding redirect chains.
- Treating every 3xx or 404 as equally urgent.
- Forgetting URL variants that real backlinks still use.
- Sending too many concurrent requests and causing 429 or 5xx noise.
- Ignoring soft 404 pages that return 200.
- Failing to save the date, input list and environment for comparison.
- Fixing server rules without updating internal links and sitemaps.
Frequently asked questions
How often should I bulk check URLs?
Check high-value URLs after meaningful releases and migrations. A scheduled sample can supplement monitoring, while full audits are better reserved for major structural changes or recurring incidents.
Does a bulk status checker discover every page?
No. It tests submitted URLs. Use crawling, sitemaps, analytics, logs and backlink data to build the inventory first.
Why do some results differ from my browser?
Cookies, browser cache, authentication, geography and user-agent routing can change responses. Investigate a single URL with the HTTP Status Checker to compare identities and redirects.