Ready to boost your SEO?

View Pricing Login

Internal Linking Audit: Step-by-Step Guide

An internal linking audit is usually sold as a crawl. You run a tool, it paints some cells red, and the red cells are the audit. That gets the easy part right and the hard part wrong. A crawl is data collection. It can tell you a page has two inbound links or sits six clicks from the homepage, but it cannot tell you whether that matters, because it does not know which of your pages are supposed to win.

This is the audit as a process rather than a crawl: six repeatable steps that turn a link graph into a short, ranked list of changes worth making. It pulls the separate pieces of internal linking, orphan pages, anchor text and link equity, into a single pass, and it is structured the way a freelancer would structure the deliverable handed to a client. The crawl is step one of six. The other five are where the audit actually happens.

Key takeaways
  • An internal linking audit checks whether your internal links route crawl access and authority to the pages that need to rank. The crawl collects the data; the audit is the judgement applied to it.
  • Screaming Frog’s free SEO Spider crawls sites up to 500 URLs. The four columns that carry the audit are Inlinks, Unique Inlinks, Crawl Depth and Link Score, the last of which needs Crawl Analysis run after the crawl.
  • Define your priority pages before you look at a single link. A link graph means nothing until you know which pages are supposed to win.
  • The audit’s real output is the mismatch: a priority page with zero, one or two inbound links, or one buried several clicks deep. Quantify that gap with Search Console data, do not just list it.
  • The deliverable is not the crawl export. It is a ranked list of specific changes, each naming the page to fix, the page to link from, and the expected impact.

What an internal linking audit actually checks

An internal linking audit is a structured check of one question in three parts: are your internal links doing their job for the pages that matter? The three parts are reachability, whether a crawler and a reader can actually get to every page that should rank; routing, whether the authority your site has earned flows towards your important pages rather than away from them; and description, whether the links tell Google what they point to. A page can pass one part and fail another, which is why an audit looks at all three rather than counting links once.

That framing sets the scope, and the scope is narrower than most people assume. An audit is not a hunt for every imperfect link on a site. Most pages on most sites are not priority pages, and their link counts genuinely do not need your attention. The complete internal linking guide covers the strategy an audit measures against; the audit itself is how you check that the strategy is holding up in practice, on the pages where it pays.

This is also why a raw crawl is not an audit. A crawl will happily report that 180 of your 240 pages have fewer than three inbound internal links. That is true, and on its own it is useless, because most of those 180 are tag archives, dated posts and utility pages that are not trying to rank for anything. The audit is the filter that turns that alarming number into the nine or fourteen pages where a missing link is actually costing you traffic. Everything below is how you apply that filter.

Step 1: Crawl the site and pull the link graph

The first step is data collection, and the standard tool for it is the Screaming Frog SEO Spider. The free version crawls up to 500 URLs, which covers most small business and content sites; above that you need a paid licence. Crawl from the homepage with the default configuration, so the tool sees your site the way a crawler following links does, and check Configuration, Spider, Limits to confirm no crawl depth limit is quietly capping the crawl.

Four columns carry the rest of the audit, and they all live in the Internal tab. Inlinks is the total number of internal links pointing at a URL. Unique Inlinks is how many distinct pages link to it: if one page links to a URL three times, that counts as three inlinks but one unique inlink. Unique Inlinks is the honest measure of how many pages on your site actually vouch for a URL, so it is the one to trust. Crawl Depth is the number of clicks from the homepage, where the homepage itself is zero.

The fourth column, Link Score, does not appear until you run Crawl Analysis after the crawl finishes, through the Crawl Analysis menu, Start, with the settings under Crawl Analysis, Configure left on their defaults. Link Score, introduced in version 10 of the SEO Spider, is the tool’s internal authority estimate: a damped iterative calculation, the same kind of maths as PageRank and with the same 0.85 damping factor, run across your internal links and mapped to a 1 to 100 scale where your most strongly linked page scores 100 and the weakest scores 1. Be precise about what it is. It is a model of how authority moves around your own site, not Google’s PageRank and not a number Google sees, since no tool can show you that figure. As a relative map of which of your pages your own structure starves, though, Link Score is the most useful single column in the export.

Before you crawl, connect Search Console under Configuration, API Access, Google Search Console, and request the API data. Every URL in the crawl then carries its clicks, impressions and average position next to its link data. That pairing, link structure sitting beside actual search performance, is what makes step three possible, so treat it as part of the crawl rather than an optional extra.

When the crawl and Crawl Analysis finish, export the Internal tab to a spreadsheet. Every URL with its Inlinks, Unique Inlinks, Crawl Depth, Link Score and Search Console figures is the raw material for the audit. It is raw material, not the audit. The next five steps are what you do with it.

Step 2: Define your priority pages before you look at the links

This is the step most audits skip, and skipping it is the single biggest reason audits produce busywork. You cannot judge a link graph until you know which pages it is supposed to serve. So before you read a single number from the crawl, write down your priority pages: the pages where ranking actually changes the business.

A priority page qualifies on two grounds. The first is commercial value: the pages that earn money or generate leads, your pricing page, your service or product pages, and the high-intent guides that genuinely convert readers. The second is search opportunity, and the Search Console data you pulled in step one identifies it precisely. Two patterns count. Pages already collecting impressions but stuck around position 8 to 20 have proven demand and an improvable rank. Pages targeting keywords with real volume where you currently sit on page two have demand you have not captured yet.

Write the list as actual URLs. For a typical small business or content site it comes to 10 to 30 pages, not 200. If your list runs to a hundred URLs, you have written down your sitemap, not your priorities, and the audit will drown. The discipline is to be honest about which pages matter most, because this list becomes the yardstick: every later step measures the link graph against it. An audit without a priority list is just counting links, and a link count on its own carries no meaning.

One honest caveat: this step needs judgement a crawl cannot supply. A tool can tell you a page gets impressions; it cannot tell you a service has thin margins or that a product line is being discontinued. If you are auditing for a client, build the priority list with them. They know which work is worth winning, and that knowledge is what separates an audit from a spreadsheet.

TamRank Topical Map interface for analysing site content structure and finding topical opportunities
The Topical Map gives the structural view an audit needs: which pillars exist, which spokes link up properly, and which pages sit outside the cluster shape.

Step 3: Find the gaps where the link graph and the priority list disagree

With the priority list in hand, the core of the audit is a single comparison: overlay the priority list onto the crawl export and look for priority pages the link graph is failing. Those mismatches take four recognisable shapes, and naming each one keeps the audit from becoming a vague trawl.

Gap one: orphaned priority pages. A priority page with zero unique inlinks, one that nothing on your site links to. This is the worst kind of gap, because zero inbound links is both a reachability failure and a routing failure at once. A crawl export catches orphans that still sit somewhere in the link graph, but finding every orphan, including the ones a crawl cannot reach at all, is its own method, set out in how to find and fix orphan pages. For the audit, treat any priority page with zero unique inlinks as the top of the fix list.

Gap two: under-linked or buried priority pages. A priority page with one or two unique inlinks, or a Crawl Depth of four or more. This is the most common gap and the least obvious, because nothing flags it as broken. The page is reachable, so a standard crawl report stays silent, but two inbound links is a weak vote and depth six is a faint signal. John Mueller of Google has put the principle plainly: if it takes multiple clicks from the homepage to reach a page, that “makes it a lot harder for us to understand” that the page is important. The widely repeated “three clicks” rule is a useful working ceiling rather than a Google rule, Mueller never named a number, but the direction is real, and Zyppy’s analysis of 23 million internal links found that pages with only zero to four inbound internal links averaged around two Google clicks. To surface this gap, sort the export by Unique Inlinks ascending, then by Crawl Depth descending, and read the priority pages off the top.

Gap three: authority pages routing nowhere useful. The inverse problem. A page with a high Link Score, or one with your strongest Search Console clicks and external backlinks, that links only to other low-value pages. That is earned authority sitting idle. As how internal links distribute PageRank explains, internal links redistribute the authority your site has already earned, so an authority page that points at nothing important is a wasted asset. The fix is an in-content link from that page to a priority page, and the audit’s job here is to spot the mismatch.

Gap four: links that do not describe their target. Cases where the link to a priority page exists, but the anchor text is “click here”, “read more” or a bare URL. The link still works, but it tells Google nothing about the page it points to. Anchor text for internal links covers what helps here; for the audit, note these where they touch priority pages and move on, because anchor text is a refinement, not the main event.

One discipline holds all four together: ignore the inverse. A low-priority page with a single inbound link is not a finding, it is correct. A tag archive at crawl depth five is working as intended. The audit only cares about gaps that land on a priority page, and the most disciplined thing you can do in this step is leave the other 200 pages alone.

Step 4: Quantify the gap instead of listing it

A list of issues alarms a client; a quantified gap lets them decide. So the fourth step is to put numbers against the mismatches from step three. A worked example shows the difference, using a clearly illustrative scenario, representative of a content and services site rather than one specific client.

Take a 240-page WordPress site. The crawl returns 240 URLs. The priority list from step two holds 22 of them: the pricing page, six service pages, and fifteen commercial-intent guides that already draw impressions. Overlaying the priority list onto the crawl export turns up the following gaps. Three priority pages are orphaned, two service pages that lost their inbound links in last year’s redesign and one guide. Eleven priority pages are under-linked, with two or fewer unique inlinks each. Six priority pages sit at crawl depth five or deeper. Some pages carry more than one of those problems, so counting distinct pages rather than problems, 15 of the 22 priority pages have at least one gap. On top of that, two of the site’s blog posts have its strongest Search Console clicks and a handful of external backlinks, yet link only to other blog posts, never to a service page.

So the audit’s output is 17 specific changes, 15 priority pages to link better and two authority pages to re-route, not “240 pages have internal linking issues”. The same crawl also flagged roughly 150 pages with few inbound links, tag archives, dated posts and an old set of attachment URLs, and the audit sets every one of them aside on purpose. The collapse from 240 to 17 is the audit doing its job.

Then quantify each of the 17. Pull the Search Console figures for the page in question. One under-linked service page shows 1,300 impressions over 28 days at an average position of 11. A page sitting at position 11 with demand that size is a realistic candidate to move onto page one, and a routing fix, three good in-content links and a shorter click path, is a plausible way to help it. That figure, impressions at an improvable position, is what makes one change worth ranking above another. A gap on a page with no impressions and no demand drops to the bottom of the list, or off it. A raw count is a measurement; a quantified, ranked gap is a workload you can act on.

Step 5: Turn the audit into a deliverable

With the gaps quantified, the audit needs a form someone can act on, whether that someone is a paying client or you in three months. The deliverable is not the crawl export, and it is not a screenshot of red cells. It is a ranked action list, one row per change, written so a person who has never seen the crawl can carry it out.

Each row holds five things: the priority page being fixed; the problem in plain words, orphaned, under-linked, buried at depth six, or weak anchor text; the specific fix, meaning which page to add the link from and what anchor text to use; a rough effort estimate; and the expected impact from step four. Sort the list by impact over effort, so the top of it is the highest-return, lowest-effort work, the changes worth doing first.

One row, written out in full, shows the standard. Priority page: /services/website-migration/. Problem: orphaned, zero inbound internal links since the 2025 redesign. Fix: add in-content links from the three most strongly linked, topically related blog posts, the migration checklist post among them, using anchor text that names the service. Effort: about 30 minutes. Impact: 1,300 impressions a month at position 11, a realistic page-one candidate. That row is something a client can approve and someone can do without further questions. “This page has internal link issues” is neither.

Two things sit alongside the ranked list. The first is a short set of structural notes, the fixes that are settings rather than per-page jobs, such as an SEO plugin setting that clears a whole set of orphan attachment URLs at once. The second is a line of context, so the client understands the list is not cosmetic: a well-linked page is found faster, judged more important and ranked higher than an isolated one, which is the case why internal links matter more than you think sets out in full. The deliverable is the audit. Everything before it was working.

Step 6: Fix the structural cause and repeat the audit

Working through the 17-row list once does not hold, because the gaps grow back. Link decay is constant: posts slide down pagination as newer ones publish, roundup posts get unpublished, redesigns drop in-content links, and fresh posts arrive in a structure that nothing connects them to. An audit run once is a snapshot of a moving target, accurate on the day and drifting from the next one.

Two defences keep the audit from being a treadmill. The first is structural. A hub-and-spoke structure, where a pillar or category page links down to its supporting posts and is itself kept well linked, means a new post inherits inbound links by topic rather than by publish date. It does not stop decay, but it slows it and makes each future audit smaller. Building that structure is the subject of internal linking strategies that actually work.

The second is cadence. For most sites, a full audit, all six steps, once a quarter is enough, paired with a lighter monthly pass for the two failures that appear fastest and cost the most: new orphan pages and broken internal links. A site that publishes several times a week needs that monthly check; a site that publishes rarely can run everything quarterly. On any site where the monthly pass keeps surfacing the same kind of gap, that pass is a strong candidate for automating internal linking rather than repeating it by hand. An audit you run once is a report. An audit you repeat is a system.

How TamRank helps

Six steps, every quarter, with a crawl tool and a spreadsheet, is a real amount of work, and the parts most likely to slip are the dull ones: re-running the crawl, re-pulling Search Console, redoing the overlay by hand. TamRank runs the audit continuously from inside WordPress instead.

Because it runs inside the site, TamRank reads the full page inventory straight from the database, with no 500-URL crawl ceiling and no external proxy for what exists, and it already holds your Search Console data, so it knows which pages have search demand. The free Priority Actions Dashboard does steps one to four for you: it finds orphaned and under-linked pages, weighs them by traffic and demand, and presents them as a ranked list. That list is the step-five deliverable, refreshed continuously rather than rebuilt once a quarter.

TamRank Priority Actions Dashboard showing internal linking issues ranked by traffic impact: orphan pages, broken internal links, and under-linked commercial pages at the top
TamRank’s free Priority Actions Dashboard runs the first four audit steps continuously, surfacing orphaned and under-linked priority pages ranked by traffic impact.

PRO adds AI Internal Link Suggestions inside the WordPress editor, proposing relevant in-content links and anchor text as you draft. That closes gaps while pages are being written, instead of letting them accumulate for the next audit. See the features overview for the full list, or compare plans for the difference between the free and PRO tier.

What people ask

What is an internal linking audit?

An internal linking audit is a structured check of whether your internal links route crawl access and authority to the pages that need to rank. It goes beyond a crawl: you define your priority pages, compare them against the link graph, and produce a ranked list of specific links to add or fix.

How do you do an internal link audit in Screaming Frog?

Crawl the site from the homepage, ideally with Search Console connected under Configuration, API Access. Run Crawl Analysis to populate Link Score. Then read four columns in the Internal tab: Inlinks, Unique Inlinks, Crawl Depth and Link Score. Export them and compare the weakly linked pages against your list of priority pages.

What should an internal linking audit include?

It should include a crawl of the full link graph, a defined list of priority pages, a check for orphaned and under-linked priority pages, a review of crawl depth, a look at whether authority pages route links to important pages, an anchor text check, and a ranked, quantified list of fixes.

How often should you run an internal linking audit?

For most sites, a full audit once a quarter is enough, with a lighter monthly check for new orphan pages and broken internal links. Sites that publish several times a week benefit from the monthly pass; a site that publishes rarely can run everything quarterly.

How do you find internal linking opportunities?

Sort your crawl export by Unique Inlinks, lowest first, then cross-reference the weakest pages against your priority list. A priority page with zero, one or two inbound links is an opportunity. Pages with strong Search Console impressions but a mediocre position are the highest-value ones to link.

The bottom line

An internal linking audit is not a crawl, and it is not a list of every imperfect link on your site. It is the judgement layered on top of the crawl: a defined list of pages that need to rank, a comparison that finds where the link graph fails them, and a quantified, ranked set of changes worth making.

A crawl tool gives you the data in an afternoon. The value is in the five steps around it: deciding what counts as a priority page, finding the mismatch, putting Search Console numbers against each gap, writing the deliverable, and repeating the pass so the gaps do not quietly grow back. The complete internal linking guide sets the strategy this audit measures against, and an audit, run properly and run again, is how you know the strategy is working.

Sources

  • Screaming Frog, “Internal Linking Audit With the SEO Spider,” including the Crawl Depth column and the Search Console API connection. screamingfrog.co.uk.
  • Screaming Frog, “What Is Link Score?”, on the version 10 introduction, the 1 to 100 scale, the 0.85 damping factor and Crawl Analysis. screamingfrog.co.uk.
  • Screaming Frog, SEO Spider user guide, “Tabs,” definitions of Inlinks, Unique Inlinks and Crawl Depth. screamingfrog.co.uk.
  • Screaming Frog, “How To Find Orphan Pages,” including the 500-URL free version limit. screamingfrog.co.uk.
  • John Mueller (Google) on click depth versus URL structure, 2018. Reported by Search Engine Journal.
  • Google Search Central, “Links best practices,” on crawlable links and there being “no magical ideal number” of links. Google developer documentation.
  • Cyrus Shepard (Zyppy), “23 Million Internal Links: SEO Case Study” (2023). zyppy.com/seo/seo-study.
Written by

Sam Kloeth

Contributing writer at TamRank, sharing SEO insights and WordPress tips.

Uses TamRank daily on production sites Fact-checked by the TamRank team
Written from hands-on experience
Published: Jun 8, 2026
Tested on real WordPress sites

Want to put these tips into practice?

TamRank gives you real-time SEO analysis, AI-powered suggestions, and actionable fixes. Free forever, no credit card required.