Skip to content

How to add internal links in WordPress: a step-by-step tutorial

How to add internal links in WordPress in five steps: choose a plugin, audit with Screaming Frog, build a link matrix, add anchors in batches and track results in Search Console.

How to add internal links in WordPress: a step-by-step tutorial

Building effective internal links in WordPress comes down to five steps: install a suitable plugin, audit what already exists with Screaming Frog, build a link matrix, add the anchors in well-thought-out batches, then track the results in Search Console. WordPress « related posts » widgets are no substitute for this method: they link at random, with no silo logic and no editorial hierarchy. Well-built internal linking redistributes SEO weight towards your key pages and improves their rankings without a single extra backlink. Here is how to set it up, step by step, on a WordPress site.

How to add internal links in WordPress: the 5-step tutorial

Internal linking is not a box you tick once and forget. It is ongoing work, article after article. Here is the method I apply on my own sites, in five steps.

Step 1: choose and install an internal linking plugin

Before touching a single link, you need a tool that spots opportunities automatically, so you avoid rereading every article one by one. Three options exist for WordPress: Link Whisper, Internal Link Juicer or the module built into Yoast SEO Premium. I cover all three further down, with their exact prices and what they really do. Install the one that fits your budget before moving on to the audit: the suggestions it generates will form the basis of the matrix in step 3.

Step 2: audit what exists with Screaming Frog

Screaming Frog SEO Spider (free up to 500 URLs) crawls your site the way Googlebot does and reveals what WordPress plugins keep hidden: orphan pages, with no inbound links at all, and the real click depth from the home page. Run a crawl, open the Internal tab and sort by « Inlinks » in ascending order. Any page with 0 or 1 inbound link is a priority. This diagnosis takes five minutes and is more reliable than any estimate by eye.

Step 3: build an internal linking matrix

Open a spreadsheet (Google Sheets is enough) with four columns: source page, target page, proposed anchor, status (to do / done). Fill it from two sources: the orphan pages found in step 2, and the pages you want to push (the ones that convert, or that are stuck on the second page of results). To pick the right target page over another, check that its search intent matches the context of the source text: an informational article should not push towards a transactional page with an aggressive anchor, as it sounds wrong and converts poorly.

How internal links flow between the pillar page, the satellite articles and the conversion page The pillar page sends a link to each of the three satellite articles. Neighbouring articles link to each other. A single article, the one closest to the need, points to the conversion page. A direct link from the pillar page to the conversion page exists but stays rare: it is shown as a dotted line. Pillar page Article A Article B Article C Conversion

The pillar page feeds the satellite articles, which cite one another; only one, the closest to the user’s need, leads to the conversion page.

This flow, from pillar to satellites to conversion, is what structures a semantic cocoon. The theory behind this diagram deserves its own article: here, we stay focused on execution.

Step 4: add links in batches without over-optimising anchors

Do not work through the whole matrix in one session. Ten to fifteen links a week is enough: it is a pace that leaves time to check each insertion and avoids a spike in internal links that shows up in the logs. For each link, open the source article in the Gutenberg editor, select the text that serves as the anchor and use the built-in link shortcut rather than pasting a raw URL into an HTML block. Vary the wording from one occurrence to the next: the same target page can be referred to by its exact keyword once, by a partial phrase the next time, and by an expression such as « as explained here » a third time.

Watch out

An exact-match anchor repeated on more than a third of your links to the same page is the most visible sign of forced internal linking. It is not an automatic penalty, but it brings nothing: vary from the first ten links onwards, not only when you notice it.

Step 5: track the results in Search Console

Internal linking that works shows up in Search Console within two to six weeks: target pages gain positions and their clicks increase, with nothing else changed on the page. Track pages one by one with the URL filter and compare the period before and after your insertions. If a target page has not moved at all after a month, the problem is usually not the number of links but their position: a link at the bottom of the page, after the main content, carries much less weight than a link placed in the first two thirds of the text.

Why WordPress handles internal linking poorly by default

Woven rattan basket, olive sprig and terracotta cup on a walnut table, natural window light

« Related posts » widgets are not enough

Out of the box, a WordPress site does very little internal linking. The « related posts » widget most themes add simply picks from the same category, sometimes by tag, with no notion of semantic relevance or hierarchy between pages. The result: an in-depth, comprehensive article can end up with as many inbound links as a minor post published the same week, just because they share a category. The widget has its place at the bottom of the page, but it never replaces hand-picked contextual links, placed in the body of the text where they genuinely serve the reader.

The semantic cocoon, the structure that organises internal links

The structural answer to this problem has a name: the semantic cocoon, an architecture that organises pages into a pyramid around a parent keyword, with internal links that strictly follow that hierarchy instead of linking at random. It has its own full article with the step-by-step method for applying it on WordPress. What matters for the rest of this tutorial: every link you add must follow a direction, from the general page to the specific page, and between specific pages when they cover neighbouring topics.

How many internal links point to your target page?

Before adding more links, a quick diagnosis is in order: how many links already point to the page you want to push, and with which anchors? Paste the list below; the tool calculates the distribution and flags any over-optimisation.

Internal link counter

Paste the links pointing to your target page, one per line. Free format: just the anchor, or « source page | anchor ». The tool calculates the distribution and flags over-optimisation, all in your browser, with your data staying on your device.

Best internal linking plugins for WordPress: Link Whisper, Internal Link Juicer or the Yoast module

The three options do not play in the same league. Here is what they really do, with their prices as listed by the publishers.

PluginPriceWhat it does
Link Whisperfrom $97 a year for 1 site, up to $497 a year for 50 sites (agency plan)Scans content, suggests contextual links with the anchor, one-click insertion, orphan pages report
Internal Link JuicerFree basic version (WordPress.org); Pro from $69.99 a year for 1 siteAutomatically links occurrences of a keyword list you define, with no editorial suggestions
Yoast SEO Premium module€118.80 a year excl. VAT (included in the Yoast Premium subscription, no separate plugin)Link suggestions shown in the editor while you write, manual insertion

Link Whisper: the most advanced automation

Link Whisper remains the benchmark in this specific niche: it analyses content already published, suggests relevant links with a proposed anchor directly in the editor, and generates an orphan pages report identical to what Screaming Frog would give you, without leaving WordPress. Its entry price ($97 a year for one site) makes it best suited to sites that publish regularly, where the time saved justifies the cost.

Internal Link Juicer: free and enough to get started

The free version of Internal Link Juicer covers the essentials: you define a list of keywords, each tied to a target page, and the plugin automatically adds the link at the first occurrence of that keyword in each new article. It is mechanical, not editorial, so you need to review the insertions to avoid artificial anchors. But for a site starting out with no tool budget, it is more than enough.

Good to know

Start with the free Internal Link Juicer while your volume of content can still be managed by hand. Move to a paid tool only when the time spent manually looking for link opportunities exceeds what the subscription would cost.

Yoast internal linking: suggestions in the editor, no automation

The internal linking module in Yoast SEO Premium simply suggests, in the editor sidebar, existing articles related to what you are writing. It is useful at the drafting stage, but it automates nothing and never deals with the stock of articles already published: it is a prevention tool, not a catch-up tool. If you have not yet settled on an SEO plugin, compare Yoast, Rank Math and SEOPress on price and features before committing.

Internal linking mistakes to avoid in WordPress

Do not link from the footer or the sidebar

A link placed in the footer or sidebar is technically there, but it carries much less weight than a link in the body of the text: Google gives more weight to a link surrounded by relevant content than to a link repeated identically on every page of the site. If a link deserves to exist, it deserves a sentence that justifies it in the text, not a box ticked in the theme settings.

Do not target pages already in first position

A common reflex is to strengthen pages that already perform very well, in position 1 or 2, rather than those stuck on page 2 or 3. That is the opposite of what pays off: a page already in first place has almost nothing left to gain from one more link, whereas a page in position 12 to 20 can move onto the first page with a well-targeted boost of internal popularity. Prioritise your link matrix on those pages.

One last point: check that the target pages in your matrix actually exist and return a 200 status code, especially on a site that has already been through a migration or a URL reorganisation. An internal link to a redirected page works, but each redirect in the chain dilutes the signal a little, so point your internal links straight at the final URL to avoid the redirect chains that slowly erode this kind of linking.

Tom Lionne Independent SEO consultant since 2018. Let's talk about your site.
Read next