Open any post on your site and count the links. On a typical WordPress blog, most of them are not in the post at all. They are in the menu, the sidebar, the footer and the related-posts block, and they are identical on the next post and the one after. The links written into the body, the ones that say “this sentence is about that page”, are often only a handful, and on older posts frequently none.
That imbalance is what this guide is about. It expands the short comparison of link types in our internal linking strategy guide into the full argument: what each kind of link does, what search engines have and have not said about them, how to measure your own ratio, and how to fix it without a lost month.
Two kinds of internal link
A navigational link is one that comes from your theme or a widget rather than from the writing: header menus, footer links, sidebar lists, breadcrumbs, category and tag archives, pagination, and related-posts blocks. You set them up once and they appear on every page, or every page of a type.
A contextual link is one placed inside the body of a particular post or page, on words that describe the destination, in a sentence that gives a reason to follow it. Somebody chose it, for that page, at that point in the text.
The test is simple: if you could change the link by editing the theme or a widget, it is navigational. If you have to edit the post, it is contextual. A link to your tent buying guide can be either: “Tents” in the shop menu is navigational; “a tent with a separate inner” in a post about camping in the rain is contextual.
One page, two zones
It helps to look at a single page the way a crawler does: as a set of zones, most of which are shared with every other page on the site.
Google’s own vocabulary for this comes from its Search Quality Rater Guidelines (the September 2025 edition at the time of writing). They divide a page into Main Content, Supplementary Content and ads, and name navigation links as a common type of Supplementary Content: useful for the visitor, but not what directly achieves the page’s purpose. Those guidelines are instructions for human raters, and Google says on its How Search Works pages that rater scores do not directly affect ranking. They are still a fair picture of how Google thinks about a page.
How search engines may treat them differently
This is where most articles on the subject overclaim, so it is worth being precise about what is known.
What Google has said
- Template links count. Gary Illyes, asked whether breadcrumb links pass value, replied: “We treat them as normal links in, e.g., PageRank computation” (quoted by Search Engine Journal, from a 2017 tweet). Menus and breadcrumbs are real links, followed and counted.
- Google focuses on the primary content. Asked in a 2020 office-hours session whether links in navigation carry the same value as links in the main content, John Mueller said “we do focus on the primary content on the page” (reported by Search Engine Journal), and advised linking for users first.
- But location alone does not demote a link. In 2022 Mueller said of internal links in headers, footers and sidebars: “We don’t really differentiate there”, and that they help Google understand the site’s structure (reported by Search Engine Journal).
- Context comes from the words. Google’s link best practices say anchor text and the words around a link describe the destination, and recommend linking to related pages “in context”.
Read together, those statements are less contradictory than they look. A footer link is not ignored and is not “worth less” as a link. But it is the same link, with the same words, on every page, so it cannot tell Google anything about how any one page relates to its destination. The relevance signals, the anchor and the sentence, are the part template links cannot supply.
What is theory
You will often see the “reasonable surfer” patent (US 7,716,225, filed by Google in 2004 and granted in 2010) cited as proof that body links are weighted higher. The patent describes weighting a link by how likely a user is to click it, using features such as its position on the page (footer, sidebar, list), font size and the words in and around it. It is a plausible model, and it fits the Mueller remark about primary content. But a patent shows what Google once thought worth protecting, not what runs today, and Google has never published weights for link positions. Any article that gives you numbers for “a body link is worth X footer links” has made them up.
Both kinds of link help search engines find and connect your pages. Only contextual links can say, page by page, what relates to what and why. Whether Google also weights them higher as links is likely but unconfirmed, and you do not need it to be true for the practical advice to hold.
What each kind is good for
Neither kind replaces the other. They are good at different things, and a site needs both.
| Job | Navigational links | Contextual links |
|---|---|---|
| Making every page reachable by a crawler | Strong: archives and menus reach everything, eventually | Patchy unless you add them systematically |
| Keeping important sections one click from home | Strong: that is what a menu is for | Weak on its own |
| Saying how one page relates to another | Weak: same words on every page | Strong: anchor plus sentence |
| Showing which old posts still matter | Weak: archives favour the newest posts | Strong: you choose the destination |
| Getting a reader to the next useful page | Fine for orientation, low for deep reading | Strong: offered at the moment of the question |
| Effort to maintain | Set once in the theme | Every post, by hand, forever |
The last row is the whole problem. The kind of link that does the most is also the only kind you cannot set up once.
Template links also have a structural blind spot. Category and date archives list posts newest-first, so a post’s distance from the home page grows every time you publish. A recipe blog with ten posts per archive page and 400 posts in its “Dinner” category has its oldest dinner recipes about 40 pages deep through that route. Its click depth keeps rising even though nothing about the post changed. Contextual links do not age that way; the guide to measuring and reducing click depth covers the fix in detail.
Which links readers actually use
There is no good public dataset on how often readers click body links versus menu links on typical sites, so be wary of anyone quoting a precise ratio. What there is, is solid research on how people read pages.
Nielsen Norman Group’s eye-tracking work on banner blindness found that people learn to skip anything that looks like an ad or sits where ads usually go, such as the right-hand rail, and that the habit carries over to useful content placed in those spots. Sidebars full of “popular posts” live exactly there. A link in the paragraph a reader is actually reading has no such handicap.
The reasoning from there is common sense rather than data. A reader of a personal-finance post on paying off a car loan, three paragraphs in, at the line “before you overpay, make sure you have an emergency fund that covers three months”, has a reason to click right then. The same destination listed under “Popular posts” in the sidebar has to compete with everything else on the screen, at a moment when the reader is not looking for it.
You can check this on your own site rather than take it on trust. If your analytics setup records which links get clicked, a week of data on a few popular posts will show you which zone your readers actually use.
Why most sites have so few contextual links
If contextual links are so useful, why do most archives have so few? Three reasons, all structural rather than lazy.
- Posts are written in isolation. When you write a post, the posts it should link to may exist, but the posts that should link to it do not know it exists yet. Every new post arrives with outbound links at best and inbound contextual links at zero.
- Nobody goes back. Adding a link to an old post means finding it, finding the right sentence, editing, updating. For one link it is five minutes. For a 600-post archive where each post should gain two or three inbound links, it is well over a hundred hours, and it never makes it to the top of the list.
- The theme makes it look done. Every post is technically reachable through categories and the related-posts block, so crawl tools find nothing unlinked and nothing looks broken. The gap only shows when you count links from the body alone.
LinkStorm’s study of 2.5 million in-content links on 1,700 sites hints at the result: about 71% of contextual links pointed at pages within the first two levels of the site, and under 6% reached depth four or deeper. Body links pile up on the pages that are already easy to find, and the old posts that most need them get the fewest. Zyppy’s analysis of 23 million internal links adds a useful caution in the other direction: in its data, sitewide links often pointed at lower-traffic URLs, though large, high-traffic sites did well with navigational links. Both are correlation studies, and LinkStorm’s sample is its own customers.
The result on a typical site: a post can have fifty inbound links in a crawler’s report, all from template zones, and not one from another post’s writing. It is not an orphan page in the strict sense, but in every way that matters for context it might as well be. The guide on finding orphan pages in WordPress shows how to list these in-content orphans specifically.
How to measure the ratio on your site
The number you want is, for each post, how many inbound internal links come from the body of another post, as opposed to from the template. Here are three ways to get it, from quickest to most complete.
1. Spot-check one page
Run an important post through the free internal link inspector to see the internal links on it, and compare what sits in the body with what comes from the template. Do it for five of your most important posts. If the body column is mostly empty, you already know the answer for the rest of the site.
2. Use your SEO plugin’s counter
Yoast SEO’s text link counter adds two columns to Posts › All Posts: internal links out of each post and internal links into it, counted from post text. Sort by the incoming column and the posts at zero are your in-content orphans. If the columns are missing, check Screen Options at the top of the screen, and that the counter is switched on under Yoast SEO › Settings › Site features › Site structure. Rank Math has a similar link counter showing internal, external and incoming links in the Posts list. These counters read post content, so links added by page builders, shortcodes or custom fields may be missed.
3. Crawl the site and split by link position
A crawler that classifies link position gives the full picture, including links your plugin cannot see. In Screaming Frog, which labels every link as Navigation, Header, Aside, Footer or Content, the free version handles up to 500 URLs:
- Crawl the site, then go to Bulk Export › Links › All Inlinks.
- Open the file, filter the Type column to hyperlinks and the Link Position column to Content.
- Count rows per Destination. That is each page’s contextual inlinks. Then count all rows per Destination for its total.
- Spot-check a few pages in the browser. Classification depends on your theme’s HTML; if related-posts blocks sit inside the article element they will show up as Content and need a custom rule under Config › Custom › Link Positions (a paid feature).
If you are choosing a crawler for this, our comparison of Screaming Frog and Silotree covers what each is built for. For a whole-site view without installing anything, the free internal link checker crawls your published pages and reports orphans, dead ends, broken links and click depth.
Reading the numbers
| Post | All inlinks | From content | What it means |
|---|---|---|---|
| Best two-person tents | 212 | 14 | Healthy: linked from the writing as well as the menu |
| How to waterproof a tent | 188 | 3 | Reachable, but barely vouched for. Add links |
| Packing list for a first wild camp | 176 | 0 | In-content orphan, hidden by template links |
| Stove fuel compared | 41 | 0 | Archive-only: reachable through a category page |
| Spring sale announcement (2023) | 180 | 6 | Old news still collecting links; repoint them |
The “all inlinks” column barely varies between the healthy post and the orphan, because the template adds the same 170-odd links to every page. Only the content column shows the difference. That is why a crawler’s headline inlink count is close to useless for this job.
A plan for adding contextual links to old posts
You will not fix an archive in a weekend, and you do not need to. The goal is to get the right posts out of zero first, then keep new posts from starting at zero.
- Make the list.
Every post with zero or one contextual inlinks, from the counts above. Remove posts you plan to delete, merge or leave alone.
- Rank it.
Money and sign-up pages first (a plumber’s boiler-repair page, a SaaS help article on setup), then posts with Search Console impressions but weak positions, then evergreen posts that still get visits, then the rest.
- Find sources for each target.
Search your own site for the target’s topic (the WordPress admin search covers post content, or use
site:yourdomain.com “topic”in Google). Choose two or three related posts that get traffic and already mention the topic. - Link from a sentence that already exists.
Find the line where the topic comes up and link the words that describe the destination. If no sentence fits, that source is probably wrong; try the next one.
- Work in small batches.
Five targets a week, two or three links each, is 10 to 15 links and well under an hour. Note the date against each target so you can measure it later.
- Close the tap on publish day.
When a new post goes live, add it to its hub and link to it from two or three older posts the same day, so it never joins the backlog.
- Re-count each quarter.
Run the same export. The share of posts with zero contextual inlinks should fall every time.
Two cautions. Don’t solve the problem by turning on a widget that adds “related” links to every post; that adds more template links, not contextual ones. And don’t add sentences whose only job is to hold a link, such as “For more, see our post on fuel canisters.” A hobby site about model railways that links “wiring a reverse loop” from the paragraph where a reader is struggling with a short circuit is doing it right. How you word those links is its own skill, covered in choosing anchor text for internal links.
Where Silotree fits
Everything in this guide works by hand, and on a site with a few dozen posts it is a pleasant afternoon. The measuring is quick at any size. The slog is the linking: reading candidate posts, finding a sentence that already says the right thing, editing and saving, hundreds of times.
That is the part Silotree does. It suggests contextual links, each one from a sentence you already wrote in a related post; you approve or skip each one, and it writes the ones you approve. It saves a WordPress revision first, never writes inside headings, captions, buttons or special blocks, leaves page-builder pages alone, and keeps to about one link per 100 words and at most six of its links per post. You clear the backlog first, then get up to five new suggestions a week by email, and new posts get suggestions when they are published. It does not touch your menus or widgets, and it will not stop you needing a good theme navigation. The first 10 links are written free on every plan; the paid plans start at $19 a month.
- Link best practices for Google — Google Search Central
- Search Quality Rater Guidelines (September 2025), section 2.4 — Google Main Content and Supplementary Content; navigation links as Supplementary Content.
- How Search Works: rigorous testing — Google Rater scores do not directly impact ranking.
- Google suggests links in primary content hold more value — Search Engine Journal, May 2020 Report of John Mueller’s office-hours answer.
- Are internal links in header and footer treated differently? — Search Engine Journal, March 2022 Report of John Mueller’s office-hours answer.
- Are breadcrumbs a ranking factor? — Search Engine Journal Quotes Gary Illyes’s 2017 tweet on breadcrumbs and PageRank.
- US 7,716,225: Ranking documents based on user behavior and/or feature data — Google Patents The “reasonable surfer” patent. A patent, not a description of current ranking.
- 23 Million Internal Links – SEO Case Study — Zyppy (Cyrus Shepard) Correlation study.
- 2.5 Million Internal Links study — LinkStorm Vendor study of its own customers’ sites.
- Banner Blindness Revisited — Nielsen Norman Group, 2018
- How to analyse link position — Screaming Frog
- How to use the text link counter — Yoast
- How does Rank Math’s link counter work? — Rank Math
Questions people ask
What is a contextual link?
An internal link placed inside the body text of a post or page, on words that describe the destination, within a sentence that gives a reason to follow it. A link in a menu, footer, sidebar or related-posts block is not contextual, even if it points to the same page.
Are navigational links bad for SEO?
No. Menus, breadcrumbs and category archives are how readers and crawlers find their way around a site, and a site without them is hard to use. The problem is only relying on them alone, because they repeat on every page and say little about any single page.
Does Google give more weight to links in the main content?
Google has not published a weighting. John Mueller has said Google generally focuses on a page’s primary content, and has also said internal links in headers and footers are not simply ignored. The safest reading is that both count, and body links carry context that template links cannot.
Do related-posts widgets count as contextual links?
Not really. They sit outside the body text, usually have no surrounding sentence, are often chosen by tags or recency, and some load with JavaScript or change on every visit. They are useful for readers, but a post whose only inbound links come from a widget is weakly linked.
How many contextual links should a post have?
There is no fixed number. A workable starting point is that each post links out to two or three related posts from its body and receives contextual links from two or three others. Past that, add links where a reader would genuinely want to go next.
How do I find posts with no contextual links pointing at them?
Crawl the site and count only links found in the content area, ignoring menus, sidebars and footers. Any post with zero links from the body of another post is an in-content orphan, even if the menu or an archive still reaches it.
