Free tool
Redirect checker for 301 and 302 chains
A redirect checker follows a URL through every redirect and shows each hop with its status code. This free tool traces 301, 302, 303, 307 and 308 redirects for up to 10 hops, flags chains, loops and downgrades to HTTP, and can send the request with a browser or crawler user agent. Enter a URL to see where it ends.
What does a redirect checker do?
A redirect checker requests a URL and follows every redirect the server answers with. This one lists each hop in order, with its status code, protocol, target and response time, so you see what a visitor or a crawler sees. Use it as a 301 redirect checker after a migration, a redirect chain checker for slow pages or a URL redirect checker to confirm that an old address ends on the right page.
How do you use this redirect checker?
Enter the URL
Type the address as people or links use it. Keep
http://to see the upgrade to HTTPS, or leave the protocol out to start with HTTPS.Pick a user agent
Browser is the default. The Googlebot, Bingbot and GPTBot options send that crawler’s user agent string.
Read the chain
Each card is one hop with its status code, protocol, response time and the Location it points to. The last card is marked Final.
Fix what the recommendations name
Errors and warnings come first. Change the rule at the start of the chain, then run the check again.
What is a redirect chain, and how many hops are too many?
A redirect chain is a series of redirects between the URL you request and the page that finally answers, for example http://example.com to https://example.com to https://www.example.com. Every hop costs a round trip, so a chain slows the page down and delays crawlers.
Google’s crawlers follow up to 10 redirect hops by default. RFC 9110 tells clients to detect and intervene in redirect loops, and notes that an older version recommended a maximum of five redirects. Aim for one hop. This tool warns from two redirects, reports a loop as soon as a URL repeats and stops after 10 redirects.
301, 302, 303, 307 and 308: which redirect should you use?
Use 301 or 308 when a page has moved for good, and 302 or 307 when the move is temporary. Google treats 301 and 308 as a strong signal that the target should be canonical, and 302, 303 and 307 as a weak signal. The status also decides what happens to the request method, as RFC 9110 defines.
| Status | Type | Request method | Google’s signal |
|---|---|---|---|
301 Moved Permanently | Permanent | May change POST to GET, for historical reasons | Strong |
308 Permanent Redirect | Permanent | Must not change the method | Strong |
302 Found | Temporary | May change POST to GET, for historical reasons | Weak |
307 Temporary Redirect | Temporary | Must not change the method | Weak |
303 See Other | Temporary, points to another resource | Fetches the other resource with GET | Weak |
What are the most common redirect problems?
These findings appear most often, each with its fix:
- Redirect chain. Several rules stack up, for example HTTP, www and path rules. Redirect the first URL straight to the final one and update internal links and your sitemap.
- Redirect loop. Two rules send a URL back and forth, for example one that adds www and another that removes it. Decide on one canonical URL and delete the rule that contradicts it.
- Temporary redirect for a permanent move. A
302or307on a page that moved for good sends only a weak signal. Switch to301or308. - Downgrade to HTTP. A hop from HTTPS to HTTP leaves the connection unencrypted. Redirect to the
https://URL instead. - Ends at an error. A chain that finishes at
404or410leads nowhere. Point it at a live replacement, or remove the redirect and return the error from the old URL. A5xxat the end means the server failed. - Everything goes to the homepage. Google asks for a 301 when a clear replacement exists and a 404 or 410 when none does. Our guide to soft 404 errors explains why a blanket redirect fits neither.
How do you redirect HTTP to HTTPS and www to non-www?
Choose one canonical version of your site, for example https://example.com. Send the other combinations of protocol and host to it in a single 301, then test each one. This nginx block redirects both HTTP hosts. The HTTPS www host needs its own server block with its certificate.
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}On Apache, Redirect 301 /old-page https://example.com/new-page moves a single path, and these rules in .htaccess send every other host and every HTTP request to the canonical URL:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^example\.com$ [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L]In Next.js, permanent: true sends a 308 status and permanent: false a 307. Our Next.js SEO guide covers the rest of the setup.
import type { NextConfig } from "next";
const nextConfig: NextConfig = {
async redirects() {
return [
{ source: "/old-page", destination: "/new-page", permanent: true },
];
},
};
export default nextConfig;Do meta refresh and JavaScript redirects count?
A <meta http-equiv="refresh"> tag redirects the browser from the page HTML, and a script can change location. Google treats an instant meta refresh and a JavaScript location redirect as permanent, and a meta refresh with a delay as temporary. It advises JavaScript redirects only if server-side or meta refresh redirects aren’t possible, because rendering can fail and Google may never see the redirect. See our JavaScript SEO guide.
What does this redirect checker not do?
- It doesn’t run JavaScript, so it can’t see redirects that a script performs. It reports a meta refresh or Refresh header on the final page but never follows it.
- It sends
GETrequests only, so it can’t show how a POST request is redirected. - The request comes from Serpel’s servers, asks for English pages with
Accept-Language: enand sends no cookies, so redirects that depend on your country, language or login can differ from what you see. - The user agent strings are imitations. Google notes that its user agent is often spoofed and verified by reverse DNS or published IP ranges, so a site that checks IP addresses can answer differently from how it answers the real crawler.
- It checks one URL at a time. Serpel’s site audit reports redirect chains and loops across every URL it crawls.
Frequently asked questions
What is the difference between a 301 and a 302 redirect?
A 301 says that a page moved permanently and a 302 says that the move is temporary. Google treats 301 and 308 as a strong signal that the target should be canonical, and 302, 303 and 307 as a weak signal. Use a 301 or 308 whenever the old URL is not coming back.
How many redirects are too many?
Aim for one. Google’s crawlers follow up to 10 redirect hops by default, but every hop adds a request and delay, so this tool warns from two redirects. Redirect the first URL straight to the final URL instead of stacking rules.
Should I use a 301 or a 308 redirect?
Both are permanent, and Google treats both as a strong signal. The difference is the method: a 308 must not change it, while a 301 may turn a POST into a GET for historical reasons, as RFC 9110 explains. Use a 308 for form and API endpoints and either one for normal pages.
Why does my redirect go in a loop?
A loop means that two or more rules send a URL back to one that was already requested. Typical causes are a rule that adds www next to one that removes it, or a proxy that reaches your server over HTTP while the server forces HTTPS. The result shows which hop points back to which, so you can remove the rule that contradicts the other.
Does the checker follow meta refresh and JavaScript redirects?
No. It follows server-side redirects, meaning a 301, 302, 303, 307 or 308 response with a Location header. A meta refresh or Refresh header on the final page is reported, but not followed, and scripts aren’t executed. Google handles these redirects differently, as its redirect documentation describes.
Can I check redirects as Googlebot?
Pick Googlebot in the user agent list and Serpel sends that user agent string. The request still comes from Serpel’s servers and not from Google’s IP ranges, and Google verifies the real Googlebot by IP. A site that checks IP addresses can therefore answer differently, so confirm the result with the URL Inspection tool in Search Console.
Updated 10 Oct 2026
Keep reading
- Sitemap checkerFree sitemap checker: validate an XML sitemap, test its limits and URLs, and sample up to 20 listed pages for 404s, redirects and noindex headers.
- Robots.txt checkerFree robots.txt checker: see which of 13 AI crawlers can reach your homepage, list your sitemaps and check llms.txt.
- Site auditSerpel runs a technical SEO audit with 94 checks, JavaScript rendering and Core Web Vitals, and explains every issue and its fix.
- Soft 404 errors: what they are and how to fix themWhat is a soft 404? How Google defines it, what causes soft 404 errors, how Search Console reports them and how to fix each case, plus how to detect them.