External link building consumed most of our effort for two years — outreach, relationships, content designed to attract citation. It produced results slowly and expensively.
Then somebody spent two weeks systematically improving internal links and the effect on rankings was larger than anything the outreach had produced in a quarter.
Why internal links are underrated
Partly because they are entirely within your control, and things within your control feel less like a competitive advantage.
Partly because the advice about them is vague. Everybody says to link internally; almost nobody says how to decide what should link to what.
And partly because on a large site the existing internal linking is usually an accident. It accumulated through whatever writers happened to remember and link to, which correlates with nothing useful.
What we actually found
The audit was the useful part and it took two days.
Our most important pages, commercially, had among the fewest internal links pointing to them. They had been published early, before there was much else on the site to link from, and nothing written since had linked back.
Meanwhile a handful of old blog posts had accumulated dozens of internal links each, because they were the ones writers remembered.
A significant number of pages had no internal links at all pointing to them, reachable only from a sitemap or an archive page many clicks deep.
And a large proportion of our internal anchor text was uninformative — read more, click here, this article.
What we changed
Four things, in about a fortnight.
We identified the twenty pages that mattered commercially and deliberately added contextual links to them from relevant existing content. Not stuffed in — placed where a reader would genuinely benefit from following them.
We fixed the orphans, ensuring every page worth keeping was reachable from somewhere relevant.
We rewrote uninformative anchor text to describe the destination.
And we reduced click depth on important pages, so that nothing significant was more than three clicks from the homepage.
Why it appears to work
The mechanism, as generally understood, is that internal links distribute authority around a site and signal which pages are important.
A page with many internal links pointing to it, from relevant contexts, with descriptive anchor text, is being signalled as significant. A page with none is not.
They also affect crawling and discovery, which matters for large sites where not everything gets crawled frequently.
And there is a straightforward user benefit that is separate from any of that. Readers follow relevant links, and pages that are easy to reach get read.
The mistakes worth avoiding
We made two of these before getting it right.
Automated linking based on keyword matching, which produces links that are technically relevant and contextually absurd, and which readers ignore.
Adding link blocks at the bottom of every article — related posts modules with the same set of links everywhere. These appear to carry much less weight than contextual links within the body, and they clutter the page.
Over-linking, where a paragraph contains four links and the reader follows none of them.
And using identical anchor text for every link to a page, which looks manipulative and is unnecessary.
The maintenance problem
The part that requires ongoing discipline rather than a project.
Every new article should link to relevant existing content, which requires the writer to know what exists.
We maintain a short document listing the pages that matter and the topics they cover, which writers check before publishing. It is unglamorous and it works.
We also re-audit quarterly, because the structure drifts as content is added and removed.
What it did not do
Being clear about the limits.
Internal linking improved the relative position of pages within our site. It did not make the site more authoritative overall, which is what external links do.
It helped most for pages that were already ranking somewhere on the second or third page and needed a push. It did nothing for pages that were not competitive at all.
And it is a one-time gain of a certain size. Having fixed it, there is no further improvement available from doing it again.
Which is why it is a cheap win rather than a strategy. It is the thing to do first, because it costs two weeks and it is entirely within your control, and then to go back to the slow expensive work.
The tooling
What we used, since people ask.
A crawl of the site producing every internal link, which any standard crawler does. From that, a count of inbound internal links per URL and a click depth figure.
Sorting the commercially important pages by inbound internal links immediately shows the gaps, and that single table was the whole basis of the project.
The orphan list comes from comparing crawled URLs against the sitemap, which surfaces anything reachable only by declaration.
None of this needs an expensive tool and all of it needs somebody to actually look at the output, which is the step that gets skipped.