Documentation
Everything the plugin does, what it costs and how to control it. No account needed to read any of this.
Install
Autolinker needs WordPress 6.2 or newer and PHP 7.4 or newer, and an OpenAI API key of your own. It links the post types you choose as sources and targets in its settings.
- In your WordPress admin, go to Plugins → Add Plugin, search for Web & SEO Autolinker, install it and activate it. You can also download it from WordPress.org and upload the zip.
- Open Autolinker → Settings and paste your OpenAI key. You create one on platform.openai.com. The key is stored encrypted in your database.
- Keep the defaults or adjust the Similarity threshold, Max links per post and Anchor words (2 to 6 by default).
- Full auto on publish is on by default, so each post is linked when you publish it. To link the posts you already have, open Autolinker and click Scan the whole catalogue. Progress is shown as it goes.
Scans run in the background through WP-Cron, a few posts at a time. On a site with little traffic, WP-Cron only fires when someone visits, so a scan can stall: a real system cron calling wp-cron.php every few minutes fixes that.
Install Pro
Autolinker Pro is an add-on, not a separate plugin: it needs the free plugin installed and active first. It is not distributed on WordPress.org, so you install it by uploading a zip once, and WordPress updates it on its own from then on.
- Get the zip. Your purchase email carries a direct download link valid for 30 days. Once it expires, go to autolinker.app/download and enter your license key for a fresh one.
- In your WordPress admin, go to Plugins → Add Plugin → Upload Plugin, pick the zip, install it and activate it.
- Open Autolinker → Settings, paste your key in the Pro licence section and click Activate. The section then shows your plan and its expiry date.
Pro does not change how linking is billed: it runs on the same OpenAI key, on your own account.
Updates
Once the licence is active, Pro updates through the normal WordPress updates screen, like any plugin from the directory. Nothing to re-download. The licence is checked again once a week.
When a licence ends
After an annual licence expires, a 14-day grace period starts: the Pro features keep running, but updates stop. When it ends, the Pro features switch off and the scheduled passes are unscheduled. The free plugin keeps working exactly as before, your settings are kept, and no content is touched. A fully refunded licence is revoked, and Pro switches off at its next weekly check.
Moving Pro to another site
Plans are counted in sites: 1, 3, 10 or unlimited. Each activation uses one slot, and a plan that is full refuses a new site rather than silently dropping an old one. Deactivating or deleting the add-on frees the site’s slot, and reactivating it takes a slot back if one is free. To free a slot and keep the add-on installed, open Autolinker → Settings on the old site and click Deactivate the licence.
Pro 0.3.0 and earlier keep the slot when the add-on is deactivated or deleted: on those versions, click Deactivate the licence first.
If the old site no longer exists, or the key is refused for a licence that is neither refunded nor lapsed, write to [email protected] from the address you paid with.
In the admin
The plugin adds one Autolinker menu with five screens, and a box in the editor sidebar.
- Autolinker
- The Scan the whole catalogue button and its progress.
- Settings
- The whole configuration on one screen: OpenAI key, similarity threshold, max links per post, anchor length, working language, silo mode (Soft places links to the same category first, Strict links only posts that share a category with the source; content without a category is not affected), which post types are link sources and which are targets, batch size, automatic linking on publish, link health checks, and whether to delete the plugin’s data on uninstall.
- Links
- Every link the plugin has placed, with its source, its target, the anchor and the similarity that justified it. Revoke removes a link from the content.
- Link health
- Broken internal and external links, duplicate destinations, anchor cannibalisation, and links still pointing at an old slug, with an action next to each: unlink, ignore, re-check or update the href. When a target’s permalink changes, the links pointing at it are rewritten.
- Journal
- Every candidate that was considered and dropped, with its reason code next to it, such as
below_confidence,anchor_not_verbatimorbudget_reached. - Editor sidebar
- Four per-post controls: exclude the post from linking entirely, do not create links from it, do not let it receive links, or force silo mode so its links stay in its category.
What Pro adds
- Processing mode
- A row in Settings. Fast places links within minutes; Economy sends the link analysis through the OpenAI Batch API, billed at half price, with links placed within 24 hours. A batch line that fails falls back to Fast, so no post is lost.
- Scheduled passes
- Rows in Settings: a pass over new posts and a resumable full re-scan, each never, hourly, daily or weekly, with a cap on the number of posts per pass.
- Priority pages
- Mark a page as a priority from the editor sidebar and give it a goal of incoming links. It scores higher as a link target, but nothing is forced: if no post covers the subject, the page does not get the link. The Priority pages screen tracks progress against each goal.
- Report
- A CSV report over a period you choose: the links placed, the anchor distribution and the pages the plugin linked for the first time, plus a snapshot of the pages still orphaned, link health, priority pages and re-scan scheduling. A page counts as orphaned when no published content links to it, whether the link was placed by the plugin or written by you. Only the content of your source post types is read: links in menus and widgets are not seen.
Compatibility
Everything below is detected at runtime, with no setting to switch on.
| Works with | What happens |
|---|---|
| Elementor | Supported, including content stored in Elementor’s own data structure. Text editor widgets are linked; other widgets are left alone. |
| ACF fields | Linked. The plugin writes to the field itself, in post meta. |
| Divi and other shortcode builders | Linked inside their text, with the shortcodes left untouched. Text a builder keeps in a shortcode attribute, such as a module title, is never linked: writing there would break the module and the link would be invisible. The journal records those as anchor_inside_shortcode. |
| SeedProd | Not supported yet. SeedProd keeps its content outside the post content field, so nothing is written on those pages, and nothing is damaged either. |
| Yoast SEO, Rank Math, All in One SEO, SEOPress | No conflict. The plugin adds nothing to the front end: no meta tag, no canonical, no sitemap, no filter at display time, so an SEO plugin counts its links exactly like a link you typed. It reads their noindex setting: a page you marked noindex is never chosen as a link target. Two limits: it reads the setting on the page itself, not a site-wide rule that makes a whole post type noindex, and another SEO plugin is not recognised. Exclude those pages from the editor sidebar instead. |
| WP Rocket, W3 Total Cache, LiteSpeed Cache, WP Super Cache, WP Fastest Cache, SG Optimizer | Nothing is computed at display time, so a cached page never serves a version without the links. A link written into the post content goes through the normal WordPress update, which these plugins already watch to clear the page. On Elementor pages and ACF fields the write goes to post meta instead, and the plugin clears the page itself for WP Super Cache, W3 Total Cache, Cache Enabler and LiteSpeed Cache. WP Fastest Cache exposes no per-post purge another plugin can reach, and WP Rocket could not be tested, so nothing is claimed for those two on Elementor or ACF pages: purge the page by hand, or hook the aial_post_content_changed action. |
| WPML, Polylang | Detected automatically once two languages are active; a site with a single language is treated as monolingual. Links stay inside one language: a French post never links to its English translation. The plugin then switches to a larger embedding model and queues every post once to be embedded again, a one-off cost. |
| TranslatePress, Weglot, GTranslate | Treated as single-language sites: these layers translate on the fly and only the original content exists in the database. |
Costs
The plugin is free and sells no AI credits. Every API call is made with your key and billed by OpenAI to your account, at OpenAI’s rates. The models are fixed, so the bill does not depend on a setting you might get wrong.
- Embedding
- Each post is turned into a vector with
text-embedding-3-small, ortext-embedding-3-largeon a WPML or Polylang site with two languages or more. The vector is cached and only recomputed when the post changes. - Filtering
- One call to
gpt-5.6-lunaper scanned post, over the candidates above your similarity threshold. - Anchor choice
- One call to
gpt-6-sol, at low reasoning effort, over the candidates that survived the filter. If OpenAI reports a model unavailable, the call is retried ongpt-5.4-nanoand the log says so.
What a scan costs therefore depends on how many posts you process and how long they are. Four levers bring it down:
- A higher similarity threshold sends fewer candidates to the two model calls.
- Max links per post caps how many placements are attempted.
- Source and target post types, and the per-post exclusions, keep posts out of the scan entirely.
- With Pro, Economy mode bills the link analysis at half price. Embedding stays immediate in both modes: its cost is marginal.
OpenAI’s usage page shows what each day cost, per model.
Removing links
- One link: open Links and click Revoke. The link comes out of the content and the anchor stays as plain text.
- One post: the editor sidebar keeps it out of future scans, as a source, as a target, or both.
- Deactivating the plugin: the links stay in your content, because they are ordinary HTML. Tracking, health checks and repair stop until you reactivate.
- Uninstalling: the plugin’s data is kept unless Delete data on uninstall is ticked in Settings. Links already written stay in your content in both cases. To take some out, revoke them before you uninstall: once the registry is deleted, the plugin can no longer find them.
FAQ
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. Autolinker Pro does not change that.
Does it rewrite my sentences?
No. The anchor is a phrase that is already in your post, word for word, and the plugin wraps it in a link. If the model proposes a phrase that is not there, the link is rejected rather than forced.
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.
Does it send my content anywhere other than OpenAI?
No. The only external service is the OpenAI API, and only for the posts you process. The link health check visits the URLs already in your posts, and sends none of your content. The details are in the privacy policy.
Is the free plugin limited?
No. It has no link cap and Pro does not unlock anything inside it. Pro is a separate add-on with its own features: economy mode, scheduled passes, priority pages, a CSV report and automatic updates. See pricing.
Is the interface available in my language?
The interface is in English, and French ships with both plugins as a translation, so a site running in French gets it with nothing to install. Any other language can be added on translate.wordpress.org or with your own .po file.
Something not covered here? Contact us.