Skip to content

Releases: Kevinchamplin/champlin-ai-internal-linker

v1.2.0 — Insights / ROI dashboard + inline-wrap link insertion

Choose a tag to compare

@Kevinchamplin Kevinchamplin released this 20 May 22:06

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:

  1. Walks the entire block tree (paragraphs, headings, lists, quotes, columns, groups → recursive into innerBlocks)
  2. Finds the suggested anchor as plain text inside any editable attribute (content, value, caption, text, citation)
  3. Skips matches that are already inside an <a>...</a> or an HTML attribute
  4. Wraps the first viable match in <a href> preserving the original case
  5. Selects the modified block + shows a Gutenberg snackbar so you see what happened
  6. 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 panels
  • cil_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 active
  • cil_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

  1. Download champlin-ai-internal-linker-1.2.0.zip (asset below)
  2. WP-Admin → Plugins → Add New → Upload Plugin → Choose File → Install Now → Activate
  3. Visit Tools → AI Linker → Settings, paste your OpenAI key
  4. Visit Tools → AI Linker → Re-index, click "Start re-index"
  5. Open any post in the block editor — sidebar suggestions appear
  6. 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

Choose a tag to compare

@Kevinchamplin Kevinchamplin released this 20 May 16:58

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 via do_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

  1. Download champlin-ai-internal-linker-1.1.0.zip (asset below)
  2. WP-Admin → Plugins → Add New → Upload Plugin → Choose File → Install Now → Activate
  3. Visit Tools → AI Linker → Settings, paste your OpenAI key, choose post types
  4. Visit Tools → AI Linker → Re-index and click "Start re-index"
  5. 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.