
How to Check a 301 Redirect: 5 Ways to Test It's Working
To check a 301 redirect, enter the old URL in a redirect checker or run curl -I on it. A working redirect returns 301 Moved Permanently (or 308) with a Location header pointing to the new URL, and the new URL returns 200 OK. A 302 on a permanent move, a chain of several hops or a loop needs fixing.
A 301 redirect tells browsers and Google that a page has moved for good. Done right, visitors land on the new URL and the old page's ranking signals move with it. Done wrong, with a temporary 302, a chain of hops or a redirect that dumps everyone on the homepage, you can lose traffic without noticing, because the page still seems to work when you click it.
Local businesses run into this more often than you'd expect: a new website, a switch to HTTPS, two location pages merged after a branch closes, or a rebrand. Here are five ways to check that a redirect really is a 301 and that it ends where it should.
What a correct 301 redirect looks like
Every method below comes down to reading three things:
- The status code of the old URL: 301 (Moved Permanently) or 308 (Permanent Redirect).
- The
Locationheader, which holds the address the redirect sends you to. - The status of the final URL: 200 OK, ideally reached in one hop.
| Code | Name | How Google treats it | Use it for |
|---|---|---|---|
| 301 | Moved Permanently | A strong signal that the new URL should replace the old one in search | Pages that have moved for good |
| 308 | Permanent Redirect | The same as a 301 | Permanent moves that must keep the request method (rare on business sites) |
| 302 | Found | A weak signal; the old URL may stay in search | Short-term moves, like a seasonal page |
| 307 | Temporary Redirect | A weak signal, like a 302 | Temporary moves that must keep the request method |
| 303 | See Other | Treated as temporary | Sending visitors on after a form submission |
That's straight from Google's redirect documentation, which also covers meta refresh and JavaScript redirects: an instant meta refresh counts as permanent and a delayed one as temporary. A server-side 301 is still the most reliable choice, and most redirect checkers only see server-side redirects.
Method 1: Use an online redirect checker
This is the fastest option. Paste the old URL into a redirect checker. It requests the page from a server rather than your browser, so you see what a first-time visitor or Googlebot gets, with nothing cached. Happy Rank's free checker follows up to 12 hops, shows the status code, destination and response time for each one, and flags redirect loops.
What to look for in the result:
- One hop from the old URL to the new one, marked 301 or 308.
- A final status of 200. If the chain ends in a 404, the redirect points at a page that doesn't exist.
- No detours. Going from http to https to www to the final page is three hops where one would do.
Method 2: Check in your browser's developer tools
Your browser can show you the redirect too, with one catch: browsers cache 301s. Once your browser has seen a permanent redirect, it may go straight to the new URL on later visits without asking the server, so a redirect you've just changed can look right or wrong when it isn't. Use a private window, or turn the cache off first:
- In Chrome, open DevTools (F12, or Cmd+Option+I on a Mac) and go to the Network tab.
- Tick Preserve log and Disable cache.
- Type the old URL into the address bar and press Enter.
- Click the first request in the list. The Status column shows the code, and under Response Headers the
locationline shows where it sends you.
Method 3: Check from the command line with curl
If you're comfortable in a terminal, curl gives the plainest answer. This prints the status code and where the old URL points, without following the redirect:
curl -s -o /dev/null \
-w "%{http_code} %{redirect_url}\n" \
https://example.com/old-pageA healthy result looks like 301 https://example.com/new-page. To follow the whole chain and see how it ends:
curl -sL -o /dev/null \
-w "%{num_redirects} redirect(s), ended at %{url_effective} (%{http_code})\n" \
https://example.com/old-pageTo print the headers of every hop, run curl -sIL followed by the URL. The -I flag sends a HEAD request, which a few servers answer differently from a normal page load. If the results look odd, run curl -sL -D - -o /dev/null followed by the URL to see the headers of a regular request instead.
Method 4: See what Google sees in Search Console
The first three methods show what your server does. Google Search Console shows whether Google has noticed:
- In the Page indexing report, old URLs listed under Page with redirect are expected. Google found the redirect and indexes the new page instead.
- Old URLs listed under Not found (404) usually mean a redirect is missing.
- Check the new URL with URL Inspection to confirm it's indexed and chosen as the canonical. Google's inspection tools don't follow redirects, so inspect the destination rather than the old address.
Google has to recrawl each old URL before it swaps the new one into search, which can take days for busy pages and weeks for quiet ones. Keep your redirects in place for at least a year; that's Google's own advice for site moves.
Method 5: Find every redirect on your site with a crawler
Checking one URL at a time won't catch redirects hiding in your menus, old blog posts or sitemap. A crawler finds them all. Screaming Frog SEO Spider is free for up to 500 URLs, which covers most local business websites:
- Crawl your homepage, open the Response Codes tab and filter to Redirection (3xx).
- Use its redirect chain report to list URLs that take two or more hops.
- Check the Inlinks for each redirecting URL. Those are internal links to update so they point straight at the final page.
Check your XML sitemap as well. It should list final URLs only; a sitemap full of redirecting URLs sends Google mixed signals about which pages you want indexed.
Common redirect problems and how to fix them
| Problem | What you'll see | Fix |
|---|---|---|
| Redirect chain | Two or more hops before the final page | Point the first URL straight at the final one and update internal links |
| Redirect loop | A sends you to B, which sends you back to A | Look for two rules that contradict each other, often an HTTPS rule and a www rule, or a plugin fighting your server settings |
| 302 instead of 301 | A 302 on a page that moved for good | Change the rule to 301. Some plugins and hosts default to 302 |
| Everything sent to the homepage | Many old pages redirecting to / | Send each old URL to its closest match. Google may treat mass homepage redirects as soft 404s |
| Redirect to a missing page | The chain ends in a 404 | Point the redirect at a live page |
| Lost tracking tags | UTM parameters gone after the redirect | Make sure the rule passes the query string through |
Google follows up to 10 hops, but its advice is to redirect straight to the final page and, if you can't avoid a chain, to keep it to three hops or fewer.
How to set up a 301 redirect
Where you add the redirect depends on how your site is built:
- Apache (.htaccess):
Redirect 301 /old-page https://example.com/new-page - Nginx:
location = /old-page { return 301 https://example.com/new-page; } - WordPress: a redirect plugin or your host's redirect manager. Check that the type is set to 301, not 302.
- Shopify, Wix and Squarespace: each has a built-in URL redirect setting in the site admin.
Then run the old URL through the redirect checker to confirm the result.
When local businesses should re-check their redirects
- After a redesign or a move to a new platform. Test your 20 most visited pages and the website link on your Business Profile.
- After closing or merging a location. Redirect the closed location's page to the nearest open location's page, not the homepage, and mark the old Business Profile as permanently closed. Our multi-location guide covers the location pages themselves.
- After a rebrand or domain change. Update the website link on your Business Profile, Apple Business Connect, Bing Places and major directories so they point straight at the new URLs. The NAP consistency guide explains how to find every listing.
- Whenever tracking breaks. If Business Profile visits stop showing up in Google Analytics, check whether a redirect on your website link is dropping the UTM tags.
Checking a redirect takes seconds; noticing a broken one in your traffic can take months. Keep the free redirect checker handy for every site change, and use our local SEO audit checklist for the rest of your technical checks.
Frequently asked questions
How do I know if a redirect is a 301 or a 302?
Check the status code the old URL returns, using a redirect checker, curl or your browser's Network tab. 301 and 308 are permanent redirects; 302, 303 and 307 are temporary.
How long does Google take to process a 301 redirect?
Google has to recrawl the old URL first, which can take days for popular pages and weeks for rarely visited ones. Keep the redirect in place for at least a year.
Do 301 redirects hurt SEO?
A single 301 to a relevant page passes ranking signals to the new URL. Problems come from long chains, loops, temporary redirects on permanent moves and sending unrelated pages to the homepage.
How many redirects in a chain is too many?
Google follows up to 10 hops but recommends redirecting straight to the final URL. If you can't avoid a chain, keep it to three hops or fewer.
Why does my browser still redirect after I removed a 301?
Browsers cache permanent redirects. Test in a private window, with the cache disabled in DevTools, or with an online checker that requests the URL fresh.