How do I check a website's redirects and status code?
Reviewed by Prabath Thalangama · Last updated
Request the URL and follow every redirect, recording each hop's status code and response time. This HTTP checker does that from our servers, following up to 10 redirects with a 10-second timeout, and flags sites that can't be reached, redirect loops and pages that end up served over plain HTTP.
Entering a bare domain tests https:// by default. Enter http://example.com explicitly to check that plain HTTP redirects to HTTPS.
Every hop is validated before it is followed, so a redirect to a private or internal address is refused rather than fetched.
How do I check a URL's redirect chain?
- Enter a domain or full URL, for example http://example.com/old-page.
- Read the hops from first to last: the status code, the URL and the time each took.
- Aim for one redirect at most between any public URL and its final page.
How to read the results
- Hops
- Each request in order with its URL, status code and response time.
- Final status / URL
- The status and address of the page the chain ends on. 200 is a normal page.
- Total time
- The sum of every hop's response time. Each extra redirect adds a full round trip for users too.
- Findings
- Unreachable or redirect loop (critical), and a final page served over plain HTTP (warning).
Common HTTP and redirect problems
Too many redirects
Usually two rules undoing each other, such as a CDN forcing HTTP to the origin while the origin forces HTTPS. Set the CDN to connect to the origin over HTTPS (Cloudflare: SSL mode Full (strict)).
Final page is HTTP
Add a permanent redirect from HTTP to HTTPS on the server or CDN.
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}Chain of several redirects
http → https → www → final path is three round trips. Redirect straight to the final URL from each entry point.
Examples and command-line equivalents
Follow redirects with curl
curl -sIL http://example.com/ | grep -iE '^(HTTP|location)'Time a request
curl -so /dev/null -w '%{http_code} %{time_total}s\n' https://example.com/Frequently asked questions
301 or 302 redirect?
Use 301 (or 308) for permanent moves such as HTTP to HTTPS or an old URL to a new one; search engines transfer ranking signals to the target. Use 302 (or 307) only for temporary redirects.
Does this show the response headers?
It shows each hop's status and timing. To review security headers, use the security headers checker; for every header, curl -sI is quickest.
Further reading
- What Happens When You Type a URL and Press Enter
- HTTP/1.1 vs HTTP/2 vs HTTP/3, in Practice
- RFC 9110: HTTP Semantics (status codes and redirection)
- Run a full Super Scan to check DNS, email, website and TLS for a domain at once.