=== SEO Umpire: SEO, AEO & GEO, Schema, Sitemaps, llms.txt & Redirects ===
Contributors: seoumpire
Tags: seo, schema, sitemap, redirection, llms.txt, ai search, open graph, breadcrumbs
Requires at least: 5.8
Tested up to: 6.7
Requires PHP: 7.4
Stable tag: 1.1.0
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.txt

A fast, modern all-in-one WordPress SEO plugin with AEO and GEO scores, llms.txt, schema, sitemaps, redirects and a secure Umpire Agent connection that applies logged, reversible fixes.

== Description ==

SEO Umpire gives your WordPress site everything it needs to rank in search engines, get quoted by answer engines and be cited by AI assistants, without the bloat. A clean alternative to Yoast and RankMath.

**Umpire Agent connection (new in 1.1.0)**

Connect the site to your SEO Umpire project with a Site Key (SEO Umpire, then Connect). The Umpire Agent on the platform can then read your pages and apply the fixes you approve: SEO titles and descriptions, canonical and index settings, JSON-LD schema, FAQ blocks, image alt text, intro and closing paragraphs and related links.

* Every request from the platform is signed (HMAC-SHA256 with a 5-minute timestamp window) with your Site Key.
* Every change is written to an activity log with the value it replaced.
* Revert any change with one click from SEO Umpire, then Activity (or from the platform).
* Content additions (intro, closing, FAQ, related links) render on top of your content through filters; your post content is never edited.

**Umpire scores in the editor**

Three rings next to the SEO analysis: SEO (search engines), AEO (answer engines: question headings, FAQ, quotable opening paragraph, lists and tables) and GEO (AI search: entity schema, authorship, dates, llms.txt, concrete facts). Scored by the platform when connected, with a local estimate otherwise, and a "Fix with Umpire Agent" link.

**AI search (AEO / GEO)**

* **llms.txt** served at /llms.txt: site name, tagline, your description and up to 200 published pages with excerpts (cached one hour).
* **AI crawler directives** in robots.txt: explicit Allow (default) or Disallow for GPTBot, ClaudeBot, PerplexityBot and Google-Extended.
* **FAQPage schema** and an accessible FAQ block for pages with FAQ items.

**Free features**

* Real-time on-page **content analysis** with a focus keyword and 0-100 score
* **SEO title & meta description** editor with live Google (SERP) preview and length counters
* **Open Graph & Twitter** cards
* **JSON-LD schema**: Organization, WebSite, Article, Breadcrumb, FAQPage, plus custom schema per page
* **XML sitemap**
* **Redirections** (301/302/307) + **404 monitor**
* **Breadcrumbs** (shortcode + template tag)
* **Automatic image alt text**
* **Google Search Console** verification
* No-index controls, canonical URLs
* REST API for the SEO Umpire platform (signed requests) and for Application Password users

**Pro features** (via seoumpire.com)

* Advanced schema types (Product, LocalBusiness, Recipe, Event and more)
* AI title/meta/content suggestions (your own AI key)
* Search Console analytics inside WordPress
* Multi-keyword tracking, redirect import/export, and priority support

== Installation ==

1. Upload the `seo-umpire` folder to `/wp-content/plugins/`, or install the ZIP via Plugins, Add New, Upload.
2. Activate the plugin.
3. Open **SEO Umpire, then Settings** to configure titles, social defaults, llms.txt and AI crawler rules.
4. Open **SEO Umpire, then Connect**, paste the Site Key from your SEO Umpire project and click "Test connection".
5. Edit any post or page and use the **SEO Umpire** box to set a focus keyword, read the Umpire scores and optimize.

== Frequently Asked Questions ==

= Does it work with the block editor and classic editor? =
Yes. The live analysis reads content from both.

= Will it conflict with Yoast or RankMath? =
Run only one SEO plugin at a time to avoid duplicate meta tags.

= What can the platform change on my site? =
Only the SEO fields listed on the Connect screen, on posts and pages, and only with a request signed by your Site Key. Nothing is changed in your post content itself. Every change is logged and reversible.

= How do I revoke access? =
Open SEO Umpire, then Connect, and click "Disconnect this site". The key is removed immediately and signed requests stop working.

= Where is llms.txt served from? =
At https://your-site.com/llms.txt (a rewrite rule, no file is written). Turn it off in Settings.

== Changelog ==

= 1.1.0 =
* New: Connect screen (Platform URL, Site Key, Test connection) for the SEO Umpire platform.
* New: signed REST API for the Umpire Agent: /connect/ping, /pages, /page/{id}, /page/{id}/apply, /revert/{log_id}, /activity (X-SEOU-Key + X-SEOU-Timestamp + X-SEOU-Signature HMAC-SHA256).
* New: activity log table and Activity admin page with one-click revert.
* New: agent-applied fields: schema_json, FAQ (FAQPage JSON-LD + accessible block), image alt text, content prepend/append and related links, all rendered through filters.
* New: Umpire scores panel in the editor (SEO / AEO / GEO) with platform scoring when connected and a local fallback.
* New: /llms.txt with an editable description, cached one hour.
* New: AI crawler Allow/Disallow directives in robots.txt (GPTBot, ClaudeBot, PerplexityBot, Google-Extended).
* Improved: the legacy /meta endpoint now logs its changes too.
* Changed: default title separator is now "|".

= 1.0.0 =
* Initial release: on-page analysis, meta/schema, sitemap, redirects, 404 monitor, breadcrumbs, image SEO, Search Console verification, REST API.
