← All WordPress plugins

Build 1,000+ internal links. Without the $77/yr tax.

Semantic internal-link suggestions powered by OpenAI embeddings. Right in the Gutenberg sidebar. Free, MIT, and arguably better than Link Whisper.

Live v1.1.0 WP 6.4+ PHP 8.1+ MIT
Champlin AI Internal Linker settings screen showing OpenAI API key field, embedding model dropdown, threshold slider at 0.75, and post-type checkboxes.

Why this plugin exists

Link Whisper users pay $77/year just to skip the copy-paste step on suggestions — and another $50+ for the AI Credits meter that powers their analysis. Champlin AI Internal Linker does both, free, with sentence-level anchor extraction that picks the actual phrase from your draft instead of a generic keyword match. You bring an OpenAI key (single-digit cents per month for a typical site), and the plugin handles the rest.

The pain

Internal links are one of Google's strongest on-page ranking signals. Manual linking on a content-heavy site eats 12+ hours per week — and most editors give up halfway, leaving topical clusters incomplete and orphan posts buried.

The consequence

Pages that should rank don't. Topic authority never compounds. Your competitor with the same content but better internal linking outranks you. Worst case: you pay $77+/yr for a plugin that gates one-click insert behind a Premium license AND a separate AI Credits meter.

The solution

Champlin AI Internal Linker reads your content with OpenAI embeddings (your key, your bill — typically pennies/month), surfaces semantically relevant link suggestions in the Gutenberg sidebar, and auto-picks an anchor phrase from a real sentence in your draft. One click to insert. Acceptance is logged so the same target stops reappearing. Free, MIT, fully open source.

Features that matter

One-click insert in Gutenberg

The sidebar surfaces ranked suggestions while you write. Click "Insert link" and the <a> lands in the active block with the auto-detected anchor. Link Whisper Free is still copy-paste only — that's a $77/yr upgrade for the same UX.

🎯

Sentence-level anchor extraction

For each suggested target, we run cosine similarity against the source's sentence-level embeddings and pick the actual phrase from your draft that best matches the target topic. Not a keyword match. A real sentence.

🧠

Semantic, not keyword

Powered by OpenAI's text-embedding-3-small (1536d) or 3-large (3072d). Suggestions are based on meaning, not exact word match. Configurable similarity threshold (default 0.75) lets you tune the recall/precision tradeoff.

🔍

Orphan Pages report

Every published post with zero inbound internal links, surfaced in a single admin screen. Cached in a 6-hour transient, auto-invalidated on save_post. One-click edit. The single biggest SEO lift on most content sites.

🚫

Ignore lists

Exclude specific post IDs (legal pages, landing pages) or entire category trees (memberships-only content, etc.) from suggestions. Persistent across sessions.

🏷️

SEO plugin integration

Reads focus keywords from Yoast SEO, Rank Math, All in One SEO, and SEOPress in priority order. First non-empty wins. Exposed in the REST response for downstream use.

🧱

Page-builder support

Shortcode-based page builders — Divi (`[et_pb_*]`), WPBakery / Visual Composer, plus any custom shortcodes — are scanned via `do_shortcode()` before embedding. Elementor coming in v1.2.

⏱️

Background indexing

Uses Action Scheduler (the WordPress ecosystem standard, bundled with WooCommerce). SHA-256 content hashing means unchanged posts skip re-embedding entirely. Bulk re-index runs with progress UI.

🪶

Lightweight

Two custom tables (~6KB per indexed post, float32 packed). Clean uninstall drops both tables, sweeps options + transients + AS jobs. No orphan data, no telemetry, no phone-home.

What it looks like

Champlin AI Internal Linker settings screen showing OpenAI API key field, embedding model dropdown, threshold slider at 0.75, and post-type checkboxes.

Settings — OpenAI key, model selection, similarity threshold slider, post types, ignore lists.

Orphan Pages report admin screen showing a list of WordPress posts with zero inbound internal links and edit buttons.

Orphan Pages report — every published post with zero inbound internal links, one-click edit, manual re-scan button. Scanned 82 posts in 329ms on a real WordPress install.

Bulk re-index admin screen showing a progress bar at full completion with 82 of 82 posts indexed.

Bulk re-index — progress bar, live count, runs in the background via Action Scheduler. Content-hash skip means re-indexing is free on unchanged posts.

Champlin AI Internal Linker vs Link Whisper

A blow-by-blow comparison. No spin — every row is verifiable against the public WordPress.org listing and our own source code.

Feature Champlin AI Internal Linker (free) LW Free + Premium
One-click insert in Gutenberg ✓ Included Premium only ($77/yr)
Sentence-level anchor extraction ✓ Included — No
Orphan Pages report ✓ Included Basic in Free, full in Premium
Ignore URLs / categories ✓ Included Premium only
Yoast / Rank Math / AIOSEO / SEOPress ✓ Included Premium only
Page-builder shortcode scanning ✓ Included ✓ Included
Auto-link by keyword rule v1.2 (Premium) Premium ($77/yr)
Broken link checker v1.2 (Premium) Premium
AI source BYO OpenAI key, ~$0.02/yr for 1k posts Native LLM + AI Credits subscription (~$50 extra)
Source code MIT, fully open source GPL Free / closed Premium
Cost $0 (free forever) $77–$127+/yr

Free + Premium · pick the tier that fits

The Free tier is permanently free — MIT-licensed, fully open source on GitHub, and works standalone. Premium is a separate product (private repo, paid license) that unlocks hosted AI plus the site-wide automation features power users want without managing an OpenAI key.

Free

Available now
$0 forever, no expiry
MIT Open source · public on GitHub
Best for Most content sites. Single-author blogs, small editorial teams, anyone comfortable pasting an OpenAI API key.
  • Gutenberg sidebar with one-click insert
  • Sentence-level anchor extraction
  • Orphan Pages report (6h transient cache)
  • Ignore lists (posts + categories)
  • Yoast / Rank Math / AIOSEO / SEOPress integration
  • Shortcode page-builder scanning (Divi, WPBakery)
  • Background indexing via Action Scheduler
  • SHA-256 content-hash skip on unchanged posts
  • BYO OpenAI key (~$0.02/yr for a typical site)
  • Full source on GitHub · 29 PHPUnit tests
  • Community support via GitHub Issues

Premium

Coming v1.2
$39 per year · 1 site
Commercial Private repo · paid customers only
Best for Agencies and editorial teams that want hosted AI (no key required), site-wide automation, and full link-management tooling without the Link Whisper tax.
  • Everything in the Free tier, plus:
  • Hosted AI — no OpenAI key required
  • Auto-link by keyword → URL rule
  • Broken-link checker with re-verify pass
  • Bulk URL changer (site-wide find + replace)
  • Money Pages prioritization (cosine score boost)
  • Click tracking + per-link analytics
  • Visual sitemap of your link graph
  • Email link-health reports (weekly digest)
  • Priority email support (48h response)
  • Auto-updates from our private update server

Agency tier ($79/yr, unlimited sites + cross-site linking) and bundle pricing also planned.

Install in five minutes

  1. Download the latest release zip from GitHub Releases.
  2. WP-Admin → Plugins → Add New → Upload Plugin → Choose File → Install Now → Activate.
  3. Install + activate Action Scheduler (separate free plugin) if you don't already have WooCommerce.
  4. Visit Tools → AI Linker → Settings. Paste your OpenAI API key, pick post types, save.
  5. Visit Tools → AI Linker → Re-index. Click "Start re-index" — runs in the background via Action Scheduler.
  6. Open any post in the block editor — suggestions appear in the right-hand sidebar.

The technical spec sheet

WordPress required
6.4+
PHP required
8.1+ (strict types, namespaced)
Database tables
2 custom (cil_embeddings + cil_suggestion_log), dropped on uninstall
Storage per post
~6KB (1536-dim float32, packed)
Required plugins
Action Scheduler (bundled with WooCommerce, or install free from WP.org)
OpenAI cost (1,000 posts)
~$0.02 with text-embedding-3-small
Suggestion latency
1,050 ms cold / 81 ms warm (12h transient cache)
REST namespace
cil/v1 — every route gated on capability + nonce
License
MIT
Tests
29 PHPUnit / 49 assertions (Brain Monkey + Mockery)
Telemetry
None. Plugin makes no calls except to api.openai.com with your key.

Frequently asked

How much does OpenAI cost?

For a typical content site (~500 posts, ~50 edits/month) you'll spend roughly $0.04 per year. The initial bulk index for 1,000 posts is about $0.02 at text-embedding-3-small pricing. Suggestion fetches re-embed only the source post if its content has changed (skipped otherwise via SHA-256 content hash).

Do I need to know how to use the OpenAI API?

No. You just need an API key. Visit platform.openai.com → API Keys → Create new secret key → paste it in the plugin's Settings screen. The plugin handles everything else. If managing an API key feels like too much, the Premium tier (coming v1.2) will offer hosted AI for $39/yr — no key needed.

Is this just a copy of Link Whisper?

No. It's a clean-room rebuild with a different (better) anchor-extraction approach. Link Whisper picks anchors from keyword matches or post titles; we pick the actual sentence in your draft most semantically similar to the target. Free includes one-click insert (Link Whisper Free is copy-paste only) and shortcoded page-builder scanning is in Free, not paywalled.

Does this work with WooCommerce / Divi / Elementor?

WooCommerce: yes, just enable the product post type in Settings. Divi: yes, shortcoded layouts are scanned via do_shortcode(). WPBakery: yes. Elementor: not in v1.1 (it stores layout as JSON, not shortcodes) — coming in v1.2. ACF text fields: not currently scanned.

What happens if I uninstall it?

Both custom tables are dropped, every cil_* option and transient is swept, and any pending Action Scheduler jobs are unscheduled. Internal links you already inserted into your posts stay there — they're just normal WordPress &lt;a&gt; tags, not plugin shortcodes.

Is the code really open source?

Yes. MIT-licensed, fully public on GitHub. 26 PHP files. PSR-4 namespaced under Champlin\InternalLinker. 29 PHPUnit tests, all green. No closed-source binary blobs, no obfuscated code.

Ready to ship better internal linking?

Free download, MIT license, fully open source. Or — need Champlin AI Internal Linker customized for your stack, or something completely custom built? I take on senior WordPress engagements through Champlin Enterprises.