=== BBA Internal Link Machine ===
Contributors: sofrustrate
Tags: internal links, internal linking, seo, anchor text, pillar pages
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Automate internal linking in WordPress with keyword rules and pillar pages. Set a keyword, point it at a page, and links are added as you publish.

== Description ==

BBA Internal Link Machine makes internal linking simple and consistent. Define keyword link rules, choose the pages they point to (your "pillar" pages), and the plugin inserts the links into your content — no manual hunting through posts.

**Free features**

* **Up to 5 keyword link rules** — map a keyword to a target page.
* **Pillar pages** — designate the important pages your rules link to.
* **Manual, per-post linking** — links are applied as you publish or update a post, so you stay in control of what changes.
* **Basic visual link map** — see which rules are linking where.
* **URL exclusions** — keep specific URLs out of automatic linking.
* **Block & Classic editor support** — works with the standard WordPress editors.

The free version runs entirely on your own site and makes **no external/third-party API calls**.

**Upgrade to Pro**

Internal Link Machine Pro removes the free 5-rule limit so you can create unlimited keyword link rules. Learn more at https://bigbad.agency/.

== Installation ==

1. Upload the `internal-link-machine` folder to `/wp-content/plugins/`, or install it from the Plugins screen in WordPress.
2. Activate the plugin through the **Plugins** screen.
3. Open **Internal Link Machine** in the admin menu.
4. Create a pillar page (a link target), then add a keyword rule pointing to it.
5. Publish or update a post — matching keywords are linked automatically.

== Frequently Asked Questions ==

= How many link rules can I create in the free version? =
Up to 5. Internal Link Machine Pro removes the limit.

= Does the free version send my content anywhere? =
No. The free version makes no external API calls — all linking happens on your own site.

= Will it link my existing posts automatically? =
Yes. When you activate a rule it is applied across your existing posts, and links are also kept in sync as you publish or update a post.

= Does it work with Elementor? =
Yes. The plugin includes an Elementor meta box and also supports the Block and Classic editors.

== Screenshots ==

1. The rules screen — map keywords to pillar pages.
2. Pillar pages — your link targets.
3. The visual link map.

== Source Code ==

All JavaScript and CSS shipped in this plugin (in `admin/js/` and `admin/css/`) is the original, uncompiled, human-readable source. No build tools (webpack, Rollup, npm, Composer, minifiers, transpilers) are used to generate the distributed files — what you install is exactly the source, so it can be read, studied, and modified directly.

== Changelog ==

= 1.0.4 =
* Free version is now limited to 5 keyword link rules; Pro unlocks unlimited rules. Existing rules are grandfathered — sites that already have more than 5 rules keep every rule working, editable, and deletable; only the creation of a new rule past the limit is blocked, with a clear upgrade prompt.
* Corrected the Pro upgrade copy and FAQ to accurately describe what each tier does: Pro's benefit is unlimited keyword link rules (the free tier is limited to 5). Elementor support and applying rules across existing posts are included in the free version.

= 1.0.3 =
* Renamed the shared admin-notice class to a plugin-unique prefix to avoid conflicts.
* Hardened settings import to only touch this plugin's own options.
* Documented that all shipped JS/CSS is uncompiled human-readable source.

= 1.0.2 =
* WordPress.org compliance: plugin is now fully functional with no feature gating; text domain matches the slug; assets are enqueued; uninstall/cleanup is scoped to the plugin's own option prefix.

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.0.0 =
Initial release of BBA Internal Link Machine.
