/ โ† Redirect Fixes / Page with redirect and redirect error
In this guide
  1. Two statuses, two meanings
  2. When page with redirect does need attention
  3. How to trace a redirect chain
  4. Common causes of redirect errors
  5. One-hop rules by platform
  6. A worked example
  7. The fix, step by step
  8. Edge cases worth knowing
  9. Keeping it fixed
  10. Questions and answers

Two statuses, two meanings

Page with redirectRedirect error
What Google sawThe URL redirects to another URLA redirect Google could not follow to a working page
What gets indexedThe destination, if it is indexableNothing from this chain
Is it a problem?Usually notAlways
Typical URLsOld slugs, http, non-www, trailing slash variantsLoops, long chains, broken targets
What to doUpdate links and sitemaps that still use the old URLTrace the chain and fix it

Page with redirect

Google crawled the URL, received a redirect and did not index this address, because the content lives at the destination. That is how redirects are meant to work. After a migration, a change of domain or a move to https, you should expect a large number of URLs here, and the count fades slowly as Google stops revisiting them.

Redirect error

Google's documentation lists four causes: a redirect chain that was too long, a redirect loop, a redirect URL that eventually exceeded the maximum URL length, and a bad or empty URL in the redirect chain. Googlebot follows up to ten redirect hops; if it has not reached content by then, the URL is reported as an error. In practice most errors are loops, often between http and https or between www and non-www, and a browser shows them as ERR_TOO_MANY_REDIRECTS.

For other reasons in the same report, see Search Console errors explained.

When page with redirect does need attention

Page with redirect is a report, not an error, but a few situations deserve a closer look:

Crawl your site with our redirect checker or any crawler and list internal links that hit a redirect. Replace each one with the final URL. Visitors arrive faster and Google stops rediscovering the old addresses. The migration redirects guide covers mapping old URLs to new ones after a site move.

๐Ÿ’ก Do not remove redirects just to shrink this report. Old URLs may still have links from other sites and bookmarks. Keep 301s from a migration in place for at least a year, and longer if the old URLs still receive visits.

How to trace a redirect chain

Use curl rather than a browser. Browsers cache 301 redirects, so after you fix a rule your own browser can keep showing the old behaviour. This command prints the status line and destination of every hop:

curl -sIL http://example.com/old-page | grep -iE '^(HTTP|location)'

A healthy result has one redirect and then a 200:

HTTP/1.1 301 Moved Permanently
location: https://www.example.com/new-page/
HTTP/2 200

A chain looks like this, with four hops before the page is reached:

HTTP/1.1 301 Moved Permanently
location: https://example.com/old-page
HTTP/2 301
location: https://www.example.com/old-page
HTTP/2 301
location: https://www.example.com/old-page/
HTTP/2 301
location: https://www.example.com/new-page/
HTTP/2 200

To count the hops and see the final address in one line:

curl -sL -o /dev/null -w '%{num_redirects} hops, final %{http_code} %{url_effective}\n' http://example.com/old-page

A loop makes curl stop with an error such as Maximum (30) redirects followed. Add --max-redirs 10 to match Googlebot's limit. In the output, look for the same two URLs alternating; that pair shows you which two rules disagree.

Remember that redirects can also be made with a meta refresh or JavaScript. If curl shows a 200 but the browser moves to another page, view the source and search for http-equiv="refresh" or window.location. Server-side 301s are clearer for Google and should be used wherever you can.

Common causes of redirect errors

CauseWhat curl showsFix
Cloudflare Flexible SSL with an origin that forces httpshttps redirecting to the same https URL foreverSet SSL mode to Full (strict)
WordPress site address on http while the server forces httpshttp and https alternatingSet both addresses to https
www rule and non-www rule in different placeswww and non-www alternatingChoose one host and remove the other rule
Trailing slash rules that disagree/page and /page/ alternatingOne slash policy, applied once
Rules stacked across server, plugin and CDNThree or more hopsKeep each redirect in one place
Old redirects pointing at URLs that now redirectA chain that grows after each migrationPoint old rules straight at the final URL
Rule that appends to the pathURL growing longer at each hopAnchor the pattern so it matches once
Redirect to an empty or malformed locationA location: header that is blank or relative to the wrong pathUse full absolute URLs

Each of these has a dedicated guide: redirect loops, redirect chains and https redirects.

One-hop rules by platform

The goal is that any old variant reaches the final https address in a single 301.

nginx

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

Put page-level moves in the main server block as location = /old-page { return 301 https://www.example.com/new-page/; }, then run sudo nginx -t and reload.

Apache and .htaccess

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [L,R=301]

Redirect 301 /old-page https://www.example.com/new-page/

Place host and protocol rules before other rewrites, and list specific page redirects with the final address, not an intermediate one. More detail is in the Apache redirects guide.

WordPress

Under Settings, then General, both the WordPress Address and Site Address must use the same https host as your server rules. If you use a redirect plugin, keep page moves there and host rules on the server, not both.

Cloudflare and Plesk

In Cloudflare, use SSL mode Full (strict) and check Redirect Rules and Page Rules for duplicates of server rules. In Plesk, the hosting settings include a preferred domain option and a permanent https redirect; if you use those, remove matching rules from .htaccess. The Cloudflare redirects guide and Plesk redirects guide go into each panel.

A worked example

A consultancy moved to https, then to www, then renamed a section. Search Console shows 31 redirect errors and 400 pages with redirect. Running curl on one error URL shows it bouncing between https://example.com/insights/ and https://www.example.com/insights/: an .htaccess rule sends non-www to www, while a Cloudflare Redirect Rule left from an earlier test sends www back to non-www.

The Cloudflare rule is deleted. Next, an older URL is traced: http://example.com/blog/pricing goes to https, then to www, then adds a slash, then moves to /insights/pricing/, which is four hops. The page redirect is rewritten to send /blog/pricing straight to https://www.example.com/insights/pricing/, and the host and protocol rules are merged into one. Every old URL now resolves in one hop.

The menu still linked to /blog/ addresses, so those links are updated, and the sitemap is regenerated with final URLs only. Validate fix is started on the Redirect error issue, which passes within three weeks, and the page with redirect count begins to fall.

The fix, step by step

Step 1

Separate the two statuses

In Search Console open Indexing, then Pages, and export both Page with redirect and Redirect error. Treat Page with redirect as information: check only whether any page you want indexed appears there. Treat every Redirect error URL as a task. Sort the error list by pattern, such as protocol, host, trailing slash or one section of the site, because a single faulty rule usually explains most of the entries at once.

Step 2

Trace each chain with curl

Run curl -sIL on a sample of error URLs and filter for the status and location lines. Count the hops and note the final status. Look for two URLs alternating, which signals a loop, for chains of three or more hops, and for a location header that is empty, malformed or growing longer each time. Write down which rule produces each hop: server, plugin, CMS setting or CDN.

Step 3

Break loops at the source

Find the two rules that disagree and remove one. If Cloudflare is on Flexible SSL while the origin forces https, change the SSL mode to Full (strict). If WordPress addresses use http while the server forces https, set both addresses to https. If www and non-www rules live in different places, keep one. Run curl again and confirm the URL now ends in a 200 without repeating.

Step 4

Collapse chains into one hop

Rewrite redirects so every old URL goes straight to its final https address with a single 301. Merge protocol and host rules into one rule, as in the nginx return 301 or Apache RewriteRule examples. Update older page redirects that point at URLs which now redirect again. Keep each redirect in one place. Use curl -sL -w '%{num_redirects}' to confirm each old URL now reports one hop.

Step 5

Check the destination returns 200

Fetch each final URL with curl -sI and confirm it returns 200, is not blocked by robots.txt and carries no noindex. A redirect to a 404, a login page or another redirect will keep the URL out of the index. Avoid sending many unrelated old pages to the home page. Map each one to the closest matching live page, or let it return 404 or 410 if no match exists.

Step 6

Update internal links and the sitemap

Crawl the site and list every internal link, canonical tag, hreflang reference and sitemap entry that points at a redirecting URL. Replace each with the final address. Pay attention to menus, footers and templates, which repeat across every page. Regenerate the XML sitemap so it contains only URLs that return 200, and resubmit it in Search Console. Recrawl afterwards to confirm no internal links hit a redirect.

Step 7

Test like Googlebot and clear caches

Purge the CDN and server cache, then test with a Googlebot user agent using curl -sIL -A followed by the Googlebot string, to catch firewall or bot rules that redirect only crawlers. Run a live test in URL Inspection on a fixed URL; it should report the redirect target or, for the final page, that it is available to Google. Use a private browser window, since your normal browser may have cached old 301s.

Step 8

Validate and monitor

In the Page indexing report, open the Redirect error issue and click Validate fix. Google recrawls the listed URLs and reports progress over the next few weeks. Check that the Page with redirect count levels off and then falls as Google stops finding old URLs through your links. Add a curl check of the http, https, www and non-www home page to your routine after every SSL, CDN or plugin change.

Edge cases worth knowing

Keeping it fixed

Keep a single list of redirects in one place, and when you add a new one, check whether any existing rule points at the URL you are moving. If it does, update that rule to the new final address so chains never form. After any change to SSL, CDN, host or plugin settings, run the curl check on the home page with both http and https and with and without www. Crawl the site monthly for internal links that hit a redirect, and keep the sitemap generated from live, final URLs only.

Questions and answers

1. Is page with redirect a problem in Search Console?

Usually not, because it simply means the URL redirects and Google indexed the destination instead. Old addresses, http to https moves, www changes and trailing slash variants all appear here after they are redirected. It needs action only if a page you want indexed is listed, or if the count keeps growing long after a migration, which means your own links or sitemap still point at old URLs. In that case, update the links and sitemap to use the final addresses.

2. What causes a redirect error in Search Console?

A redirect error means Google could not follow a redirect to a working page. Google lists four causes: a chain that was too long, a redirect loop, a redirect URL that grew past the maximum length, and a bad or empty URL in the chain. In practice loops are the most common, usually between http and https or between www and non-www, caused by two rules in different places that disagree, such as a server rule and a CDN or WordPress setting.

3. How many redirects will Googlebot follow?

Googlebot follows up to ten redirect hops in a chain. If it has not reached content by then, it stops and Search Console reports a redirect error. Even well before that limit, every extra hop slows visitors down and adds a point of failure, so aim for one redirect from any old URL to its final address. Chains usually build up over several migrations, when old rules keep pointing at URLs that were themselves redirected later.

4. How do I fix too many redirects on WordPress?

Too many redirects on WordPress is almost always a loop between two settings that disagree. Check Settings, then General, and make sure the WordPress Address and Site Address both use https and the same host as your server rules. If you use Cloudflare, set SSL mode to Full (strict) rather than Flexible. Then look for duplicate rules in a redirect plugin, .htaccess and the CDN, and keep only one. Test with curl, because your browser may have cached the old redirect.

5. Should I use a 301 or a 302 redirect?

Use a 301 for permanent moves, which covers nearly every change of URL, domain or protocol. Google follows both, but a 302 says the move is temporary, so Google may keep the old URL as the canonical for longer. A 308 is the permanent equivalent that keeps the request method, and Google treats it like a 301. Use 302 or 307 only for genuinely short-term changes, such as a page that will return after a promotion ends.

6. How long does it take for redirect errors to clear?

Redirect errors usually clear within one to four weeks after you fix the rule and start Validate fix in Search Console. Google recrawls the listed URLs during validation and removes them from the error as it confirms each one now resolves. Page with redirect entries fade more slowly, sometimes over several months, because Google keeps checking old URLs it knows about, especially if other sites still link to them. That slow fade is normal and not a sign of a problem.

7. Should I remove old redirects once Google has indexed the new pages?

No, keep permanent redirects in place for at least a year, and longer if the old URLs still get visits or have links from other sites. Removing them turns those links and bookmarks into 404 errors, and any value the old URLs earned is lost. Redirect rules cost very little to keep. Instead of removing them, update your own internal links and sitemap so your site no longer relies on them, and make sure each rule points straight at the final address.

Check your redirects for chains and loops

Our redirect checker follows every hop for a URL or a whole crawl, shows each status code and destination, and flags loops, long chains and internal links that still point at redirecting addresses.

Open Redirect Fixes โ†’
๐Ÿ’ฌ Got a problem?
Related Guides: All Redirect Fixes  ·  Fix redirect chains  ·  Fix redirect loops  ·  Fix a 301 redirect that is not working  ·  Fix https redirects  ·  Learning Hub

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.