CoreCited
Up to 10 hops · bulk up to 10 URLs · no signup

Redirect checker for every hop, and every crawler

See each status code, Location and response time from the first URL to the last. Then see whether GPTBot, ClaudeBot, PerplexityBot and Googlebot are sent down the same chain as a browser.

No http:// or https://? We start from http:// so you see the HTTPS upgrade.

Free · no signup · every hop, plus GPTBot, ClaudeBot, PerplexityBot and Googlebot

Key takeaways
1One permanent redirect (301 or 308) is fine. Chains, loops and temporary codes on permanent moves are what cost you.
2Google's crawlers follow up to 10 redirect hops by default. No AI company publishes a limit for its crawlers.
3The major AI crawlers do not run JavaScript, so a JavaScript redirect leaves them on the old page.
4A crawler can be served a different chain from a browser. This checker compares them side by side.

What a redirect checker does

When you click a link, your browser follows redirects without telling you. It asks for a URL, the server answers with a 3xx status code and a Location header, and the browser quietly asks for that location instead. Two or three of those can happen before a page appears, and you would never know.

A redirect checker turns that automatic behaviour off. It makes each request by hand, writes down what the server said, and only then moves to the next URL. For every hop you get the status code, the exact Location value, how long the server took, and the headers that matter for crawling: server, cache-control, x-robots-tag and any canonical declared in a Link header.

This one does three things the usual checkers skip. It reads the start of the final page for a meta refresh or a script redirect, which a status code cannot show. It names the problem in plain words with a fix. And in single mode it runs the same URL again as four crawlers, because a page that works for you can still fail for the bots that decide whether AI answers mention you.

10
redirect hops Google's crawlers follow by default
Google, Feb 2026
14.36%
of ChatGPT crawler fetches spent following redirects
Vercel network data, Dec 2024
34.82%
of ChatGPT crawler fetches that hit a 404
Vercel network data, Dec 2024
0
major AI crawlers in Vercel's study that render JavaScript
Vercel, Dec 2024

Sources: Google[2]; Vercel[4]. Vercel’s figures are a vendor study of traffic on its own network over one month.

How this checker follows a URL
The same steps run once per user agent: a browser, then GPTBot, ClaudeBot, PerplexityBot and Googlebot.
Request, by hand
We send a GET with automatic redirects switched off, so the server's first answer is what we record.
Step 1: Request, by hand. We send a GET with automatic redirects switched off, so the server's first answer is what we record.
Step 2: Read Location. On a 301, 302, 303, 307 or 308 we read the Location header and resolve it if it is relative.
Step 3: Vet the next URL. Every next URL is checked before we request it. Private, local and non-web addresses are refused.
Step 4: Repeat. We repeat until a response is not a redirect, a URL repeats (a loop), or we reach 10 hops.
Step 5: Read the page. On a final HTML page we read the first 100 KB for a meta refresh or a script that changes the location.

301 vs 302 vs 307 vs 308

There are five redirect codes in everyday use. They differ on two questions: is the move permanent, and may the client change the request method when it follows? For pages people and crawlers read with GET, only the first question matters in practice[5][6].

Redirect status codes compared
CodeMeaningPermanent?Method kept?Use it for
301Moved PermanentlyYesGET stays GET; POST may become GETMoved pages, domain moves, http to https
308Permanent RedirectYesYes, alwaysThe same, when forms or APIs post to the URL
302FoundNoGET stays GET; POST may become GETShort-lived moves, A/B tests, outages
307Temporary RedirectNoYes, alwaysTemporary moves that must keep the method
303See OtherNoAlways becomes GETAfter a form post, to a result page

Google treats 301 and 308 as permanent: the target becomes the canonical URL and shows in results. It treats 302, 303 and 307 as temporary and keeps the original URL indexed[1]. Its crawler documentation calls a 301 a strong signal and a 302 a weak one[2]. For when a temporary redirect is the right choice, and how long-lived ones are treated, see what a 302 status code means.

The default is often temporary
Several common tools send a 302 unless you say otherwise. Apache’s Redirect directive defaults to 302 [7], nginx’s rewrite ... redirect flag returns 302 [8], and WordPress’s wp_redirect() defaults to 302 [11]. If a move is permanent, ask for 301 or 308 explicitly. Next.js and Vercel use 308 for permanent: true and 307 for false[10][9].

Redirect chains, and why to collapse them

A chain is two or more redirects in a row. The most common one is accidental. A site adds an http to https rule, then a www rule, then a trailing-slash rule, each written at a different time. An old link to http://example.com/pricing now takes three hops to reach https://www.example.com/pricing/.

Each hop is a full round trip before any content arrives. On a slow server that is seconds of waiting for a person. For a crawler it is extra work for no content. Google’s guide for large sites says it plainly: avoid long redirect chains, which have a negative effect on crawling[3]. And every hop is one more chance for a timeout, a misconfigured rule or a firewall to break the path.

The fix is to point every old URL straight at its final destination in one redirect, and to update internal links, canonicals and sitemap entries to the final URL so nobody needs the redirect at all. When the checker finds a chain, its fix names the exact source and destination to connect.

Redirect loops and “too many redirects”

A loop is a chain that comes back to a URL it already visited. Browsers give up and show an error such as ERR_TOO_MANY_REDIRECTS. The HTTP specification asks clients to detect cycles like this and stop[6], so crawlers give up too.

Loops nearly always come from two rules that disagree. A CDN set to talk to your server over http while the server forces https. A plugin that adds a trailing slash while the server removes it. A www rule in the host’s panel and the opposite rule in .htaccess. This checker stops before requesting a URL it has already seen, shows you the pair, and flags a slash that is added and then removed. Every common cause and its fix is in our guide to fixing ERR_TOO_MANY_REDIRECTS.

A chain does not need to loop to fail. Past 10 hops, Google’s crawlers stop following by default[2], and so does this tool, so a very long chain is reported the same way a loop is.

Meta refresh and JavaScript redirects

Not every redirect is a status code. A page can answer 200 and then move the visitor with a <meta http-equiv="refresh"> tag or with a script that sets window.location. Server-side checkers that stop at the status code miss both, which is why this one reads the first 100 KB of the final page.

Myth
A meta refresh is just as good as a 301.
What is true
Google says an instant meta refresh is treated as permanent and a delayed one as temporary. Other crawlers do not document what they do with it.
Myth
Google runs JavaScript, so a JavaScript redirect is fine.
What is true
Google says to use one only if you cannot do a server-side or meta refresh redirect, because it may never see it if rendering fails.
Myth
Every crawler runs JavaScript now.
What is true
Vercel's 2024 study found none of the major AI crawlers it measured render JavaScript. They read the HTML and stop.

Sources: Google[1]; Vercel[4].

Why redirects matter more for AI crawlers

Start with what is not known. OpenAI, Anthropic and Perplexity do not publish how many redirects their crawlers follow, how long they wait, or whether they follow a meta refresh. Anyone who tells you a number is guessing. What can be measured points one way: keep the path short and on the server.

Vercel’s study of its own network found that 14.36% of the ChatGPT crawler’s fetches were spent following redirects, and 34.82% hit 404 pages, with Claude’s crawler close behind at 34.16% on 404s[4]. Those are fetches that delivered no content. The same study found that none of the major AI crawlers render JavaScript, so a JavaScript redirect is a dead end for them.

The bigger risk is often not the chain but the treatment. Bot protection, rate limits and CDN rules that are tuned against scrapers often match on the word “bot”. A browser sails through while GPTBot gets a 403 or a challenge page. That is why single-URL checks here repeat the chain with each crawler’s user agent and say plainly when the result differs.

What the crawler comparison can and cannot prove
We send the crawler’s user-agent string from our own server. Sites that verify crawlers by IP address can treat us differently from the real bot, in either direction. Treat a difference as a strong lead, then confirm it in your server logs. The guide to AI crawler log file analysis shows how, and the AI crawler checker shows whether your robots.txt lets each bot in at all.

How to fix redirects on your server

The goal is the same everywhere: one permanent redirect from each old URL to its final URL, and the protocol and host fixed in the same hop. Pick your platform.

In .htaccess or the virtual host. Without a status, Redirect sends a 302, so name it[7].
.htaccess
# One page, permanently
Redirect 301 /old-page https://www.example.com/new-page

# http and non-www to https://www in ONE hop
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L]

Redirect checklist

Run through this after a migration, a redesign or a change of CMS. Your ticks are saved in this browser only.

Before you call the redirects done
0/8

Check every URL on your site

This page checks up to 10 URLs at a time, and only the ones you think of. The redirects that hurt are usually the ones nobody remembers: an internal link from 2019, a sitemap entry pointing at an old slug. The GEO Audit crawls your site and runs 31 checks on every page, including whether it answers with a clean 200 or only after a redirect.

Free
10
pages audited per brand
Starter
50
pages audited per brand
Growth
500
pages audited per brand

The free account audits 10 pages with an email address and no card. Paid plans audit more and re-run on a schedule; every limit is on the pricing page. If you only need one page checked in depth, the AI SEO checker runs the same 31 checks on a single URL for free.

Redirects are one part of being reachable. Your robots.txt is the other; build or test one with the robots.txt generator and tester.

Questions people ask

What does a redirect checker do?

It requests a URL without following redirects automatically, records the status code and Location header the server sends, then requests that Location, hop by hop, until it reaches a page that is not a redirect. This one stops at 10 redirects, the same place Google's crawlers stop by default, and also reads the final page for meta refresh and JavaScript redirects.

What is the difference between a 301 and a 302 redirect?

A 301 says the move is permanent, so search engines move their signals to the new URL and show it in results. A 302 says the move is temporary, so the old URL usually stays indexed. Google calls a 301 a strong signal and a 302 a weak one. 308 and 307 are the same pair, except that they forbid the client from changing the request method.

How many redirects is too many?

More than one is worth fixing. Google's crawlers follow up to 10 hops by default and then give up, and Google's crawl budget guide says to avoid long redirect chains because they hurt crawling. No AI company publishes a hop limit for its crawlers, so the safe target is a single redirect, or none.

Do redirects hurt SEO or AI visibility?

A single permanent redirect is normal and costs very little. Problems come from chains, loops, temporary codes used for permanent moves, and redirects that end on an error page. Each extra hop is another request that can time out or be refused, for every crawler, including the AI ones.

Do AI crawlers follow meta refresh and JavaScript redirects?

JavaScript redirects, almost certainly not: Vercel's December 2024 study found that none of the major AI crawlers it measured, including OpenAI's and Anthropic's, render JavaScript. Meta refresh is in the HTML, but no AI company documents whether its crawler follows it. A server-side 301 or 308 is the only redirect every client is sure to see.

Why does GPTBot get a different result from my browser?

Usually bot protection, a firewall rule or a CDN setting that treats crawler user agents differently, for example a 403 for anything that says 'bot'. Sometimes it is deliberate. Note that we send the crawler's user-agent string from our own server, so a site that verifies crawlers by IP address may treat us differently from the real crawler.

Can I check redirects in bulk?

Yes. Switch to bulk mode and paste up to 10 URLs, one per line. Each is followed hop by hop with a browser user agent, and you can expand any row or export the whole run as CSV. To check every URL on a site, the GEO Audit does it on a schedule.

Keep reading

Sources

[1]Redirects and Google Search — Google Search Central, updated 14 April 2026
[2]How HTTP status codes, and network and DNS errors affect Google Search — Google Search Central, updated 4 February 2026
[3]Large site owner's guide to managing your crawl budget — Google Search Central, updated 22 July 2026
[4]The rise of the AI crawler — Vercel (vendor study of its own network), 17 December 2024
[5]Redirections in HTTP — MDN Web Docs, updated 27 August 2026
[6]RFC 9110: HTTP Semantics — IETF, June 2022
[7]Apache Module mod_alias — Apache HTTP Server 2.4 documentation, read 1 October 2026
[8]Module ngx_http_rewrite_module — nginx.org, read 1 October 2026
[9]Static configuration with vercel.json — Vercel docs, updated 14 August 2026
[10]redirects (next.config.js) — Next.js docs, updated 30 June 2026
[11]wp_redirect() — WordPress Developer Resources, read 1 October 2026
[12]Single Redirects: settings — Cloudflare docs, updated 5 May 2026
Updated 2026-10-01