Title: GlobalDev Internal Links
Author: Globaldev
Published: <strong>July 28, 2026</strong>
Last modified: July 28, 2026

---

Search plugins

![](https://ps.w.org/globaldev-internal-links/assets/banner-772x250.png?rev=3625884)

![](https://ps.w.org/globaldev-internal-links/assets/icon-256x256.png?rev=3625884)

# GlobalDev Internal Links

 By [Globaldev](https://profiles.wordpress.org/globaldevitus/)

[Download](https://downloads.wordpress.org/plugin/globaldev-internal-links.1.1.1.zip)

 * [Details](https://wordpress.org/plugins/globaldev-internal-links/#description)
 * [Reviews](https://wordpress.org/plugins/globaldev-internal-links/#reviews)
 *  [Installation](https://wordpress.org/plugins/globaldev-internal-links/#installation)
 * [Development](https://wordpress.org/plugins/globaldev-internal-links/#developers)

 [Support](https://wordpress.org/support/plugin/globaldev-internal-links/)

## 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

 1. Upload the plugin folder to `/wp-content/plugins/globaldev-internal-links`, or 
    install the ZIP through Plugins > Add New > Upload Plugin.
 2. Activate GlobalDev Internal Links.
 3. Go to Settings > Internal Links.
 4. Choose the eligible post types and configure the linking rules.
 5. 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_content` filter. 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.

### Will unrelated placeholder text receive inline links?

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.

Contributors

 *   [ Globaldev ](https://profiles.wordpress.org/globaldevitus/)

[Translate “GlobalDev Internal Links” into your language.](https://translate.wordpress.org/projects/wp-plugins/globaldev-internal-links)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/globaldev-internal-links/),
check out the [SVN repository](https://plugins.svn.wordpress.org/globaldev-internal-links/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/globaldev-internal-links/)
by [RSS](https://plugins.trac.wordpress.org/log/globaldev-internal-links/?limit=100&mode=stop_on_copy&format=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_in` index 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_content` while
   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.

## Meta

 *  Version **1.1.1**
 *  Last updated **23 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [automatic linking](https://wordpress.org/plugins/tags/automatic-linking/)[internal links](https://wordpress.org/plugins/tags/internal-links/)
   [related posts](https://wordpress.org/plugins/tags/related-posts/)[seo](https://wordpress.org/plugins/tags/seo/)
   [site structure](https://wordpress.org/plugins/tags/site-structure/)
 *  [Advanced View](https://wordpress.org/plugins/globaldev-internal-links/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/globaldev-internal-links/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/globaldev-internal-links/reviews/)

## Contributors

 *   [ Globaldev ](https://profiles.wordpress.org/globaldevitus/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/globaldev-internal-links/)