Automating internal links goes wrong in a predictable way. Someone installs a plugin, runs it across four hundred posts, and ends up with the same anchor text pointing at the same page from every article on the site.
That is worse than no internal linking, because it is a pattern that looks engineered and it buries the signal you were trying to send. The seven steps below are about setting the rules first, so the automation does what you would have done by hand.
This page covers the process. For the products, see our comparison of internal linking automation tools. Internal links are the half you control outright. The half you have to earn is compared in the best backlink exchange platforms, and ours is described on the backlink exchange page.
Step 1: Measure what you have before changing anything
Crawl the site and pull three numbers: how many pages have zero inbound internal links, the median inbound links per page, and how many clicks from the homepage it takes to reach your deepest content. Screaming Frog does all three free up to 500 URLs.
Orphan count is the number that matters. On most blogs that have never done this, somewhere between a third and half of all posts have no internal links pointing at them at all, and those pages are close to invisible.
Write the three numbers down. Without a baseline you cannot tell later whether the automation helped.
Step 2: Decide the structure before you automate it
Automation enforces a structure. If you have not decided what the structure is, it will enforce whichever one falls out of the tool's default settings.
Group your posts into topics, and for each topic pick one page that should be the strongest. That page is the hub, everything else in the topic links up to it, and the hub links back down to the best of them. This is the whole architecture, and it takes an afternoon in a spreadsheet.
Do this before installing anything. It is the step people skip and the reason automated linking so often produces a mess.
Step 3: Use your query data to choose anchors
The best anchor text for a page is usually a query it already gets impressions for in Search Console. That grounds the anchor in something real rather than in what you assume the page is about.
Export your queries, match the strongest non-brand query to each target page, and use that as the starting anchor. Then vary it, because the next step exists specifically to stop you using it everywhere.
Step 4: Set the rules that stop it looking automated
These four caps prevent almost every way this goes wrong.
- Vary the anchor. No target page should receive the identical anchor more than a handful of times across the site.
- Cap links per post. Somewhere between three and eight contextual links is what a human writes. Twenty is not.
- One link per target per page. Linking the same page three times from one article adds nothing.
- Relevance over volume. A link only goes in where the sentence would carry it anyway.
Write these down as your configuration before you open the tool, not after you see the output.
Step 5: Pick the level of automation you actually need
There are three levels, and they solve different problems. Suggestion tools propose links and you approve each one. Insertion tools add them in bulk on command. Maintenance tools link new posts automatically as they publish.
If your problem is a back catalogue that was never linked, you want insertion, and Link Whisper on WordPress is the standard answer. If your problem is that every new post starts life as an orphan, suggestion tools will not fix it, because the work still lands on a person every single time.
Step 6: Run it on a small batch first
Take twenty posts, not four hundred. Run the automation, then read the actual sentences it produced.
You are checking three things: whether the anchor text reads naturally in the sentence, whether the target page genuinely answers what the anchor implies, and whether any page is now receiving links from everywhere. If all twenty look right, widen the batch. If two look wrong, your rules from step 4 need tightening, and finding that out across twenty posts is much cheaper than across four hundred.
Step 7: Re-crawl and keep it maintained
Crawl again and compare against your baseline from step 1. Orphans should be near zero and median inbound links should have risen. If orphan count did not move, the tool linked outward from your posts without adding links pointing at them, which is the most common failure and the reason to check both directions.
Then treat it as ongoing rather than done. Every post you publish from now on is a new orphan until something links to it, so the maintenance question is the one that decides whether this stays fixed in six months.
The two-way problem nobody mentions
Almost every internal linking tool adds links from the post you are working on to other posts. Very few add links from existing posts back to the new one.
That asymmetry matters because a new article with eight outbound links and zero inbound is still orphaned. If you publish weekly and only ever link outward, you generate a fresh orphan every week and the crawl in step 7 will look worse each time you run it, no matter how diligent you have been.
Where this stops being a manual job
Steps 1 through 6 are one-off work on an existing archive, and they are worth doing by hand. Step 7 is the one that never ends, and it is the reason internal linking quietly rots on most sites. Our guide to automating blog writing and backlink building gives the off-page half the same treatment.
Distribb handles that final step by treating linking as part of publishing rather than a task afterwards: when it publishes an article, it links out to the relevant existing posts and adds links from those posts back to the new one, in both directions, without anyone running a scan. It does not retrofit links into an archive it did not publish, so if step 1 turned up three hundred orphans, fix those with Link Whisper first and use this to stop the count growing again. There is a 3-day free trial.
For the surrounding work, see our guides to content hub examples and content writing for SEO.