ECORP Internal Links
ECORP Internal Links builds your internal linking silo for you. You define a list of keyword to URL rules once, and every matching keyword is turned into a link as your content is rendered. Your posts are never modified in the database: the plugin works on output only, so removing it removes every generated link.
What it does
- Links each keyword on its first occurrence only, so a page never repeats the same link.
- Enforces a global limit of automatically inserted links per post.
- Never lets a post link to itself: a rule pointing at the page being displayed is skipped, and does not consume the per-post limit.
- Optionally opens links in a new tab (
target="_blank"plusrel="noopener"). - Optionally marks inserted links as
rel="nofollow". - Runs only on the post types you enable.
Where it will never insert a link
Correctness here matters more than coverage, so the matcher skips every context where an automatic link would be invalid or unwanted:
- inside an existing
<a>element, so links are never nested; - inside
<h1>to<h6>headings; - inside
<script>,<style>,<code>,<pre>,<kbd>and<samp>; - inside form controls such as
<textarea>,<button>,<select>,<option>and<label>; - inside
<iframe>,<svg>,<noscript>and<template>; - inside HTML comments;
- inside any HTML attribute, including
alt,title,srcandhref.
Built for real content
- Matching is accent aware and case insensitive, and the original casing of the matched text is preserved in the anchor.
- Word boundaries are Unicode aware: a rule for
SEOnever matches inside SEOquencer, and a rule forréférencementnever matchesréférencements. - Longer expressions win over shorter ones, so
internal linking strategyis preferred overinternal linkingwhen both are defined. - Multi word keywords still match across a line break or a non breaking space.
Performance
Rendered output is stored in the WordPress object cache, keyed by a version
number that is bumped whenever you save your settings. On a site with a
persistent object cache the transformation runs once per post revision; without
one, repeated the_content calls within the same request are still served from
memory.
Developer filters
ecorp_il_should_process: decide per post whether automatic linking runs.ecorp_il_filter_priority: change thethe_contenthook priority (default 20).ecorp_il_protected_tags: adjust the list of protected elements.ecorp_il_link_attributes: change the attributes of every inserted link.ecorp_il_link_rel: change therelvalues of every inserted link.ecorp_il_cache_ttl: change the cache lifetime.ecorp_il_selectable_post_types: change the post types offered in the settings screen.
This plugin is built and maintained by ECORP.
