Skip to content
RankThat

Redirect Checker

Follow an address through every redirect to the page that answers, with each status code, and see if the chain needs fixing.

How to use it

  1. 1Enter any address, including http:// or www versions.
  2. 2See each hop and its status code.
  3. 3Replace chains with one 301 straight to the final page.

301 vs 302

A 301 says the page moved for good, so Google passes the rankings to the new address. A 302 says the move is temporary. Use 301 for anything permanent, such as a new site structure or https.

Go further

Site Audit

Find every redirect chain on the site and fix the links in one click.

See how

Reading a redirect trace, and fixing chains for good

A redirect checker shows the path an address really takes: every hop, the status code at each one, and the page that finally answers. This guide explains how to read each part of the trace and the notes under it, the four-address test every site should pass, and the exact code to fix chains in .htaccess, nginx and WordPress.

How the trace works

The checker requests the address you typed and, if the server answers with a redirect, follows it to the next address, then the next, recording each status code. It stops at the first address that answers with a page or an error, or after ten redirects.

Each line in the result is one hop:

  • Amber badges (3xx) are redirects.
  • A green badge (2xx) is the page that finally answered. It’s shown in bold.
  • A red badge (4xx, 5xx or ERR) means the trail ends in an error. ERR means no answer at all: a timeout, a loop that never ends, or an address that doesn’t exist.

The checker follows server redirects, the kind sent with a status code. It doesn’t run JavaScript or follow meta refresh tags. If a page sends visitors on with a script, the trace stops at that page with a 200. Search engines handle those redirects less reliably too, so a server redirect is the better choice for any permanent move.

The status codes you’ll see

CodeMeaningRankings move to the new address?Use it for
301Moved permanentlyYesNew URLs, merged pages, http to https, www to non-www
308Moved permanently (keeps the request method)YesSame as 301; some servers and hosts use it by default
302Found (temporary)Not reliablyA short-term change you will undo
307Temporary redirectNot reliablySame as 302
200OK, the page answeredThe end of a healthy trace
404Not foundPoint the address at the closest live page, or let it go if nothing replaces it
410Gone on purposeContent removed for good with no replacement
5xxServer errorA hosting or application problem, not a redirect problem

Our glossary covers the 301 redirect and 302 redirect in more detail.

What each note means

Note under the traceWhat’s going onFix
No redirect: this address answers directlyThe address you typed is the final oneNothing, if this is the address you want people to use
One clean redirect. That is fineA single hop to the final pageNothing. Update your own links to the final address when convenient
2 (or more) hopsA redirect chainPoint the first address straight at the final one with one 301
Ten or more hops: probably a redirect loopTwo rules keep sending visitors back and forthFind the two rules that disagree (see loops below)
A temporary redirect (302/307) is usedAt least one hop says the move is temporaryChange it to a 301 if the move is permanent
The site does not redirect to HTTPSYou typed http and the site stayed on httpAdd an https redirect for the whole site
The last hop is a sign-in pageThe page is behind a loginFine for private pages; a problem if the page should be public
A redirect points to an address that is not validA rule sends visitors to a broken addressCorrect the target in the rule

The four-address test

Every site can be typed four ways. Run each through the checker:

  1. http://yoursite.com
  2. http://www.yoursite.com
  3. https://yoursite.com
  4. https://www.yoursite.com

All four should end at the same final address, in one hop or none. Pick one version (with or without www) and stick to it everywhere.

Worked example. Coastline Plumbing ran http://coastlineplumbing.com and saw:

301  http://coastlineplumbing.com/
301  http://www.coastlineplumbing.com/
301  https://www.coastlineplumbing.com/
200  https://coastlineplumbing.com/

Three hops: one rule added www, a second added https, and a third, added later by their SEO plugin, removed www again. Each visitor from an old link waits for three round trips, and each hop is a chance for something to break. The fix was to replace the three rules with one that sends every version straight to https://coastlineplumbing.com/.

Fixing it: copy-ready rules

Apache (.htaccess), placed above the # BEGIN WordPress block on WordPress sites:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.coastlineplumbing\.com$ [NC]
RewriteRule ^(.*)$ https://coastlineplumbing.com/$1 [L,R=301]

# Single pages that moved
Redirect 301 /water-heaters/ https://coastlineplumbing.com/water-heater-repair/

nginx:

server {
    listen 80;
    server_name coastlineplumbing.com www.coastlineplumbing.com;
    return 301 https://coastlineplumbing.com$request_uri;
}

server {
    listen 443 ssl;
    server_name www.coastlineplumbing.com;
    # ssl_certificate and ssl_certificate_key lines go here
    return 301 https://coastlineplumbing.com$request_uri;
}

# Inside the main server block for coastlineplumbing.com:
location = /water-heaters/ {
    return 301 /water-heater-repair/;
}

WordPress plugins: for page-by-page redirects, the free Redirection plugin and Rank Math’s Redirections module both let you add 301s without touching server files. Yoast includes a redirect manager in its Premium version. Use one tool for redirects, not several, or you’ll build chains by accident.

When you change a redirect’s target, search your existing rules for anything pointing at the old address and update those too. That’s how most chains are born: page A was redirected to B, then B was redirected to C, and nobody went back to point A at C.

Loops, and how to break them

A loop means two rules disagree. The usual causes:

  • CDN and server both forcing https in different ways. With a CDN set to connect to your server over plain http (Cloudflare’s “Flexible” SSL mode, for example) and the server redirecting http to https, every request bounces forever. Set the CDN to connect over https.
  • WordPress Address and Site Address disagreeing with each other or with the server’s rules (Settings › General).
  • Two plugins each insisting on a different version of the same address, such as with and without a trailing slash.

Common mistakes

  • Redirecting every old page to the homepage. Google treats that as a soft 404: the old page’s value is lost anyway. Redirect each address to its closest match, or let it return 404 if nothing is close.
  • Using 302 for a permanent move. Many page builders and hosting panels default to 302. Check the code in the trace, not the setting’s label.
  • Fixing the redirect but not your links. Your menus, footer and internal links should point at the final address, so visitors and Google skip the hop entirely and keep the full link equity.
  • Forgetting the sitemap. Your XML sitemap should list only final addresses that answer with 200.

Fixing chains across a whole site

The checker traces one address. The Site Audit finds every redirect chain, every internal link that points at a redirect, and every sitemap entry that redirects or breaks. On WordPress, RankThat drafts redirects for broken pages (to the closest matching page, never just the homepage) and updates links that point at redirects, applied through the free Bridge plugin with one-click undo. For a broader checkup of one page, including HTTPS, try the Website SEO Checker, and for 404s and other crawl problems, see how to fix crawl errors.

Questions, answered

How many redirects is too many?

One is fine. Each extra hop slows visitors down and Google may stop following after about ten.

Fix it on every page, not just this one.

RankThat audits the whole site, drafts the fixes and applies them in WordPress, with one-click undo.