WP Manifestindependent plugin directory
manifest / seo / lean-autolinks

Lean Auto-Links

Lightweight auto-linking engine for WordPress. Keywords, affiliates, glossary — one plugin.

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/ctala/lean-autolinks/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Lightweight, configurable auto-linking engine for WordPress. Custom keywords, affiliate links, glossary terms — all managed from one place.

Features

  • Custom keyword → URL mapping with per-keyword flags
  • Per-keyword rel="sponsored" for affiliate links (Sp column)
  • Global rel="nofollow" for external links — safe by default
  • Per-keyword dofollow override (DF column) to pass link juice when intended
  • Auto-detect post types — all public CPTs enabled by default
  • Configurable protected zones — skip headings, captions, blockquotes, post title
  • REST API for programmatic CRUD (bulk import glossary/actors/affiliates)
  • Groups for organization (custom, glosario, actores, affiliate, etc.)
  • Longer terms matched first — "Venture Capital" won't be broken by "Capital"
  • External links open in new tab by default (target="_blank")
  • Single file, ~30KB, zero extra DB tables, zero dependencies

Installation

  1. Download ZIP from GitHub releases
  2. WP Admin → Plugins → Add New → Upload Plugin → select ZIP
  3. Activate
  4. Go to Settings → Auto-Links

Admin UI

Three tabs:

Tab Description
Keywords Add/edit keywords with On/Off, URL, Group, Sp (sponsored), DF (dofollow)
Settings Post types, protected zones, external link behavior, matching options
Stats Summary, group breakdown, REST API reference

How It Works

  1. Keywords are matched in post content using Unicode-aware regex
  2. Existing links, headings, code blocks, and other protected zones are skipped
  3. Each keyword is linked at most N times per post (configurable)
  4. Longer terms are matched first to prevent partial matches
  5. Optional plural suffix matching (e.g., "startup" also matches "startups")
Scenario Result
Internal link Normal <a href>
External link (default) target="_blank" rel="noopener nofollow"
External + Sp checked rel="noopener nofollow sponsored"
External + DF checked rel="noopener" (no nofollow)
External + Sp + DF rel="noopener sponsored" (dofollow + sponsored)

REST API

All endpoints require manage_options capability (use Application Passwords).

Keywords

GET    /wp-json/lean-autolinks/v1/keywords          # List all (optional ?group=)
POST   /wp-json/lean-autolinks/v1/keywords          # Add keywords (deduplicates)
PUT    /wp-json/lean-autolinks/v1/keywords          # Replace all keywords
DELETE /wp-json/lean-autolinks/v1/keywords?group=    # Delete by group
DELETE /wp-json/lean-autolinks/v1/keywords?term=     # Delete by term

Keyword Object

{
  "term": "Venture Capital",
  "url": "https://example.com/venture-capital/",
  "sponsored": false,
  "dofollow": true,
  "group": "pillar",
  "active": true
}

Settings

GET  /wp-json/lean-autolinks/v1/settings      # Get current settings
POST /wp-json/lean-autolinks/v1/settings      # Update settings (partial merge)

Cache

POST /wp-json/lean-autolinks/v1/cache/flush   # Flush keyword cache

Configuration

All settings are available in Settings → Auto-Links. Key options:

Setting Default Description
Post types All public Which post types to auto-link
Max links/post 10 Maximum auto-links per post
Max per keyword 1 Times same keyword can be linked per post
Min term length 3 Minimum characters for a keyword
Cache hours 24 Transient cache duration (0 = no cache)
External new tab ✅ Open external links in new tab
Nofollow external ✅ Add nofollow to external links by default
Skip headings ✅ Don't link inside H1-H6
Skip captions ✅ Don't link inside figcaption
Skip blockquotes ❌ Don't link inside blockquote
Skip own title ✅ Don't link the post's own title

Requirements

  • WordPress 5.0+
  • PHP 7.4+

License

GPL-2.0-or-later