A 10-step internal link audit using free tools. Find broken links, redirect chains, orphan pages, anchor text and crawl depth issues, with exact fixes.
TL;DR: An internal link audit is a 10-step crawl and fix of every link between your pages, and on a site under 500 pages it takes about 2 hours with free tools.
Crawl the site, fix broken links and redirect chains, link orphan pages, then check depth, anchors and AI crawler access.
Google's documentation confirms Googlebot follows at most 10 redirect hops.
The catch: free crawlers stop at 500 URLs, so larger sites need a paid crawler.
An internal link audit is the process of crawling your website to find broken links, orphan pages, weak anchor text and crawl depth problems, then fixing each one so link equity reaches your important pages.
This guide walks through a 10-step audit using free tools.
Many sites lose rankings not because they lack content or backlinks but because their internal links are broken, generic or missing.
Google's own link guidance says every page you care about should have a link from at least one other page on your site.
An audit is how you confirm that is true.
What Is an Internal Link Audit?
An internal link audit is a systematic review of every link that connects pages within your website.
It looks for broken links, orphaned content, vague anchor text, excessive link counts and redirect chains, and fixes them so equity flows to the pages that matter.
Think of every internal link as a route.
Broken links are dead ends.
Orphan pages have no route in at all.
Generic anchors are routes with no signpost.
Internal links are one of the few ranking inputs you control fully.
Zyppy's study of 23 million internal links across 1,800 sites, updated in February 2026, found that URLs with more internal links and more varied anchor text received more Google clicks, up to a point.
The audit checks that your links actually do that work.
For the full picture of why internal links matter, start with the complete internal linking guide.
This article focuses on the diagnostic and repair process.
Why Audit Internal Links? What Problems Does It Solve?
One broken internal link is minor.
Fifty across the site is a structural problem.
Here is what goes wrong when internal links are not maintained.
Broken links waste crawls and frustrate readers. Every internal link to a 404 sends Googlebot and readers to a dead end.
The equity that link would have passed goes nowhere.
Orphan pages are hard to discover. Google mainly finds pages by following links.
A page with no internal links depends on your sitemap alone, and Google treats it as unimportant.
Generic anchors carry no topic signal. Google's documentation names "click here" and "read more" as anchors to avoid because they say nothing about the destination.
Deep pages get crawled less. Botify's crawl data showed 58.2% of pages under 4 clicks from the homepage were crawled, against 31.5% of pages more than 8 clicks away.
Redirect chains slow crawling. Google's HTTP status documentation says Googlebot generally follows up to 10 redirect hops.
Long chains also slow page loads for users.
Linking straight to the final URL avoids both problems.
An audit catches these issues before they pile up.
What You Need Before Starting
You need three things.
A crawler. Free options: the SEOShouts Internal Link Checker (500 pages, includes an anchor text word cloud), Screaming Frog SEO Spider's free version (500 URLs), and Google Search Console (limited link data, always available).
Your sitemap. Export your XML sitemap.
You will compare it with the crawl to find orphan pages.
A spreadsheet. Track findings and fixes in Google Sheets with columns for URL, Issue Type, Current State, Fix Action, Priority and Status.
Budget about 2 hours for a site under 500 pages.
Larger sites may need a full day, but the steps stay the same.
Step 1: Crawl Your Entire Website
Crawl the full site to build a complete link inventory.
Everything else depends on it.
Enter your homepage URL in the SEOShouts Internal Link Checker.
The crawler follows internal links and records source URLs, destination URLs, anchor text and HTTP status codes.
Its word cloud is the quickest way to spot one anchor phrase dominating your links.
If your site has more than 500 pages, use Screaming Frog's paid licence or Sitebulb for a full crawl.
Check that the crawler renders JavaScript if your navigation or related-post links are built by scripts.
What to export from your crawl:
- Every internal link with source URL, destination URL, anchor text and status code
- Total internal links per page
- Crawl depth for each URL
- Any links marked nofollow
Save this data; every later step uses it.
Step 2: Find and Fix Broken Internal Links
Filter the crawl for destination URLs returning 404, 410 or 5xx status codes.
These are your broken internal links.
Each one creates two problems: the reader hits a dead end, and the equity meant for the destination is lost.
How to fix each type:
- The page moved: update the link to the new URL directly. Don't rely on the redirect.
- The page was deleted with no replacement: remove the link.
- The page was deleted but similar content exists: point the link to the closest relevant page and rewrite the anchor to describe the new destination.
For a detailed walkthrough, see how to find and fix broken internal links.
Benchmark: zero broken internal links.
If you find more than 10, fix them before anything else.
Step 3: Resolve Redirect Chains
Filter the crawl for internal links whose destination returns a 301 or 302.
Then check whether any of those redirects lead to another redirect.
Google says a 301 is a strong signal that the target should be processed, and a single redirect is fine.
Chains are the problem: each hop slows crawling and page loads, and Googlebot gives up after about 10 hops.
Fix process:
Find the final destination URL of each chain.
Update the internal link on the source page to point straight to it.
After a migration or URL change, batch-update all internal links with find-and-replace in your CMS.
Benchmark: zero redirect chains.
Single redirects are acceptable for a while, but update the links at the source within about 30 days.
Step 4: Identify and Fix Orphan Pages
An orphan page exists in your sitemap or CMS but has no internal links pointing to it.
Crawlers can't reach it by following links, so it is slow to be indexed and rarely ranks.
How to find orphans:
Export your sitemap URLs and the list of URLs found in the crawl.
Compare the two.
Any URL in the sitemap but not in the crawl is likely orphaned.
Google Search Console helps too: open the Links report and check the internal links table.
Pages with only 1 or 2 internal links are near-orphans.
Fix process:
For each orphan, find 3 or more existing pages where a contextual link makes sense.
Write a different anchor for each link that describes what the reader will find.
Put the links in body content, not only in footers or sidebars.
For a deeper guide, see finding and fixing orphan pages.
Benchmark: zero orphan pages, and at least 3 incoming internal links for every indexable page.
Step 5: Check Crawl Depth
Crawl depth is the number of clicks from your homepage to a page.
Keep important pages at depth 1 to 2, supporting content within depth 3, and nothing important at depth 4 or deeper.
How to check:
Screaming Frog shows depth in the Crawl Depth column of its Internal tab.
Google Search Console does not report depth, and URL folders are not a reliable stand-in: Google's John Mueller has said clicks from the homepage matter, not slashes in the URL.
What to fix:
If priority pages sit at depth 4+, link to them from pages at depth 1 or 2.
One contextual link from the homepage or a strong blog post can pull a page up 2 or 3 levels.
If a whole section sits at depth 3 with its children at 4+, add the section to your main navigation.
See our detailed guide on crawl depth and why deep pages struggle to rank.
Benchmark: money pages (tools, services, pillars) at depth 1 to 2; blog posts at depth 2 to 3; nothing important at depth 4+.
Step 6: Audit Anchor Text Distribution
Anchor text tells Google what each linked page is about.
Poorly distributed anchors either send no signal (generic text) or look manipulative (the same exact-match phrase everywhere).
How to analyse:
The fastest way is the internal link checker with word cloud visualization.
If one keyword dominates the cloud, anchors are over-optimized.
If the cloud is full of "click here" and "read more," anchors are too generic.
For spreadsheet analysis, export all anchors, group them by destination URL, and calculate each phrase's share.
Working anchor ranges (per destination URL):
| Anchor Type | Working Range | Red Flag |
|---|---|---|
| Descriptive / Partial Match | 50 to 60% | Below 40% |
| Branded | 20 to 25% | Below 10% |
| Exact Match | 10 to 15% | Above 25% |
| Generic ("click here") | Under 5% | Above 10% |
| Naked URL | Under 5% | Above 10% |
Google publishes no anchor ratio.
These are practitioner guardrails.
Zyppy's data supports the general direction: more varied anchors went with more clicks, and having some exact-match anchors was also associated with more traffic.
Fix process:
Replace every generic anchor with descriptive text.
If one phrase makes up most links to a page, rewrite some with synonyms or longer descriptions.
Avoid using the identical anchor for the same destination from many pages.
For the full framework, see the anchor text optimization guide.
For writing anchors in context, see semantic anchor text strategies.
Benchmark: no generic anchors, no single phrase dominating any destination, and every anchor reading naturally.
Step 7: Check Links Per Page
Very high link counts spread equity thinly; very low counts leave pages as dead ends.
How to check:
Export outgoing internal links per page from your crawl and sort them.
Flag pages with an unusually high total, including navigation, footer and sidebar links, and pages with fewer than 3 contextual outgoing links.
What to fix:
On link-heavy pages, separate template links (navigation, footer) from contextual body links.
Trim footer and sidebar links first.
On link-poor pages, add 3 to 5 relevant contextual links.
Note what Zyppy actually measured: incoming internal links per URL.
Clicks rose up to about 45 to 50 incoming links and then fell, which the author partly linked to sitewide navigation links pointing at low-traffic pages.
Use it as a warning against linking everything from everywhere, not as a hard per-page cap.
Benchmark: every page has at least 3 contextual outgoing links; template links are kept lean.
Step 8: Verify Link Equity Flow
Equity flows from pages with strong backlinks to the pages they link to.
Check that the flow is intentional.
How to check:
In Google Search Console, open Links and look at Top linked pages under External links.
These pages hold the most external equity.
Check where their internal links point: priority pages (tools, services, pillars) or low-value pages such as tag archives?
Also check for nofollow on internal links.
Nofollow does not redirect equity to other links on the page; it just stops that link from passing it.
See why nofollow wastes equity on internal links.
Fix process:
Add 2 to 3 contextual links from your top 10 externally linked pages to your priority pages.
Remove nofollow from internal links unless they point to login pages or similar.
If strong pages mostly link to low-value destinations, redirect that attention with new links.
Benchmark: every priority page receives at least one link from a strong page; no unnecessary internal nofollow.
Step 9: Validate Topic Cluster Connections
If you use topic clusters, check that the cluster is wired correctly.
What to check:
- Every cluster article links to its pillar page.
- The pillar links to every cluster article.
- Cluster articles link to 1 to 3 related articles in the same topic.
- No cluster article is isolated.
How to check:
Build a matrix in your spreadsheet with pillars across the top and cluster articles down the side.
Mark whether links exist in both directions.
Every empty cell is a missing connection.
If you don't use clusters yet, our comparison of topic clusters vs silo structures explains which model fits.
The internal linking guide covers building clusters from scratch.
Benchmark: 100% two-way linking between pillars and their clusters, plus 2 to 3 sideways links per cluster article.
Step 10: Check AI Crawler Accessibility
AI search tools such as ChatGPT search, Claude, Perplexity and Google's AI Mode fetch pages through their own crawlers.
If those crawlers are blocked, or your links are invisible to them, your pages can't be cited.
What to check in robots.txt:
AI companies now run separate crawlers for training and for search.
Decide which you allow:
- OpenAI: GPTBot (training), OAI-SearchBot (ChatGPT search) and ChatGPT-User (user requests)
- Anthropic: ClaudeBot (training), Claude-SearchBot (search) and Claude-User (user requests)
- Perplexity: PerplexityBot
- Google: Google-Extended controls use of your content for Gemini training and grounding. It does not affect Google Search or AI Overviews, which use Googlebot.
To appear in AI answers, allow at least the search crawlers.
Older guides list "anthropic-ai"; Anthropic no longer documents it.
Use the robots.txt generator to build the file.
What to check in your HTML:
A Vercel and MERJ study found that none of the major AI crawlers rendered JavaScript.
View your page source with scripts disabled and confirm that navigation, related posts and in-body links are present in the HTML.
Descriptive anchors help here too.
A phrase like "learn how to fix orphan pages on your site" describes the destination for any system that reads it, which is the idea behind the semantic anchor text guide.
Benchmark: the AI search crawlers you want are allowed; internal links are in server-rendered HTML; important pages are within 3 clicks.
Your Complete Internal Link Audit Checklist
Use this as your monthly audit template:
- Crawl complete: full site crawled, link data exported
- Broken links: zero internal links returning 404 or 5xx
- Redirect chains: zero chains; links updated to final URLs
- Orphan pages: every indexable page has 3+ incoming internal links
- Crawl depth: all priority pages within 3 clicks of the homepage
- Anchor text: no single phrase dominating a destination; zero generic anchors
- Link count: no page with fewer than 3 contextual outgoing links; template links lean
- Equity flow: strong pages link to priority pages; no unnecessary internal nofollow
- Cluster integrity: two-way pillar and cluster links complete
- AI access: AI search crawlers allowed; links present in server-rendered HTML
- New content linked: every page published this month has 3+ incoming links
- Changes documented: fixes logged in the spreadsheet with before and after
For the condensed version, see the AI-ready internal link audit checklist.
That page is the quick-reference card; this guide is the detailed walkthrough.
Common Audit Findings and Fix Priority
These are the issues that come up most often, ordered by impact:
Priority 1 (fix immediately):
- Broken links to priority pages, which stop equity reaching your money pages
- Orphan pages that target valuable keywords
Priority 2 (fix this week):
- Redirect chains of more than 2 hops
- Generic anchors on links to priority pages
- Priority pages at crawl depth 4+
Priority 3 (fix this month):
- One anchor phrase dominating links to a page
- Bloated footer or sidebar link blocks
- Missing sideways cluster links
- Nofollow on internal links
Priority 4 (ongoing maintenance):
- New content not linked from existing pages
- Old content not linking to new pages
- AI crawler blocks in robots.txt
How Often Should You Audit?
Frequency depends on how much you publish.
- 1 to 4 articles a month: full audit quarterly, broken link check monthly
- Weekly publishing: full audit monthly
- Daily publishing: automated broken link monitoring plus a monthly review of anchors, clusters and equity flow
At minimum, run the internal link checker monthly.
Starting a crawl takes a couple of minutes, and reviewing the word cloud and link data takes about 10 more.
Frequently Asked Questions
How often should you do an internal link audit?
Check broken links and orphan pages monthly and run the full 10-step audit quarterly.
Sites publishing daily should automate broken link detection and review anchors, clusters and equity flow every month.
What tools can I use for a free internal link audit?
The SEOShouts Internal Link Checker crawls up to 500 pages for free and includes an anchor text word cloud.
Google Search Console shows internal link counts.
Screaming Frog's free version crawls up to 500 URLs with full exports.
Together they cover a complete audit for most small and mid-size sites.
What is an orphan page and how do I find one?
An orphan page has no internal links pointing to it from other pages on your site.
Compare your sitemap URLs with your crawl any URL in the sitemap but not found in the crawl is likely orphaned.
Add at least 3 relevant internal links to each one.
See our orphan pages guide for the full process.
How many internal links should each page have?
Zyppy's study of 23 million internal links found Google clicks rose as a URL received more internal links, up to about 45 to 50, then declined.
For body content, aim for 3 to 5 contextual links per 1,000 words.
Our guide on how many internal links per page covers different site sizes.
Can a bad internal link structure hurt rankings?
Yes.
Orphan pages are hard for Google to discover, broken links waste crawls, long redirect chains can stop Googlebot after 10 hops, and generic anchors give Google no context.
Fixing these is usually faster than earning new backlinks.
Get More SEO Insights
Join 10,000+ marketers receiving weekly SEO strategies and tips directly in their inbox.



