Founder deal Founder lifetime licence: $79 once, until October 31. See plans

Free on WordPress.org · Pro from $29/yr

Autolink your content without touching your words

Autolinker is the WordPress plugin that reads every post, finds the most related pages on your site by meaning, and links them with anchor text that already exists in your copy. Your own OpenAI key, no credits, no keyword lists.

  • Your own OpenAI key
  • No credits, no keyword lists
  • Links stay if you uninstall
post 412 · Site speed basics

Site speed still moves rankings. Image compression is the fastest win: serve WebP, lazy-load below the fold, and let a caching plugin handle the rest. None of it matters if your hosting is slow.

  1. "speed optimization guide"anchor_not_verbatim · rejected
  2. "Image compression"found word for word · link placed
cosine 0.87 · anchor verbatim in source · 1 of 3 in link budget · journal updated
  • 5passes per post, each one a separate background job
  • 0invented anchors: no verbatim match, no link
  • 1language per link on WPML and Polylang sites. A French post never links to its English translation.
  • $0in credits: your own OpenAI key, billed by OpenAI

The problem

Half your posts have no internal links

  1. 01

    300 posts, half with zero internal links

    Linking by hand works for the first fifty posts. After that the oldest ones are forgotten, and they are the ones with the most to give.

  2. 02

    Keyword plugins paste the same anchor everywhere

    A keyword-to-URL list links the same words to the same page in every post, whether it fits the sentence or not. Readers notice.

  3. 03

    AI tools that rewrite your copy

    Some tools write a new sentence to hold the link. Your voice and your claims end up edited by a model you did not ask to edit.

Before and after Autolinker Before: seven posts, only one link between them. After: the same seven posts, each linked to the posts closest in meaning. Before After
Dashed: a post nothing links to. Every link on the right uses words already in the source post.

The rule

No verbatim match, no link.

The model proposes an anchor. The plugin then checks that the exact phrase is already in your post, word for word. If it is not, the link is rejected and the reason goes to the journal. Nothing is forced into your text, and an empty result is never a mystery.

See the real journal
Excerpt of the decision journal
DecisionAnchorReason
placed"image compression"confidence 0.88
dropped"speed optimization guide"anchor_not_verbatim
dropped"click depth"below_confidence 0.61
placed"crawl budget"confidence 0.84

How it works

Five passes. Nothing forced.

Each pass is a separate background job. Relevance is decided by embeddings, anchors by a language model, and nothing is ever forced into your text.

  1. 01

    Embed

    Every post becomes a vector with an OpenAI embeddings model, stored locally and refreshed only when the content changes.

  2. 02

    Match

    Cosine similarity ranks every possible target above your threshold. Relevance comes from meaning, not from matching strings.

  3. 03

    Filter

    A first model pass drops candidates that are topically close but editorially wrong.

  4. 04

    Anchor

    A second pass proposes an anchor phrase that already exists, word for word, in your text. No verbatim match, no link.

  5. 05

    Write

    The link is written into the post as real HTML with a marker attribute, tracked in a registry, repairable later.

Links are real HTML in your content. They survive exports, feeds and search engines, and they stay if you ever deactivate the plugin.

Why it is different

Keywords match strings. Meaning matches pages.

Autolinker compared with keyword-to-URL plugins and AI tools that rewrite
Compared onKeyword-to-URL pluginsAI tools that rewriteAutolinker
Finds targets by Keyword plugins: Keywords you list by hand Rewriting AI tools: A model reading your posts Autolinker: Meaning: OpenAI embeddings of every post
Anchor text Keyword plugins: Usually the keyword itself, wherever it appears Rewriting AI tools: Often a new phrase the model writes Autolinker: A phrase already in your text, verified word for word
Your sentences Keyword plugins: Untouched, but the same words tend to get the same link Rewriting AI tools: Often rewritten to fit the link Autolinker: Never rewritten: existing words are wrapped in a link
What you pay Keyword plugins: Usually a paid licence for the full version Rewriting AI tools: A licence, often with AI credits on top Autolinker: Free, or Pro from $29 a year, plus OpenAI at cost
After uninstall Keyword plugins: Often added at display time, so they disappear with the plugin Rewriting AI tools: Depends on the tool Autolinker: Links stay: plain HTML in your content
Rejected links Keyword plugins: Usually not tracked Rewriting AI tools: Rarely explained Autolinker: Every rejection journaled with a reason

In the box

Everything a careful editor would check

Anchors never invented

Every anchor is verified verbatim against your text. If the phrase is not in the post, the link is rejected rather than forced.

A budget, not a flood

A per-post link budget, anchor length bounds, and per-post exclusions: as source, as target, or entirely.

Silo mode

Keep links inside the same category so your topical clusters stay tight.

Link health

Broken targets are detected on a schedule, orphaned links are flagged, and when a permalink changes the links pointing at it are rewritten.

Elementor and ACF

Elementor text editor widgets are linked, including content stored in Elementor's own data structure, and so are ACF fields. Other widgets are left alone.

One language per link

WPML and Polylang are detected automatically and links stay inside one language: a French post never links to its English translation. TranslatePress, Weglot and GTranslate sites are handled as single-language, since only the original exists in the database.

A decision journal

Every link placed and every candidate rejected is logged with a reason. An empty result is never a mystery.

Need economy mode, scheduled passes or priority pages? See Autolinker Pro, from $29 a year.

The real admin

This is the actual plugin

Screenshots from a demo site, produced by the real engine. No mock-ups.

Autolinker admin screen: Link health
Link health. Broken internal and external links, duplicate destinations, anchor cannibalisation, and registry entries whose target no longer exists.
Autolinker admin screen: Journal
The journal. Every candidate that was considered and dropped, with the reason next to it.
Autolinker admin screen: Published post
The result in the published article: ordinary HTML links in the text, which survive in exports and feeds and do not depend on the plugin still running.

Your content stays yours

Nothing to undo, nothing hidden

Plain HTML that stays

Links are written into your content as ordinary HTML. Deactivate the plugin and they stay where they are; only tracking, health checks and repair stop until you reactivate.

What goes to OpenAI

Only the text of the posts you process, the titles and excerpts of candidate targets, and the prompts built around them, sent to api.openai.com with your own key. None of your content is sent to us.

Read the privacy policy

14 days to change your mind

Every paid plan, the Founder lifetime deal included, comes with a 14-day money-back guarantee.

Refund policy
Maximilien Labadie

Built by Maximilien

I'm Maximilien Labadie. I run SEOPepper and write about search at Web & SEO. I built Autolinker for my own sites: I wanted internal links everywhere without a plugin putting words in my mouth. Every anchor it places is a phrase you already wrote.

Maximilien LabadieWeb & SEOWrite to me

Pricing

Free for good. Pro when you scale.

Founder lifetime from $79 until October 31

Pro

$29a year, 1 site

Economy mode at about half the API cost, scheduled passes, priority pages and a CSV report of your links and orphaned pages.

Compare Pro plans

14-day money-back guarantee on every paid plan. Prices in USD, payment handled by Paddle.

FAQ

Questions, answered

The full documentation covers install, compatibility and costs. Something else? Ask us directly.

Do I need an OpenAI API key?

Yes. The plugin has no bundled key and no free tier of its own. You create a key on your own OpenAI account and pay OpenAI for what you use.

How much does it cost to run?

It depends on how many posts you process and how long they are. The per-post link budget caps how many placements are attempted, and embeddings are cached, so a post that has not changed is never re-embedded. Autolinker Pro adds an economy mode that batches scans through the OpenAI Batch API, for about half the API cost.

Does it modify my post content?

Yes, on purpose. Links are written into the post content as ordinary HTML, with a marker attribute so the plugin can find its own links later. They survive in exports, in feeds and for search engines, and they do not depend on a filter running at display time. Your sentences are not rewritten: the anchor is a phrase that is already there.

What happens if I deactivate the plugin?

The links stay in your content, because they are ordinary HTML. Link tracking, health checks and repair stop until you reactivate.

Can I stop it from touching a specific post?

Yes. Each post has controls to exclude it entirely, to stop it being used as a link source, or to stop it receiving links.

Does it work with page builders?

Elementor is supported, including content stored in Elementor's own data structure: text editor widgets are linked, other widgets are left alone. Builders that store their layout as shortcodes, such as Divi, are linked inside their text with the shortcodes untouched. Builders that keep their content outside the post content field, such as SeedProd, are not supported yet, and nothing is written on those pages.

Does it conflict with Yoast SEO, Rank Math, All in One SEO or SEOPress?

No. The plugin adds nothing to the front end: no meta tag, no canonical, no sitemap, no filter at display time. An SEO plugin counts its links exactly like a link you typed yourself. It also reads the noindex setting of those four, so a page you marked noindex is never chosen as a link target.

Why did it place no links on a post?

Open the journal. Every candidate that was considered and dropped is recorded with a reason: below the similarity threshold, rejected by the filtering pass, or an anchor that did not appear verbatim in the source. The last one is the most common, and it is working as intended: the plugin will not invent an anchor that is not in your text.

Your oldest posts are your least linked.

They are the first thing Autolinker fixes.

Get it on WordPress.org

Free, no signup, works with your own OpenAI key.