Internal linking is one of the few ranking levers you fully control. Backlinks you have to earn, ask for or pay for. Links between your own pages you can add today, as many as you want, without asking anyone.
Most WordPress sites waste them anyway. Out of the box, WordPress buries older posts deep in paginated archives, links every post to tag and date pages nobody searches for, and leaves the pages that make money with barely any links pointing at them.
I co-founded Linkter, an AI internal linking tool for WordPress, so I’ve seen this from both sides. I was fixing it by hand on client sites, and building the software that automates it, so I feel free to speak on this particular subject in depth.
The short version
- Internal links help Google find your pages, decide which ones matter and understand what each one is about. They also walk visitors toward the pages that make you money.
- To do the best internal linking, you need to build the structure first with hub pages (categories, pillar pages, service pages) make sure they are 1-2 clicks from the homepage, and that every post is then one click from the hub pages themselves.
- You need to point links from the pages that have authority to the other pages on your website (ideally, the ones making you money) in order to properly distribute the acquired PageRank.
- You need to give every important page one main anchor text, and never use the same anchor for two different pages.
- You need to clean up what WordPress creates by default including tag and date archives, attachment pages, parameter URLs, and links that only exist in JavaScript.
- You can use plugins, but know they are great for suggestions and audits. Don’t let them auto-link every keyword.
What internal links do, and how Google weighs them
An internal link is any link from one page on your site to another. They can be a menu item, a breadcrumb, a related posts row, a link inside a guide, whatever else. An external link is one between your site and a different website.
So internal links do 4 jobs at once:
- Discovery. Google finds pages by following links. Your XML sitemap helps, but it’s a list of suggestions, and a page nothing links to is a page Google has little reason to crawl often or take seriously.
- Authority. Pages collect authority from backlinks, and internal links move it around your site.
- Meaning. The words in a link tell Google what the page it points to is about.
- Paths to money. A reader on “how much does a kitchen remodel cost” is either one link away from your kitchen remodeling page or one dead end away from closing the tab.
Google rarely talks this plainly about anything that affects rankings, but John Mueller has called internal linking “super critical for SEO” and “one of the biggest things that you can do on a website” to guide Google to the pages you think are important.
In the original PageRank paper from 1998, it is said that a page splits its value across the links on it, so if you link to five pages, each gets a real slice. But if you link to three hundred, each gets crumbs (it’s one of many reasons why directory links are nearly useless).
Google’s reasonable surfer patent, granted in 2010, adds that links are weighted by how likely a real person is to click them. A privacy policy link in the footer passes very little, and a link in the second paragraph of an article passes a lot more.
The best public data on this is Cyrus Shepard’s study of 23 million internal links across 1,800 sites, matched against Search Console clicks. Pages with 0 to 4 internal links pointing at them averaged about 2 clicks from Google, and pages with 40 to 44 got about four times that. Past roughly 45 to 50 links, traffic started going down again.
It’s a correlation study, and Shepard says so himself. It still lines up with the patents and with Google’s own statements: pages with no internal links, called orphan pages, barely take part in your SEO, and more links help up to a point.
Build the structure first
Get the structure right and most of your internal linking happens automatically, on every page, every day. Get it wrong and hand-placed links won’t make up for it.
The shape that works for almost every site is a pyramid:
- Homepage
- Hubs: the pages targeting your biggest keywords
- Subtopics
- Posts, products and supporting pages
- Subtopics
- Hubs: the pages targeting your biggest keywords
What counts as a hub depends on the site. On a blog, it’s a category or a pillar page. For a service business, it’s a service page like “Kitchen Remodeling.” On an eCommerce store, it’s a product category, and on a SaaS site, a feature or use case page.
Authority mostly enters at the top, because the homepage is usually your most linked-to page, and flows down through menus, breadcrumbs and hubs. You can also link back up from posts to hubs, and sideways between related pages (what people call cross-linking) in order to keep PageRank moving instead of pooling in one place.
Keep important pages close to the homepage
Aim to keep the pages you care about within about three clicks of the homepage. Three isn’t a number Google enforces, but one click from home says “this matters,” and six clicks deep says the opposite.
The problem is that WordPress works against you here. A default blog lists posts newest first, ten per page, so a post from two years ago might sit on /blog/page/14/. The only path to it is the homepage, then the blog, then “next” thirteen times, which makes it a page fourteen clicks deep.
More pagination won’t fix that, only hubs will so make sure that every post is one click from a category, pillar or service page, and every hub is one click from the homepage.
Turn on breadcrumbs
Breadcrumbs are the cheapest win in this guide. A trail like Home > Services > Remodeling > Kitchen Remodeling adds an upward internal link to every post and page automatically, shows visitors where they are, and with breadcrumb structured data can show up in your search results.
On WordPress, it’s a fifteen-minute job. Yoast SEO, Rank Math and AIOSEO all include breadcrumbs with the schema, most themes have a setting or block for them, and builders like Bricks have a breadcrumbs element you add to the single post template once. Set a primary category on posts that sit in more than one category, so the trail stays consistent.
Where internal links live on a WordPress site
A WordPress site has about a dozen places a link can sit, and most of them come from your theme. They’re not worth the same:
| Location | Value per link | What to do |
| Main menu | Very high, on every page | Put your hubs in it and prune oversized mega menus |
| Body copy in posts and pages | Very high | Link to hubs, related posts and money pages |
| Hub copy (category, pillar and service pages) | High | Write real descriptions with links in them |
| Breadcrumbs | Solid, automatic | Turn them on, with schema |
| Related posts and products | Medium, but on every post | Make sure they’re real HTML links |
| Category links in post meta | Low to medium | Fine for categories, cut the tags |
| Footer | Low | Utility links plus a few top hubs |
| Sidebar widgets | Low | Keep a short category list and remove the rest |
| Previous and next post links | Low | Limit them to the same category if your theme allows it |
| Pagination | Structural | Must be real links, not a JavaScript “Load more” button |
The main menu is the most powerful link on your site because it’s on every page. On a 2,000-page site, one menu slot is 2,000 internal links, so the menu should hold your hubs, not only Blog, About and Contact.
The sidebar, on the other hand, is the complete opposite – “Archives by month” and the tag cloud are sitewide links to pages nobody searches for.
Hub copy is the most underused spot on nearly every WordPress site I look at. WordPress gives every category a description field, and most themes either hide it or show it as one grey sentence. A few real paragraphs linking to subcategories, sibling categories and the best posts turn a bare post grid into a proper hub.
If your theme won’t show the description, build the category template in your builder, or make a pillar page and link the category to it.
Body copy is where a link is worth the most, because it’s where people read and click, and the sentence around it gives the link context. A post can link up to its hub, sideways to two or three related posts, and to the page where you make money. There’s no magic number. More links is better, as long as they’re relevant.
Related posts modules are what make internal linking scale. Each link passes less than a hand-placed one, because Google can spot template links, but together they’re most of the links your long-tail posts will ever get.
They do have to be real links. Google can only follow HTML <a> elements with an href, and plenty of related posts plugins load their links with JavaScript after the page loads. Open View Source (the raw source, not the inspector) and search for the links. If they’re not there, don’t count on Google seeing them.
Decide which pages get the links
The whole strategy is to take the pages that have authority and point them at the pages that make money. That splits your pages into two lists:
- Senders: pages with authority to spare. Usually your homepage plus a few blog posts that picked up backlinks over the years.
- Receivers: pages that could make money and aren’t getting their share of links. Service pages, product categories, pricing pages, and anything stuck between positions 4 and 15.
To find your senders, pull your pages sorted by referring domains in Ahrefs or Semrush, and your top pages by clicks in Search Console.
Pick receivers by money, not by search volume alone: search demand, times how well the page converts, times how close it already ranks. A service page ranking #6 for a keyword with 900 searches a month that turns 3% of visitors into leads beats a blog post ranking #40 for a 10,000-search keyword you won’t crack this year.
Then map it. One spreadsheet, your top 20 receivers down the left, and for each one, which senders could link to it, with what anchor and from which paragraph.
Every link has to pass one test: would someone reading the sender page have a reason to click it? If yes, add it. If you have to squint, skip it. A link nobody would click is the kind the reasonable surfer model already discounts.
Say you run a home renovation company. Your senders are the homepage, a “how much does a kitchen remodel cost” post that got links from two local news sites, and your kitchen remodeling page. One receiver is the bathroom remodeling page, sitting at #7 for “bathroom remodel [city].”
The cost post gets a paragraph comparing bathroom budgets, linking “bathroom remodeling” to the service page. The kitchen page mentions it for clients planning both rooms, and the bathroom page goes into the Services menu. That’s three links a person might actually click, all pointing at a page one push away from page one.
Anchor text
Anchor text is the clickable text of a link. Google reads it as a description of the page it points to, so every internal link is a small label on that page.
People get nervous about exact-match anchors because of backlinks, where a thousand identical “best running shoes” links from other sites look manipulated. Internal links are different. You’re allowed to label your own pages, and linking “kitchen remodeling” to your kitchen remodeling page isn’t over-optimization.
The Zyppy study backs this up. Pages with at least one exact-match internal anchor had at least five times the traffic of pages without one. The same study found variety mattered too: pages linked with a range of different anchors did better than pages linked with the same phrase everywhere.
That gives you three rules:
- Every important page gets one main anchor, its target keyword, used in its most prominent links, like the menu and the strongest links in your content.
- Everything else varies naturally: “remodel your kitchen,” “our kitchen renovation service,” whatever the sentence needs. There’s no ideal anchor text ratio to hit. One main anchor in the prominent spots and natural variety everywhere else covers it.
- One anchor points to one URL, always. The moment “kitchen remodeling” links to your service page from some posts and to a blog post from others, you’ve told Google you’re not sure which page is about kitchen remodeling. Auto-linking plugins make this exact mistake at scale.
Skip “click here,” “read more,” “learn more” and bare URLs as the only anchor a page gets. Google’s link guidelines ask for descriptive anchor text, and “read more” describes nothing. The “Read more” and “Continue reading” links WordPress puts on excerpts are fine, as long as the post title above them is also a link, which it usually is.
WordPress traps that waste your internal links
Everything so far assumes your site is a tidy pyramid of real pages. WordPress also creates a lot of URLs you never asked for, and each of these can quietly soak up links.
Tag, date and author archives
WordPress creates an archive for every tag, every month you published, every author and every post format, and links to them from your posts. Most are thin lists of excerpts.
An archive deserves to be linked and indexed when people search for it. “Kitchen remodeling” as a category, yes. Posts from March 2023 or a tag with one post in it, no.
Yoast, Rank Math and AIOSEO let you noindex date, author and format archives in a couple of clicks. Keep a handful of tags that work like subcategories and remove the rest.
Attachment pages
Every image you upload can get its own page with nothing on it but the image. Since WordPress 6.4, new sites redirect those pages to the image file, but sites that existed before keep the old behavior. Check yours, turn on the attachment redirect setting in Yoast or Rank Math, and never link an image to its attachment page.
Parameters and WooCommerce filters
URLs pick up parameters from sorting, filtering, comments and tracking, like ?orderby=, ?filter_color= and ?utm_source=, and each one is technically a separate URL. On a WooCommerce store, every combination of filters can create a new one. Google’s faceted navigation guide explains that crawlers have to crawl these URLs to find out they’re useless, and that time comes out of the crawling your real pages get.
A filter combination deserves its own crawlable, linked URL when people search for it. “Red running shoes” might, so make it a real category with a description. “Running shoes sorted by price, 36 per page” doesn’t, so block it from crawling and never link to it. My eCommerce keyword research guide covers how to tell which filters deserve a page.
Links to the wrong version of a URL
Every internal link should point at the canonical version of a page: https, the right hostname, your trailing slash convention and no parameters. Product variations are a common leak, like a “shop the look” block linking to ?attribute_pa_color=red instead of the main product.
Migrations cause the rest: http:// links, links to the staging site or the old domain, each forcing a redirect. A crawler will list them, and Better Search Replace or WP-CLI’s search-replace fixes thousands at once.
Deleted posts and changed slugs
When you delete a post, 301 redirect it to its replacement, or to its hub if there isn’t one, and update the internal links that pointed at it.
WordPress redirects old post slugs on its own, which makes renaming feel free. It doesn’t do that for category slugs, and it never updates the links hardcoded in your content. Every rename needs a redirect (Rank Math, Yoast Premium and the Redirection plugin all do this) and a find-and-replace on the old links.
Links that only exist in JavaScript
“Load more” buttons, infinite scroll, filterable post grids and some mega menus only create their links after a click or a script runs, so Google may never see them. Most builders let you keep the fancy front end and still output real pagination links underneath. Turn that on.
Nofollow on internal links
Don’t. People used to nofollow internal links to push PageRank toward their important pages, and Matt Cutts explained back in 2009 that it stopped working. The value a nofollowed link would have passed doesn’t go to your other links. It’s simply lost.
How to find internal links to any page, and your orphan pages
To see which pages link to a specific page:
- Google Search Console: open the Links report, find the page under Internal links, and click it to see which pages link to it. It’s a sample, and tables stop at 1,000 rows.
- Screaming Frog: crawl the site, select a URL and open the Inlinks tab.
- Yoast and Rank Math: both add internal link counts to your posts list in WordPress.
Orphan pages are pages with no internal links pointing at them. A crawler can’t find them by following links, because there’s no link to follow, so you find them by comparing lists. Connect Screaming Frog to your XML sitemap and Search Console, and it lists the pages that show up there but not in the crawl. Link Whisper, Yoast Premium and Rank Math PRO have orphan reports too.
For each orphan, decide: link it from its hub and a couple of related posts, merge it into a better page, or delete it and redirect the URL.
The order to do it in
The most common mistake is doing the right things in the wrong order, like hand-placing links into a category structure you’re about to rebuild.
- Fix the structure. Decide your hubs, decide what happens to tags, and line the main menu up with it.
- Turn on breadcrumbs and clean up archives. Noindex date and author archives, and redirect attachment pages.
- Write hub copy with links for your top 10 to 20 categories or service pages.
- Build the money map and hand-place those links. This is usually where rankings visibly move.
- Set up related posts and related products, and check that they’re real HTML links.
- Link your existing blog posts to money pages, and plan that link into every new guide.
- Make it a habit. Every new post goes live with about three links in and three links out, every retired page gets a redirect, and you check for orphans every quarter.
How much of this you do by hand depends on the size of the site. Under 200 pages, do all of it by hand. Between 200 and 2,000, let templates and related posts handle coverage, hand-place the links to money pages, and use a suggestion tool. Past 2,000, templates, category logic and tools do most of the work, and a person checks everything that touches revenue.
WordPress internal linking plugins
Automation is good at the scale work: keeping related posts filled, catching new orphans, and suggesting links across thousands of posts nobody will ever link by hand.
It’s bad at judgment. A tool doesn’t know your margins, so it can’t pick receivers by revenue, and it doesn’t know “kitchen remodeling” should only ever point to one URL. Left alone, it turns every mention of a keyword into a link, with the same anchor in every paragraph.
I’d use tools that suggest links for you to approve, and keep the anchors and the money map in your own hands.
Disclosure: some of the links below are affiliate links, so I may earn a commission if you buy through them, at no extra cost to you. I only list tools I’d put on a client’s site.
| Tool | Best for | Price |
| Link Whisper | Single sites, approving each suggestion | Free version, paid from $119/year |
| LinkBoss | Big sites, agencies and bulk linking | From $99/year, credit-based |
| Yoast Premium or Rank Math PRO | Sites that already pay for one | Included in the plugin |
| Internal Link Juicer | Auto-linking brand and product names only | Free, with a paid Pro version |
| Screaming Frog | Audits on any site | Free up to 500 URLs, then £279/year |
Link Whisper is the one I’d give most WordPress site owners. It suggests links inside the editor, shows the sentence each one would sit in, and you approve or reject every one. That review step is the difference between a tool that helps and one that makes a mess.
Its orphan report, per-page link counts, broken link checker and URL changer (which updates every internal link when you change a slug) cover most of the cleanup in this guide. It works one site at a time, which agencies will feel.
LinkBoss is for bigger jobs: large sites, multiple sites, or linking a whole category in one sitting. It matches by meaning rather than exact keywords, works with Gutenberg and the main builders including Bricks and Elementor, and flags anchors that point at more than one page.
Use its native mode, which adds a link to a sentence you already have. Its other modes write a new sentence or section just to hold a link, and that’s exactly the kind of text Google discounts. It’s credit-based, so on a 60-page site you’d be paying for bulk features you don’t need.
If you already pay for Yoast Premium or Rank Math PRO, use their internal linking features first: both suggest links while you write and flag orphans. Rank Math’s paid plans can also auto-link keywords to URLs, which is fine for brand and product names and a bad idea for anything else.
Internal Link Juicer is a pure auto-linker: every mention of a keyword becomes a link, with no review step. That’s the failure pattern above, so I’d only use it for a short list of brand or product names, with per-post limits turned on.
Plugins only see what WordPress knows about, so audits need a crawler. Screaming Frog crawls your site the way Google does and shows inlinks, redirected links, orphans and what your JavaScript hides. Search Console’s Links report and Ahrefs Webmaster Tools are free and enough for most small sites.
Quick answers
How do I add an internal link in WordPress?
In the block editor, select the words you want as the anchor, press Cmd+K (Ctrl+K on Windows) and start typing the page’s title. WordPress searches your posts and pages, and you pick one from the list. Page builders have the same search behind their link buttons.
How many internal links should a page have?
Google doesn’t give a number. In the Zyppy study, traffic rose as pages got more internal links pointing at them, up to about 45 to 50, and then dipped. On the outgoing side, a page with 300 links passes crumbs to each one. If a block of links makes you wince when you scroll past it, it’s too many.
Do internal links replace backlinks?
They do different jobs. Backlinks bring authority into your site, and internal links decide where it goes. A site with great backlinks and lazy internal linking wastes a lot of what it earned. My guide on how to get backlinks covers the other half.
My site has 40 pages. Does this apply to me?
All of it, at a tenth of the effort. You can place every link by hand and skip the plugins. You still need the structure and the money map, because a 40-page site with three services still has pages that should send links and pages that should get them.
If you’d rather have someone look at it first, that’s what The Scan is for. For $50, I go through your site and send you a 20-minute video on the five biggest opportunities, internal links included. If you want the whole thing done for you, that’s The Operator.
If you’re doing it yourself, start with one page this week. Pick the money page closest to page one, find three pages with authority that have a real reason to link to it, and add those links.
