12 min read
How to Check URL Redirects (and Read a Redirect Chain)
Check URL redirects step by step with TrueURL, curl and DevTools, read every hop of a redirect chain, and fix loops, long chains and mixed 301/302 redirects.
Read articleFree redirect tool
Enter a domain to test the four ways people can reach it: http and https, with and without www. Each one should arrive at the same HTTPS address in a single permanent redirect.
Press Enter to check
Cloudflare's edge always validates certificates, so this cannot skip the check. Certificate problems are reported in the result.
Sent with the first request, up to 16 KB. JSON bodies are sent as application/json, others as a form, unless you set a Content-Type header.
1 to 50. Browsers stop after 20.
Sites can redirect phones, crawlers and link preview bots differently.
Sent with every request in the chain.
No custom headers.
Enter a value to send this header. Header values are never saved.
Follow <meta http-equiv="refresh"> tags and Refresh headers found in HTML pages.
Follow simple, unconditional redirects such as location.href = "…" in page scripts.
Settings are remembered in this browser. Cookies, header values and the POST body are never saved.
For the host you enter, TrueURL builds four starting URLs and traces each one:
http://example.comhttp://www.example.comhttps://example.comhttps://www.example.comIn a healthy setup, all four end on one canonical HTTPS URL. That version answers 200 OK directly, and the other three reach it with a single 301 or 308. Any hop that goes from HTTPS back to HTTP is flagged.
TrueURL also checks HSTS. It reads the Strict-Transport-Security header from the final HTTPS response (normally your canonical URL) and shows the raw value, the max-age and whether includeSubDomains and preload are set. A max-age of at least one year passes. A shorter max-age, max-age=0, a header without a valid max-age or no header at all is shown as a warning.
http://example.com to https://example.com to https://www.example.com. Combine the scheme and host rules so every variant goes straight to the final URL (but see the HSTS preload exception below).www, isn't covered by the certificate. Cloudflare's edge always validates certificates, so that variant shows a TLS error instead of a redirect.www and non-www end on different URLs, which splits signals between two hosts.HSTS tells browsers to use HTTPS for your domain automatically, without requesting HTTP first. A typical header is Strict-Transport-Security: max-age=31536000; includeSubDomains. Browsers only accept it on HTTPS responses and ignore it on plain HTTP.
If you want to add your domain to the browsers' HSTS preload list at hstspreload.org, the first hop from HTTP has to stay on the same host: http://example.com to https://example.com, and only then to https://www.example.com. That two-hop chain is the accepted exception to the single-hop rule. The header then needs a max-age of at least one year, includeSubDomains and preload, and it must also be sent on the HTTPS redirect itself.
12 min read
Check URL redirects step by step with TrueURL, curl and DevTools, read every hop of a redirect chain, and fix loops, long chains and mixed 301/302 redirects.
Read article13 min read
What every 3xx status code means: 301, 302, 303, 307 and 308 compared on permanence, method handling, caching and SEO, with nginx, Apache and PHP examples.
Read articleEnter your domain above. TrueURL requests the http:// and https:// versions, with and without www, and shows where each one ends up, which status codes were used and how many hops it took. Your setup is right when all four reach the same HTTPS URL and every redirect is permanent.
Either works for SEO. What matters is choosing one, redirecting the other to it with a 301 and using it consistently in links, canonical tags and your sitemap. A www host can be easier to point at a CDN, because DNS doesn't allow a CNAME record on the root domain (some DNS providers offer workarounds), but that's a technical choice, not a ranking factor.
That "307 Internal Redirect" is created by Chrome itself because the site is in its HSTS list, so no request was sent over HTTP at all. The server's real redirect may be a 301 or something else entirely. TrueURL has no HSTS cache, so it always shows the server's actual response.
A small one. Visitors still end up on HTTPS, but a temporary redirect tells search engines the HTTP URL may come back, which can slow down or muddle the switch. Change it to a 301 or 308.
Enter your domain above and open the HSTS check in the results. TrueURL reads the Strict-Transport-Security header from the final HTTPS response and shows its value, the max-age (with a warning below one year) and whether includeSubDomains and preload are set. Without the header, every visit that starts from a typed domain or an old http:// link begins with an unencrypted request, which someone on the same network could intercept. With it, browsers that have seen the header go straight to HTTPS next time. Start with a short max-age, confirm that every subdomain works over HTTPS before you add includeSubDomains, then raise it to a year or more.
You'll see the problem, but not past it. Certificate validation can't be switched off on Cloudflare's edge, even with Ignore SSL Errors turned on, so the affected variant shows a TLS error on that hop. That's usually what you need to know anyway: browsers will show visitors a warning there too.
Every URL. A site-wide rule should send http://example.com/any/path?query to the same path and query on HTTPS. Test a few deep URLs with the Redirect Chain Checker, or many at once with the Bulk Redirect Checker.