Internal linking: how to connect pages so they help search engines and users

19 minutes

An internal link is a link from one page of a site to another page on the same site. Internal linking is the system behind those links: which pages are connected, where the links sit, and what text labels them.

Internal linking serves two audiences. For the user, it points to the next step: more detail, a related topic, or a page that solves a specific task. For the search engine, it helps find pages and understand what they are about. Google uses links to discover new pages, and it factors links in when determining a page’s relevance. Yandex’s crawler works largely by following links and analyzing them.

What internal linking is and why it matters

A site always has links: the menu, the footer, buttons, links within the text. What turns them into internal linking is a system: every link sits where it’s needed and leads where it should lead.

Two jobs: user navigation and the search engine’s understanding of the site

User navigation. A good link answers the question «what’s next?» A reader of an article moves on to a related topic, to a section with similar material, or to a page that describes the solution to their task.

The search engine’s understanding of the site. The crawler finds pages through links, and the link text gives it an idea of what’s on them. Google writes that carefully crafted internal link text helps both users and search engines understand what a page is about and navigate the site more easily.

The same links serve both jobs. So the criterion is shared: a link is useful to the reader right where it sits. A link that a person won’t notice, or won’t understand the point of following, is the first sign that it was placed «for the crawler.»

Discovering pages

Discovery is the moment a search engine learns a page’s address. Google primarily finds pages that are linked to from other, already crawled pages, and it discovers most pages precisely through links. For Yandex, internal links are one of the sources the crawler uses to build its list of known pages, alongside external links and the Sitemap file.

Yandex’s help documentation on site structure states this directly: if no other page on the site links to a document, the crawler will never learn that it exists. Google states a minimum rule: every significant URL should be linked to by at least one other page on the site.

It matters that the link can actually be followed. As a rule, Google’s crawlers only crawl links that are an HTML <a> element with an href attribute. Among the unwanted variants, Google lists an element without href (<span href=…>), a transition through an onclick handler, and a URL in the form href=javascript:…. Yandex likewise asks that every document be reachable through an ordinary link with an <a href> tag. If an image serves as the link, Google takes the link text from the alt attribute.

In practice, check the menu, filters, «Show more» buttons, and cards in listings: are those transitions built as ordinary links, or only through a script?

Discovery is only the first step. A page that has been found still has to be crawled and indexed. If a search engine knows about a page but it’s missing from search results, the cause usually isn’t the links anymore — that’s covered in the article on why a page doesn’t make it into the index.

Context through the anchor and the surrounding text

The anchor is the visible text of a link. Google writes that link text gives users and Google an approximate idea of what the target page contains. The surrounding context matters too: the words before and after a link matter, so Google recommends treating the sentence as a single whole.

Yandex recommends making links to other sections of the site textual, to give the crawler more information about the material located there.

The practical takeaway: a link inside a sentence that explains why to follow it tells readers and search engines more about the target page than a bare «learn more.»

Hierarchy and page depth

Hierarchy is the order in which pages are subordinate to one another: homepage → sections → pages within sections. Yandex advises keeping a clear link structure: every document should belong to its section. Google calls it important to structure content logically when you build or rework a site. For internal linking, one thing matters: links should mirror the hierarchy. A section links to its pages, and a page links back to its section.

Page depth is how many link clicks it takes to reach a page starting from the homepage. According to Yandex’s help documentation, the homepage often serves as the entry point to a site, and the deeper a page sits, the more time can pass before it’s included in the index. There’s no numeric rule such as «no deeper than N clicks» in this guidance. So work from a principle instead: the more important a page is to the user and the business, the shorter its path should be from the homepage and from hubs.

A hub is a page that collects links to material on one topic: a section, a category, an overview article. Hubs shorten the path to nested pages and show which pages belong to the same topic.

It’s useful to split internal links into three kinds. They differ not in their HTML code but in their purpose and in who places them.

KindExamplesPurposeWhere it’s placed
Navigationalmain menu, section menu, footer, page lists within a sectiongive the site a constant framework and reflect its hierarchytemplate, the same across many pages
Contextuala link inside a paragraph to a page related in meaninggive the next step on the topic and describe the target page through the anchorthe text of a specific page, placed by hand
Systemic linksbreadcrumbs; «see also» blocks; the «article → service → target action» chainconnect a page with its section, its neighbors, and the target actiona template or rule, following logic set in advance

Navigation: menu, sections, footer

Navigational links are visible on most pages. They let a user understand what the site consists of, and they give the crawler stable paths to the main sections.

Because navigation is set by a template, any mistake in it is replicated across the whole site. A menu link to a deleted section, or to a redirecting URL, shows up at once on every page using that template. That’s why the menu and footer are the first thing checked after any template change.

The menu usually holds sections and key pages. Individual articles and nested pages get their links from sections, hubs, and body text.

Contextual links in the text

A contextual link sits within the text and leads to a page that develops a related topic. It’s the most informative kind of link: it has both an anchor and a surrounding sentence.

How to place contextual links:

  • where the reader is likely to have a question that another page answers;
  • to a page that solves a different task, not to a page covering the same topic as the current one;
  • not back-to-back: Google advises against placing links one right after another — readers find them hard to tell apart, and the surrounding text stops working as context;
  • with an anchor that describes the target page (more on this in the section on anchors).

Systemic links: breadcrumbs and «see also» blocks

Breadcrumbs are a row of links showing the path from the homepage to the current page, for example «Home → Blog → Article.» Google describes a breadcrumb trail this way: it reflects a page’s position in the site’s hierarchy and helps users find their way around.

Yandex’s equivalent is called a navigation chain — a row of links to the site sections that the found page belongs to.

Breadcrumbs are useful when they mirror the real hierarchy and consist of ordinary links. Breadcrumbs that lead somewhere other than where the menu leads confuse both the user and the crawler.

«See also» blocks are lists of related pages, usually at the end of a piece. They help the reader continue with the topic and give links to pages that are hard to mention naturally in the body text.

A «recent posts» block leads to whatever was published most recently, not to whatever is related in meaning. Decide first which pages should be connected, and only then automate how the block is generated: automation locks in the logic, it doesn’t create it.

The «article → service → target action» chain

An informational article and a commercial page have different jobs. An article answers a question; a service or product page describes a solution. The chain isn’t a separate kind of link but a rule: which contextual links and which call to action carry a reader from the article to the commercial page. That connection should be set explicitly:

  1. The article answers an informational query and doesn’t restate the commercial page.
  2. The link — contextual, in a fitting section, and in a call-to-action block at the end — leads to the service or product page that solves the reader’s task.
  3. The target action — a form, an inquiry, or a contact — lives on the service page, not in the article.

Every article should have one primary target page defined for it. If an article links to several commercial pages with the same emphasis, the reader has no clear sense of where to go next.

The anchor of that link describes what a person will find on the page: what the work includes, how it’s structured. Promises and pressure in the anchor aren’t needed.

Anchors: descriptive, varied, without exact-match

An exact-match anchor is link text that repeats a page’s target search query word for word. Using it for every link to that page is a bad idea: the text becomes unnatural, and the anchor stops describing the specific link.

Rules for anchors:

  1. Descriptive. The anchor makes clear what’s on the target page: «how to check whether a page is indexed,» not «read here.» Google cites «Click this link» and «Learn more…» as examples of poor anchors.
  2. Fits both the source and the target. According to Google, good link text is informative, concise, and matches both the topic of the page the link sits on and the content of the page it leads to.
  3. No keyword stacking. Google advises against packing a link’s text with every keyword relevant to the page: an excessive number of keywords violates Google’s spam policies.
  4. Varied. Link to the same page with different wording — the way natural text refers to one topic in several ways.
  5. One anchor, one address. The same link text shouldn’t lead to different pages: a reader expects identical links to lead to the same place.

Common mistakes

Orphan pages

An orphan page is a page that no internal link leads to. The only way to reach it is by typing the direct URL, through the Sitemap file, or from another site.

For search, this is a direct risk: per Yandex’s help documentation, the crawler will never learn about a document that no other pages link to.

A Sitemap helps the crawler find such pages, but it doesn’t replace links. Yandex recommends the file specifically for pages without navigational links, but neither Google nor Yandex guarantees that every URL in it will be crawled or make it into search results. And a user never browses a Sitemap. More detail in how to build a sitemap.

What to do with an orphan: if the page is needed, add links to it from its topic’s hub and from pages related in meaning. If it isn’t needed, decide its fate deliberately rather than leaving it hanging.

Links to redirects, 404s, and URLs closed to indexing

An internal link should lead straight to a working, final address — the one you actually want shown in search.

  • 404s and other errors. The link leads to a dead end. Yandex Webmaster has an «Internal links» report listing the site’s broken internal links; for each one it shows the page the link sits on, the destination address, the 4xx or 5xx HTTP status, and the link text.
  • Redirects. A link to an old address that redirects to a new one still works, but it adds an extra hop. In its guidance on moving a site, Google advises replacing every URL that points to pages on your own site — so things stay convenient for users and the server load doesn’t become excessive. The same principle applies to any change of addresses: links should go straight to the final URL.
  • Non-canonical addresses. Google writes that internal links should point to canonical URLs, not to duplicate ones. Don’t use variants with parameters, with or without a trailing slash, or with different letter casing in links. How the canonical link works and how the primary address gets chosen is covered in a separate article.
  • Pages closed to indexing. Links to the cart, the account area, or on-site search are things a user needs, and that’s fine. But contextual links and the internal linking plan shouldn’t include pages with noindex or a robots.txt disallow: such a link leads to a page you’ve deliberately excluded from search yourself.

Internal linking that makes pages compete with each other

The anchor tells you what the target page is about. That means links also help decide which page on the site gets associated with a given topic.

Competition appears when links contradict how queries have been distributed across pages. Say a site has an article «how to choose a bicycle» and a catalog section «bicycles.» If blog articles use the anchor «bicycles» to link sometimes to the article and sometimes to the catalog, you’re the one mixing the signals about which page should answer that commercial query.

The rule: one page per intent, and links with anchors about that intent all lead to it. The informational article gets links worded informationally; the commercial page gets links worded around solving the task.

Excessive sitewide link blocks

A sitewide block is a set of links that appears on all or nearly all pages: an extended menu, a footer, a «tag cloud.» When such a block grows so large that it’s hard to find anything in it, it stops helping navigation.

Google’s answer to the question of how many links is too many: there’s no ideal number of links on a page, but if you’re wondering whether you have too many, you probably do.

A separate problem is blocks written for search engines, not for people. Google counts blocks of text listing the cities and regions a page targets as an example of keyword stuffing. A footer with a list of links shaped like «service name + city» works the same way. Google also treats hidden links — for example, a link placed on one inconspicuous character — as a violation. Google’s link spam policies describe creating links mainly to manipulate rankings, and their examples concern links between sites. For internal links, the practical boundary is the same: a link should be there for the reader, not only for the search engine.

A simple test: would you keep this link if search engines didn’t exist? If not, it’s worth removing.

How to plan and check internal linking

From a «query → page» map to a link plan

An internal linking plan doesn’t start with the links — it starts with a map: which group of queries is assigned to which page. How to build that map is covered in the article on distributing queries across pages. What matters here is what to do with it next.

For every page in the map, record:

PageRoleIncoming links — from whereOutgoing links — to whereAnchor optionsTarget action
URLhub / target / supportingsection, hub, related articlesneighboring pages, commercial pageseveral wordings, specific to each sourcefor an article — a link to the service page; for a service page — an inquiry

In our keyword research work, the internal linking plan is built after queries have been matched to pages.

Links within a cluster and between clusters

A cluster is a group of queries and pages that belong to the same topic. How to split queries into clusters based on the search results is covered in a separate article. Within a cluster, the links are dense: the hub links to every page on the topic, and the pages link back to the hub and to their closest neighbors.

Between clusters, links are placed selectively — only where the reader has a genuine next step. There’s no need to link «everything to everything»: such links don’t help the reader and dilute the topic of every page involved.

A link into a neighboring cluster is labeled with that cluster’s own topic. That way it doesn’t pull the current page’s intent toward itself.

Crawling and the link graph

A link graph is a model of a site where pages are nodes and links are the connections between them. A crawler — a program that walks a site through its links much the way a search engine’s crawler does — helps build it.

What to look for in the graph:

  • pages with no incoming links — URLs from the Sitemap or the CMS that the crawler never found; these are orphan candidates;
  • links to errors, redirects, non-canonical addresses, and addresses closed to indexing — where they sit and what text labels them;
  • the depth of important pages;
  • anchors — whether the same text leads to different addresses, and whether an exact-match anchor repeats across every link.

Some of this data is available in the search engines’ own panels. In Search Console’s «Links report,» the «Internal links» section shows the site’s most-linked-to pages and which pages link to a selected one. The report only covers a portion of the links — enough for a general picture.

Site structure and internal links are also checked during an SEO audit — more detail on auditing structure and internal links.

Checking after every site change

Internal linking breaks quietly. A new template removes a block of links, a URL migration leaves links pointing at old URLs, a deleted page turns the links to it into dead ends.

A reliable approach is to treat the links as a graph that gets checked after every release: save the state before the changes and compare it with the state after.

What to compare before and afterSign of a problem
Links in the menu, footer, breadcrumbsSections disappeared; links point to old addresses or to redirects
Incoming links of important pagesA page lost links from its hub or from body text; orphan pages appeared
Response codes of target addressesLinks now lead to a 404, a 5xx error, or through a redirect
Canonical status and indexability of target addressesLinks point to non-canonical addresses or to pages with noindex
AnchorsThe template replaced descriptive anchors with «Learn more» or the same text everywhere

Checklist: internal linking is in order

  1. Every significant page has at least one incoming internal link; there are no orphans.
  2. Every link is an ordinary <a href>; image links have alt filled in.
  3. Links lead straight to final, canonical addresses: no 404s, server errors, redirects, or parameter-based duplicates.
  4. No contextual link points to a page with noindex or a robots.txt disallow.
  5. Navigation and breadcrumbs mirror the real hierarchy of sections.
  6. Important pages are reachable from the homepage and from hubs in a small number of clicks.
  7. Anchors are descriptive; one anchor leads to one address; an exact-match anchor doesn’t repeat across every link.
  8. Links with anchors about one intent all lead to one page; pages don’t compete with each other.
  9. Every article has an explicit connection to a target service or product page.
  10. Sitewide blocks aren’t overloaded and aren’t made up of keyword lists.
  11. After every release, the link graph is compared against its state before the changes.

Frequently asked questions

How does internal linking differ from external links?

Internal links connect pages on the same site, and you have complete control over them. External links lead from your site to others, or from other sites to yours. Google points out that links aren’t only external — internal ones matter too, and the text of internal links matters as well.

Does a small site need internal linking?

Yes. Even on a small site, a user won’t find a page that has no links to it, and a search engine may never learn it exists. The difference is one of scale: on a small site, the linking plan fits into a single table, and the check takes less time.

How many internal links should an article have?

There’s no universal number. Google states outright that there’s no ideal number of links on a page. The criterion is usefulness to the reader: a link belongs wherever the reader is likely to have a question that another page answers.

Can the same anchor be reused?

To the same address — sometimes, but it’s better to word it differently depending on the paragraph. What’s not allowed is the opposite: using identical text to lead to different pages.

Want every page to have its own job, with links guiding the reader to the right action? Structure and an internal linking plan are part of our keyword research work. → Site structure and internal linking