Internal Redirects

No Comments
Internal redirects
TL;DR: An internal redirect is when one of your own links points to a URL that 301s or 302s to a different URL instead of pointing straight at the live page. It is not broken, just wasteful. Update the link to the final destination and you save a hop for every crawler and visitor.
Code
RE-013
Severity
Low, cumulative
Impact
Crawl waste, slower nav
Detect
Screaming Frog
Fix
Point link at final URL

What an internal redirect actually is

You have a page. On it there is a link to another page on your own site. When someone clicks that link, or when Googlebot follows it, the server does not serve the page directly. Instead it returns a redirect status, usually a 301 (permanent) or a 302 (temporary), and says "the thing you want is over here." The browser or crawler then makes a second request to that new location. That extra hop is the internal redirect.

Nothing is broken here. The visitor still lands on a working page. That is exactly why this issue slips past so many teams: it never throws an error, it never shows a 404, and everything looks fine in a browser. It is death by a thousand tiny detours. One redirected internal link is nothing. Ten thousand of them across a large site is a real drag on crawl efficiency and a small tax on every page load.

Why it matters for SEO and crawling

Three concrete reasons this belongs on your fix list:

Crawl budget. Every redirect is a round trip Googlebot has to make before it reaches the content. On a site with a few hundred pages this is invisible. On a site with hundreds of thousands of URLs, redirect hops eat into the finite number of requests Google is willing to spend on you per day. Requests burned on redirects are requests not spent discovering or refreshing real pages.

Link signals. Google has said a 301 passes ranking signals, and modern handling means you rarely lose measurable equity through a single well configured 301. But you are relying on Google to consolidate the signal correctly every time, forever. Pointing the link at the final destination removes the middleman and removes the risk. Free clarity, no downside.

Speed. A redirect adds a full network round trip before the real page even starts loading. On mobile connections that can be a couple hundred milliseconds per hop, and it stacks if you have chained redirects. Users on your own navigation should never pay that toll.

Single hop versus a redirect chain

GOOD: direct link Link on page Final URL (200 OK) TOLERABLE: one redirect Link on page 301 redirect Final URL BAD chain = 301 to 301 to 200

How to detect internal redirects

This is a solved problem. You do not need to guess.

  • Screaming Frog SEO Spider. The fastest route. Crawl the site, then open the Response Codes tab and filter to Redirection (3xx). Better still, run the "Redirect Chains" report under Reports, which lists the source page, the redirected URL, and the final destination in one export. Sort by source and you have your work order.
  • Sitebulb. Flags "Internal URLs that redirect" as a dedicated hint and shows you the linking pages, which is what you need to actually fix them.
  • Google Search Console. The Pages report under Indexing shows "Page with redirect" as a status. Useful for confirming Google's view, less useful for pinpointing which internal links to edit.
  • Server logs. If you want proof of how often bots are hitting redirected internal URLs, grep your access logs for 301 and 302 responses to Googlebot. Great evidence for prioritising.

How to fix it, step by step

  1. Export the redirect list from Screaming Frog with source page, redirected link, and final destination columns.
  2. For each row, confirm the final destination returns a clean 200 and is the page you actually want to link to. Do not blindly trust the redirect target.
  3. Edit the link in the source page, template, menu, or database so the href points at the final 200 URL. Most site wide instances come from a handful of shared templates or nav components, so fixing the template clears thousands of rows at once.
  4. Watch for chains. If A redirects to B which redirects to C, update your link to C and, separately, flatten the redirect rules so B points straight to C too.
  5. Re-crawl and confirm the redirect count drops. Keep the redirect rules in place at the server level as a safety net for old external links and bookmarks. You are removing internal links to them, not the rules themselves.

What good looks like

ScenarioResponse chainVerdict
Internal link to live page200Ideal
Internal link through one 301301 to 200Fix when convenient
Internal link through a chain301 to 301 to 200Fix now
Internal link to a loop301 to 301, no 200Emergency

A healthy site has close to zero internal links that resolve through a redirect. Redirect rules still exist on the server to catch legacy inbound traffic, but your own navigation, menus, breadcrumbs, and body links all point at final 200 URLs.

DO
  • Point every internal link at the final 200 URL
  • Fix the shared template or menu once to clear thousands of rows
  • Keep server side redirect rules for legacy external traffic
  • Flatten chains so each redirect goes straight to the destination
  • Re-crawl after edits to confirm the count fell
DON'T
  • Shrug it off because "301s pass equity anyway"
  • Leave redirect chains of three or more hops in place
  • Delete the redirect rules and break old inbound links
  • Link to a redirect target without checking it returns 200
  • Fix one page by hand when a template edit fixes all of them

FAQ

Does a single internal redirect actually hurt rankings?
On its own, no measurable ranking hit. The problem is scale and speed: thousands of redirected internal links waste crawl budget and slow navigation. Treat it as hygiene, not an emergency, unless you see chains or loops.
Should I remove the redirect rule after I fix the links?
Usually not. External sites, bookmarks, and old backlinks may still hit the original URL. Keep the server rule so those visitors land somewhere useful. You are only changing your own internal links to skip the hop.
What is the difference between a redirect and a redirect chain?
A single redirect is one hop: link to A, A redirects to B, done. A chain is two or more hops: A to B to C. Chains multiply the cost and are the higher priority to flatten.
Why do these appear if I never linked to a redirect on purpose?
They accumulate over time: you migrate to HTTPS, add a trailing slash convention, move a category, or restructure URLs. Old links in templates and content keep pointing at the pre migration path, which now redirects. Nobody did it on purpose, which is exactly why an audit finds them.
Want every redirected internal link mapped and fixed?

A full crawl surfaces the chains, loops, and template level offenders that hand crawling one at a time will miss. We turn the export into a prioritised work order.

Book an advanced SEO audit

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog