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 · No sign-up · Runs on Cloudflare's edge
Paste any link to see its complete redirect chain and final URL without opening it in your browser. Every hop shows its status code, response headers and timing.
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.
Specialised checkers for every kind of redirect problem.
When you press Check, the URL is sent to TrueURL's checker, which runs on Cloudflare's global edge network. The checker requests the URL with automatic redirects turned off and reads the response. If it is a redirect, it resolves the Location header and requests the next URL, hop by hop, until it reaches a page that doesn't redirect, an error, a redirect loop or the Max Hops limit.
Your browser never visits the checked URL, so you can safely inspect shortened, tracking or unfamiliar links. Besides HTTP 3xx redirects, the checker also finds meta refresh tags and simple JavaScript redirects in HTML pages and labels them as such, because these client-side redirects are easy to miss with command-line tools.
Location it pointed to. Each hop also lists its full response headers and the names of any cookies it set.Open Advanced Settings when the default request isn't enough:
Accept-Language: de or a session cookie. Headers that would pose as another client IP address, such as X-Forwarded-For, are not sent. Cookies set along the chain are kept for later hops, as in a browser.TrueURL sends a clean request from a Cloudflare data center, with no browsing history, no logged-in session and no cookies unless you add them. By default it identifies as desktop Chrome and asks for English content (Accept-Language: en-US). Sites that redirect by country, language, device or login state may send it somewhere other than where they send you. Use the User-Agent, header and cookie settings to reproduce your situation; country-based redirects depend on where the site locates Cloudflare's IP address, which you can't change. Remember, too, that your browser may have cached an old 301.
Some websites block or challenge automated requests from data-center and edge networks. When a response looks like a bot check or challenge page (such as "Just a moment..."), TrueURL marks it, because the real destination is hidden behind the challenge rather than reached.
A URL redirect tells a browser or crawler that the content it asked for is at another address. The server answers with a 3xx status code and a Location header, and the client requests the new URL. Sites use redirects when pages move, domains change, HTTP is upgraded to HTTPS or a short link points to a long one. Pages can also redirect in HTML, with a meta refresh tag or JavaScript.
To know exactly where a link leads and how it gets there. Site owners check that old URLs reach the right page in a single permanent redirect, that HTTP goes to HTTPS and that there are no loops or broken hops. Everyone else can verify a shortened, affiliate or tracking link before clicking it. Our guide on how to check URL redirects also covers curl and browser DevTools.
A 301 means the page has moved permanently: browsers may cache it, and search engines index the new URL and move signals such as links to it. A 302 is temporary, so the original URL usually stays indexed. Use 301 (or 308) for permanent moves. Our guide to HTTP redirect status codes compares all of them.
No. The URL and your settings are sent to our checker on Cloudflare's network only to run the check, and the result goes straight back to your browser. We don't keep check results or a history of the URLs you test. Cloudflare keeps short-lived technical logs of requests to our checker for troubleshooting. Your Advanced Settings are saved only in your own browser, and cookie values, header values and request bodies are never saved. See the Privacy Policy for details.
Yes. The Bulk Redirect Checker checks up to 100 URLs in one run and exports the results as CSV or JSON. To audit a whole site, the Sitemap Redirect Checker reads your XML sitemap and checks up to 500 of its URLs.
It's the time from sending the request for a hop until its response headers arrived, measured from the Cloudflare data center that ran the check. It includes the DNS lookup and connection setup when needed, plus the server's processing time. Every hop adds such a round trip before the final page can even start loading, which is why short chains matter. The Redirect Latency Checker shows this as a waterfall.
A short link hides its destination, so it can lead to a phishing page, a malware download or a scam as easily as to a legitimate site. That's why attackers like them in emails, text messages and social posts. Expanding the link first shows you the real final URL and every domain it passes through.
Any shortener that redirects with standard HTTP status codes, a meta refresh or a simple JavaScript redirect. That includes major services such as Bitly (bit.ly), TinyURL, X (t.co), Rebrandly, Ow.ly, Is.gd and Buffer (buff.ly), as well as branded short domains, and links that pass through several shorteners are followed to the end. Shorteners that show an ad, a warning or a CAPTCHA page before redirecting can't be expanded automatically; the chain then stops on that page.
What the codes you'll see in a redirect chain mean.
Guides to checking redirects and choosing the right status code.
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 article