Part of the SEO audit

Find internal links that redirect instead of loading

Internal links should point to the final URL. Every redirect adds load time and wastes search engine crawl budget. SiteCurl checks up to 20 links per page.

No signup required. Results in under 60 seconds.

What this check does

SiteCurl finds every internal link on a page, then checks each one with a HEAD request to see if it redirects. If the server returns a 301, 302, 307, or 308 status, the link is flagged. SiteCurl checks up to 20 links per page with a 3-second timeout each, all within a 4-second time budget.

For each redirecting link, SiteCurl reports the original URL, the destination URL, and the redirect status code. This tells you exactly which links to update and where they should point.

The check only looks at internal links (links to pages on your own domain). External links are skipped because you do not control their redirect behavior.

How this shows up in the real world

Internal redirects happen when a page was moved or renamed but the links pointing to it were never updated. The links still work because the server redirects visitors to the new URL. But 'works' and 'works well' are different things.

Each redirect adds a full HTTP round trip. The browser sends a request, gets a redirect response, then sends a second request to the new URL. On a fast connection, this adds 50 to 150ms. On a mobile connection, it can add 200 to 400ms. If a page has five internal links that redirect, a visitor clicking through your site hits five extra delays during their session.

Search engine crawlers face a similar problem. Google allocates a crawl budget to your site based on its size and authority. Each redirect uses a portion of that budget on a hop instead of on indexing content. A site with 50 internal redirects forces the crawler to make 100 requests (one for the redirect, one for the final URL) to index 50 pages. A site with zero internal redirects needs only 50 requests.

The most common cause is a URL change during a redesign. The development team updates the URL structure and sets up redirects from the old URLs to the new ones. The redirects work, so the task is marked done. But the internal links in the navigation, footer, and content still point to the old URLs. Every click goes through the redirect when it could go straight.

Why it matters

Internal redirects are wasted work for both browsers and crawlers. The server processes two requests for what should be one. The visitor waits longer than they need to. The crawler spends budget on redirects instead of on discovering new content.

Internal redirects also indicate technical debt. They mean links were not updated when URLs changed. The longer they persist, the more likely they are to be copied into new pages, email campaigns, and marketing materials, spreading the problem further.

For sites with hundreds of pages, internal redirects add up. A site with 30 internal redirects adds roughly 3 to 9 seconds of total redirect overhead per full crawl. Over months, this means the crawler visits fewer of your pages in each crawl cycle.

Who this impacts most

Sites that have been through a redesign or URL restructuring have the most internal redirects. The redirects were set up to handle external links, but internal links were never cleaned up. A 100-page site after a redesign can easily have 20 to 40 internal links still pointing to old URLs.

E-commerce sites with frequently changing product URLs accumulate internal redirects over time. A product moves from /products/item-name to /shop/item-name, but every category page still links to the old URL. Multiply this across hundreds of products and the crawl budget waste is significant.

Blog and content sites are affected when tags, categories, or author pages change URLs. The blog post links to /category/old-name, which redirects to /category/new-name. Updating the post fixes it for visitors and crawlers.

How to fix it

Step 1: Get the list of redirecting links. Run a SiteCurl scan to see which internal links redirect. The scan shows the original URL and the destination, so you know exactly what to update each link to.

Step 2: Update links in navigation and templates. Start with site-wide elements: header navigation, footer links, and sidebar links. These appear on every page, so fixing them has the biggest impact. Update each link to point directly to the final URL.

Step 3: Update links in page content. Check blog posts, product descriptions, and landing pages for links that point to old URLs. In WordPress, use a search-and-replace plugin like Better Search Replace. For static sites, use find-and-replace across your codebase.

Step 4: Keep the server redirects in place. Do not remove the redirect rules from your server. External sites and bookmarks may still use the old URLs. The server redirect is the safety net. Updating internal links means your own visitors and crawlers skip the redirect entirely.

Step 5: Prevent future redirects. After every URL change, add 'update internal links' to the task list. Treat it as part of the URL change, not a follow-up task. This prevents internal redirects from building up again.

Common mistakes when fixing this

Mistake 1. Removing the server redirect when updating links. The redirect should stay in place for external traffic. Only update the links in your HTML and templates. The redirect is the fallback for links you do not control.

Mistake 2. Only fixing links on the home page. Internal redirects hide on blog posts, product pages, and help articles. Check links across your entire site, not just the main navigation.

Mistake 3. Fixing the link but using a URL that also redirects. Make sure the URL you are updating to is the final destination, not another link in a redirect chain. Test the new URL with curl -sI to confirm it returns a 200.

How to verify the fix

After updating your links, run another SiteCurl scan. The internal redirect count should drop. SiteCurl checks up to 20 links per page, so the results give a representative sample of your internal link health.

For a manual check on a specific link, run curl -sI https://yoursite.com/page and look at the HTTP status code. A 200 means the link loads directly. A 301 or 302 means it still redirects. Update the link to use whatever URL returns a 200.

The bottom line

Internal redirects are fixable overhead. Find the links that redirect, update them to point to the final URL, and keep the server redirects as a fallback for external traffic. This speeds up your site for visitors and lets search engines spend their crawl budget on real content.

Example findings from a scan

No internal links redirect. Visitors reach each page directly.

3 internal links redirect instead of loading directly.

/about-us -> /about (301)

Frequently asked questions

What is an internal redirect?

An internal redirect happens when a link on your site points to a URL on your own domain that redirects to a different URL. The link works, but the visitor goes through an extra redirect on the way to the final page.

Are internal redirects bad for SEO?

They waste crawl budget. Each redirect uses a request that could have been spent indexing a real page. A few internal redirects are not a crisis, but dozens of them reduce how efficiently search engines crawl your site.

How many internal links does SiteCurl check?

Up to 20 internal links per page, with a 3-second timeout for each link check and a 4-second total time budget. This gives a representative sample of your internal link health without slowing down the scan.

Can I check for internal redirects without signing up?

Yes. The free audit checks internal links on your home page as part of a full seven-category scan. No signup needed. Results in under 60 seconds.

Should I remove the server redirect after fixing internal links?

No. Keep the server redirect in place. External sites, bookmarks, and search engine indexes may still reference the old URL. The redirect is the fallback for traffic you do not control. Only the internal links in your HTML should be updated.

How do internal redirects build up?

They accumulate during URL changes, redesigns, and CMS migrations. Someone changes a URL and sets up a server redirect, but the internal links in navigation, footers, and content still point to the old URL. Over time, each URL change adds more redirecting links.

Check your internal links now