WordPress plugin · free · version 1.0
Internal linking that is actually free.
Link suggestions while you write, added with one click and easy to undo. With the optional AI your WordPress already has and no credits to buy. Plus a report of the pages nobody links to and the links that go nowhere.
Today, in 1.0
What the free version already does
It suggests links while you write, adds them when you decide or by the rules you set, and lets you undo them. And it still measures your site with the report.
Suggestions in the editor
A panel in the block editor (and a box in the classic one) proposes phrases of your text that can link to other entries, with the reason for each.
One click, and undo
Press "Link" and the link is added on that phrase only. Undo it from the card or from History, and redo it if you change your mind again.
Inbound: link to this entry
The same panel lists other entries that mention yours. The link is written into the other entry only if the rest stays identical, byte for byte.
Automatic rules
Say "this phrase links to this entry" and Magic Linking links it when you publish or update, in the background. It handles variants, a gap of one word, and leaving out post types and categories. No limit on the number of rules. They only add links, and a link you undo does not come back.
Pillar content
Mark your main entries as pillar content and links pointing to them rank higher in the suggestions. The pillar mark from Yoast SEO or Rank Math counts too, as long as that plugin is active.
Your own target phrases
For each entry you write the phrases you want it to rank for, with a few variants, and other entries link to it using them. They never add a link by themselves.
More phrases and adjustable anchor
The card can offer alternative sentences (off by default) and lets you adjust the anchor text before linking. The server checks the result before writing it.
Warnings before you link
Each suggestion tells you when its anchor already links somewhere else or is repeated too often, and a collapsible list shows the links that are already there.
Leave entries and categories out
Exclude an entry from the report, or whole categories in Settings → General. An excluded entry is neither suggested nor used as a source of links, and the report lists it with the reason.
Suggestion filters
In Settings → Suggestions you choose whether to ignore, take into account or require the same post type, category or tag, so links show up where they make sense.
Rules on what you already have
"Apply to existing entries" shows you, entry by entry, the sentence with the link that would be added, with its own button to add it and an undo. There is no "apply to all" button. Also from WP-CLI: wp magic-linking rules.
Orphan report and more
Orphan, under-linked and over-linked pages, with inbound, outbound, external and broken counts per entry, filters, search and CSV of the view. From each row you open a panel with the same cards as the editor and link without opening the entry, with History and undo.
Broken internal links
A complete list with anchor text and reason. Change the destination to another published entry or remove the link and keep its text, one by one, with undo.
History
Every link Magic Linking changes is recorded: who, when, where and the anchor text. Undo and redo one change, a whole entry or a batch. Links the AI recommended and links added by an automatic rule are marked, and you can export it to CSV.
Optional AI
With an AI connector on WordPress 7.0+, "Improve with AI" puts the best suggestions first, marks the ones it does not recommend and can propose a better anchor text. Before sending you see the provider, the model and estimated tokens.
Made for big sites
Analysis and index in the background, in small batches, with pause and resume. WP-CLI to analyse, print reports and manage history from the terminal.
Status tab and advanced settings
The Status tab shows how long the latest suggestion requests took, so you can see whether the engine is slow on your server. Under advanced settings you can tune the key terms kept per entry and the score threshold.
Multilingual
Language per entry from WPML, Polylang or your site setting, and it never suggests links between different languages. An optional setting detects the language from the text itself; it is tested on Spanish and English only. The interface comes in 15 languages: Spanish, German (also formal), French, Italian, Portuguese (Brazil and Portugal), Catalan, Dutch, Romanian, English (UK, Australia, Canada) and Spanish (Argentina, Mexico). Dates follow the site format.
What it does not do, up front
- It changes nothing on its own except what you ask for: a click on "Link" or a rule you created. Suggestions never write by themselves, and rules only add links: they never remove or rewrite one.
- It needs no AI, no API key and no account. It never asks for your email.
- It sends nothing anywhere on its own. The only case is "Improve with AI", to the provider you set up; with a local model, your text stays on your server. No cookies, no telemetry.
- It does not check links over the network: a link is "broken" when it points to an address on your own site that leads nowhere.
How it works
Three steps, no settings screen
Activate and analyse
Install the plugin and press "Analyze my site". Nothing is analysed until you ask for it; the suggestions index is built in the background.
Link from the editor
Open any entry, look at the Magic Linking panel and press "Link" on the suggestions you like. Changed your mind? "Undo".
Read the report and fix what is broken
Filter by orphans, under-linked, over-linked or broken links, and fix the broken ones from the list. Export to CSV if you need it.
Principles
Four things that will not change
- Actually free
- Whatever the free plugin does, it does in full: no caps, no disabled buttons waiting for a payment, no email request. Pro will be a separate plugin with new features.
- The AI you already have
- Optional, and only through WordPress Connectors (Settings → Connectors, WordPress 7.0+). No keys of our own and no credits to buy. You see the token estimate before anything is sent and you set a daily cap. With a local model such as Ollama, your text stays on your server.
- Your content is untouchable
- It changes only what you accept. It touches just the affected block, checks that the rest is identical, records the change in History, and lets you undo it.
- Light and respectful
- Nothing on your site front-end, a single autoloaded option, no notices outside the plugin screens, and no review request until you have inserted 20 links and used it for 30 days.
Public roadmap
What is done and what is next
No dates and no calendar promises: the order can change as we learn.
Free version
- DoneOrphan, under-linked and over-linked report with filters, search and CSV export
- DoneComplete list of broken internal links, with change of destination or remove the link, one by one
- DoneBackground analysis with pause and resume, plus WP-CLI
- DoneLanguage per entry (WPML, Polylang), optional detection from the text (tested on Spanish and English) and an interface in 15 languages
- DoneOutbound and inbound suggestions in the editor, with the reason for each
- DoneOne-click insertion that touches only the affected block, with history, undo and redo
- DoneDismiss a suggestion for good, from either side
- DoneOptional AI through WordPress Connectors, with a token estimate and a daily cap you set
- DoneHistory marks the links the AI recommended, with CSV export
- DoneLinking also works in older entries made with the Classic block
- DoneAutomatic rules (phrase → entry), unlimited, applied on publish or update, with preview and undo
- DoneAdd links from the Report, without opening the editor
- DoneA cap on links to the same target from one entry, in Settings
- DonePillar content (Yoast SEO and Rank Math marks included) and ignore, consider or require filters by post type, category and tag
- DoneYour own target phrases per entry, more suggested sentences and adjustable anchor text
- DoneWarnings for an anchor that already links elsewhere or is repeated, and a list of links already there
- DoneExclude entries and categories from the analysis
- DoneStatus tab with the engine time, and advanced suggestion settings
- DoneNotices only inside the plugin, closable for good; a review is asked for only after 20 links and 30 days
Pro
A separate plugin that hooks into the free one. It does not unlock or expand anything the free plugin already does: it adds new features.
- LaterIn bulk: link many entries at once with a preview and a single undo
- LaterApply rules to existing entries and fix broken links in bulk
- LaterSite-wide AI processes and HTTP link checking, external links included
- LaterConnections: page builders, Search Console, your other sites and agents
- LaterAdvanced history and audit
Pro
Pro waitlist and newsletter
Pro does not exist yet. If you want to hear when it is ready, leave your email. We will write to you when it is ready and with Magic Linking news; you can unsubscribe at any time.
FAQ
Frequently asked questions
Does it change my posts or pages?
Only when you press "Link" on a suggestion, and it only adds that link. In the entry you have open, the link is inserted in the editor and you save when you want. For an inbound suggestion it is written into the other entry, and only if the rest stays identical byte for byte; otherwise nothing is written. Everything goes to History and can be undone. The rest it only reads.
How do I undo a link?
Right after adding it, press "Undo" on the card. Later, from Magic Linking → History, where you can also redo it. If the text around it has been edited since, it tells you instead of changing anything.
Does it need AI, an API key or an account?
No. It runs entirely on your server. AI is an optional extra: if you connect a provider in Settings → Connectors (WordPress 7.0+), the "Improve with AI" button appears. It never asks for a key of its own and does not sell credit; your provider charges you.
Does it send my content anywhere?
Not by itself. Only when you press "Improve with AI" does clean text go out, to the provider you set up in Connectors. With a local model such as Ollama it stays on your server. The plugin stores tokens, provider and model of each request, never the text.
Why does my home page show as an orphan?
Because no other entry links to it from its content. Links from menus, widgets and templates are not counted.
What are the requirements?
WordPress 6.9+ and PHP 8.1+. AI needs WordPress 7.0+; on 6.9 the AI options are turned off and everything else works as usual.
Where do I download it?
From the WordPress.org plugin directory, at wordpress.org/plugins/magic-linking/ (current version 1.0.0). Or from your dashboard: Plugins → Add New and search for "Magic Linking".
What happens if I delete the plugin?
Your data is kept by default. Tick the option in its settings and its tables (index, links and history), processes and settings are removed. The links already written in your content stay where they are.