. We’ll check your site’s structure for SEO and UX.
Internal linking is the only layer of links you have full control over. And yet on most sites I audit, the budget goes to external link building while the internal link graph looks like a housing development with no sidewalks. I’ll show you what decides how much power a single internal link carries, which structure to pick for your site, and a few interesting details that have more than once saved a compromise between UX and SEO.
What internal linking is and how it differs from external linking
Internal linking means connecting pages within one domain. An internal link leads from one page on your site to another page on that same site. An external link, on the other hand, leads from someone else’s domain to yours, and that’s the one the industry fights wars and spends budgets over.
There’s one difference, but it’s fundamental. You influence external links indirectly; you can pursue them, but ultimately someone else decides, unless you build a network of your own domains, so-called PBNs, but that’s a different topic. Internal linking you design entirely yourself: which pages get power, with which anchors, from which places. John Mueller of Google called it one of the most important elements of a site and one of the biggest tools for telling a search engine which pages you consider important, and I’ll sign my name to that with both hands.
To make this easier to visualize, let’s flip the logic for a moment: a page with no internal links pointing to it tells Google it’s unimportant. Even if you spent two weeks building it.
What Google reads from internal links – three mechanisms
Before we get to practice, three mechanisms through which internal linking affects rankings. Everything else follows from these.
Content discovery – how crawlers find pages
Googlebot discovers new URLs mainly one way: by following links from pages it already knows. A page with no incoming links, a so-called orphan page, is invisible to the crawler unless it lands in an XML sitemap or gets an external link.
I wouldn’t be myself if I didn’t add a curiosity here. A sitemap only tells Google that a given address exists; it doesn’t say it’s important. There is an optional attribute called <priority>, which used to mark a page’s priority on a scale from 0.0 to 1.0. Today it’s ignored by Google, thanks to my fellow SEOs who abused it by giving every page the highest possible priority. A declaration where everything is the most important says nothing, so Google stopped reading it.
But back to the point, a page that lives only in the sitemap gets neither internal authority nor context from anchors. Formally indexed, practically dead. I see this regularly in audits: a blog section submitted in the sitemap, and on the site itself a single link to a post that, on top of that, sits on page 10 of pagination.
While we’re at it, let’s deal with crawl budget, since guides scare owners of 80-page blogs with it. Google’s crawl-budget guidelines target sites with over a million pages changing weekly or over 10,000 pages changing daily. If you run an online store with 500 products, crawl budget isn’t your problem. Linking depth and orphans, yes, but for other reasons.
Topical context – the anchor as a signal
Every internal link describes the target page. Mueller put it simply: an internal link’s anchor text gives Google a context signal, telling the search engine “you’ll find information on this topic in this part of my site”. On top of that comes the content surrounding the link, more on that in a moment.
This works both ways. Well-chosen anchors build topical connections between pages. Poorly chosen ones can trigger cannibalization, when two pages get identical signals and start competing for the same terms in search results.
Link juice – the internal distribution of authority
The public PageRank score disappeared years ago, but the mechanism for passing power through links still works. Every page has some authority, from external links and from its position in the site structure. Internal links carry part of that power further along. The industry calls this link juice, and while the name is ugly, it captures the idea well: power flows wherever you lay the pipes.

As a result, you’re the one deciding which pages get more SEO power, and hardly anyone uses that decision deliberately.
The anatomy of a single internal link – placement, anchor, context
Guides list the places you can put internal links. They rarely explain why the same link in two different places carries different value. It does, and knowing that gives you a real edge.
Code placement – main content versus boilerplate
Google segments a page’s template. It recognizes what’s main content and what’s a repeated template element: header, footer, sidebar. That repeated skeleton is boilerplate, though remember boilerplate isn’t uniform. Links in the header and links in the footer aren’t in the same league.
This is explained by patent US7716225B1, the so-called reasonable surfer. Google weighs links by the probability of a click, which depends, among other things, on their position on the page and how prominent they are. Header navigation is visible immediately and users genuinely use it. The footer requires scrolling the whole page, and a fraction of a percent of visitors click into it. That gives you a working hierarchy I also observe in practice: a contextual link in the main content > a site-wide link in the header > a site-wide link in the footer.
Here’s a curiosity, because Google’s communication on this gets a bit tangled. Mueller has said Google doesn’t ignore footer links, and that internal links carry similar signals regardless of placement, which sounds like it contradicts the above. But you have to realize Mueller’s statements often conflict with what actually works, so everything has to be filtered through your own experience. In my view, both things are true, because they concern different layers of the system. For content discovery, a link’s location genuinely doesn’t matter, the crawler follows every one. For how much weight the signal carries, it does.
There’s one more argument that settles it without needing any patents: for the user, a link’s placement always matters. Nobody looks for a site’s most important page in the footer. If you design link placement around the user, you get Google’s weighting as part of the package.
Anchor text – how to choose phrases for linking
The anchor is one of the most direct signals describing the target page in an internal link. The industry splits anchors into:
- exact match (the exact keyword phrase)
- partial match (a phrase with an extension)
- branded, and so-called zero match (“check here”)
With internal links you don’t have to fear exact matches the way you would with external ones: it’s your own site, and it’s natural to describe your page about internal linking with the phrase “internal linking”. But vary the phrasing when you link to the same page from multiple places. First, because synonyms broaden the context. Second, an identical anchor pointing to two different pages is a ready-made recipe for cannibalization.
Where do you get anchor variants from? Best from data you already have: Google Search Console. Open the Performance report, filter by the target page, and look at the queries it already shows up for. That’s a ready-made list of phrases matching how users actually search, better than invented synonyms. Phrases with impressions but a low position are natural anchor candidates.

OK, and what shouldn’t you use in anchor text? Bare URLs as links: Mueller confirmed they’re less clear to Googlebot than a link with a keyword in it. And anchors like “read more” or “click here”: zero topical signal for the crawler, zero information for the user about where the link leads. Two problems in one link.
While we’re on the subject, one industry myth to shoot down. “First link counts”: the theory that when a page links to the same address twice, Google only counts the anchor of the first link, so you have to engineer the order deliberately. The source? A single experiment by Rand Fishkin from 2008. Google never confirmed it, and Mueller, asked directly, said there’s no defined rule here. Eighteen years later the industry is still optimizing link order based on one test from a time when Chrome was a few months old.
The link’s surrounding text – semantic context strengthens a link
The anchor isn’t everything. Google also reads the words surrounding a link and uses them as an additional signal of topical relevance. It’s a weaker signal than the anchor itself, often described as secondary, but a real one.
For instance, a link to a page about image optimization placed in a paragraph about compressing graphic files will send a more coherent signal than the same link crammed into a paragraph about brewing coffee, because “it had to go somewhere”.
Special cases – image links and nofollow
Image links – When a link is an image, the ALT attribute takes over the anchor’s role. Mueller has said image links and text links are different signals. A logo linking to the homepage is fine, but if a product page in a store links to its category only through a graphic with no meaningful ALT text, you’re giving away a context signal for free. I hope that after reading this paragraph every one of you checks whether your site’s logo has the right ALT text set, because that one detail alone has more than once lifted a main keyword’s ranking by several positions for me 🙂
Nofollow on internal links – As a rule, just don’t add them. The nofollow attribute doesn’t redirect power to your other links, it simply loses it. The concept of “PageRank sculpting” died in 2009 and hasn’t come back, and since 2019 nofollow has been a hint for Google, not a directive, meaning Googlebot can still ignore nofollow and visit the page anyway.
There is one documented exception, though: faceted navigation. Google allows nofollow on links to filter pages as a signal to discourage crawling, with the caveat that it only works when every link to that address carries it, and that crawling is only truly blocked by robots.txt. But the cleanest solution sits a level below that: unwanted filters don’t need to be links at all<a href> – JS controls that don’t change the address, or parameters in the fragment (#), handle it at the source. The rule stays the same: if you don’t want a page in your structure, don’t build links to it, and treat nofollow as a band-aid.
Every internal link on a site belongs to one of three groups. They differ in role, strength, and what the user sees in them.
Navigational links – menu, breadcrumbs, categories
The main menu, breadcrumb navigation, category listings. Their job is architecture. They tell the user “you’re here, you can go there”, and they tell Google “this is what this site’s hierarchy looks like”.
The main menu is structurally the heaviest set of links on the entire site. Every item in it is a link repeated on every page of the site at once, and at the same time a declaration: “these are the pillars of this site”. Which is why the menu’s composition is an architectural decision. A page that lands there gets thousands of links and pillar status; a page that falls out loses both overnight. I’ve seen sites where rebuilding just the menu shifted visibility more than months of work on content.
Breadcrumbs deserve their own sentence, because they get treated as decoration. Gary Illyes confirmed Google counts them like ordinary links. That’s a free, systemic layer of upward linking through the hierarchy, from every product to its subcategory, category, and homepage. In an online store with 10,000 products, breadcrumbs generate tens of thousands of consistent internal links with zero manual work.
All right, but since the menu is the most prominent set of links on the site, it’s tempting to squeeze more out of it, and here lies the most common navigation sin: keywords crammed into anchor text. “Cheap men’s running shoes online” instead of “Shoes”. The problem is twofold. For the user, the menu stops being a map and becomes a wall of text. For Google, a menu label is an anchor repeated on every page of the site, so stuffing it with a keyword means keyword stuffing in the site’s single most visible anchor, thousands of times at once. A menu has to be understandable to a user seeing it for the first time. Full stop.
How do you know whether it’s understandable? Don’t guess, test it, and you don’t need a lab for that. We often run a study called tree testing: you show users just the category hierarchy, no graphics, no search bar, and ask them to find something specific, “buy winter running shoes”, say. You see what percentage of people reach the goal, and where they get lost along the way. The results can sting: categories that are obvious to the team can be impenetrable to customers.
And before you recruit your first participant, look at the data you already have. Internal search queries are a list of things people didn’t find in the navigation, phrased in their own words. Terms from GSC tell you what your customers call the thing they’re looking for, and category labels should speak the same language, so keyword research here is UX research at the same time. Click maps (Microsoft Clarity is free) show whether the navigation is doing anything at all, whether users bypass it and flee to the search bar, and a mass exodus to search is a symptom of a broken structure, not something to be proud of.
This is my favorite combination, and at the same time the biggest challenge in SEO and CRO: the structure a human uses to find a product is the same structure a crawler reads as a logical hierarchy. Fix one thing, win on both fronts.
Contextual links – links in the content
In-text links in the main content are the strongest type of internal link. They combine everything I described above:
- placement in the main content
- a well-chosen anchor
- semantic context
On top of that comes the user’s perspective: a contextual link is a suggestion to continue. You’re reading an article about a link audit and you get a link to a piece about Screaming Frog exactly at the moment you need it. Wikipedia is the ideal example of this.
Contextual links are also the glue for topic clusters, groups of content built around one area, where the articles complement and link to each other. That’s how I run content on my own posts: every new piece immediately gets links from existing posts in the cluster, and the older posts get updated. Without that second step, a new post starts out as a near-orphan. Topic clusters themselves are material for their own post, which I’ll write, just not right now 🙂
In online stores, contextual links are most often left neglected in two places
- category descriptions (which often don’t exist at all),
- blog content,
which doesn’t link to categories and products, even though it points the user exactly in their direction. An article “how to choose a bike for your child” with no link to the kids’ bikes category is work that’s 80% done.
Global links – the footer and site-wide elements
Site-wide links appear on every page: header, footer, fixed sidebars. Google sees them thousands of times in identical form and recognizes them as a template element, but as I wrote in the anatomy of a link, there’s a hierarchy within this group too. Header links carry a noticeably stronger signal than footer links, they’re prominent, users actually use them, and the site declares its structure through them. The footer is the weakest spot on the whole site.
Which doesn’t mean it’s useless. It makes sense as a set of fixed points: contact, terms, privacy policy, in some cases a sitemap, or a handful of important categories. It stops making sense as a junk drawer for eighty links, catching everything that “should be linked” but didn’t fit anywhere else. A footer like that helps neither the user nor the crawlers, it just dilutes the signals across the whole site.
A separate site-wide case is pagination on listings. It works as a system of internal links to deeper category pages, and for many products it’s the only path links reach them by. Which is why pagination has to be crawlable, though its configuration (canonicals, indexing) is a topic for its own article.
Link proportions – the number of links reflects a site’s hierarchy
A single link is a signal. All the links together are the priority map of the site that Google reads.
Hierarchy – from the homepage down into the site
Google sees the homepage as the most important page, pages linked directly from it as important, and the further from the homepage a page sits, the less significant it appears. On a well-organized site, the main categories are linked straight from the homepage, which is one reason SEO specialists like to highlight the most important categories in extra modules there.
The number of internal links to a page correlates with its priority, but that correlation comes from the architecture, not from manual pumping. The homepage has the most links because it sits in the header of every page. Main-menu categories, similarly. A second-level menu visible only on listings will generate fewer links, and that’s fine. Hierarchy is exactly what gets built through these differences.
Crawl depth works alongside this. A page five clicks from the homepage looks unimportant regardless of how many links come from deeply buried listings. The classic three-click rule is a simplification, but directionally correct: the more important a page, the closer to the homepage it should sit in the link graph.
Dilution – fewer links, a stronger signal
The power carried by links is split among every link on a page. Twenty internal links on a page won’t carry the same weight each as if there were only two. A hundred links in a bloated mega-menu on every page is a hundred thin streams instead of a few pipes.
Hence the paradox: sometimes removing links can strengthen your linking. Eight selective links from clean places will carry more than thirty crammed in everywhere. “Link everything to everything” isn’t a strategy, Mueller compared a fully interconnected site to a structure you can’t read anything important out of.
Where to place internal links without hurting UX
You want to raise the number of links to your priority pages. The simplest way to do it (not necessarily the nicest) is cramming links in wherever you can, or making sure every link has a navigational justification first and an SEO justification second. A few spots that work in both roles.
A second-level menu on listings
Instead of dumping 200 subcategories into a site-wide mega-menu, show them contextually where the user actually chooses, on the category page. Fewer links globally, a stronger signal locally. The user gets the choice at exactly the moment in the path they need it.
Related products in e-commerce
“Similar products” and “customers also bought” sections on product pages are natural linking hubs. But the relationships have to be topical, not random. A module pulling in products from random categories doesn’t build sales or signals, it builds noise. Importantly, plenty of third-party tools help match these elements better, pay close attention to how they’re implemented. In most cases these tools generate products via JS, bypassing the <a href> HTML tag, which can block crawling entirely.
Related blog posts
A “see also” section under an article keeps the reader on the site and links within a topic cluster. Same rule as with products here: the articles have to be topically related.
To filter related posts I usually rely on tags, and I’ll flag this right away, because tags have a bad reputation in SEO. They’re fine if you design them and stick consistently to the rules you set. A closed list of tags decided in advance, every tag spanning at least a few posts, zero making up new ones on the fly at publish time. A folksonomy where “every post gets five freshly invented tags” produces dozens of empty tag pages, and that’s exactly the variant that gives tags a bad name. Tags themselves are material for their own post.
Category descriptions
A paragraph of content on a listing is a legitimate place for contextual links to subcategories and related categories, with anchors a menu could never carry.
Breadcrumbs
I mentioned this above, a systemic layer of upward links through the hierarchy that you build once.
A deliberate footer
A dozen or so fixed points instead of eighty links added “just in case”.
A consistency test in Google Search Console
A simple diagnostic test I run at the start of every audit. Open the Links report in Google Search Console and look at the list of your most internally linked pages. Then ask one question: does that list match the pages that actually make you money?
To be fair, the data in this report is approximate and incomplete, Google trims the list and doesn’t show the full graph, so treat the numbers as a statistical sample. It’s more than enough for a first quick assessment, though.
If your Privacy Policy, Terms and “About Us” page sit in the TOP 10 while your revenue-generating categories sit at position forty, your link graph is telling Google a different story than your business plan. Believe me, situations like that aren’t rare.
Internal link structures – star, pyramid and silo
That was a lot of theory, now some practice to help visualize it. Individual links and their proportions form a structure. You can leave it to chance, and you’ll get a “whatever happened” structure, or you can deliberately choose one of three models.
The star structure
A central page (the hub) links to satellite pages, and the satellites link back to the center. A simple model, fast to implement, good for small service businesses and businesses built around one main offer page.
This structure’s weakness shows up when scaling: satellites don’t link to each other, so topical context never accumulates. A user reading one satellite article only gets a path back to the center, dead ends on either side. With a dozen or so pages that doesn’t matter. With a hundred, you’re wasting most of your linking potential. Still, this structure is worth considering for small sites or single campaigns.

The pyramid structure
The homepage, categories underneath, subcategories below that, target pages at the bottom. Power flows top to bottom, depth grows with every level. This is the natural model for e-commerce, it maps one to one onto a category structure and usually onto a URL structure.
too.
The pyramid has another advantage rarely mentioned: it matches the user’s mental model. A person in a store thinks “I’m in shoes, in running shoes”, and a pyramid with breadcrumbs mirrors that exactly. A structure that’s understandable to the customer is automatically understandable to the crawler.

The pyramid’s only downside is its depth. A pyramid with five levels of categories buries products beyond the reach of sensible crawling. If the hierarchy keeps growing downward, you have to flatten the levels or shorten the path with cross-linking, contextual links running across branches, between related subcategories from different parts of the tree, say.
The silo structure
A silo is a pyramid with topical discipline. Content within one topic links intensively to itself; links between silos are rare and deliberate, meant to concentrate the topical signal and build topical authority within each cluster.
If, reading about the pyramid, you thought “isn’t a store’s category tree basically already a silo?”, you’re right. The pyramid and the silo aren’t competing models, just the same hierarchy with a rule added on top. It’s one of the best ways to link a site, and it works excellently in large stores and on information sites alike.

But remember not to let the rule beat common sense. I’ve seen sites where the theory forbade a link between two articles, even though a user reading the first one obviously needed the second. If a structure blocks a sensible next step for the user, that isn’t optimization, it’s getting in your own way for the sake of a diagram. Silos are meant to organize the flow of topics, not build walls.
How to check your internal linking
Three tools, three different questions. The order isn’t accidental.
Google Search Console – does the graph match your priorities
The Links report, internal links section. The consistency test described above. Compare your most-linked pages with the pages that are supposed to make money. Five minutes of work, and the result often sets the direction for the rest of the audit. GSC will also show you pages with very few incoming links, candidates for strengthening.
Screaming Frog – depth, orphans, redirects
With this tool you can check: Crawl depth –
how many clicks from the homepage the pages you care about sit at. Anything above 4-5 levels for important pages is a signal to rebuild. Orphan pages –
comparing the crawl against your sitemap and GA4/GSC data will catch pages with no internal links pointing to them at all. But a classic orphan is just the start. In practice, a near-orphan is more common: a page technically linked, but at a depth of 7+, with two incoming links from equally buried places and an anchor that says “read more”. A crawler treats it barely better than a genuine orphan. Links to redirects and errors –
internal links routed through a 301, a 302, or to a 404. An internal redirect is an unnecessary stop (we call it, generously, reducing redirect chains): since you control both ends, link straight to the final URL instead. After every migration this report can light up red with hundreds of entries. Anchors –
an anchor-text report answers two questions: do descriptive phrases lead to your important pages, and does the same anchor happen to point to two different addresses?
GA4 – pages with traffic that nothing links to
Cross-reference pages with real organic traffic against their internal link count. You’ll find pages users land on from Google and then get stuck on, because nothing sensible leads onward from there. That’s the reverse of an orphan. A high bounce rate on pages like this can mean there’s no path forward.
The internal-linking mistakes I see most often Orphaned pages –
the content exists, it’s in the sitemap, but no internal link points to it. The most common case is a landing page left over from an old campaign, leftovers from a migration, or a category that got unlinked. Linking to redirects –
hundreds of internal links routed through a 301 after a migration. Developers changed the links in the information architecture and the footer but forgot about hundreds of in-text links. Everything linking to everything –
automated modules linking every post to every other post. A graph like that carries no readable hierarchy, not for the crawler and not for a human either. Limits treated as official documentation –
“max 150 links per page”, “2-5 links per 1,000 words”, these numbers circulate through guides, but they don’t come from any Google guidelines. Mueller has repeatedly confirmed there’s no hard limit, what matters is usefulness. Keyword stuffing in navigation –
a menu with labels written for keywords instead of for people. Identical anchors to different pages –
a straightforward path to cannibalization, Google gets conflicting signals about which of two pages is the right one for that phrase. Linking against the user’s path –
Internal linking and AI search – what works and what’s speculation
AI search systems read internal link structure as a graph of relationships between pieces of content. Every link declares a connection; a coherent graph communicates which page on a site is the main source of an answer on a given topic. Well-organized topical linking, the same kind you build for Google and for users, should also help retrieval systems understand a site.
As of writing this, though, we still don’t know how strongly this affects citations in AI Overviews or ChatGPT’s answers. Numbers like “citations up from 12% to 41% after implementing a hub-and-spoke structure” circulate around the web, I haven’t found any verifiable methodology behind them, and I treat them as tool marketing, not data. My recommendation, though, is a safe one: anything that improves internal linking for classic SEO is neutral or beneficial for AI visibility too. You don’t have to do anything separate. You have to stop having a mess. Do you feel your site isn’t using its internal-linking potential?Get in touch