Internal links are the one part of SEO you control completely. You cannot make another website link to you, but you decide every link inside your own site. I first wrote about internal linking in 2020. Since then Google has changed how it treats nofollow, retired old pagination markup and published guidance on faceted navigation, and AI search has made clear site structure even more valuable. This updated version reflects what I actually do when I audit and build WordPress and WooCommerce sites.
What internal links are
An internal link is a hyperlink from one page to another page on the same domain. In practice they fall into two groups:
- Navigational links repeat across the site (menu, footer, sidebar, breadcrumbs) and show the main sections.
- Contextual links sit inside the main content, connect related topics and carry the most descriptive anchor text.
Why internal linking matters for SEO in 2026
Discovery
Google finds most new URLs by following links. The Google SEO Starter Guide says directly that the vast majority of new pages Google finds every day are discovered through links. The sitemaps overview even states that a site of about 500 pages or fewer, comprehensively linked internally, may not need a sitemap at all. If some of your pages never get indexed, fix the linking before you reach for guaranteed indexing tools or other shortcuts.
Context and importance
Anchor text and the surrounding sentence tell Google what the target page is about. The original PageRank algorithm, developed by Larry Page and Sergey Brin at Stanford in 1996, treated links as votes, and the same logic applies inside a site. Google does not publish internal weights, so nobody can promise that one extra link equals a certain ranking gain. What I see consistently is simpler: pages buried deep with one or two weak links underperform, and pages that get proper internal support usually move.
Sitelinks and AI search
The sub-links under your homepage result cannot be added manually. The Google documentation on sitelinks explains that its systems analyze the link structure of your site and recommends concise, relevant internal anchor text. AI answer engines work in a similar spirit: they build on content that search systems have already crawled and understood, and a clear hub and cluster structure shows which page is authoritative on a topic. That is why internal linking is part of every AEO strategy for getting recommended by AI I put together, alongside the checks covered in technical SEO for AI search.
The technical rules Google actually documents
Links must be crawlable
This is the most overlooked point on WordPress sites built with page builders. The Google guide on crawlable links is clear: Google can reliably follow an `<a>` element with an `href` attribute that resolves to a real URL. A `<span>` with a click handler or an anchor with only an onclick event may work for visitors, but it is not a dependable link for Googlebot. In audits I regularly find mega menus, product tabs and slider buttons that look like links but are not.
Anchor text should describe the target
Google recommends anchor text that is descriptive, reasonably concise and relevant to both pages. Avoid generic phrases such as click here, avoid keyword stuffing and do not chain links next to each other without context. A useful test from the same documentation: read the anchor on its own and check whether it still makes sense. I go deeper into anchor variety and exact match risks in the guide on anchor text for SEO.
Nofollow on internal links is a mistake
Some themes and older advice still add nofollow to internal links such as login, cart or terms pages to push value elsewhere. This is PageRank sculpting, and Google neutralized it in 2009 by changing how value is divided among links on a page. Since March 1, 2020, nofollow is also treated only as a hint for crawling and indexing. The Google page on qualifying outbound links says that for links within your own site you should use robots.txt disallow rules instead.
My rule: if a page deserves a link, link it normally. If it should not be crawled, use robots.txt. If it should not be indexed, use noindex. The only gray area is faceted navigation, covered below.
Repeated links and link count
Google has never documented a benefit from linking to the same page several times from one article, and readers see clutter. I keep one contextual link per target URL in the body. Template navigation is a separate layer.
Google also does not recommend a number of links. The crawlable links guide says every important page should have at least one internal link, and if it seems excessive, it probably is. In a 2,000 word article I usually end up with 5 to 12 contextual links, each placed where a reader would genuinely want to click. The 1 to 3 links per article I recommended in 2020 is too conservative for in-depth content.
Site architecture: crawl depth, hubs and clusters
The three click rule is a usability heuristic, not a Google requirement, but it is a practical target, because pages close to a strong homepage get discovered and recrawled faster. On WooCommerce stores I aim for every product to be reachable within three or four clicks through categories, not only through search or filters.
A hub page (or pillar page) covers a broad topic and links to detailed articles, which link back to the hub and to their closest siblings. The link cluster on this site works that way: one piece explains what a backlink is, another covers how to get backlinks in the era of AI search, and this article handles the internal side.
Finally, link from strength to need. In 2020 I described this with Page Authority, which is a tool vendor score, not something Google uses. Today I look at which URLs have the most referring domains and organic clicks in Search Console and add relevant links from them to commercial pages or articles stuck on page two.
Internal linking in WordPress and WooCommerce
Categories, tags and product pages
Categories are the backbone of every WordPress blog and WooCommerce store. Give each category an introduction with a few contextual links so the archive is more than a grid. Tags are where most sites go wrong: hundreds of tag archives with one or two posts each create thin pages. Curate them into meaningful collections or noindex them.
WooCommerce includes related products, upsells and cross-sells. Related products are picked automatically from shared categories and tags, so their quality depends on your taxonomy. Upsells and cross-sells are set manually and are worth the effort for best sellers. Add a contextual link or two in product descriptions to a buying guide or parent category as well.
Breadcrumbs
Breadcrumb navigation gives every page a trail of links up through its parents. WooCommerce has built-in breadcrumbs and the major SEO plugins add them for posts and pages. Add BreadcrumbList markup following the Google documentation on breadcrumb structured data, and note one detail: Google recommends breadcrumbs that represent a typical user path, not a mirror of the URL structure. Flat product URLs can still show Home, Category, Subcategory, Product.
Related posts, menus and footers
Automated related posts widgets often suggest weak matches, and some load via JavaScript, which makes the links less reliable for crawling. I prefer a short hand-picked list. Menus and footers repeat on every page, so reserve them for main sections and key money pages. The pros and cons of links repeated across a whole site are covered in the article on sitewide links.
Faceted navigation and filters
Filters by color, size, price or brand can generate thousands of URL combinations from a few hundred products. The Google guide on faceted navigation explains that crawlers then spend time on filter URLs and have less left for new, useful pages. Recommended options are blocking filter parameters in robots.txt, using URL fragments for filters, or rel canonical to the unfiltered category. Nofollow on filter links is mentioned too, but Google calls it less effective because every filter link must carry it.
My approach: keep a few valuable combinations (for example a popular brand within a category) as real indexable landing pages and block the rest of the parameter space. For very large stores, Google has a separate guide on managing crawl budget for large sites, aimed at sites with about a million pages or more, or 10,000 or more pages changing daily.
Pagination
According to the Google guide on pagination and incremental loading, each paginated page needs its own URL and canonical, should link to the next page with a normal `<a href>` link, and Google no longer uses rel next and rel prev. Infinite scroll without crawlable paginated URLs behind it can hide deeper products from Googlebot.
Internal link types compared
| Link type | Typical place | Main SEO value | Common mistake |
|---|---|---|---|
| Main menu | Header on every page | Defines top-level structure | JavaScript-only dropdowns |
| Breadcrumbs | Above content | Hierarchy and structured data | Mirroring URLs, not the user path |
| Contextual links | Article or product text | Topical context through anchors | Generic anchors, repeated URLs |
| Category and tag archives | Listings | Discovery of posts and products | Hundreds of thin tag pages |
| Related products and posts | Below content | Discovery and cross-selling | Weak automatic matches |
| Footer and sidebar | Every page | Access to key pages | Dozens of keyword-anchor links |
| Pagination | Bottom of archives | Reaching deep items | Infinite scroll without URLs |
| Faceted filters | Category sidebars | Only selected combinations | Thousands of crawlable parameters |
Orphan pages and how to find them
An orphan page has no internal links pointing to it, so Google can only find it through a sitemap or external links, and it is usually crawled rarely and ranks poorly. On WordPress sites orphans typically come from campaign landing pages, products removed from categories but still published, and posts whose only link was a homepage slider that got replaced.
Detection is a comparison of two lists: URLs a crawler finds by following links from the homepage, and URLs you know exist from the XML sitemap, Search Console and analytics. Anything in the second list but not the first is an orphan. Then link it from relevant pages, merge it into a stronger page with a 301 redirect, or remove it. Once linked, you can speed up recrawling with the options in the overview of the best Google indexing tools, but the link comes first.
How to build an internal linking plan step by step
1. Crawl the site and export link data
Crawl the whole site with JavaScript rendering on and off, and export every URL with its crawl depth, incoming internal links and anchor texts. Differences between the two crawls reveal JavaScript-only links.
2. Map topics to hub pages
Assign one primary URL to each main topic or product group: a category, pillar guide or service page. Every supporting article or product should belong to a hub. If two pages compete for the same intent, merge them before you build links.
3. Find orphan and deep pages
Compare the crawl with the sitemap and the Search Console page indexing report. Flag pages with zero or one internal link and pages deeper than four clicks.
4. Identify strong pages and pages that need a boost
Sort pages in Search Console by clicks and check which ones attract external links. Then find pages ranking around positions 8 to 20 for valuable queries, where extra internal support most often makes a visible difference.
5. Add contextual links with descriptive anchors
Link from strong pages to the pages that need help, only where the topic genuinely connects. Describe the target in the anchor, vary wording naturally, keep one link per target URL in the body and make sure each hub links to every important member of its cluster.
6. Fix technical blockers
Replace JavaScript-only navigation with real links, remove nofollow from internal links, handle faceted parameters, add breadcrumbs with structured data and keep paginated archives crawlable. Check custom code too: related products snippets written by a developer or an AI assistant sometimes output links without `href`, so review them as described in the guide on secure AI coding for WordPress and WooCommerce.
7. Monitor and repeat
Recrawl, confirm that orphans are gone and depth has dropped, and watch the targeted pages in Search Console. Add internal linking to your publishing checklist so every new article links to its hub and gets at least two links from existing content.
Internal links work best when the page behind them deserves the attention. The principles in how to write content that AI cites apply equally to the pages you want to strengthen, and external signals such as brand mentions and AI citations complete the picture.
If you would rather have someone experienced map this out, WooAcademy (Milan Fraňo) works remotely with companies across the EU and the US on technical SEO audits, internal linking plans and WooCommerce development, including the cleanup of faceted navigation and category structures.
FAQ
What is internal linking in SEO?
Internal linking in SEO means connecting pages on the same domain with standard HTML links, so users and search engines can discover content, understand how topics relate and see which pages matter most. It covers menus, breadcrumbs and contextual links inside article and product text.
How many internal links should a page have?
Google sets no number and only says every important page needs at least one internal link and that an excessive amount is a warning sign. A long article usually works well with roughly 5 to 12 contextual links, each placed where a reader would genuinely want more detail.
Should internal links be nofollow?
No. Google neutralized PageRank sculpting with nofollow in 2009 and recommends robots.txt rules rather than nofollow for controlling crawling within your own site. Use normal links for pages that deserve them, robots.txt for sections that should not be crawled and noindex for pages that should stay out of the index.
Do internal links help pages rank higher?
They help Google find pages, understand their topic through anchor text and recognize which pages the site treats as important. Google does not publish their weight, so there is no guaranteed gain, but pages that receive relevant links from strong pages often improve, especially when they already rank on page two.
What is an orphan page?
An orphan page is a published URL with no internal links pointing to it. Search engines can find it only through a sitemap or external links, so it tends to be crawled rarely and rank poorly. Fix it by linking it from relevant pages, merging it into a stronger page or removing it.
How should WooCommerce stores handle filter URLs?
Most filter URLs from faceted navigation should be kept out of crawling, for example with robots.txt rules for filter parameters or canonical tags pointing to the unfiltered category, as the Google faceted navigation guidance describes. Only combinations with real search demand deserve indexable landing pages.
Are breadcrumbs important for internal linking?
Yes. Breadcrumbs give every page consistent links up through its parent categories, which reduces crawl depth and clarifies hierarchy. With BreadcrumbList structured data Google can read the trail, and it recommends breadcrumbs that follow a typical user path rather than copying the URL structure.

