To check redirects, open your browser's developer tools, go to the Network tab, tick Preserve log and load the URL: every hop shows with its status code (301, 302, 307, 308) and the next location. For lots of URLs, a redirect checker or an SEO crawler does the same job in bulk and flags redirect chains and loops.
Why bother? Because the type of redirect changes what Google shows. Google's own documentation says permanent redirects tell Search to show the new URL, temporary ones tell it to keep the old one, and its crawlers stop following after a set number of hops. A redirect that 'works' for visitors can still be quietly wrong for search.
Three ways to check a redirect
1. In your browser (one URL)
- Open the page in Chrome, Edge or Firefox and press F12 to open developer tools.
- Click the Network tab and tick Preserve log so the first request isn't wiped when the page changes.
- Paste the old URL into the address bar and press Enter.
- Click the first row. The Status column shows the code (for example 301), and the response headers show the Location the browser was sent to.
- Follow each row down until you reach a 200. Every extra row before that one is another hop.
2. From the command line (quick and exact)
If you're comfortable with a terminal, the curl command prints every hop's status line and Location header when you run it with the flags for following redirects and showing headers only. It's the fastest way to see the raw server response with no browser cache or extensions in the way.
3. With a crawler or redirect checker (many URLs)
For a site migration or an audit, crawl the site or paste a list of old URLs into a redirect checker. Look for three things in the report: the final status of each URL, the number of hops, and any URL that ends in a loop or an error. I cover the full process in my guide on running an SEO site audit.
Which redirect types Google treats as permanent
Google lists the redirect methods in order of how reliably it can interpret them, with server-side redirects first. Here's how each one is treated:
| Redirect | How Google treats it | Use it when |
|---|---|---|
| HTTP 301 (moved permanently) | Permanent: the target is a signal for the canonical URL | A page has moved for good |
| HTTP 308 (moved permanently) | Permanent | As 301, where the request method must be kept |
| HTTP 302 (found), 303, 307 | Temporary: the source URL tends to stay in results | A short-term move, such as a page that's temporarily unavailable |
| Meta refresh with 0 seconds | Treated as permanent | You can't set server redirects |
| Meta refresh with a delay | Treated as temporary | Rarely: it's a poor experience |
| JavaScript location | Only seen if rendering works | Last resort, when server and meta options aren't possible |
The JavaScript point is the one people miss. Google says it renders pages after crawling, but rendering can fail, and if it does, Google might never see a JavaScript redirect at all.
Redirect chains: how many hops is too many?
Google's documentation on status codes says its crawlers follow up to 10 redirect hops by default, and that Googlebot generally follows 10 hops for web content. It also notes that Google's inspection tools don't follow redirects, which is why a URL test can look different from a live crawl.
Ten is a ceiling, not a target. Every hop is another request for visitors and for crawlers. If old URL A goes to B, then C, then D, point A straight at D and update your internal links to D as well.
Common redirect problems to look for
- Temporary redirects left in place for months after a permanent move. If the move is permanent, switch them to 301.
- Chains created by several migrations stacked on top of each other (http to https, then non-www to www, then an old slug to a new one).
- Loops, where A sends you to B and B sends you back to A. Visitors get an error page and nothing gets indexed.
- Internal links that still point at redirecting URLs. They work, but each one costs a hop.
- Redirects to an unrelated page, such as sending every deleted post to the homepage.
A quick redirect checklist after a site move
- Export every old URL that had traffic or links before the move.
- Run the full list through a redirect checker and confirm each one ends in a 200 page.
- Make sure each old URL lands on the closest matching new page, not the homepage.
- Count the hops and collapse anything longer than one.
- Update internal links, menus and your sitemap to the new URLs so they don't redirect at all.
- Recheck a sample a week later, after caches and plugins have settled.
Redirects and canonical URLs
Google's canonicalization guide ranks redirects as a strong signal of which URL should be canonical, alongside canonical link tags, with sitemap inclusion as a weak signal. If your redirects say one thing and your canonical tags say another, you're sending mixed messages. Check both in the same audit.
Once the redirects are sorted, I'd also check the sitemap, and I show how in my walkthrough for finding any website's sitemap.
Want AI doing the heavy lifting in your marketing?
I build the systems that handle the boring 80 percent, so you get your week back. Done properly, with the human kept in.
Tools that check redirects
Free browser developer tools and curl cover single URLs. For whole sites, SEO crawlers such as Screaming Frog, Sitebulb and the site audit modules in SE Ranking, Semrush and Ahrefs report status codes, chains and loops. If you're weighing up an all-in-one suite for this, my comparison of SE Ranking alternatives lists the options in no particular order.
My verdict
Check redirects any time you move, merge or delete pages, and after every migration. Use 301s for anything permanent, keep every old URL to one hop, and fix your internal links so they point at the final address. It's dull work, and it's the kind that stops traffic leaking away.
Merging overlapping pages is a common reason to set up redirects, so it's worth reading my guide to keyword cannibalization first.
Frequently asked questions
How do I check if a URL redirects?
Open developer tools in your browser, go to the Network tab, tick Preserve log and load the URL. Each redirect shows as a row with its status code and the next location.
What's the difference between a 301 and a 302 redirect?
Google treats a 301 as permanent and shows the new URL in results. A 302 is temporary, so Google tends to keep showing the original URL.
How many redirects will Google follow?
Google says its crawlers follow up to 10 redirect hops by default. Keep every old URL to one hop anyway.
Does Google see JavaScript redirects?
Only if rendering works. Google says rendering can fail, so it recommends server-side or meta refresh redirects first.
Is a meta refresh redirect permanent?
Google treats an instant meta refresh (0 seconds) as permanent and a delayed one as temporary.

