August 6, 2026·8 min read

Internal linking is an editorial act, not a plugin

The plugins that auto-link your content by keyword produce exactly the linking a machine would produce: technically present, editorially dead. Real internal links are a writer's judgment about what a reader should read next.

By Andrew Pyle

There's a whole category of tools that promise to solve internal linking for you: point them at your content, and they'll scan for keywords and auto-insert links between pages that share them. I tried the mechanical approach and got exactly what the mechanism produces — links that are technically correct and editorially lifeless. A keyword matched a keyword, so a link appeared, whether or not a reader at that spot in that sentence had any reason to want it.

The reframe that fixed it was to stop thinking of internal links as an SEO chore and start thinking of them as what they actually are: an editorial decision. A link is a writer saying to a reader, at a specific moment, "if this interested you, here's where to go next." That's a judgment call about the reader's curiosity, and a keyword matcher has no idea what the reader is curious about.

01Words vs ideas

An automated linker operates on the surface: it sees a word here that matches a page title there, and it draws a connection. But the word is not the idea. A page can mention a term in passing without that mention being a doorway a reader would want to walk through, and two pages can be deeply related without sharing an obvious keyword at all. The mechanical linker gets both cases wrong — it links irrelevant mentions and misses genuine relationships — because it's matching strings when the actual task is matching meaning.

A writer placing a link is doing something the matcher can't: reading the sentence, understanding where the reader's attention is at that exact moment, and deciding whether there's somewhere worth sending them. Sometimes that's a page with no keyword overlap at all, linked because it genuinely deepens the point. Sometimes it's declining to link a matched keyword because the reader mid-thought doesn't need the detour. That judgment — link this, not that, here, not there — is editorial work, and it's the difference between links people follow and links that just sit there.

A keyword matcher links words. A writer links ideas. Readers only follow the second kind, because only the second kind was placed where their curiosity actually is.

02Followed vs ignored

Here's the trap with mechanical linking: the plugin can't tell the difference between a link that gets clicked and one that never does, so it optimizes for presence, not usefulness. It'll happily fill a page with links that satisfy its keyword rules and get ignored by every human who reads it. To the tool, that's a job well done — the links exist. To the reader, it's noise, and to a search engine that pays attention to whether links reflect real relationships, a page stuffed with mechanical links reads as exactly what it is.

The links that actually do work — for readers and, not coincidentally, for search — are the ones a person would want to click, placed where a person would want to click them. That editorial links also happen to be good for SEO is not a coincidence; it's the same underlying fact. A link that a real reader follows because it was genuinely useful is precisely the signal search engines are trying to detect. Optimize for the reader's next click and the ranking benefit comes along for free. Optimize for keyword coverage and you get neither.

03Inline and sparing

Do it inline, in context, sparingly

The practical form this takes is contextual links placed in the body of the writing, mid-thought, where the idea actually connects — not a wall of related-posts links bolted onto the bottom where everything is equally, blandly linked. A link inside a sentence carries the context of that sentence; it says "this specific claim connects to that specific piece," which is far more useful than an undifferentiated list. And it's opt-in by nature: I add an inline link only where the connection is real, which keeps the linking honest instead of exhaustive.

Sparingly is the operative word. The value of an internal link is inversely related to how many of them surround it. A page with three well-placed links, each a reader would genuinely want, is worth more than a page with thirty that dilute each other into background. Editorial restraint — linking only where it earns its place — is what keeps each link meaning something, because a misleading anchor is precisely the low-quality signal I'm trying to escape. The plugin never restrains itself, since restraint requires the judgment it doesn't have.

04Two tiers of link

There are two very different places an internal link can live, and I learned to treat them as two different jobs. The first is the "Related" card at the bottom of a post — a small set of sibling pages rendered from a relationships table. The second is the inline link that sits inside a paragraph's prose. Both render as real, crawlable anchors, but they are not equal. The related card is a bulk list a reader skims after they've finished; the inline link is a doorway placed at the exact sentence where the curiosity is live. So when I wrote the command that adds these links, I split it deliberately: the related-card edges are the safe, bulk part, and touching paragraph prose is a separate pass held back for review — because that's the part that demands actual judgment.

The mechanism enforces the discipline. The inline linker does not take a character position; it takes an exact anchor phrase that must already occur verbatim in the prose. It finds the paragraph, computes the offsets from the phrase, and only then inserts the link. If the phrase isn't there, it refuses — the run reports the anchor as not found rather than forcing a link where the words don't support one. That constraint is the whole point: I can't wire up a link unless the sentence was already saying the thing the link claims. When I did this pass, one page's two inline links had both landed in its closing paragraph, so I added a single mid-body link only where the prose already said "the backbone of most modern chatbots" — and for the targets that had no natural anchor, I forced none.

05Reversible and both ways

Both directions, and always reversible

The bigger ranking lever isn't the link going out of a page — it's the links coming in. A page nobody points to is a page search engines treat as peripheral, no matter how good it is. So every edge my linker makes is bidirectional: the page I'm working on gains an outbound context link, and it gains inbound links from each of its targets, which is the half that actually moves the needle. The four pages I ran this on first had started with exactly zero internal links between them, which is the real reason they were underperforming — good content the rest of the site never voted for.

And every link is reversible, because I treat linking as editing, not as a one-way commit. A dry run is the default — it shows me which edges it would draw and changes nothing. An apply writes them; a revert removes precisely the edges it added and nothing else, and re-running is a no-op, so I can never end up with orphaned anchors or duplicates. That reversibility lets me change my mind about a relationship a month later without unpicking it by hand. There are guards on top: a target has to exist, be published, and be indexable — I won't point a link into a page I've told search engines to ignore, and a redirected or noindexed target is skipped, not silently linked into a dead end.

06Architecture byproduct

The architecture is a byproduct of the judgment

There's a structural payoff that emerges when links are placed editorially: the site's internal architecture ends up reflecting the actual relationships between ideas, because every link was a considered claim that two things connect. The link graph becomes a real map of how the content relates, drawn by someone who understood the content, rather than a mechanical mesh drawn by keyword coincidence. That map is what helps a reader — and a crawler — understand which pieces are central, which are supporting, and how it all hangs together.

So internal linking isn't a task you finish and check off; it's a slow, ongoing act of editing the relationships in your own body of work. Each time I write something new, part of the work is deciding what it should link to and what should link to it — not by keyword, but by judgment about where a curious reader would want to go. Treat it as editorial and you build a site that reads like it was made by a person who thought about it. Treat it as a plugin and you build one that reads like it was assembled by a machine that didn't.

07

Keep reading

This piece is part of my series on search, answer engines, and content quality. The anchor is AEO and GEO: optimizing for answer engines.