I add internal links to every blog post by having Claude Code pull a fresh list of my published posts, find the ones a draft genuinely relates to, and suggest links on phrases already in my writing. I approve, it adds. My 56 jen8n posts now hold 219 links between them, and a typical post links to four others. Below: how it decides, where it went wrong once, and a generator that builds your own.

The links I kept meaning to add
Before this, internal links were a someday job. I’d add a few by hand now and then, sporadically, and the rest of the time I’d put it off for a long time or skip it entirely. Linking well means knowing what else is on your blog, and I can’t hold 56 post titles in my head while I’m trying to finish a draft.
So a post would go live pointing at nothing, and I’d tell myself I’d come back to it. I rarely came back. The older posts had it worse, because a new post never went back and linked to them either.
Now it’s part of the SEO pass Claude Code runs on every post before and after it goes live. I didn’t build a linking tool. Linking became one step in a checklist I was already running, and that’s the reason it stopped getting skipped.
What do internal links do for a blog post?
Internal links send readers and search engines from one of your posts to another. For a reader, they answer “where do I go next?” For Google, its own link guide says it “uses links as a signal when determining the relevancy of pages and to find new pages to crawl,” and that “every page you care about should have a link from at least one other page on your site.”
The two directions do different jobs:
| Direction | What it means | What it fixes |
|---|---|---|
| Out | Your new post links to older posts | Readers have somewhere to go next |
| In | Older posts link to your new one | New posts don’t sit invisible |
The second row is where I was worst, and it’s the one a skill handles better than I do, because it can count.
Who is an internal linking skill for?
It’s for you once you can’t list your own posts from memory. If you’ve caught yourself thinking “I wrote about this somewhere” and then not finding it, you’re there.
It’s especially useful if you publish in bursts, if you write across a few topics, or if your older posts get almost no traffic. Those are the posts that lose the most from never getting linked to.
Skip it if your blog is brand new. With five or ten posts, you know them all, and adding links by hand takes a minute. It’s also not the tool for getting links to sales pages or product listings, because it only links posts to posts, and only where the writing already fits.
What do you need to build an internal linking skill?
Three things, and one of them you already have.
- Claude Code. It runs on a paid Claude plan. If you’re not set up yet, my Claude Code setup walks through it.
- A blog with a public list of posts. WordPress has one built in. On another platform, a sitemap works too.
- A draft to try it on. A file on your computer, or text you paste into the chat.
No plugin, no paid SEO tool, no spreadsheet of URLs to keep up to date. The list gets pulled fresh every time, so a post you published yesterday is already in it.
How does an internal linking skill work?
It runs in four steps, and the third one is the rule that makes the whole thing work.
- Get the list. It pulls every published post’s title and address from the blog, fresh, every run.
- Find what genuinely relates. It reads the draft and picks posts about the same thing, not posts that happen to share a word.
- Use words already there. The link goes on a phrase that’s already in the draft. It never writes a new sentence just to hold a link. If no phrase fits, it skips that post.
- Ask first. It shows me the phrase, the post, and why they fit, and changes nothing until I say yes.

Rule three is the one I’d steal first. A sentence written only to carry a link reads like one, and readers can tell. Using words that were already there means every link lands in a spot where I was already talking about that thing.
Two more rules sit next to it. Links to my other posts have to be woven into the body, at least two per post, and a Related list at the bottom doesn’t count toward that. That one exists because it used to pile links at the bottom of my Admin Arcade posts, and I told it, “you are putting too many related links at the bottom.” And links between my different blogs are a separate job with separate rules, so a post here doesn’t start pointing readers at my review blog without a good reason.
Then there’s the other direction. Every time a post comes back through the pass, which happens on a schedule so old posts get updated without me remembering, it also counts how many of my posts link to each post and flags any with one or none. For those it suggests an older post that should link in, again using a phrase already in that older post, and it asks before touching anything that’s live. It skips anything published in the last 30 days, since a new post hasn’t had time to collect links. When I checked for this post, four of the posts older than that had one link pointing to them, and one, a print-on-demand tracker that turned a month old that day, had none. It’s on my list.
Get the generator

The generator below asks you five questions about your blog, then writes you a linking skill with the same rules mine follows: fresh list every time, match on meaning, only use words already in the draft, ask first, and a second job that finds your orphan posts.
I tested it before putting it here. The first version found all four links my plugins post actually has, on the exact phrases I’d used. Its orphan finder had gaps, like flagging a post I’d published that morning, so I fixed those and ran it again.
It’s not a copy of my file. Mine is tangled up with my SEO checklist and three other blogs. Yours only needs to know yours.
It also tells you what to say to run it. Try it on your most recent post first, since that’s the one with the fewest links pointing anywhere.
What it doesn’t do
It doesn’t understand products the way you do. The one link I ever turned down was on my review blog. The draft needed a handheld frother, the kind you’d use as a mixer, and it suggested my post about a frother that wasn’t that. Same word, wrong thing. It was silly, and it’s the reason the ask-first step stays.
It doesn’t decide what’s worth linking to for money. It links what fits the writing. If you need a sales page or product in every post, that’s a separate call you make yourself.
It doesn’t fix old posts on its own. It suggests where an older post should link to a newer one, but anything already live waits for a yes.
And it’s not perfect on my own blog either. One post, my SOP-to-n8n tool page, still links to none of my other posts. The pass flagged it, and it’s on my list.
Frequently asked questions
How many internal links should a blog post have?
I aim for at least two woven into the body of every post, and my typical post ends up with four. Google’s own guide says “there’s no magical ideal number of links,” so the right number is however many genuinely relate. A Related list at the bottom shouldn’t count toward it.
What is an orphan post?
An orphan post is a published post that none of your other posts link to. Readers can’t find it by clicking around, and Google has one less way to find it. My linking pass counts inbound links and flags any post with one or none.
Should internal links open in a new tab?
No. Links to your own posts should open in the same tab, since the reader is staying on your site. I save new tabs for links that leave my blog.
Can I use this on a blog that isn’t WordPress?
Yes, as long as your blog publishes a sitemap. WordPress is easiest because it has a built-in list of posts the skill can read directly.
Will it add links to my published posts automatically?
No. It suggests links for older posts and waits for your approval before changing anything. I’d keep it that way, because the one bad suggestion I got would have gone live otherwise.
Try it yourself
Adding internal links to every blog post comes down to three rules: pull a fresh list of your posts every time, link only what genuinely relates, and put the link on words that were already in your draft. Build yours with the generator, run it on your newest post, and then ask it to find your orphans. That second list is the one I’d have never made by hand.
A tool I built
Subscription Graveyard
Bury the subscriptions you’ve cancelled, give each one a tombstone, and watch what you’re saving pile up.
Bury your first one →I run an affiliate program on the tools I build. Approved affiliates earn 20% on what their referrals pay, for up to a year. US only for now. See the program →
Related reading
- Turn your blog post checklist into a Claude Code skill
- How I update old blog posts without remembering to
- What a Claude Code skill is, and how to make one
Subscribe if you want the next one, and go give your oldest post somewhere to be linked from.
