Description
GlobalDev Internal Links adds internal links while WordPress renders eligible singular content. It does not rewrite the content stored in the database and does not require an external service.
The plugin first looks for complete published titles. It can also generate conservative multi-word phrases from those titles, which makes automatic linking more useful when normal articles mention a subject without repeating another article’s complete headline.
When no safe inline phrase exists, the optional related-content fallback can append a compact list selected from shared categories, tags, and meaningful title terms. This is useful for older or placeholder content where no suitable anchor phrase appears inside the paragraphs.
Controlled automatic linking:
- Keeps full-title matching as the strongest signal.
- Generates only multi-word title phrases; it does not create arbitrary single-word anchors.
- Uses taxonomy and title-term relevance to resolve ambiguous phrases.
- Skips a phrase when multiple destinations remain equally ambiguous.
- Keeps one stable canonical destination when duplicate published titles exist.
- Never links an item to itself.
- Uses each inline destination no more than once on the same page.
- Skips headings, existing links, scripts, styles, code, preformatted content, form controls, and buttons.
- Leaves the stored WordPress editor content unchanged.
Features
- Set a maximum number of inline links per item.
- Set a minimum target-title word count.
- Enable or disable smart multi-word title phrases.
- Enable or disable visible inline-link highlighting.
- Enable a related-content fallback when no inline phrase can be linked.
- Choose how many fallback related links to show.
- Choose which public post types are scanned and used as destinations.
- Exclude specific post or page IDs.
- Cache targets and matching phrases for performance.
- Clear the cache automatically when relevant content or settings change.
- Manually clear the cache after imports, migrations, or direct database changes.
- Use a responsive explanatory dashboard under Settings > Internal Links.
Installation
- Upload the plugin folder to
/wp-content/plugins/globaldev-internal-links, or install the ZIP through Plugins > Add New > Upload Plugin. - Activate GlobalDev Internal Links.
- Go to Settings > Internal Links.
- Choose the eligible post types and configure the linking rules.
- Review important frontend pages after enabling automatic linking.
FAQ
-
Does this modify post content in the database?
-
No. Links are added dynamically through the
the_contentfilter. The content stored in the WordPress editor remains unchanged. -
Do I need to open or resave every post?
-
No. The plugin builds its index from published content automatically. Opening or resaving every post is not required.
-
Why did exact-title links disappear after importing duplicate posts?
-
Version 1.1.0 keeps one stable canonical destination for each duplicate published title. Older versions removed all destinations sharing the duplicate title, which could eliminate otherwise valid links.
-
What are smart title phrases?
-
They are conservative multi-word phrases generated from a published title. For example, a longer title can provide a shorter natural phrase already present in another article. Single common words are not generated as anchors.
-
How does the plugin choose between destinations sharing a phrase?
-
It compares shared categories, tags, post type, and meaningful title terms. The phrase is skipped when the best destination is not clearly better than the alternatives.
-
What happens when no inline phrase exists?
-
When the related-content fallback is enabled, the plugin can append a list of related published items based on shared categories, tags, and title terms. It does not insert invented words into the article body.
-
Not unless it contains a safe title phrase. Placeholder text with no meaningful phrase may receive the related-content fallback when real taxonomy or title relationships exist.
-
Which content is scanned?
-
Only the queried singular frontend item from the public post types selected under Settings > Internal Links. Archive loops, excerpts, administration screens, related-item widgets, and excluded items are not scanned.
-
Can the same inline destination be linked repeatedly?
-
No. Each inline destination can be used only once on the same rendered page.
-
Does it require a remote service or account?
-
No. Indexing, matching, and related-content scoring take place locally on the WordPress site.
-
What does clearing the cached index do?
-
It removes the cached destinations and matching phrases. WordPress rebuilds them automatically on the next eligible frontend page view. Manual clearing is optional but useful after a bulk import, migration, duplicate cleanup, or direct database change.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“GlobalDev Internal Links” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “GlobalDev Internal Links” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.1.1
- Replaced direct query-string notice inspection with scoped WordPress Settings API notices and a user-specific transient for cache-clear confirmation.
- Removed the exclusionary
post__not_inindex query and now applies configured exclusions while processing returned IDs. - Resolved the nonce-verification and exclusionary-query warnings reported by Plugin Check without changing frontend linking behavior.
1.1.0
- Fixed duplicate-title handling by keeping one canonical destination instead of removing every duplicate from the index.
- Added conservative multi-word title-phrase matching for normal article wording.
- Added relevance scoring based on categories, tags, post type, and meaningful title terms.
- Added ambiguity protection so tied generated phrases are skipped rather than linked arbitrarily.
- Added an optional related-content fallback when no inline phrase can be linked.
- Added a configurable related-link count.
- Updated cache structure and validation for target, phrase, and taxonomy data.
- Updated the settings dashboard and documentation to explain exact, phrase, and fallback behavior.
1.0.4
- Fixed compatibility with themes and page builders that call
the_contentwhile traditional main-loop flags are false. - Moved automatic linking to a late content-filter priority.
- Improved title matching across repeated spaces, line breaks, and non-breaking spaces.
- Added optional frontend highlighting for generated links.
1.0.3
- Corrected dashboard branding and plugin-specific wording.
1.0.2
- Kept WordPress and third-party admin notices outside the custom dashboard.
- Retained and clarified the manual cache control.
- Added cache and linking status summaries.
1.0.1
- Added Unicode-aware matching, stricter option validation, post-type enforcement, cache API fixes, and repository-oriented hardening.
1.0.0
- Initial release.
