Here's a quick test: pick five random posts from deep in your blog archive, ones from two or three years ago. Now try to remember the last time anything on your site linked to them.
If you're drawing a blank, you're not alone. Most sites accumulate a graveyard of pages that used to get a link or two from the homepage or a category page, and then quietly stopped getting linked to as the site grew and new content buried them. Nobody deleted these pages. Nobody's actively linking to them either. They're just sitting there, invisible to both readers and search engines that would otherwise crawl in from another page.
That's usually the first sign you need an internal linking audit. A few other signs: you've migrated URLs recently and never systematically checked what broke, you've got a handful of high-value pages that aren't ranking despite good content, or you genuinely have no idea how many pages on your site currently get zero internal links.
The audit itself is seven steps: crawl the site, map orphan pages, check anchor text, measure link depth, find under-linked pages, find and fix broken links, and check that each link sits in related content. This post walks through each one, covers the redirect, relink or remove decision for every broken link you find, gives you an embeddable checklist, and tells you how to prioritize what you find so you're not staring at a spreadsheet of 200 issues with no idea where to start. If your site is small or you've never done this before, there's a lighter monthly check further down that needs nothing but Search Console and your WordPress dashboard.
One thing worth saying before we get into it: this isn't a one-and-done project. It's closer to a recurring maintenance task, like changing the oil in a car. The first pass on a site that's never had one usually turns up the most issues and takes the longest. Every round after that should be faster, because you're catching problems while they're still small instead of after years of neglect.
Last updated: October 13, 2026.
Why internal linking actually affects rankings
It's worth being specific about the mechanism here, because "internal linking matters for SEO" gets repeated so often it stops meaning anything.
Link equity flow. When one page links to another, it passes along some of its own authority signal. A page with lots of internal links pointing to it, especially from other authoritative pages on your site, tends to be treated as more important than a page nobody links to. Your homepage and top pages usually accumulate the most external links and authority — internal linking is how you route some of that value to the pages you actually want to rank.
Crawl depth and discovery. Search engine crawlers find new and updated pages primarily by following links. A page that's four or five clicks deep from your homepage, with no other pages linking to it, gets crawled less often and discovered more slowly than a page one or two clicks away. If a page is never linked to at all — a true orphan — a crawler might not find it through internal navigation at all, only through your sitemap, if it's even in there.
Context and relevance signals. The anchor text and surrounding content of an internal link tells search engines something about what the linked page is about. A page that's linked to consistently with varied, relevant anchor text builds a clearer topical signal than a page that's never referenced by name anywhere else on the site.
None of this is exotic. It's the same logic that made backlinks matter for the whole web, applied to the links you fully control within your own site.
There's a fourth, less-discussed reason this matters: user behavior signals. A reader who lands on a page, finds no relevant next step, and leaves isn't just a lost pageview — that short, single-page visit is itself a weak signal that the page didn't fully satisfy them. A well-linked page that guides a reader to two or three genuinely relevant next reads tends to keep people on the site longer and gives them more chances to find what they actually came for. None of this is a direct, documented ranking factor the way link equity flow is, but it's a real business reason to care about internal linking even before you get to the more technical arguments.
The step-by-step audit process
Step 1: Crawl your entire site
Start with a full crawl using a tool like Screaming Frog (free for up to 500 URLs, licensed for more) or your SEO platform's built-in site audit (Ahrefs and Semrush both include this). The crawl needs to follow every internal link it finds, the same way a search engine bot would, and record how many inbound and outbound internal links each page has, plus the HTTP status of every link target.
Export this as your baseline dataset. You'll be filtering and sorting it a lot over the next few steps, so a spreadsheet or the tool's built-in filtering is your workspace for the rest of the audit.
Step 2: Map orphan pages
Orphan pages are pages that exist and are indexable, but have zero internal links pointing to them from anywhere else on the site. Most crawlers will flag these directly, but if yours doesn't have a built-in report, cross-reference your full URL list (from your sitemap or CMS export) against the list of pages your crawler actually discovered by following links. Anything in your sitemap but never reached by crawling is a strong orphan candidate.
Search Console gives you a second, free view. Open Links and look at the Internal links table, which counts the internal links Google found pointing at each of your pages, from a sample capped at 1,000 rows. Sort it from lowest to highest: a page you want to rank with one link, or missing from the table, needs attention.
Pay particular attention here to pages that used to get traffic and rankings but have quietly dropped — orphaning is a common, easy-to-miss cause.
Step 3: Check anchor text diversity
Pull a report of every internal link pointing to your most important pages, along with the anchor text used. You're looking for two opposite problems: anchor text that's so repetitive it looks manipulative (the exact same exact-match phrase every single time), and anchor text so generic ("click here," "read more") that it carries no topical signal at all.
Healthy anchor text profiles use natural variation — the target keyword sometimes, close variants and related phrases other times, and the occasional generic link mixed in because that's how humans actually write.
A quick gut check for any single link: if you copied just the anchor text out of context — no surrounding sentence, no page it's on — would you have any idea what page it links to? If not, it's too generic.
Step 4: Measure link depth
Link depth (or crawl depth) is how many clicks it takes to reach a page starting from your homepage, following the shortest available path. Most crawlers calculate this automatically. As a rule of thumb, your most important pages — the ones you most want to rank — should sit within two to three clicks of the homepage. Pages sitting five or six clicks deep are both harder for crawlers to prioritize and harder for actual visitors to stumble onto through navigation.
Sort your crawl data by depth and cross-reference against pages you consider high-priority. Any mismatch (an important page buried deep) is a clear fix candidate.
Step 5: Identify over-linked and under-linked pages
Plot your pages by number of inbound internal links. You'll typically see a small cluster of heavily-linked pages (usually the homepage, main category pages, and a few cornerstone posts) and a long tail of pages with just one or two inbound links, or none.
The fix isn't to link everything equally — that's neither realistic nor useful. It's to make sure the pages you actually want to rank are getting a reasonable share of internal links relative to their importance, and that nothing genuinely valuable is sitting in that long tail by accident rather than by design.
Look at outbound links per page while you're here, too. There's no correct number of internal links for a post, but there are two failure modes. A 2,000-word post with no internal links never once points the reader at something else you've written. A post with forty links crammed in reads like a link directory, and each individual link carries less weight. Link where it genuinely helps the reader and let the count fall where it falls.
Step 6: Find broken internal links
While you're crawling anyway, filter for internal links whose target returns a 4xx or 5xx status, and for links that pass through a redirect or a redirect chain. These usually pile up after content deletions or URL structure changes nobody went back and fully cleaned up. Every broken internal link is link equity going nowhere and a small but real dent in user experience. The next section covers where they come from and how to fix each one.
Step 7: Check contextual relevance, not just link count
A page can have plenty of internal links pointing to it and still have a linking problem, if none of those links come from genuinely related content. Ten inbound links from completely unrelated pages, using awkward, forced anchor text, send a weaker topical signal than three or four links from closely related articles using natural phrasing.
Spot-check your top pages by reading the actual sentences the links sit in, not just the count. If a link feels shoehorned in — added purely to hit a linking quota rather than because it genuinely helps the reader — it's worth reconsidering whether it belongs there at all, or whether a different, more relevant page should get that link slot instead. The question to ask: would a reader interested in this paragraph actually want to click this link right now?
How to find and fix broken internal links
A broken internal link seems small. Across a few hundred posts and a few years of edits, it becomes a slow, quiet problem: Googlebot spends crawl time on dead ends, readers who click a promised explanation land on a 404 and leave, and the authority the link should pass goes nowhere.
Where they come from
Nobody sets out to build broken links. They're side effects of normal site maintenance:
- Deleted or unpublished content. A post gets removed in a cleanup, and the six other posts that linked to it now point at nothing.
- Changed URLs or slugs. A typo fixed in a slug, or a move from
/blog/post-nameto/resources/post-name, without a redirect and without updating the links pointing at the old URL. - Migrations and redesigns. The single biggest source. A new CMS, a new category structure or a new theme changes URLs at scale, and if nobody audits internal links during the migration you inherit hundreds of dead links overnight.
- Widgets and boilerplate. Sidebar widgets, "related posts" modules and footer links get set once and forgotten. If their target moves, one mistake repeats on every page the widget appears on.
- Plugin and permalink changes. An SEO plugin update, a permalink setting change or a theme switch can quietly alter how URLs are generated.
How to find them
Search Console. Open Indexing → Pages and look for Not found (404). This lists URLs Google tried to crawl and couldn't find. Inspect any of them and the URL Inspection report shows a referring page Google found the link on. It only covers what Google has already crawled and flagged, so treat it as a starting point rather than a complete audit. How to fix 404 errors in Google Search Console covers which of those to leave alone.
A crawler. The crawl from Step 1 is the complete version: filter by client error status codes and export two columns, the source page where the broken link lives and the dead destination. That spreadsheet is your fix list.
Status codes worth flagging: 404 (the page doesn't exist), 5xx server errors (often temporary, so recheck before assuming the page is gone), soft 404s (a page that returns 200 but shows an error or empty content, which a status filter won't catch), and 301s, where the fix is to link straight to the final URL.
One page at a time. A link-checking browser extension or a single-page checker is fine for reviewing an article before you publish it, and a bad way to audit a whole site. Clicking every link by hand doesn't scale past about ten pages.
Redirect, relink or remove
Each broken link gets one of three fixes:
- Redirect when the content moved and an equivalent page exists. A 301 from the old URL to the new one preserves link equity and fixes every link pointing at the old URL at once. Don't stack them: a chain (A redirects to B, which redirects to C) hurts both visitors and crawling, and you should still update your own links to point straight at the final URL.
- Relink when the content is gone but a related page serves the same reader. Edit each source page to point somewhere useful, and check the anchor text still fits the new destination.
- Remove when nothing relevant exists. Forcing a link to an unrelated page does more harm than a missing link. Delete the link, let the sentence stand on its own, and note whether the anchor text points at a content gap worth filling later.
The quick rule: direct equivalent exists → redirect. Related-but-different page exists → relink. Nothing relevant → remove.
Which ones to fix first
If your first crawl turns up 300 broken links, don't try to fix them in one sitting.
- Links on your highest-traffic pages. A broken link in your top landing page costs you every day it stays broken; one in a post with ten visits a month is a rounding error. Cross-reference the report with your analytics or Search Console.
- Links in sitewide elements. A dead link in a footer, sidebar or related-posts module renders on every page; one edit cleans up hundreds of instances.
- Dead pages that had real equity. Pages with many internal links pointing at them, or that used to rank, deserve a proper restore or a redirect to their closest replacement rather than a deleted link.
- Everything else, as time allows.
Keep them from coming back
- Check before you delete or move. Before changing a URL or deleting a page, search your crawl data for every page that links to it. This one habit prevents most of the damage.
- Make the redirect a required step. Whenever a URL changes or a page goes, the redirect is part of the change, not a cleanup task for later.
- Watch navigation and related-posts modules whenever you restructure, since a single broken link there does outsized damage.
- Set a cadence. Monthly suits most active blogs, weekly if you publish daily, quarterly if the site rarely changes.
The internal linking audit checklist
Here's the condensed, embeddable version — save it or print it and work through it top to bottom.
- [ ] Run a full site crawl and export inbound/outbound internal link counts per page
- [ ] Identify all orphan pages (zero inbound internal links)
- [ ] Cross-reference sitemap URLs against crawled URLs to catch orphans a crawler might miss
- [ ] Sort Search Console's Internal links report from lowest to highest and note pages you want to rank that have one link or are missing
- [ ] Pull anchor text report for your top 20 priority pages
- [ ] Flag anchor text that's overly repetitive (exact-match, same phrase every time)
- [ ] Flag anchor text that's too generic to carry topical signal
- [ ] Calculate link depth (clicks from homepage) for every page
- [ ] Flag high-priority pages sitting deeper than 3 clicks from the homepage
- [ ] Rank pages by inbound internal link count, high to low
- [ ] Identify under-linked pages that should be priority content
- [ ] Identify over-linked pages where link equity might be spread too thin elsewhere
- [ ] Run a broken internal link report and list every 404, 5xx and redirect chain
- [ ] Decide redirect, relink or remove for each broken link, starting with high-traffic pages and sitewide elements
- [ ] Check that recently published content links back to relevant older pages
- [ ] Check that older cornerstone content has been updated to link forward to newer relevant content
- [ ] Spot-check top pages for contextual relevance of existing links, not just count
- [ ] Remove or replace links that feel forced rather than genuinely useful to the reader
- [ ] Document findings with priority level (quick win vs. structural fix) for each issue
A lighter monthly check for small sites
If your site has fifty to a hundred posts, or this is your first time, you don't need a crawler to get most of the value. This version takes an afternoon the first time and thirty minutes to an hour a month after that.
- List your most important pages. Your ten to twenty most-visited posts from analytics or Search Console, plus your homepage, pricing or service pages.
- Read each one. Are there paragraphs that mention a topic you've already written a full post about, without linking to it? Add the link. Does the page link to anything else on your site at all?
- Search your own content. Before publishing a new post, search your WordPress dashboard for its topic. You'll often find an older post that should link to the new one, and vice versa. A
site:yourdomain.com "phrase"search on Google does the same job across everything Google has indexed. - Check Search Console's Internal links report. Sort from lowest to highest and give at least five of the least-linked pages a link from related content.
- Replace generic anchors like "click here" and "read more" on your top pages with descriptive text.
- Repeat monthly, focusing on new posts and on any page whose traffic has dropped.
The mistakes that show up again and again on a first check:
- Linking to the homepage by default. It already gets links from your navigation, logo and footer. Link to something more specific.
- Only linking to old, established posts. New posts need internal links more, since they have no authority yet and depend on links to get discovered and crawled.
- Treating linking as a one-time task. Every new post is a chance to add a link to it from an older, related one.
- Over-optimizing anchors. Exact-match keywords in every link read unnaturally. Vary the phrasing.
- Not checking after a redesign. A new theme or navigation change is the single most common time for internal links to break or disappear.
When checking by hand starts taking longer than writing your next post, that's the point to move to a crawler and the full audit above.
Prioritizing fixes: quick wins vs. long-term restructuring
Once you have a full list of issues, resist the urge to tackle them in the order you found them. Sort into two buckets instead.
Quick wins are fixes you can make in minutes without touching site structure: adding a link from an existing high-authority page to an orphan page, fixing a handful of broken links, replacing generic "click here" anchors with something more descriptive on your top pages. Do these first. They're low-risk, fast, and give you early proof the audit is worth the time.
Long-term restructuring covers bigger issues: a whole content silo that's poorly connected to the rest of the site, a navigation structure that buries important categories too deep, or a pattern of thin, overlapping pages that should probably be consolidated rather than just linked together. These take planning, sometimes a content consolidation project, and they're not something you fix in an afternoon.
A practical way to sequence this: fix every orphan page and broken link first (genuinely quick, genuinely high-impact), then move to anchor text and depth issues on your top 20-30 priority pages, then tackle structural issues as a separate project with its own timeline.
It helps to actually score each issue rather than relying on gut feel. A simple two-axis approach works well: rate each issue's likely impact (how much traffic or ranking potential the affected page has) against its effort to fix (minutes versus days). Anything high-impact and low-effort goes first, by definition. Anything low-impact and high-effort goes last, or gets dropped entirely if you're being honest about where your time is best spent. The middle two quadrants — high-impact/high-effort and low-impact/low-effort — are where judgment calls happen, and that's fine; the point of scoring isn't perfect precision, it's avoiding the trap of fixing the easiest-to-find issues instead of the most valuable ones.
Tools that speed this up
Doing every step above by hand in a spreadsheet is possible on a small site and painful on a large one. A few tools make specific steps faster:
Screaming Frog remains the most thorough free-to-start option for the crawl, depth, anchor text and broken link steps, with visualizations that make structural problems easy to spot. Ahrefs and Semrush fold similar reporting into their broader Site Audit tools if you're already paying for one of them, and they also show broken links on external sites pointing at pages you deleted. For WordPress sites, Link Whisper speeds up the fix stage specifically — its orphan page report and one-click linking mean you're not manually finding the right page to link from once you already know what's broken. Best internal linking tools compares these and a few more.
For an ongoing rather than one-time audit, RankHive runs the orphan and under-linked part of this checklist every week on a WordPress site, rather than waiting for you to run the next quarterly crawl. It finds pages and new posts with few internal links pointing to them and drafts a link from a related post, with the anchor text written. You approve or discard each one; approved links are written to WordPress and logged, so you can revert any of them. It does not check for broken links, so keep a crawler for that part. How to automate internal linking on WordPress covers that weekly workflow in detail.
A plausible before-and-after example
This is an illustrative scenario, not a documented case. Picture a mid-sized blog with around 400 published posts, built up over several years with no formal internal linking strategy — just whatever links a writer happened to add while drafting.
An audit turns up roughly 60 orphan pages (about 15% of the site), a handful of cornerstone guides sitting five or six clicks deep because they'd been buried under newer category restructuring, and a cluster of about a dozen high-priority pages that had only one or two inbound links each despite being genuinely strong content.
The team spends a week on quick wins: linking every orphan page from at least one relevant, higher-authority post, fixing 40-some broken links accumulated from a URL structure change two years earlier, and bringing the buried cornerstone guides back within two clicks of the homepage via updated category and navigation links. Over the following couple of months, the thing to watch is whether the previously under-linked priority pages improve. The well-established idea is that pages the site itself treats as more important, via internal links, tend to perform better, but results vary by site and there is no guaranteed timeline. The structural fixes (consolidating a couple of overlapping content silos) get scheduled as a longer project for the following quarter.
The numbers are invented, but the shape of it — a meaningful chunk of orphan pages, some easy wins, and a smaller set of real structural work — is a reasonable thing to expect from a first audit on a site of this size.
FAQ
How long does a full internal linking audit take? For a site under 500 pages, expect a day or two for the crawl-and-analysis phase using a tool like Screaming Frog, plus additional time for implementing fixes, which varies a lot depending on how many issues you find and whether you're doing them by hand. The lighter manual check takes two to four hours the first time on a site of fifty to a hundred posts.
How often should I run one? Quarterly is a reasonable cadence for a full audit on an actively growing site. If you're publishing very frequently (multiple times a week), add a lighter monthly check specifically for new orphan pages and broken links, since those accumulate fastest right after publishing and restructuring.
What's the difference between a broken internal link and an orphan page? A broken internal link points to a page that no longer exists. An orphan page exists but has no internal links pointing to it at all, so it's hard for both users and search engines to find. They're different problems, and the audit above catches both.
Should I redirect every broken link I find? No. Redirects make sense when there's a genuine replacement page. If there isn't, redirecting to an unrelated page just to avoid a 404 creates a confusing experience and can be treated as a soft 404 anyway. Sometimes removing the link is the more honest fix.
How many internal links should a page have? There's no fixed number. A long post with zero internal links is missing obvious ones; a post with dozens of forced links reads like a directory and dilutes each one. Prioritize relevance over hitting a target count — a handful of genuinely useful links beats twenty tenuous ones.
Should I worry about internal linking on a small site (under 50 pages)? Less urgently, but it's still worth the monthly check. Small sites are less likely to develop true orphan pages simply because there's less content to get lost in, but it's still worth confirming your most important pages are easy to reach from the homepage.
Can fixing internal linking issues actually improve rankings on its own? It can help, particularly for pages that were previously orphaned or badly under-linked, since you're improving both crawl discovery and topical relevance signals. It's rarely a silver bullet on its own — it works best alongside solid content and other technical SEO fundamentals, not as a replacement for them.
How is an internal linking audit different from a backlink audit or a technical SEO audit? An internal linking audit looks at links between pages on your own site. A backlink audit looks at links from other websites pointing to yours. A general technical SEO audit covers a much wider range (site speed, indexability, structured data, mobile usability, and more), with internal linking as one section among many. This kind of audit goes deep on link structure, anchor text, crawl depth and broken links, which is useful when you already suspect linking is a specific weak point.
Do I need special tools, or can I do this in a spreadsheet? A spreadsheet works for the analysis and prioritization stages, but you still need something to actually crawl the site and generate the raw link data — nobody manually clicks through every page counting links. A free crawler like Screaming Frog (up to 500 URLs) plus a spreadsheet for organizing findings is a completely reasonable setup for a first audit on a small-to-mid-sized site.
What should I do first if I've never audited internal linking before and the site is large? Start narrow rather than trying to audit everything at once. Pick your twenty highest-priority pages — the ones driving the most traffic or revenue, or the ones you most want to rank better — and run the full checklist against just those first. You'll get real, actionable findings fast, and you can expand to the rest of the site once you've proven the process works and fixed the highest-value issues.
Can this kind of audit help pages that are already ranking well? Yes, though the case is different — for a page that already ranks, the work is less about winning a crawl and more about making sure it's channeling some of its accumulated authority toward related pages that need the help. A well-ranking cornerstone page that links to nothing else is a wasted opportunity to lift the rest of that topic cluster, and it's often the single highest-leverage fix on the whole list, precisely because that page already has authority worth sharing.
Related reading
- Internal Link Checker — map how a section of your site links together, free
- How to automate WordPress internal linking — the weekly workflow, with approval before anything ships
- Best internal linking tools — what each one automates
- How to fix 404 errors in Google Search Console — which 404s to leave alone
Your job after the first audit is keeping new orphans and dead links from piling up. Re-run the checklist above every quarter by hand, or keep a crawler for the broken links and let RankHive find the under-linked pages each week and ship the links after you approve them.
