Free tools / Redirect checker
HTTP redirect, status code, and header checker
Follow a URL through up to 10 hops. See every status code, how long the hop took, and the response headers, including Location, Cache-Control, and Strict-Transport-Security.
How the redirect checker works
The check runs from one location, with no cookies and no stored HTTPS-only policy. It requests the URL, reads the status line and the headers, and follows Location when the status is 301, 302, 303, 307, or 308. It records up to 10 hops. Each hop is timed separately. DNS time is separate from the time to receive the status line.
If a URL appears twice, the trace stops. That pair is the redirect loop. The later hops would be the same two rules again. The steps for that case are in Too many redirects.
A browser can loop when this page does not. curl and this checker send no cookies unless you add them. If the chain here ends on 200 and the browser still says too many redirects, the loop is in the browser, usually a cookie or a stored policy for that host.
HTTP status codes on a redirect chain
| Code | Name | What to do with it |
|---|---|---|
| 301 | Moved Permanently | Caches and search engines can treat the target as the canonical URL. Historical clients change POST to GET. |
| 302 | Found | Temporary. Caches should keep the original URL. A permanent move, such as HTTP to HTTPS, is usually a 301 or a 308 instead. |
| 303 | See Other | The next request is a GET. Common after a form POST. |
| 307 | Temporary Redirect | Temporary, and the method and body stay the same. |
| 308 | Permanent Redirect | Permanent, and the method and body stay the same. |
| 200 | OK | The chain ended on a normal response. |
| 403 | Forbidden | The host answered and refused this client. A 403 can still mean the site is up. See When 403 means up. |
| 500–504 | Server error | The chain reached the origin or the edge, and that hop failed. |
Headers worth reading
- Location. The next URL. A relative value is resolved against the current hop. If HTTP sends you to HTTPS and HTTPS sends you back, the two Location values name each other.
- Cache-Control. A cached 301 stays in browsers and on the edge after you change the rule.
max-ageis how long that stored redirect can live. - Strict-Transport-Security. On an HTTPS response, this tells browsers to skip HTTP next time. A missing header means the browser can still try
http://first.
A certificate or port failure stops before any of these headers. Walk that case in DNS works, the site does not.
Checking the chain continuously
This page is one request. A Website or API check repeats it. Follow redirects stays on by default, and the stored status is the last response. The 301 in the middle is not that status. Turn follow redirects off when you care about the hop itself: a Website check then treats a 301 as up, because the default is any status below 500. An API check expects 200 unless you list 301.
A loop never produces a last response. The probe errors, and there is no status code to add to the expected list. Leave the confirmation period at three failures so one loop is stored and does not open an incident by itself.
Frequently asked questions
- How many redirects is too many?
- One hop from
http://tohttps://, or from the bare domain towww, is normal. Three or more means two rules are both rewriting the URL. Browsers stop around 20. This checker stops at 10 hops and shows where it stopped. - What is the difference between a 301, a 302, a 307, and a 308?
- 301 and 308 are permanent. 302 and 307 are temporary. 307 and 308 keep the original method and body. 301 and 302 have a long history of turning POST into GET. Use 301 or 308 when the target is the URL you want indexed. Use 302 or 307 when the original URL should stay.
- Why does the browser report a redirect loop when this checker shows 200?
- The checker sends no cookies. If it ends on 200 and the browser still loops, the loop is in the stored state for that host. Clear the site's cookies and try a private window before changing the server rule.
- How do I check redirects with curl?
curl -sI -L --max-redirs 10 --max-time 20 http://example.com/prints the status line of each hop.-Isends HEAD. Drop-Iand add-D -when you need the GET chain. The command on this page updates as you type.- Can I monitor a URL so a broken redirect alerts me?
- Yes. Create a Website check for the final URL when you care about the page customers land on. Create one for the first URL with follow redirects off when you care that the 301 itself stays in place. ScaledPapers checks from five regions and alerts by email, Slack, Discord, PagerDuty, or webhook.
Catch a broken redirect before your users do
A trace shows the chain right now. ScaledPapers checks the endpoint every 60 seconds from five regions, follows or pins the redirect, and pages you when a deploy introduces a loop or a 5xx. Free for 5 checks.