Releases: Kevinchamplin/champlin-ai-internal-linker
Release list
v1.2.0 — Insights / ROI dashboard + inline-wrap link insertion
The biggest release since v1.0. Two flagship features: the Insights / ROI dashboard that quantifies what the plugin has actually done for the editor, and inline-wrap link insertion that finds the suggested anchor in the existing draft and wraps THOSE words in place — no more "Related:" stubs at the end of posts.
What's new
Insights / ROI dashboard
At Tools → AI Linker → Insights:
- Hero ROI cards: Links inserted (total + last 30 days), Editor time saved (5 min/link × accepts, formatted as "1h 25m"), Pages improved (distinct source posts).
- ROI math callout with three breakdown tiles: OpenAI cost spent vs editor time-value vs return multiple. Real installs show >10,000× ROI on the OpenAI bill.
- 8-week activity chart — inline SVG bar chart of accepted inserts per ISO week. Empty weeks render as zero so dips are visible. No new chart library — pure SVG.
- Most-active editors table with avatars, inserts, pages improved, and time saved per author. Useful for multi-author sites tracking adoption.
- Most-linked target posts — top 10 by accepted inbound count. Tells you what your topical-authority centers are becoming.
- Recent activity — last 10 accepted inline links with source, target, similarity, "N days ago".
- CSV export — full activity log streamed via
?export=csv.
Inline-wrap link insertion
Click "Insert link" in the Gutenberg sidebar and the plugin now:
- Walks the entire block tree (paragraphs, headings, lists, quotes, columns, groups → recursive into innerBlocks)
- Finds the suggested anchor as plain text inside any editable attribute (
content,value,caption,text,citation) - Skips matches that are already inside an
<a>...</a>or an HTML attribute - Wraps the first viable match in
<a href>preserving the original case - Selects the modified block + shows a Gutenberg snackbar so you see what happened
- Falls back gracefully when the anchor isn't in the draft — adds a "Related:" paragraph at the end with an info notice telling you why
This is the same UX Link Whisper Premium charges for. Free in v1.2.
Quality fixes
- Default similarity threshold 0.75 → 0.55 — calibrated to OpenAI text-embedding-3-small on real WordPress content. The old 0.75 default returned zero suggestions for most sites.
- AnchorExtractor trims long sentences at word boundaries (no more ellipsis) so the returned anchor is always a literal substring of the source content.
- Sidebar threshold slider defensively coerces values to real numbers — fixes a blank-input edge case from v1.0.
Reports → Orphans now has a complete fix workflow
Each orphan expands to show the top-3 inbound-candidate posts (computed from existing embeddings). Click "Open in editor" on a candidate → editor opens with ?cil_open=1 → AI Linker sidebar auto-opens → the orphan appears as a top suggestion → one click and the orphan is no longer orphaned.
Pro extension surface
New hooks documented in docs/HOOKS.md:
cil_settings_render_extra(action) — inject custom Settings panelscil_provider(filter) — swap the embedding source (Pro's HostedProvider uses this for hosted AI)cil_provider_summary(filter) — Pro tells Free's Settings which provider is activecil_extra_excluded_ids,cil_rank_results,cil_suggestion_row(filters) for ranking + display extensions
Requirements
- WordPress 6.4+
- PHP 8.1+
- An OpenAI API key (set in Tools → AI Linker → Settings)
- Action Scheduler — install separately. WooCommerce sites already have it bundled.
Performance
Real-world measurements on a 82-post install:
- Suggestion fetch: 81 ms warm (12h transient cache hit)
- Orphan report scan: 329 ms
- One batched OpenAI call per suggestion fetch (was 100 sequential pre-v1.0.1)
- Cost per 1,000 posts indexed: ~$0.02 at text-embedding-3-small pricing
Install
- Download
champlin-ai-internal-linker-1.2.0.zip(asset below) - WP-Admin → Plugins → Add New → Upload Plugin → Choose File → Install Now → Activate
- Visit Tools → AI Linker → Settings, paste your OpenAI key
- Visit Tools → AI Linker → Re-index, click "Start re-index"
- Open any post in the block editor — sidebar suggestions appear
- Check Tools → AI Linker → Insights after a few accepts to see ROI
Coming soon
Champlin AI Internal Linker Pro ($39/yr) — hosted AI (no OpenAI key needed), auto-link by keyword→URL rules, broken-link checker, bulk URL changer, Money Pages prioritization, click tracking. See the plugin page for details.
Upgrade
Self-hosted installs running v1.0.x or v1.1.x get this update automatically via plugin-update-checker — appears in WP-Admin → Updates within an hour.
v1.1.0 — Free-tier parity with Link Whisper Free
First public release of Champlin AI Internal Linker — a free, MIT-licensed alternative to Link Whisper Free, with significantly better UX.
What's in v1.1.0
- Gutenberg sidebar with one-click insert and auto-detected anchor text from sentences in your draft (LW Free is copy-paste only)
- Orphan Pages report at Tools → AI Linker → Reports — every published post with zero inbound internal links, with 6h transient cache + manual re-scan
- Ignore lists — exclude specific post IDs or whole category trees from suggestions
- SEO plugin integration — reads focus keywords from Yoast SEO, Rank Math, All in One SEO, and SEOPress
- Page-builder support — Divi (
[et_pb_*]), WPBakery ([vc_*]), and any other shortcode-based content viado_shortcode() - Background indexing via Action Scheduler with SHA-256 content-hash skip on unchanged posts
- REST API at
/wp-json/cil/v1/*— every route gated on capability + nonce
Performance
Measured on a real WP install with 82 posts:
- Suggestion fetch: 1,050 ms cold, 81 ms warm (12-hour transient cache for source-sentence vectors)
- Orphan report scan: 329 ms
- One batched OpenAI call per suggestion fetch (was 100 sequential pre-v1.0.1)
- Cost per 1,000 posts indexed: ~$0.02 at text-embedding-3-small pricing
Requirements
- WordPress 6.4+
- PHP 8.1+
- An OpenAI API key (set in Tools → AI Linker → Settings)
- Action Scheduler — install separately. WooCommerce sites already have it bundled.
Install
- Download
champlin-ai-internal-linker-1.1.0.zip(asset below) - WP-Admin → Plugins → Add New → Upload Plugin → Choose File → Install Now → Activate
- Visit Tools → AI Linker → Settings, paste your OpenAI key, choose post types
- Visit Tools → AI Linker → Re-index and click "Start re-index"
- Open any post in the block editor — suggestions appear in the right-hand sidebar
What's coming in v1.2
Sprint 2 wires up the Premium tier — hosted AI (no key needed), auto-link by keyword→URL, broken-link checker, bulk URL changer, Money Pages prioritization, and a setup wizard. Free tier stays free forever.
Self-hosted auto-updates
This release bundles yahnis-elsts/plugin-update-checker v5.6 — once installed, future versions will appear in WP-Admin → Updates automatically.
Full source
https://github.com/Kevinchamplin/champlin-ai-internal-linker — MIT licensed, contributions welcome.