How to Audit and Fix Internal Linking at Scale

On this page

Internal links are links pointing to your pages that you can add, change or remove without asking anyone. Google’s guide to link best practices says it uses links as a signal when determining the relevancy of pages and to find new pages to crawl, and that every page you care about should have a link from at least one other page on your site. On a site with thousands of pages, meeting that standard stops being a matter of adding related links by hand and becomes a data problem: crawl the link graph, find the orphans, see where links concentrate, grade the anchor text, then fix the problems in order of reach.

Four structural problems

Internal linking failures at scale can be sorted into four patterns.

  • Orphans and near-orphans. Pages with no internal links pointing to them, or a small number. Google’s own floor is at least one link from another page on the site. Set your working threshold for “near-orphan” from your crawl, and write it down so the audit can be repeated.
  • Over-concentration. Internal links concentrate on a handful of pages, such as the home page and top navigation targets, while important deeper pages get next to none.
  • Generic anchor text. Google’s guide says good anchor text is descriptive, reasonably concise and relevant to both the page it’s on and the page it links to. Its examples of weak anchors are “Click here” and “Read more”.
  • Missing topical connections. Pages that belong together as a cluster sit unlinked, so neither readers nor crawlers see the relationship.

Run the audit as data

A link graph of thousands of pages can’t be judged by eye. Crawl the site with a tool that exports link data, then work from three exports:

  1. Inlinks by destination URL. For every page, count the internal links pointing to it. Sorted ascending, the list surfaces orphans and near-orphans. Sorted descending, it shows where links concentrate.
  2. Link distribution. Aggregate the inlink counts to see how skewed the site is: what share of internal links lands on the top handful of URLs against everything else. Compute this on your own crawl rather than borrowing a benchmark; the shape is what matters.
  3. Anchor text by destination. Export every internal anchor and bucket it as descriptive or generic (“click here”, “read more”, bare URLs). The generic share is your anchor-quality gap.

Add one check the crawler may not flag on its own: whether navigation modules produce real links. Google’s guide says it can generally crawl a link only if it is an <a> element with an href attribute. A “related posts” block or category filter that navigates through a script with no href looks like a link to a visitor but gives a crawler nothing it can reliably follow.

Search Console’s Links report offers a free cross-check: it lists a sample of internal and external links, so use it to confirm what your crawl found, not to replace it.

Models that simulate how links distribute across the graph are useful for thinking. Treat them as models. The three exports give you countable facts; reason about distribution on top of them, not instead of them.

Not every orphan deserves rescue. A share of them are thin, duplicated or obsolete, and linking to them spends attention you would rather put elsewhere. Score each orphan before deciding:

  • External backlinks. An orphan with real referring domains is a priority to reconnect.
  • Search demand. Does it target a query people search for?
  • Traffic and conversions. Is it already earning, just under-supported?
  • Business value. Does it serve a goal the metrics don’t show yet?

High scorers get internal links and a place in the right cluster. Low scorers on every count are merged into a stronger page with a redirect, or removed. The triage is what separates an internal-linking program from adding links to every URL a crawler flagged.

Fix at the widest layer first

Work from the change with the widest reach down to the narrowest.

1. Templates

Shared modules come first: related-post blocks, “you may also like” rows, category and breadcrumb templates, footers. One edit to a shared module can fix generic anchors and add missing links across a whole section in a single deploy.

2. Priority orphans

Next, place contextual links into the orphans that scored well in triage, from relevant pages that already earn traffic and links. This is page-by-page work, so spend it only where the triage says it pays.

3. Hubs and clusters

Then make topical relationships explicit: hub pages that link to their cluster, and cluster pages that link to each other where a reader would want the next step.

4. A standing rule

Finally, prevent the problem from coming back. Every new page ships with contextual links from existing relevant pages, and every retired page has its inbound links updated.

When you rewrite anchors, make them describe the destination and let them vary. Google’s guide asks you to write as naturally as possible and resist cramming in every related keyword, and it reminds readers that keyword stuffing violates its spam policies. An anchor like “technical SEO audit checklist” carries meaning that “read more” throws away. The same exact-match phrase on every link to a page adds nothing a varied, descriptive set wouldn’t.

Certain audits suggest adding nofollow to internal links to steer Google toward chosen pages. Google’s guide to qualifying outbound links describes nofollow differently. It says links marked with these attributes will generally not be followed, but that the linked pages may be found through other means, such as sitemaps or links from other sites, and so may still be crawled. For links within your own site, it says, use the robots.txt disallow rule if you need to keep Google from fetching a page. Control this through which links exist and where they point.

Expect a recrawl-dependent timeline

Internal-link changes register only as Google recrawls the pages that changed. Template fixes reach whole sections per deploy, so they give the recrawl more to find. Measure progress by recrawling the site yourself: orphans should drop and the descriptive share of anchors should rise. Then watch impressions and positions for the pages that were under-linked.

Frequently asked questions

Should I nofollow internal links to control which pages Google focuses on?

No. Google says nofollowed links are generally not followed but the pages can still be found and crawled through other means, and that for links within your own site the tool for blocking fetches is robots.txt. Steer it with the links you keep.

How many internal links is too many on one page?

Google’s guide says there is no magical ideal number of links a page should contain, and adds that if you think it’s too much, it probably is. Favor fewer links that are relevant and descriptive.

Do all orphan pages need to be linked?

No. Triage first. Orphans with backlinks, demand or traffic get integrated. Thin, duplicated or obsolete orphans are better merged or removed.

Leave a comment

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