=== OrdoLink – Smart Internal Link Suggestions & Health Audit ===
Contributors: trollmoj
Tags: internal links, seo, link building, content strategy, gutenberg
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.1
Stable tag: 0.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Author: OrdoLink
Plugin Name: OrdoLink – Smart Internal Link Suggestions & Health Audit

Lightweight, high-performance internal link builder powered by off-site semantic NLP.

== Description ==

OrdoLink is the fast, performance-first internal link builder built for WordPress. It analyzes your published posts and surfaces high-value internal linking opportunities directly inside the Gutenberg block editor-without slowing down your database.

Unlike traditional internal link plugins that run heavy database queries on your server and cause CPU spikes, OrdoLink handles language processing off-site via a dedicated high-performance engine. You get instant, semantic link suggestions with zero site bloat.

**Key features:**

* **Zero Database Bloat** - Heavy NLP processing and indexing happen off-site. Your WordPress database stays fast, clean, and responsive.
* **Smart Semantic Suggestions** - Discovers related posts based on true context and meaning, not just exact keyword matches or tags.
* **Native Gutenberg Sidebar** - Link suggestions appear naturally in the block editor as you write, allowing one-click insertions with no context switching.
* **Bulk Review Table** - Quickly review, insert, or dismiss link suggestions across your entire post library from a unified admin panel.
* **Most Referenced Posts** - See at a glance which posts across your site attract the most internal links, so you know what's already resonating.
* **Link Health Audit** - Scans your published posts to catch broken or redirecting outbound links before they hurt your SEO.
* **Zero Manual Setup** - Registers automatically upon activation. No API keys to copy-paste or complex settings to configure.

### Architecture & Performance

OrdoLink processes language analysis and vector matching on an off-site server rather than executing heavy operations inside your WordPress MySQL database. 

By offloading natural language processing to dedicated external infrastructure, OrdoLink delivers contextual link suggestions while keeping your WordPress admin light and responsive, regardless of your site's content library size.

A free plan covers up to 100 posts with no credit card required. Starter, Publisher, and Agency plans are available for larger sites and networks. Your current usage is shown under **OrdoLink → Settings**, where you can upgrade at any time.

== Installation ==

= From the WordPress plugin directory =

1. Go to **Plugins → Add New** in your WordPress admin.
2. Search for **OrdoLink** and click **Install Now**.
3. Click **Activate**.

That's it. The plugin registers your site automatically on activation-there is nothing to copy or configure manually.

= From a .zip file =

1. Download `ordolink.zip` from [ordolink.net](https://ordolink.net).
2. Go to **Plugins → Add New → Upload Plugin**, upload the zip, and click **Install Now**.
3. Click **Activate Plugin**.

= Verifying the connection =

Go to **OrdoLink → Settings**. The Diagnostics section shows green ticks next to *Backend Reachable* and *API Key Configured* when everything is working.

= First run =

1. Go to **OrdoLink → Analyze Posts** and click **Analyze My Posts**.
2. Once analysis finishes, you are taken to **OrdoLink → Suggestions**.
3. Review the ranked suggestions and click **Insert Link** to add a link to the source post automatically.

For full documentation visit [ordolink.net/docs](https://ordolink.net/docs).

== Frequently Asked Questions ==

= Will OrdoLink slow down my WordPress admin or front-end speed? =

No. All text parsing, indexing, and semantic AI calculations happen off-site on our servers. Your WordPress database is only touched when you explicitly approve and insert a link.

= Do I need to create an account? =

No. The plugin registers your site automatically when activated. An API key is provisioned seamlessly in the background-nothing to sign up for or copy-paste manually.

= Where is my content sent? =

Post titles, URLs, and plain text extracted from your posts are sent securely to the OrdoLink service at ordolink.net for analysis. Raw HTML, database credentials, and original post structures stay strictly in your WordPress database. See our Privacy Policy at ordolink.net/privacy for full details.

= The API key field is empty after activation - what do I do? =

The provisioning request runs in the background on activation. If it timed out, deactivate the plugin and reactivate it. If the key is still empty, email info@ordolink.net and include the debug report from **OrdoLink → Settings → Diagnostics**.

= Can I use OrdoLink on multiple sites? =

Yes, on any number of sites. Each site you activate OrdoLink on gets its own free account and its own independent 100-post allowance — there's no cap on how many sites can each use the Free plan this way. Starter and higher plans additionally let you manage multiple sites under a single paid account with one shared quota, which is useful for agencies and site networks that would rather have one subscription and one usage pool than several separate free accounts.

= I cloned my site to a staging environment and see a warning. =

OrdoLink detects URL changes and warns you to prevent staging data from mixing with production. On your staging site, deactivate and reactivate the plugin to provision a fresh key. Your production site is not affected.

= How do I remove OrdoLink completely? =

Deactivate the plugin, then click **Delete** in the Plugins list. OrdoLink removes all its settings and stored data from your WordPress database on uninstall.

== Screenshots ==

1. Gutenberg sidebar showing ranked internal link suggestions while editing a post.
2. The Suggestions table - review, insert, or dismiss suggestions across your entire site.
3. Link health page - keep track of broken links and over-linked pages, which may harm SEO stats.
4. Dashboard - Overview of all things related to your links, and quick access to easy wins.

== External Services ==

OrdoLink sends data to the OrdoLink service (ordolink.net) in the following situations:

* **On activation:** your site's URL is sent to provision an API key and site record.
* **When analysing posts:** each post's ID, title, URL, and plain-text content are sent for semantic indexing.
* **When checking for broken links:** URLs found in your published posts are sent for link-health analysis.
* **When upgrading your plan:** clicking upgrade redirects your browser to Polar.sh to complete payment. Polar processes your billing details directly - OrdoLink never sees your payment information.

No raw HTML, user accounts, or personal visitor data are transmitted. Post data leaves your server only when you explicitly trigger an analysis.

* Service home: https://ordolink.net
* Privacy policy: https://ordolink.net/privacy
* Terms of service: https://ordolink.net/terms
* Polar.sh (payment processor): https://polar.sh
* Polar.sh privacy policy: https://polar.sh/legal/privacy

== Development ==

The Gutenberg sidebar is built from source using `@wordpress/scripts` (webpack). If you modify `src/index.js` you need to rebuild before the changes take effect.

Requirements: Node.js 20+ and npm.

From the `wp-plugin/ordolink/` directory:

* **Install dependencies:** `npm install`
* **Production build** (output → `build/index.js`): `npm run build`
* **Watch mode** (rebuilds on file change): `npm start`
* **JavaScript unit tests:** `npm test`

The unminified source (`src/`) is included in every distributed zip. All PHP files are plain, human-readable PHP with no build step required.

== Upgrade Notice ==

= 0.1.0 =
Initial release.

== Changelog ==

= 0.1.0 =
* Initial public release.