An internal linking audit checks whether important pages are reachable through useful links on your own website. Compare published URLs with a crawl from the homepage, investigate orphan candidates and broken destinations, then review contextual links and anchor text. Fix missing paths to useful pages first. A sitemap entry or zero links from article bodies alone does not establish whether a page is orphaned.
You publish a new article. It is live, the URL works, and the sitemap includes it. Then you open the blog and find it sitting behind months of older posts.
We had that problem on SavageAudit. The cause was simple: ten featured posts appeared before the newer articles. We kept one lead story and let the remaining list follow publication date.
That fixed the listing order. It did not prove that our internal linking was good everywhere else.
An internal linking audit checks the actual paths between pages. Start with whether people and crawlers can reach an important page, then check whether the links around it explain why someone should open it.
What is an internal linking audit?
An internal linking audit reviews links between pages on the same website. It checks discoverability, destination status, crawl depth, anchor text, and relevance. The result should name a source page, a destination page, a specific change, and a way to verify that change.
Google uses links to discover pages and understand their relevance. Its link best practices recommend giving important pages links from elsewhere on the site and using descriptive text in context.
Start with public pages that have a job to do: a useful guide, product page, category, service, or documentation page. Private account pages do not need the same discovery path.
Orphan, buried, or weakly linked: what is the difference?
| Finding | Meaning | What you need to verify |
|---|---|---|
| Orphan candidate | A known URL was not reached through the internal crawl | Crawl settings, site coverage, rendering, and whether a real path exists |
| Confirmed orphan page | A page has no reachable internal path from the connected site in the verified scope | Whether it should be connected, retired, or kept outside search |
| Buried page | An internal path exists, but reaching the page requires several steps | The shortest actual path from an entry page |
| No contextual article links | No links were found in the article bodies you checked | Listing, navigation, related blocks, and other page types may still link to it |
| Broken internal link | The linked destination fails or no longer serves the intended content | The source link and final response, not just the destination string |
A group of isolated pages can link to each other and still have no path from the main site. Counting inbound links without checking reachability can miss that problem.
1. Build a URL inventory before crawling
Collect the public URLs you expect the site to contain. Use the CMS, sitemap, and important product or marketplace routes. Add URLs seen in Search Console or GA4 when you have access, while remembering that those reports do not list every published page.
Keep the source of each URL. A page found in an old sitemap needs a different investigation from a new article in the CMS.
Choose a consistent URL format. Resolve relative links against the source page, remove fragments when identifying the destination document, and record redirects. Do not automatically strip every query parameter: a filter or language parameter can change the page's meaning.
Compare canonical versions deliberately. If an old URL redirects to the intended destination, preserve that relationship in your notes rather than counting both as unrelated pages.
Our content inventory guide explains how to decide what belongs in the inventory. This audit adds the paths between those pages.
2. Crawl from the homepage and compare the results
Run a link-following crawl from the homepage. Check the allowed hosts, robots settings, authentication, rendering mode, crawl limits, and excluded paths first. A crawl that stops early cannot establish that the remaining pages are orphaned.
Compare the URLs reached through internal links with the inventory. Investigate the missing set. Opening each missing URL directly tells you whether it exists; it does not establish an internal path to it.
Tools can also discover URLs through a sitemap or analytics integration. Keep that discovery source separate from the internal-link path. A sitemap can reveal an orphan candidate that the normal crawl would never reach.
If you use Screaming Frog, its orphan-page tutorial describes combining sitemap and analytics sources with a crawl, then running Crawl Analysis. Review the recorded discovery source before accepting a finding.
For a small site, you can do a bounded manual check: follow links from the homepage, blog archive, relevant category, and related articles. State which paths you checked. Do not describe a handful of pages as a complete site crawl.
Does a sitemap entry stop a page being orphaned?
No. A sitemap entry helps expose a URL to systems that read the sitemap. It does not create a navigable link from another HTML page. A page can appear in a sitemap and still lack an internal path through the website.
The reverse is also possible: a page can be linked from several articles while missing from the sitemap. These are separate checks.
3. Inspect links in the page people actually receive
For each important path, check the source page and the final destination. Confirm that the link is visible, useful, and points to the intended public canonical URL.
Use a normal anchor with an href. For example, an article discussing crawl discovery could link to this guide like this:
<a href="/blog/internal-linking-audit">run an internal linking audit</a>The link text explains the destination. A label such as “click here” gives a reader less context, especially when several links appear together.
Google's link guidance distinguishes standard anchors from script-driven elements that may not expose a crawlable URL. For an agent that fetches HTML without running JavaScript, including the link and useful surrounding text in the initial response also avoids a dependency on client rendering.
Check rendered output when the site inserts links with JavaScript. A card can look correct after you log in while the anonymous response contains no destination. Our JavaScript SEO checklist covers that branch of the audit.
4. Separate contextual links from template links
A footer, archive, category, or related-article block can provide a real path. Count those paths accurately. Then ask whether the main content helps a reader choose the next useful page.
Our editorial rule is to add a link where it answers a likely follow-up question. A passage about checking index status can point to a specific indexing guide. A passage about two URLs answering the same query can point to a cannibalization investigation.
Do not add a paragraph of unrelated keyword links to every post. Google does not prescribe a universal ideal number of links. Relevance and clear destinations are better review criteria than a quota.
For marketplace content, keep the destination's purpose clear. A buying guide can link to the relevant category when someone is ready to browse. The category should retain its product-discovery role; the guide should answer the buying question rather than repeat the category copy.
A real check across our 101 published blogs
On 26 October 2026, before publishing this guide, we checked the saved body-link annotations and curated related links across 101 published SavageAudit posts. We counted distinct source articles pointing to three recent posts, rather than counting repeated links from the same article.
| Recent article | Other article bodies linking to it | Curated related-link sources |
|---|---|---|
| Crawled, Currently Not Indexed | 0 | 0 |
| Keyword Cannibalization | 1 | 1 |
| Compare Website Performance | 0 | 0 |
The single source linking to the cannibalization article in both columns was our indexing guide. That is one source article with two placements, not two independent source pages.
This was a CMS content-link check, not a complete web crawl. It excluded automatic recommendations, navigation, footers, archive pages, and non-blog pages. All three articles were reachable through the blog listing. The two zeros therefore identify opportunities to review contextual linking; they do not prove orphan pages.
The earlier listing problem was different again. Our indexing guide had appeared at position 11 behind ten featured posts. After we reduced featured posts to one, it appeared at position 2, immediately after the lead story. That changed card order. We did not measure a change in crawl depth, rankings, or traffic from that adjustment.
These distinctions stop a useful audit from becoming an exaggerated success story. Record the path you observed and the scope of the check before choosing the fix.
5. Prioritize fixes by page purpose and evidence
Fix confirmed broken paths to important pages first. Then review useful pages with no reachable internal path, followed by pages that are hard to navigate to or missing a relevant contextual introduction.
| Evidence | Action to consider | Verification |
|---|---|---|
| A useful guide has no reachable internal path | Link from a relevant connected page or hub | A new crawl reaches it from the intended entry point |
| An article links to a deleted destination | Update the source to a suitable replacement, or remove the link | Follow the edited link and check its final response |
| A link goes through an avoidable redirect | Point directly to the intended final URL | Source markup contains the final URL |
| A page has only an archive link and a relevant older guide exists | Add a contextual link where the follow-up belongs | Read the source passage and follow the published link |
| An obsolete URL has no useful replacement | Retire it deliberately and remove stale internal references | Intended response and remaining references match the decision |
| A linked page is inaccessible or excluded from indexing | Investigate access and directives before adding more links | Live fetch and URL Inspection show the intended conditions |
Avoid redirecting unrelated deleted pages to the homepage just to remove a warning. A replacement should serve the visitor's original purpose. If pages substantially duplicate one another, use the keyword cannibalization workflow before changing their links or canonical setup.
An internal-link fix also does not explain every indexing exclusion. If Google has crawled the page but not indexed it, use our crawled, currently not indexed guide to check the recorded version, rendering, and canonical signals.
How do internal links support SEO, AEO, GEO, and AI agents?
Clear links connect an answer to its supporting explanation. For a reader or an assistant following a page, descriptive anchor text makes the destination's subject easier to understand. Stable URLs, accessible text, and ordinary HTML links make that route easier to inspect.
For Google's AI Overviews and AI Mode, Google's AI features documentation recommends established SEO practices, including internal links and text that can be accessed. A supporting page must be indexed and eligible for a Search snippet. No special AI schema or new text file is required for those features.
Use normal headings, accurate dates, sources beside factual claims, and visible answers that make sense on their own. Structured data should describe the content people can actually read. These choices make the article easier to interpret; they do not guarantee that an answer engine will select it.
If you ask an AI agent to help audit links, give it a bounded job: compare the supplied inventory with observed paths, quote the source passage, propose a relevant destination, and mark anything it could not verify. Review suggested edits before publishing them. A plausible link recommendation is not evidence that the destination exists or says what the agent claims.
What should you check after changing internal links?
Reopen the published source anonymously. Follow the link to its final URL and check the anchor text in the delivered HTML. Repeat the relevant crawl with the same settings so the before-and-after comparison means something.
| Check | Evidence to keep |
|---|---|
| Link is published | Source URL and the visible passage |
| Destination is correct | Final URL and response status |
| Path is reachable | Entry point and sequence of linked pages |
| Content remains understandable | Anchor text and surrounding explanation |
| Crawl finding changed | Same-scope crawl before and after the edit |
| Search performance changed | Dated Search Console observations, reported separately from the link change |
Monitor discovery and performance separately. A new internal link can be verified immediately; Google may process the change later. A ranking or traffic movement after an edit is an observation, not proof that the link caused it.
For a broader review, start with the technical SEO audit checklist. For this audit, choose one important page, find a useful route to it, and verify the published path before moving to the next finding.
Common questions
What is the first step in an internal linking audit?
Build an inventory of public URLs that should exist, then crawl from the homepage with a clear scope. Compare expected pages with pages reached through internal links. Without the inventory, a crawler can miss the pages you most need to investigate.
How do I find orphan pages?
Compare known URLs from the CMS, sitemap, and available search or analytics reports against URLs reached through an internal crawl. Treat missing pages as candidates until you rule out crawl limits, excluded paths, access issues, and rendering differences.
Is a page with no contextual links an orphan page?
Not necessarily. The page may still be linked from a category, archive, navigation menu, or related-article block. Check reachability separately from contextual links in article bodies.
How many internal links should a blog post have?
There is no universal target. Link when another page helps the reader understand a point or complete the next step. Use clear anchor text and avoid adding irrelevant links to reach a count.
Can internal linking fix crawled, currently not indexed?
Relevant links can improve a page's discovery path, but they are not a guaranteed indexing fix. Inspect the exact URL, its recorded crawl, canonical signals, rendered content, and intended purpose before deciding what to change.
Do AI agents need special links or schema to read a blog?
Ordinary HTML links with real destinations and accessible article text are a practical foundation. Agent capabilities differ, so verify the intended reading path. Special markup does not guarantee discovery or citation, and Google requires no special AI schema for its Search AI features.
Keep the diagnosis moving
Run your own public presence audit
See how your website, search footprint, AI visibility, social proof, and conversion trust look from the outside.
