Internal Link Audit with Search Console, Screaming Frog and Ahrefs

Internal link audit workspace with Google Search Console, Screaming Frog and Ahrefs Internal link audit workspace with Google Search Console, Screaming Frog and Ahrefs
Internal link audit workspace comparing Google Search Console, Screaming Frog and Ahrefs.

An internal-link audit can produce three different answers before you make a single change. Search Console reports one set of links, Screaming Frog finds another, and Ahrefs adds its own view of the site. The disagreement is not automatically a problem. Each tool observes a different system, applies different rules and may work from a different crawl date.

A useful internal link audit starts by aligning scope and definitions. The goal is not to force three exports to match perfectly. It is to identify important pages that are hard to reach, links that lead through avoidable redirects or errors, canonical inconsistencies, unusually deep pages and structural gaps that can be verified after repair.

This guide uses Google Search Console, Screaming Frog and Ahrefs as complementary evidence sources. It keeps the audit focused on internal architecture rather than treating any third-party metric as a Google measurement.

Post Summary

  • Search Console provides Google’s reported view of internal links rather than a complete crawl inventory.
  • Screaming Frog shows the routes discoverable under the crawl configuration you choose.
  • Ahrefs supplies a third-party crawl and graph that can expose useful comparisons and historical differences.
  • URL normalisation and canonical grouping should happen before link counts are compared.
  • Broken routes, redirect chains and poorly connected priority pages usually deserve attention before harmless tool mismatches.
  • Every repair should be followed by a consistent recrawl so the change can be verified.

What should an internal-link audit measure?

An internal-link audit should measure whether important URLs can be reached through clear, crawlable and intentional routes. Raw link count is useful, but it is only one dimension of the structure.

A practical audit records at least the destination URL, source URL, status code, canonical target, crawl depth, number of unique internal inlinks and the type of issue found. For larger sites, segment URLs by role such as pillar, cluster, category, product, archive or utility page.

Audit signalWhat it can revealTypical action
Internal inlinksPages with little structural supportAdd useful links from relevant source pages
Crawl depthPriority pages buried unusually deepCreate a shorter useful route
Status codeBroken links and redirect chainsUpdate the source link to the final live URL
Canonical targetLinks split across duplicate variantsPoint links to the preferred canonical URL
Anchor and contextUnclear or weakly explained destinationsImprove the surrounding sentence and anchor

Google recommends creating crawlable links with an <a> element and an href that resolves to a valid URL. Its guidance also recommends descriptive anchor text and links that help users and Google understand the destination.

Why Search Console and crawler link counts differ

Search Console should not be treated as a full export of every internal link Google has seen. Its Links report is a reporting view, while a crawler reports what it can discover from the site version and settings used during that crawl.

That distinction explains many apparent mismatches. Screaming Frog may discover navigation, breadcrumb and contextual links on a freshly crawled page that Search Console does not reflect in the same way. Search Console may associate information with a canonical URL while the crawler still lists several duplicate variants separately.

Differences can also come from rendering. A JavaScript-rendered route may enter one crawl but disappear from another if rendering settings change. Start URLs, robots rules, subdomain settings, parameters and exclusions can all alter the graph.

Audit rule: Do not label a mismatch as an error until crawl scope, canonical handling and URL normalisation have been aligned.

Configure Screaming Frog for a reproducible crawl

Screaming Frog is most useful when the crawl can be repeated. Record the date, crawl mode, rendering mode, selected host or subdomain rules, robots handling and exclusions before exporting data.

For a standard audit, focus on internal HTML URLs and retain the fields needed to diagnose the route: source, destination, status, canonical, inlinks and crawl depth. Redirects and error URLs should remain visible in the diagnostic export even if they are excluded from the clean canonical comparison set.

Normalise URLs before counting

Small URL differences create large spreadsheet differences. HTTP and HTTPS, trailing slashes, parameters, uppercase characters and duplicate canonicals can make one logical destination look like several pages.

Keep a raw crawl for implementation problems, then create a normalised comparison table that groups URLs by the preferred canonical destination. This preserves evidence without allowing duplicates to distort the comparison.

Check redirect chains at the source

A redirect can be correct during a migration, but an internal link should normally point to the final destination once the move is stable. If a menu or body link still points to an old URL, the browser and crawler must take an unnecessary extra step.

Prioritise repeated internal links that pass through multiple redirects, especially when they affect navigation, category routes or heavily used templates. Update the source URL rather than accepting the chain as permanent architecture.

Use Search Console as a first-party reference

Search Console adds a useful search-engine-side perspective. It can help confirm which canonical pages Google recognises as receiving many internal links and can highlight important pages that appear structurally weak compared with their intended role.

Its value is strongest when used for comparison, not completeness. If a crawler reports hundreds of links to a page and Search Console shows a different figure, first ask whether the tools are counting the same thing at the same time.

Check whether the URL is canonical, whether redirects or variants are involved and whether the crawl includes repeated template links. Once those definitions are aligned, the remaining difference becomes useful evidence rather than noise.

What Ahrefs can and cannot prove

Ahrefs provides a third-party crawl and internal-link graph. It can help surface orphan-like candidates, historical routes, redirect paths and relative structural differences that deserve inspection.

It cannot prove how Google weighs a particular internal link. Metrics calculated by Ahrefs belong to the Ahrefs dataset and methodology. Treat them as diagnostic signals, not measurements of Google’s private ranking systems.

Ahrefs can be especially useful when its crawl finds an old route that is absent from your current Screaming Frog crawl. That may indicate stale historical data, a redirect, an intermittently linked page or a difference in crawl timing. The correct response is verification, not immediate editing.

Reconcile the three datasets before assigning fixes

Create a comparison table keyed to the preferred canonical URL. Add columns for Screaming Frog inlinks and depth, Search Console internal-link evidence, Ahrefs internal-link evidence, status code, canonical target and issue classification.

Then classify differences rather than trying to force equal counts. Useful labels include broken destination, redirect chain, canonical mismatch, unusually deep priority page, low internal inlinks and dataset mismatch.

The interactive dashboard below models that process. Its sample rows are illustrative, but the workflow is the same: define scope, crawl consistently, collect Search Console data, compare Ahrefs, normalise URLs, group canonicals, prioritise repairs and recrawl.

Which internal-link findings should be fixed first?

Prioritisation should combine technical severity with page importance and user impact. A broken link in a primary navigation route deserves more attention than a harmless count mismatch on a low-priority utility page.

PriorityTypical findingsReason
HighBroken routes to priority pages, redirect chains on key paths, important pages with no useful routeDirectly affects access, crawling or important journeys
MediumUnusually deep priority pages, inconsistent canonical targeting, weak contextual supportCreates structural friction that may deserve correction
LowHistorical differences, sampled-data mismatches, low inlink counts on non-priority utility URLsMay require explanation rather than repair

A low inlink count is not automatically a defect. A privacy page, confirmation page or specialised utility endpoint may not need the same structural prominence as a commercial category or pillar page. Compare the page’s actual role with the support it receives.

How to validate repairs after the audit

Validation closes the loop. Save the original crawl and issue queue before editing. After the changes are live, repeat the crawl with the same configuration and confirm that the intended source URLs now point directly to the correct canonical destinations.

For broken links, verify that the source no longer contains the failing destination. For redirect chains, confirm that the source points directly to the final URL. For deep pages, check whether the new useful route reduced depth without creating unnecessary sitewide links.

Search Console can then be monitored over time, but do not expect its reporting to change immediately or to mirror the crawler’s counts. The recrawl verifies implementation; Search Console supplies a later first-party reference.

Keep a repair queue, not a one-off spreadsheet

A good audit produces a small operational queue with an owner, evidence, priority, action and validation status. That makes the process repeatable and prevents the same errors from returning after migrations, navigation changes or large publishing batches.

For recurring checks, retain the same issue labels. Over time you can compare whether broken internal routes, redirect hops, deep priority pages or canonical inconsistencies are increasing or declining.

Questions about internal-link audits

Why does Search Console show fewer internal links than a crawler?

Because the two tools do not represent the same dataset. Search Console reports Google’s view, while a crawler reports links it discovered under its own crawl configuration. Align scope and canonical handling before comparing counts.

Should redirected internal links be updated?

Usually yes when the final destination is stable. Redirects can be appropriate during migrations, but internal links should generally point directly to the final canonical URL so users and crawlers do not traverse unnecessary hops.

How often should an internal-link audit run?

There is no universal interval. Run one after major migrations, navigation changes, large publishing batches or template changes, and schedule recurring checks at a frequency appropriate to how quickly the site changes.

Can Ahrefs replace Screaming Frog for an internal-link audit?

No single tool should be assumed to replace every other dataset. Screaming Frog gives you a crawl you can configure and reproduce; Ahrefs supplies a third-party graph; Search Console adds a first-party reporting perspective. Their overlap is useful precisely because their viewpoints differ.

Is a page with few internal links automatically weak?

No. Compare the count with the page’s role. A strategic pillar or category page with little useful support deserves investigation, while a low-priority utility pae may be correctly linked only a few times.

Turn the audit into an internal-link maintenance system

The strongest audit is not the one with the largest export. It is the one that converts different datasets into a defensible repair queue, records why each change was made and verifies the result with a consistent recrawl.

That turns an internal-link audit from a collection of tool exports into an operational extension of your broader internal linking strategy.

References

Click to rate this post!
[Total: 0 Average: 0]
Add a comment

Leave a Reply

Your email address will not be published. Required fields are marked *

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use