Internal Linking for a Small Local Website

Open the footer of almost any trades website built in the last five years. Every service, every town, every page, listed on every single page of the site.
Somebody will tell you that is thorough internal linking. It is closer to the opposite. A link that appears on all thirty pages cannot tell Google which of those thirty pages matters.
Internal linking on a small site is not about adding links. You already have hundreds. It is about deciding which pages you want to win.
The short version
- Google says there is "no magical ideal number of links a given page should contain". The old 100-link guideline was dropped before 2008.
- Crawl budget starts to matter at 10,000 pages. "It helps Google crawl you" is not the reason to bother on a 30-page site.
- The best controlled evidence comes from split tests on sites with thousands of pages. Trust the direction, not the percentages.
- The topic cluster model traces back to one unpublished 2015 experiment by a company selling the tool.
- Breadcrumbs are worth having and easy to break. One test lost 5.5% of organic traffic when the markup drifted from the trail on the page.
Does internal linking actually affect rankings?
Yes, and it is one of the few on-page tactics with genuine controlled test evidence behind it. In a 2021 split test by SearchPilot, a US property site with around 8,000 regional pages gave half of them links to their six nearest neighbouring pages. Those pages saw roughly a 7% uplift in organic traffic.
The design is what makes it credible. Pages were split into control and variant groups on the same site at the same time, and no new links pointed at the control pages. Seasonality and algorithm updates hit both groups equally, so the gap between them is down to the links.
Now the caveat most articles leave out. Split testing needs large page groups to reach significance, which is why nobody has run this test on a 28-page plumbing website. The direction transfers. The 7% does not.
Google's own SEO Starter Guide puts it more vaguely: "the vast majority of the new pages Google finds every day are through links".
Why does "every page links to every page" fail?
Because a link that appears everywhere carries no information. If your footer lists all thirty pages, every page votes for every page equally, which tells Google as much as no page voting at all. You built a flat list and called it a structure.
Matt Cutts explained the mechanism, as reported by Barry Schwartz at Search Engine Land in November 2013: "your PageRank is divided by the number of links on a page." Fifty footer links means the same fifty destinations, split fifty ways, on every page you own.
Your navigation is not your internal linking
Menus and footers are wayfinding, identical on every page by design, and Google can see that they are. The links that carry meaning sit inside your content: a sentence on your boiler repair page pointing to your landlord gas safety page, because a landlord reading one usually needs the other. That link exists on one page, for one reason.
Does cutting links back help?
Probably, though the cleanest test was inconclusive. SearchPilot reduced an internal link block on a travel site in April 2024, hiding some links behind a "Show More" button. It predicted a 10.2% uplift, but the result was inconclusive at 95% confidence. Fewer, better-chosen links is a reasonable bet, not a proven one.
How many links on a page is too many?
Google publishes no number and has not for nearly twenty years. Its current link best practices documentation says: "There's no magical ideal number of links a given page should contain. However, if you think it's too much, then it probably is."
The 100-link rule people still quote is dead guidance. Cutts confirmed in that 2013 Search Engine Land piece that it had been dropped "well before 2008". Its origin was technical, not editorial: Google once fetched only around the first 100KB of a page, and a link takes roughly a kilobyte. The figure was a byproduct of a page size limit, and it stopped being guidance before most trades websites existed.
He added one caveat. If a page looks spammy and carries far too many links, Google reserves the right to act. He also pointed out that Techmeme runs thousands of homepage links and is fine.
Crawl budget is not your problem
The other justification you will hear is that tidy linking preserves crawl budget. Google's large site owner's guide says who that applies to: over a million pages changing weekly, or over 10,000 changing daily. You have thirty. Google is not rationing.
Which links does Google actually count?
Only proper ones. Google's documentation is blunt: "Generally, Google can only crawl your link if it's an <a> HTML element (also known as anchor element) with an href attribute." The same page lists what fails: a <span> carrying an href, an <a> tag with an onclick handler and no href, a javascript: URL, a routing attribute with no real href behind it.
In trades terms: the "Our Services" dropdown built as a JavaScript widget, the service tiles made from clickable boxes, the "Book a call-out" button that fires a script. Clickable by a human, invisible to Google.
Ten second test. Right click the link and choose "Open link in new tab". If that option is missing, or nothing opens, it is not a link.
What should your anchor text say?
Say what the page is about, in the words a customer would use. Google asks for anchor text that is "descriptive, reasonably concise, and relevant to the page that it's on", and tells you to avoid generic text like "Click here" and "Read more". That is the whole rule.
The over-optimisation worry gets overstated constantly. Google's spam policies do name "links with optimized anchor text". Read where. Every example is a link placed on somebody else's site: advertorials, guest posts, press releases, forum signatures. None describes your own navigation.
In June 2020, John Mueller was asked whether varying internal anchor text helps. Search Engine Journal reported his answer: it is something you could do if it makes sense for users, "but it's not something where you would see a visible effect in search."
So writing "emergency plumber Croydon" as the anchor on forty internal links is very unlikely to get you penalised, and equally unlikely to achieve anything. Stop because it reads like a machine wrote your website, and your customer can tell.
Is the hub and spoke model real?
The shape is sensible. The evidence is thinner than anyone selling it admits. The topic cluster model, sometimes called hub and spoke, traces back to a single internal experiment run at HubSpot in 2015, which reported that the more internal links they added between related pages, the higher those pages ranked. No sample size, methodology or control group has ever been published, and HubSpot sells a content system with a topic cluster tool in it.
That does not make it wrong. It does mean the model rests on one vendor's unpublished study, and everything written about topic clusters since is downstream of it. Twelve articles citing one source is still one source. The phrases "topic cluster", "pillar page" and "hub and spoke" appear nowhere in Google's own documentation.
Build the shape anyway, because a hierarchy is what these sites are missing. Just do not pay extra for the vocabulary.
What the shape looks like on a 25-page site
Homepage at the top. Beneath it, four to eight service pages, one per thing you get paid to do. Beneath those, supporting pages: a how-it-works guide, an FAQ, one or two area pages you can defend.
Every supporting page links up to its service page with a descriptive anchor. Service pages link across to each other only where a real customer would cross over. Boiler repair to landlord certificates, yes. Boiler repair to gutter cleaning, no.
Depth barely matters at this size. Mueller said in 2018 that what counts is "how many links you have to click through to actually get to that content", reported by Search Engine Journal. He gave no number. The "three clicks" rule is folklore.
How do you find orphan pages for free?
An orphan page is one that nothing links to. Screaming Frog defines it as a page "that cannot be found by crawling the internal links of a website from the start page". They appear quietly: an old town page, a landing page built for a Facebook campaign, a service you never added to the menu.
Google gives you the standard in its sitemaps documentation, where it says a small site may not need a sitemap at all if "Googlebot can find all the important pages on your site by following links starting from the home page". Three free ways to test that.
Search Console. Open the Links report, then Internal links. It ranks your pages by how many internal links point at them, so a page you know exists that never shows up is a candidate. Google calls this "a sample of internal and external links", so treat an absence as a prompt, not proof.
Screaming Frog, free version. It crawls up to 500 URLs, far more than you need. Start it at your homepage, export the URLs it found, compare against your own list of pages. Anything the crawl never reached is an orphan. Its automatic orphan report needs a paid licence, since that pulls in Analytics and Search Console data, but at thirty pages a spreadsheet does the same job.
By hand. List every page. Next to each, name the page that links to it. Forty pages is one evening.
Are breadcrumbs worth adding?
Yes, with a warning. A breadcrumb trail shows where a page sits, and Google displays breadcrumbs in search results on desktop. The BreadcrumbList markup needs an itemListElement array of at least two entries, each with a position, a name and an item URL, except the last.
Google's own recommendation is the one people get backwards: "provide breadcrumbs that represent a typical user path to a page, instead of mirroring the URL structure". Home, then Boiler Repair, then Landlord Gas Safety. Not a copy of your folder names.
Now the warning. In a July 2024 SearchPilot test, an e-commerce site removed the self-referential link from the last breadcrumb on its listing pages and lost 5.5% of organic traffic, a statistically significant drop. The schema was never updated to match, so the markup and the visible trail disagreed. Keep the two in sync.
Google also says it "does not guarantee that features that consume structured data will show up in search results", so breadcrumbs are housekeeping, not a lever.
Frequently asked questions
How many internal links should each page have?
No credible source publishes a number. Google says there is "no magical ideal number of links a given page should contain", and the 100-link guideline was dropped before 2008. Anyone quoting a target invented it.
Will exact-match internal anchor text get me penalised?
No evidence suggests it. Every anchor text example in Google's spam policies concerns links placed on other people's sites, and Mueller's 2020 answer indicates internal anchor text has no visible effect either way. Write for the reader.
Should every service page link to every other service page?
No. That rebuilds the footer problem inside your content. Link across only where a customer would genuinely cross from one job to the other.
What to do this week
Six jobs. None needs a developer.
- Name your three money pages. The services you want more of. Most sites have never made that decision.
- Count your footer links. If it lists every page you own, cut it back to the handful that matter.
- Add three contextual links inside the body of your pages, pointing up at those money pages, with anchor text a customer would say out loud.
- Run the right click test on your navigation and service tiles. If "Open link in new tab" is missing, those links do not exist as far as Google is concerned.
- Find your orphans. Search Console's internal links list, or a free crawl compared against your own page list.
- Check your breadcrumbs match your schema. Removing a link from one and not the other cost a site 5.5% of its organic traffic.
Most trades sites we look at have plenty of links and no priorities, which is why adding more never helps. At Business Opt the first internal linking job is almost always removal.
Decide which pages are meant to win. Then make your links say so.
