How to use the redirect checker
- 1Choose One URL or Bulk (up to 20), and a User agent (for example Googlebot).
- 2Enter the address, including http:// if you want to test the HTTP-to-HTTPS redirect, and press Trace redirects.
- 3Read the Redirect chain: one row per request with its status code, the Location it pointed to and the time it took.
- 4Check Findings for long chains, temporary redirects, downgrades and loops; press Copy chain or download the bulk CSV.
Example chain (illustrative)
http://example.com/old-page
1 301 http://example.com/old-page → https://example.com/old-page 2 301 https://example.com/old-page → https://www.example.com/old-page 3 302 https://www.example.com/old-page → https://www.example.com/new-page/ 4 200 https://www.example.com/new-page/ Warning: 3 redirects in a chain. Point the first URL straight at the final one. Note: 1 temporary redirect (302). If the move is permanent, use 301 or 308. Pass: HTTP is redirected to HTTPS.
The findings are the checker's real messages for this chain. A single rule redirecting http://example.com/old-page straight to https://www.example.com/new-page/ with a 301 would fix all three.
Reading a redirect chain
Each row is one HTTP request. A 3xx status with a Location header means "go there instead"; the checker follows it and records the next request, until it reaches a non-redirect status (ideally 200) or gives up after 10. Time is the round trip for that request alone. Total time adds them up, which is roughly the delay a visitor experiences before the page starts loading. If the final URL isn't the one you expected, the chain shows exactly which rule sent it elsewhere.
301 vs 302 vs 307 vs 308
| Code | Meaning | Use for |
|---|---|---|
| 301 | Moved permanently | Changed URLs, domain moves, HTTP→HTTPS |
| 308 | Permanent, method kept | Same as 301, for forms and APIs that POST |
| 302 | Found (temporary) | Short-term moves, A/B tests, geo or login redirects |
| 307 | Temporary, method kept | Same as 302, keeping POST as POST |
| 303 | See other | After a form submission |
Google treats permanent redirects as a strong signal to index the target, and temporary ones as a weak signal that may keep the old URL indexed. A long-standing 302 is eventually treated like a 301, but it's clearer to use the right code from the start.
Redirect loops and long chains
A loop is a chain that returns to a URL it already visited (A → B → A), so it never ends; browsers show "too many redirects". When our server stops after 10 redirects, the checker re-traces the chain one hop at a time to show where it turns back. Loops are usually two rules fighting: one adds a trailing slash, another removes it; or the CMS forces www while the server forces non-www. Long chains build up as sites are migrated several times. Googlebot follows up to 10 hops, but each one slows visitors down; update old redirects to point straight at the final URL.
Checking http, https, www and non-www
Test all four versions of your homepage: http://example.com, http://www.example.com, https://example.com and https://www.example.com. Three of them should redirect, in one hop each, to the fourth. Paste all four into Bulk to check them together. A redirect from https:// to http:// is flagged as a problem: it removes encryption and browsers may warn about it.
Meta refresh and JavaScript redirects
Some pages redirect with <meta http-equiv="refresh" content="0; url=…"> or with JavaScript (location.href = …). Those run in the browser after the page loads, so an HTTP checker sees a 200 response and stops. Google follows both in most cases, but treats them as weaker signals and they're slower for visitors. Replace them with server-side 301s where you can; to write the rule, use the .htaccess redirect generator.
What happens to the address I enter?
To check a URL, our server requests the address you enter and returns the result to you. We don't store the pages we fetch or keep a list of the addresses you check. Like any website, our hosting provider keeps short-lived technical request logs for security. See the privacy policy.
