Redirect Checker

Check redirects for any URL or short link: each hop's status code (301, 302, 307, 308 or meta refresh) and what it means, where it points and how long it took, followed up to 20 hops like a browser, with the point where Googlebot stops and all four http/https and www versions.

Asked from our server, reusing connections per host like a browser · up to 20 hops · as Chrome, iPhone, Googlebot or Bingbot · kept 2 minutes, then dropped

What does a redirect checker show?

A redirect checker asks a URL the way a browser would, then follows every Location header it gets back, one hop at a time, until a page answers. For each hop you see the status code, where it pointed, how long it took and which network answered.

This one times every hop: DNS, connect, TLS and first byte for a new connection, the first byte alone when the hop reuses an open connection to the same host, as browsers do. It keeps cookies per host like a browser, reads the final page for a meta refresh, a canonical tag and noindex, and marks where Googlebot would give up.

The route, readhttp://google.com · recorded October 24, 2026
The route · google.comChrome
2 redirects1.30 sec total
permanenttemporaryin the pageerror
DNSconnectTLSfirst byte
  1. 1
    301PermanentPOST may become GET368 ms
    http://google.com/
    Google AS15169HTTP/1.1 · no TLS
  2. 2
    302TemporaryPOST may become GET537 ms
    http://www.google.com/
    Google AS15169HTTP/1.1 · no TLS
  3. 3
    200FinalOK393 ms
    https://www.google.com/?gws_rd=ssl
    “Google”
    Google AS15169TLS 1.3 · HTTP/2
  1. Total time of every hop together, before the page can start.
  2. The hop budget one cell per redirect; Googlebot's limit at 10, browsers' at 20.
  3. Each hop's site a new icon means the link left the site.
  4. The status in its kind's colour, and what it means in words.
  5. Where the time went DNS, connect, TLS and first byte on one clock.
Two redirects before the page: google.com sends a 301 to www, then www a 302 to HTTPS. Recorded hop by hop on October 24, 2026; times are from the recording machine.

How do I check a 301 redirect?

Paste the URL above and select Check redirects: this 301 checker asks it, follows every redirect to the final page and names each hop's status. A 301 or 308 shows green as permanent; a 302, 303 or 307 amber as temporary. A bare domain starts at https://; type http:// to test the HTTP-to-HTTPS hop too.

The verdict sums the chain up in words, the navy column draws it hop by hop on one clock, and the Chain view lists each hop's request, its status line, the Location as sent and as resolved (a relative one is allowed), and all its headers.

URL redirect checker: one link, every hop

Any URL or short link, up to 20 hops, with each hop's network, TLS version and HTTP version, and the four http/https and www ways in checked beside it.

Bulk redirect checker: up to 50 URLs

Switch to Bulk and paste a migration list, one URL per line: a table of hops, final status, final URL and verdict, ready to download as CSV.

Redirect test as Googlebot, an iPhone or Bingbot

Pick the user agent under the field: some sites send crawlers or phones somewhere else, and the chain shows exactly what that agent got.

HTTP status checker for every hop

Each status code in words, with what it means for browsers and for Google. A bot wall is called a block, not a broken page, and Cloudflare's own 52x errors are named as Cloudflare's.

Redirect checker result for http://google.com: a 301 and a 302 to HTTPS, every hop timed on one clockRedirect checker result for http://google.com: a 301 and a 302 to HTTPS, every hop timed on one clockThe verdictWhere the URL ends, in how many hops, and whether each one is permanent or temporary, in words.The hop budgetOne cell per redirect in its kind's colour, against Googlebot's 10 and browsers' 20.Each hop's statusThe code as the server sent it, and what it means: permanent or temporary, and what happens to a POST.Where the time wentDNS, connect, TLS and first byte for each hop, on one clock from the first request to the page.
A redirect check of http://google.com: the verdict, the hop budget against Googlebot's 10 and browsers' 20, and each hop with its status and timing. Select a number to see what each part shows.

301 vs 302: which redirect should you use?

Use a 301 (or 308) when a page has moved for good, and a 302 (or 307) only when it's coming back. The code tells browsers and search engines which URL to keep (RFC 9110 §15.4).

For Google, a 301 or 308 signals that the target should be canonical, the URL shown in results; a 302, 303 or 307 doesn't, so results keep the old URL (Google Search Central). A 302 isn't ignored: Google follows it and treats it as a weak signal to process the target (Google's crawler docs); the target may still be indexed if other canonical signals point to it. Bing asks for 302 only for changes shorter than two days.

Browsers cache 301 and 308 by default, so a permanent redirect you undo can stay stuck in visitors' browsers. 307 and 308 keep the request method; 301 and 302 may turn a POST into a GET, and 303 always does.

Redirect types and how Google reads themRFC 9110 · Google Search Central · Bing
CodePermanentOn a POSTBrowsers cache itGoogle's signalUse it for
301Moved Permanentlypermanentmay become GETyesstronga page that moved for good
308Permanent Redirectpermanentkeptyesstronga form or API that moved for good
302Foundtemporarymay become GETnoweaka short-lived move (Bing: under 2 days)
303See Othertemporaryalways GETnoweakthe page after a form is sent
307Temporary Redirecttemporarykeptnoweaka temporary move that must keep POST
meta 0instant meta refreshpermanentGET—strongwhen the server can't redirect
meta 5delayed meta refreshtemporaryGET—weakavoid: visitors see the old page first
308 is treated like 301 and 307 like 302. The meta refresh rows count the HTTP Refresh header too.

Redirect chain checker: how many hops is too many?

More than three. A chain is several redirects in a row, such as http:// to https://, then to www, then to a new path. Google advises linking straight to the final URL, or keeping chains to 3 hops or fewer and always fewer than 5 (Google Search Central).

Googlebot follows up to 10 hops, then gives up, and Search Console reports a "Redirect error" (Google's crawler docs). Chrome and Firefox follow up to 20 before they show ERR_TOO_MANY_REDIRECTS. Every hop is another round trip before the page can start, so update internal links to point at the final URL.

How many hops is too many?Google · Chromium · Firefox
  • Google's advice: 3 or fewer
  • still followed, slower
  • Googlebot never sees these: Search Console shows “Redirect error”
  • past 20: ERR_TOO_MANY_REDIRECTS
http://google.com2 redirects, then the page301 · 368302 · 537page · 3931.30 sec
https://www.google.com/linked straight to itpage · 393393 ms
Each hop is a full round trip before the page can start: here 905 ms of redirects in front of a 393 ms page, recorded hop by hop on October 24, 2026.

How do I fix a redirect loop?

Find the two rules that disagree and make them agree on one final URL. A loop is a chain that comes back to a URL it already asked for; browsers go round until they hit 20 redirects and show ERR_TOO_MANY_REDIRECTS.

Most loops come from a rule that adds www meeting one that removes it, or from HTTP and HTTPS rules fighting behind a CDN: the CDN talks to the server over http://, the server redirects to https://, and the CDN asks again over http://. Browsers keep permanent redirects, so test the fix in a private window.

How the redirect loop checker spots a loop

A URL asked a second time with no new cookie since is a loop: the route draws it back to the hop it repeats and stops there, instead of going round to 20. A site that sets a cookie and redirects to itself gets the cookie back, as a browser would, so a login step isn't mistaken for a loop.

A redirect loopmade-up example

ERR_TOO_MANY_REDIRECTS · after 20

One host rulePick the bare domain or www and make every rule send there, the login page included.
Rules that read cookiesA rule that redirects until a cookie is set loops for any client that drops it, crawlers included.
Clear the cached 301Browsers keep permanent redirects: test in a private window after the fix.

Meta refresh redirect and JavaScript redirects: does Google follow them?

Yes, with conditions. Google treats an instant meta refresh (content="0; URL=…") as a permanent redirect and a delayed one as temporary, and the HTTP Refresh header counts the same (Google Search Central). JavaScript redirects work only if Google renders the page, so use them as a last resort.

Even a 0-second meta refresh fires only after the page has fully loaded (HTML Standard), so visitors may see the old page first. This checker follows a meta refresh and the Refresh header as hops of their own, with their delay. It finds simple JavaScript redirects in the page and offers Check this URL, but never runs scripts: "none found" means none in the HTML, not none at all.

Three ways to redirecthow Google and this checker treat each
Server redirectthe status line
HTTP/1.1 301 Moved Permanently
Location: https://example.com/new
  • Google: by the code: 301 and 308 permanent, the rest temporary
  • This checker: followed hop by hop
Meta refreshin the page's HTML
<meta http-equiv="refresh" content="0; URL=https://example.com/new">
  • Google: 0 seconds: permanent; any delay: temporary
  • This checker: followed as a hop, with its delay
JavaScripta script changes the location
window.location.href = "https://example.com/new";
  • Google: only if rendering works: a last resort
  • This checker: shown with “Check this URL”, never run
What a browser does, in order: HTTP redirects first, then JavaScript that runs while the page loads, then a meta refresh once it has loaded.

Do http, https, www and non-www all go to one URL?

They should. Every site has four ways in, and each should reach the same final URL, ideally in one permanent hop; anything else splits links between versions of the same page.

One exception is fine: http://www. may take two hops if it first goes to https://www. on the same host. hstspreload.org asks for exactly that order, and Mozilla HTTP Observatory takes 5 points when the first hop from http:// goes to another host.

The four ways ingithub.com · recorded October 24, 2026

All four reach https://github.com/http://www.github.com takes two hops: https:// on the same host first, as HSTS preload asks

http://github.com301200in 1 hop
http://www.github.com301301200in 2 hops
https://github.com200the canonical itself
https://www.github.com301200in 1 hop
https://github.com/200 OK

Each way in is followed up to 10 hops beside the main chain.

Why does a URL redirect differently by country?

Because the server picks a country or language version from the visitor's IP address or Accept-Language header and redirects to it, so the same URL ends on different pages for different visitors. www.mozilla.org does it by language: a relative 302 to /en-US/ with Vary: Accept-Language.

Google advises against it: "Avoid automatically redirecting users from one language version of a site to a different language version", because Googlebot usually crawls from the USA and sends no Accept-Language (Google Search Central). Give each version its own URL with hreflang links, and suggest the other version with a banner instead.

From 11 places in the result runs the chain from the Website Down Checker's probes around the world, so a country redirect shows up as a different ending. Those probes follow up to 5 redirects with their own user agent.

One URL from 11 placesshop.example
Made-up example

Ahttps://shop.example/10 places end here

  • youNearest to you20041 ms
  • San JoseSJC200152 ms
  • AshburnIAD20096 ms
  • LondonLHR20022 ms
  • StockholmARN20031 ms
  • SingaporeSIN200168 ms
  • SydneySYD200290 ms
  • São PauloGRU200201 ms
  • Cape TownCPT200170 ms
  • MumbaiBOM200121 ms

Bhttps://shop.example/ja-jp/different

  • OsakaKIX302200486 ms

The answer only Osaka got

HTTP/1.1 302 Found
Location: /ja-jp/
Vary: CF-IPCountry

Recorded on October 24, 2026: www.mozilla.org redirects by language

HTTP/1.1 302 Found
location: /en-US/
Vary: Accept-Language

Googlebot crawls mostly from the USA and sends no Accept-Language: it only ever sees https://shop.example/.

Each place asks with its own DNS and its own address. The probes follow up to 5 redirects with their own user agent.

How do I set up a 301 redirect in nginx, Apache or Cloudflare?

Redirect on the server and write the 301 out: a return line in nginx, a Redirect line in Apache's .htaccess, a rule in IIS's web.config, a line in a _redirects file on Cloudflare or Netlify, an entry in vercel.json, a call in Express. Pick your platform below and copy the snippet.

Watch the defaults: without a code, nginx, Apache, Express and Cloudflare's _redirects send a temporary 302, and Vercel sends a 308, which Google treats like a 301. After deploying, check the old URL here: it should answer one 301, straight to the new URL.

What each platform sends without a codeeach platform's own documentation · October 24, 2026
PlatformWritten asSends
nginxreturn URL;302 temporary
ApacheRedirect /old /new302 temporary
IISaction type="Redirect"301 permanent
Cloudflare_redirects302 temporary
Vercelvercel.json redirects308 permanent
Netlify_redirects301 permanent
Expressres.redirect(path)302 temporary
Four of the seven fall back to a temporary 302: always write the code you mean.
location = /old-page { return 301 /new-page; }

Inside the site's server { } block, then reload nginx. A bare `return URL;` with no code sends a 302.

How to check redirects in Chrome or with curl

In Chrome, open DevTools (F12), go to Network, tick Preserve log and load the URL: each hop is a row with its status. With curl, curl -sIL prints every response head as it follows the redirects.

Both run from your own machine, with your cookies and your browser's memory of HTTPS-only sites. That's why Chrome sometimes shows a 307 Internal Redirect no server sent: it upgraded the request to HTTPS itself and says why in Non-Authoritative-Reason (Chromium source). Since Chrome 115 it also tries HTTPS first for typed http:// addresses, so the server's own HTTP redirect may never show.

Check redirects yourselfcurl · Chrome DevTools
$ curl -sIL http://google.com | grep -iE '^(HTTP|location)'
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
HTTP/1.1 302 Found
Location: https://www.google.com/?gws_rd=ssl
HTTP/2 200
Network☑ Preserve log
NameStatusType
www.google.com307Internal
?gws_rd=ssl200document

307 Internal Redirect isn't from the server: Chrome made it because it already knew the site is HTTPS-only, and says so in Non-Authoritative-Reason: HSTS. A server-side checker shows only what the server sends.

Redirect checker: frequently asked questions

Is a 302 redirect bad for SEO?

Not by itself. A 302 tells Google the move is temporary, so it may keep showing the old URL, though it still processes the target. If the move is permanent, change it to a 301 or 308 so Google treats the new URL as the one to index and browsers can cache the redirect. Bing likewise asks for 302 only for changes shorter than two days.

How many redirects can Googlebot follow?

Up to 10 hops per URL. After that it stops and Search Console reports a redirect error for the page. Google's own advice is to keep chains to 3 hops or fewer and always under 5, and to link straight to the final URL wherever you can. Browsers go further: Chrome and Firefox follow up to 20 redirects before they give up.

How do I test a redirect as Googlebot or on an iPhone?

Pick Googlebot, iPhone, Bingbot or Chrome in the As row under the URL field, then check the URL. The checker sends that agent's user-agent string with every hop, so a site that redirects crawlers or phones somewhere else shows it in the chain. It can't use Google's own IP addresses, so a site that checks the address rather than the user agent may still answer differently.

Is this 301 redirect checker free, and can I check many URLs at once?

Yes, it's free with no account. Switch to Bulk and paste up to 50 URLs, one per line: each is followed up to 20 hops as the user agent you pick, and the table shows the hops, final status, final URL and a verdict. Download it as CSV to check a site migration. Single checks are limited to 20 a minute per visitor to keep the service fair.

Why does Chrome show a 307 the server didn't send?

Chrome creates a "307 Internal Redirect" when it already knows a site is HTTPS-only, from HSTS or a DNS HTTPS record, and upgrades the request before anything is sent. The response's Non-Authoritative-Reason header says which. A server-side checker like this one never sees that step, so it shows the redirects the server itself sends, which is what other browsers and crawlers get.

How long should I keep a 301 redirect?

At least a year, and longer if you can. Google's site-move guide says to keep redirects as long as possible, generally at least one year, and for visitors consider keeping them indefinitely, since old links, bookmarks and emails keep sending people to the old URLs. Point each old URL at its closest new page; redirecting everything to the homepage can be treated as a soft 404.

Where does this link go, and is it safe to open?

Paste the link here before you click: our server follows it, so the destination never sees your address. You get every hop, the final URL with its tracking parameters, and whether any host on the way is on Cloudflare's malware or adult-content lists. A clean result isn't a guarantee: judge the final domain itself before you enter anything there.

Why do I get ERR_TOO_MANY_REDIRECTS?

Your browser followed 20 redirects without reaching a page, almost always because of a loop: two rules that send a URL back and forth, such as one adding www and another removing it, or a CDN asking over http:// while the server insists on https://. Check the URL here to see the hop that repeats, fix the rule, then clear the site's cookies or use a private window.

Should HTTP redirect to HTTPS with a 301?

Yes. A permanent 301 or 308 from http:// to https:// is what RFC 6797 recommends for HSTS sites, and a first hop on the same host is what hstspreload.org and Mozilla Observatory's redirection test look for. A 302 works for visitors but tells search engines the move is temporary. A 301 alone doesn't make browsers try HTTPS first next time: that's the Strict-Transport-Security header's job.

Does a 301 redirect pass link equity?

Google doesn't publish numbers, but its documentation says a 301 or 308 signals that the target should be the canonical URL, the one shown in results, and a 302, 303 or 307 doesn't. So a permanent redirect is the way to move a page's standing to a new URL; a temporary one still gets the target processed (a weak signal, per Google's crawler docs), and the target may be indexed if other canonical signals point to it.

Missing something?Suggest a feature or a new tool