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
Settings — OpenAI key, model selection, similarity threshold slider, post types, ignore lists.
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 — 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
$0forever, no expiry
MITOpen source · public on GitHub
Best for
Most content sites. Single-author blogs, small editorial teams, anyone comfortable pasting an OpenAI API key.
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.
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 <a> 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.