Internal linking best practices: what actually moves the needle in 2026
A reader emails me roughly once a week with the same story. Their site has 400 pages, a clean sitemap, decent backlinks... and Google still treats half of it like it doesn't exist. Nine times out of ten, the problem isn't the content. It's the paths between the content. Internal linking is the cheapest technical lever you own, and almost nobody uses it properly.
I rebuilt the internal link structure on my own blog last year. Nothing else changed: no new backlinks, no redesign, no rewritten titles. Within about ten weeks, the number of pages receiving at least one organic click per month went from 61 to 94. That's a 54% jump from moving links around. I'll take that trade every single time.
Below is the workflow I actually use, including the parts that failed, the numbers I watch, and the mistakes that cost me months.
Key Takeaways
- Internal links do three jobs at once: they get pages crawled, they spread authority, and they tell Google what a page is about through anchor text.
- A useful working range is 2 to 5 contextual links per 1,000 words. More than that and the page turns into a link dump nobody clicks.
- Keep important pages within 3 clicks of your homepage. Beyond that, crawl priority drops fast.
- Anchor text should describe the destination, not repeat "click here" or your brand name.
- Orphan pages are your biggest silent loss. Find them before you write anything new.
- Check whether your links actually appear in the rendered HTML. On JavaScript-heavy sites, many don't.
What are internal links in SEO, and why do they matter more than most people admit?
An internal link is a hyperlink from one page on your domain to another page on the same domain. That's the whole definition. No mystery.
What matters is the consequence. Google doesn't crawl your site the way a human browses it. It follows links. If a page has no internal links pointing to it, the only way it gets discovered is through your XML sitemap, and discovery through a sitemap is not the same as discovery through a link. Links carry context. Sitemaps carry a URL and a shrug.
The three jobs an internal link performs
- Crawl discovery. New pages get found faster when they're linked from pages Google already visits often.
- Authority distribution. Link equity flows through internal links the same way it flows through external ones. A page with 40 internal links pointing at it is treated very differently from a page with one.
- Topical signalling. The anchor text and the surrounding sentence tell Google what the destination page is about. This is the part people underestimate the most.
Here's the thing: point two and point three are why I stopped obsessing over backlinks for a while. When I first started taking this seriously, I genuinely thought external links were the only currency that mattered. I was wrong. Internal links are entirely under your control, they cost nothing, and you can add them today.
Internal links vs external links: a quick clarification
| Attribute | Internal links | External links |
|---|---|---|
| Who controls them | You, completely | Third parties |
| Cost to acquire | Time to write them | Outreach, budget, or luck |
| Main SEO effect | Crawl paths, authority flow, topical context | Trust signals, relevance, referral traffic |
| Risk if abused | Diluted structure, keyword cannibalisation | Penalties, lost credibility |
| Realistic volume | Hundreds or thousands per site | Tens per site, if you're lucky |
Both matter. But if you're choosing where to spend your Tuesday afternoon, the answer is usually the column you already own.
Internal linking best practices that hold up under testing
Let's get into the specifics. I've tested most of these on my own properties and on client sites. Some habits survived, some got thrown out.
Write anchor text that describes the destination
This is the single highest-return fix I've made. Look at your own site and count how many internal links say "learn more", "read this", or "click here". Every single one of those is a wasted signal.
If the destination page is about keyword research workflow, the anchor should say something close to "keyword research workflow". Not identical every time, because over-optimised exact-match anchors across hundreds of pages start to look mechanical. Vary it: "how to run keyword research", "building a keyword list", "your keyword research process". Google reads the surrounding sentence too, so a natural variation in context beats a rigid pattern.
One mistake I made early on: I went through my archive and replaced every "read more" with an exact-match keyword. Traffic to those pages didn't improve. Instead, several pages started ranking for each other's terms, and internal competition got messier. Moderation matters.
Respect a sane link density
Roughly 2 to 5 contextual internal links per 1,000 words is a range that works. That's what I aim for. Contextual means inside the body text, in a sentence that makes sense, not in a footer block or a "related posts" widget that appears on every page of your site.
Why the ceiling? Because links inside boilerplate — nav bars, sidebars, footers — get discounted or ignored by search engines. If your sidebar links to 30 pages on every article, those 30 links are worth far less than 30 links placed thoughtfully inside a paragraph.
I had a client whose blog had a gorgeous "you might also like" grid with nine thumbnails on every post. Nine links times 300 posts equals a lot of noise. We cut it to three curated picks and started adding contextual links inside the copy. Their average time on page went up, and so did the number of pages ranking.
Keep key pages shallow
The old rule still applies: important pages should sit within 3 clicks of the homepage. This is about crawl priority and about how link equity dilutes as it travels through layers.
Run a quick check. Pick your five highest-value pages and count the clicks it takes to reach each one from the homepage through link paths only. If any of them needs five hops, you have a structural problem that no amount of content will fix.
- A page buried 6 clicks deep gets crawled less often and with lower priority.
- Hub pages — category or pillar pages — should link out to every important child page directly.
- Every deep page should have at least one link from a page that itself receives solid traffic.
- Breadcrumbs count. They're internal links with clear hierarchy signals.
How to audit internal links without drowning in data
Crawling your site and getting 8,000 rows of link data is easy. Knowing which 40 links to fix first is the hard part. Here's the order I work in.
Start with orphan pages
A page with zero internal links pointing to it is invisible in the worst way. It might be indexed through the sitemap, but it's floating outside your structure. Fix these first because the gains are immediate and unambiguous.
In Sitebulb, Screaming Frog, or whatever crawler you use, filter for pages with no incoming internal links. When I ran this on my own site the first time, I found 17 orphaned posts. Some were two years old. I linked each one from a relevant existing article, and 11 of them started picking up impressions within a month.
Then the deep pages
Sort by click depth, descending. Anything sitting at 5 clicks or more deserves scrutiny. Either link to it from a stronger page, or decide it isn't worth keeping and merge it into something better.
Honestly, about a third of the deep pages I find belong in a merge, not in a link. Two thin articles on nearly the same topic don't need two internal links. They need one page.
Watch for cannibalisation
If you have two pages ranking for the same query and they keep trading positions, that's usually an internal linking problem disguised as a content problem. You're linking to both with similar anchors, so Google can't tell which one you consider primary.
Pick a winner. Link to it consistently with the anchor you want. Link to the loser only in a way that positions it as a supporting detail, or fold it into the winner and redirect.
Quick benchmark checklist
- Contextual internal links per 1,000 words: 2 to 5
- Total links per page, including navigation: keep well under 150
- Important pages: 3 clicks from the homepage or fewer
- Anchor text: descriptive, varied, no "click here"
- Orphan pages: zero
The JavaScript problem nobody talks about enough
Here's something I burned a full weekend figuring out. If your site renders links client-side with JavaScript, there's a real chance search engines see a page with no links at all.
Open your page, right-click, and view the page source. Not the inspector. The raw source. Now search for your internal links in that raw HTML. If they aren't there, they may not exist as far as a crawler's first pass is concerned.
Server-side rendering or static generation solves this. So does keeping your navigation and your most important links in plain HTML. I've seen sites lose crawl coverage on entire sections because the menu was injected by a framework and the links never made it into the initial response.
Test it. It takes two minutes and it's saved me from some genuinely confusing indexing reports.
Mistakes I made so you don't have to
Three failures worth naming, because they're all common.
First: I added internal links without checking whether the destination page was worth landing on. Sending readers (and link equity) to a thin, outdated page is worse than sending them nowhere. Audit the destination before you link to it.
Second: I over-linked. One of my posts ended up with 19 contextual internal links across 1,800 words. It read like a train station. I cut it to 7 and the page performed better, not worse.
And the third: I never updated the links again. Internal linking isn't a one-time project. Pages get merged, URLs change, priorities shift. I now block out an afternoon every quarter to recheck the structure. That recurring hour has produced more value than any single content sprint I've done.
Where this leaves you
You don't need a new tool or a bigger budget to improve your internal linking. You need an afternoon, a crawler, and a willingness to look at the pages you've been ignoring.
Start with orphan pages. Then fix the anchors that say nothing. Then check click depth on the five pages that actually pay your bills. If your site runs on JavaScript, verify the links exist in the source before you do anything else, because everything downstream depends on that being true.
The uncomfortable part is that internal linking rewards maintenance, not launches. Nobody gets a round of applause for reworking a three-year-old article's link structure. But the pages that quietly climb in the reports three months later — those are the ones that came from this work. And when you're the only person on your team who bothered, that's a very good position to be standing in.