=== AEO Ultimate – Schema Markup, Structured Data & llms.txt for AI Search ===
Contributors: jadeslair
Tags: aeo, schema, seo, structured data, llms
Requires at least: 6.2
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 2.9.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Schema markup & structured data for SEO and AI search — JSON-LD for FAQ, Product, Local Business & Article, plus llms.txt and E-E-A-T.

== Description ==

**AEO Ultimate** prepares your WordPress site for the AI-first web. As search shifts from ten blue links to AI-generated answers, the signals that get your content cited — structured schema, author authority, publisher identity, and machine-readable content — matter more than ever.

Fully modular: enable only what your site needs. Every feature toggles independently.

= 🔍 Schema Markup & Structured Data =

The core engine. It detects the schema already on each page, classifies page intent (homepage, service page, blog post, location page, or product), and outputs clean JSON-LD **only where it's missing** — never duplicating what your SEO plugin already provides. Structured data includes Organization, Article, NewsArticle, Person (author), FAQPage, Service, Product (with Brand and Offer), LocalBusiness, ContactPoint, Event, Review, AggregateRating, and BreadcrumbList. The Command Center gives you a live readiness score, duplicate-schema conflict alerts, and real-time AI-crawler activity.

= 🤖 AI Ready: llms.txt & Crawler Control =

`llms.txt` and `llms-full.txt` endpoints, Markdown content negotiation for AI agents, Content-Signal headers, an Agent Search REST API, MCP/WebMCP discovery, OAuth/OIDC discovery, an RFC 9727 API catalog, and per-bot rate limiting and blocking for 20+ AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, and more). The plugin can create the `/.well-known/` agent-discovery files for you so your site reads as "agent ready" — verify it with a checker like isitagentready.com. Automatic setup needs server write access; where that's unavailable, you get copy-and-paste instructions to add the files by hand. You decide exactly which AI systems may read, cite, or train on your content.

= 🏢 Company & Publisher Identity =

Organization JSON-LD (legal name, logo, contact points, sameAs), an explicit `article:publisher` / `article:author` Open Graph split, a sitewide `fb:app_id` for Meta Domain Insights, and one-click import from Yoast or Rank Math.

= ✍️ Author & Company E-E-A-T =

An E-E-A-T scorecard for both your author and company (publisher) entities. Author profiles output as Person schema with EducationalOccupationalCredential and sameAs — job titles, credentials, expertise areas, years of experience, and social links — alongside your organization details. The plugin suggests the missing trust items and applies them semi-automatically. Includes optional author boxes and hover cards, plus a completeness score across every author.

= 🖼️ Image SEO & Open Graph =

Generate image alt text and Open Graph titles, descriptions, and share images — **automatically from your content or with AI**. A unified Open Graph and Twitter/X Card manager scans every page for coverage and lets you edit `og:title`, `og:description`, `og:image`, `og:type`, `twitter:card`, and `twitter:creator` from one screen.

= 🛒 WooCommerce & Shopping =

Automatic Product schema built from your product attributes (Brand, Offer, price, availability, GTIN/MPN/SKU), optional AI product-description enrichment, and live sync against your Google Merchant Center and Bing Merchant Center feeds — tracking price and availability mismatches, identifier gaps, and item-level rejection codes.

= 📍 Local SEO =

Build LocalBusiness schema with a predictive business-type picker, opening hours, service area, and geo coordinates. Audit NAP (name, address, phone) consistency against Google Knowledge Graph, Google Business Profile, and Bing Maps — and get a list of the directories and citation sites you should be listed on, tailored to your industry.

= 🗺️ Sitemaps, Indexing & News =

A cached XML sitemap at `/aeo-sitemap.xml` with per-post-type controls and collision protection against Yoast, Rank Math, and AIOSEO. IndexNow instantly pings Bing, Yandex, and other engines on publish. A Google News sitemap with NewsArticle schema kicks in when your content qualifies as news. And a **Not Indexed** report uses the Google Search Console URL Inspection API to find pages that are published but missing from Google's index, then flags likely causes — thin content, keyword stuffing, missing heading hierarchy — so you know what to update.

= 🛠️ More Tools =

Customer Reviews with context-aware AggregateRating/Review schema, display shortcodes, and industry-based suggestions for where to collect more reviews. A "Last Updated" freshness badge. PR Bridge AI, which detects press-release intent in your posts and offers ways to distribute them. And an AI Prompt Rate Limiter to protect your API budget.

= External Services & TWT Agency =

Optional AI features connect to Anthropic Claude, OpenAI, Google Gemini, and Perplexity using your own API keys. Other optional integrations cover Google and Microsoft APIs, IndexNow, and PR wire services. Nothing is sent anywhere until you configure a feature and explicitly trigger it — see the FAQ for the full list with terms and privacy links, and the bundled EXTERNAL-SERVICES.md for the complete outbound-link inventory. Optional TWT Agency connectivity is available; the plugin is fully functional standalone.

== Installation ==

1. Upload the entire `twt-aeo-ultimate` folder to your `/wp-content/plugins/` directory.
2. Activate the plugin via the **Plugins** screen in your WordPress dashboard.
3. Go to **TWT AEO → Modules** to review and enable the features you want.
4. Set up your publisher identity under **TWT AEO → E-E-A-T** (the **Company** tab).
5. Complete each author's E-E-A-T data on their profile under **Users → All Users**.
6. Configure bot visibility and access controls at **TWT AEO → AI Ready**.

**Important:** After activating, go to **Settings → Permalinks** and click **Save Changes** once. This flushes rewrite rules so the virtual routes for `/llms.txt`, `/llms-full.txt`, and `/aeo-sitemap.xml` resolve correctly.

== Frequently Asked Questions ==

= Which schema types (structured data) does this plugin generate? =
JSON-LD for Organization, Article, NewsArticle, Person/author (with EducationalOccupationalCredential and sameAs), FAQPage, Service, Product (with Brand and Offer), LocalBusiness (with opening hours and geo coordinates), ContactPoint, Event, Review and AggregateRating, and BreadcrumbList. Each type is added only when it suits the page and isn't already present.

= Does it support llms.txt and AI search engines like ChatGPT and Perplexity? =
Yes. It serves `/llms.txt` and `/llms-full.txt`, offers Markdown content negotiation for AI agents, sends Content-Signal headers, and gives you per-bot rate limiting and blocking for 20+ AI crawlers — the signals that help ChatGPT, Claude, Perplexity, and Google AI Overviews discover and cite your content.

= Does this plugin conflict with Yoast SEO or Rank Math? =
No. AEO Ultimate detects active SEO suites and steps back from any metadata they already output (Organization, Article, Open Graph). It acts as an enhancement layer, adding the signals those suites typically miss — `article:publisher`, rate-limit controls for 20+ AI agents, author credential schema, and `llms.txt` processing.

= What is llms.txt and why do I need it? =
`llms.txt` is an emerging standard (see llmstxt.org) that gives AI systems a clean, machine-readable summary of what your site contains and how to access it. Think of it as a `robots.txt` written for language models. The companion endpoint `/llms-full.txt` serves your content as clean Markdown so crawlers can ingest it without parsing token-heavy HTML.

= Why does the publisher/author Open Graph split matter? =
Standard social tags often blur authorship by failing to separate your brand from the individual writer. AEO Ultimate keeps them distinct: `article:publisher` establishes the company identity, while `article:author` links to the individual author. AI models use this split to assess authority and attribute content accurately.

= What does the Meta Business Sync do? =
It adds the sitewide `fb:app_id` tag, which links your domain to your Meta Developer App. That unlocks the Meta Domain Insights dashboard and helps Meta attribute your content correctly across its ad and AI systems. Most SEO plugins don't output this tag.

= Can I block specific AI bots or engines safely? =
Yes. Under **TWT AEO → AI Ready → Security & Rate Limiting**, each of 20+ known AI crawlers has a Block toggle and a custom rate-limit override. Blocking a bot writes a `Disallow` entry to your virtual `robots.txt` and returns a 403 on its requests — both advisory and hard enforcement.

= Will the rate limiter affect my human visitors? =
No. The filter matches requests by User-Agent against the known AI crawler list only. Regular browsers, ordinary visitors, and traditional search engines (like Googlebot) pass through unaffected.

= Will this add overhead or slow down my site? =
No. Frontend metadata, schema, and virtual assets are served from the WordPress Transients API with a 1-hour cache. Heavier work runs only when a post is saved or settings change. The crawler rate limiter adds a single transient read per page load, and only for known AI agents.

= What are the system requirements? =
PHP 7.4 or higher (PHP 8.0+ recommended) and WordPress 6.2+. For full functionality on WordPress 7.0 and its modern data views, MySQL 8.0 and a PHP memory limit of at least 256MB are recommended.

= What external services does this plugin connect to? =
Only the ones you configure, and only when you trigger them:

* **Anthropic Claude** — AI writing and enrichment. [Terms](https://www.anthropic.com/legal/aup) | [Privacy](https://www.anthropic.com/legal/privacy)
* **OpenAI** — descriptions, OG images, image analysis. [Terms](https://openai.com/policies/terms-of-use) | [Privacy](https://openai.com/policies/privacy-policy)
* **Google Gemini** — descriptions, vision, grounded lookups. [Terms](https://policies.google.com/terms) | [Privacy](https://policies.google.com/privacy)
* **Perplexity** — brand authority and gap research. [Terms](https://www.perplexity.ai/hub/legal/terms-of-service) | [Privacy](https://www.perplexity.ai/hub/legal/privacy-policy)
* **Google APIs** — Search Console, Analytics, Knowledge Graph, Business Profile, Merchant Center. [Terms](https://policies.google.com/terms) | [Privacy](https://policies.google.com/privacy)
* **Microsoft / Bing APIs** — Webmaster Tools, Merchant Center, Maps Local Search. [Terms](https://www.microsoft.com/en-us/servicesagreement) | [Privacy](https://www.microsoft.com/en-us/privacy/privacystatement)
* **IndexNow** — URL submission on publish. [Terms & Privacy](https://www.indexnow.org/terms)
* **EIN Presswire** — press-release distribution. [Terms](https://www.einpresswire.com/legal/terms) | [Privacy](https://www.einpresswire.com/legal/privacy)
* **EasyPRwire** — press-release distribution. [Terms](https://easyprwire.com/terms-and-condition) | [Privacy](https://easyprwire.com/privacy-policy)
* **TWT Agency** (optional) and opt-in token telemetry. [Terms](https://tampawebtech.com/plugin-terms/) | [Privacy](https://tampawebtech.com/plugin-privacy-policies/)

Each request sends only the data needed for that action, using your own API key. No site-visitor personal data is ever transmitted. The plugin also displays outbound links to industry directories and documentation sites — no data is sent to those; the complete inventory with each site's terms and privacy policy ships in EXTERNAL-SERVICES.md inside the plugin folder.

== Screenshots ==

1. **Command Center** — Real-time AI Crawler Watch monitor and bot traffic breakdown.
2. **AI Ready Configuration** — Per-bot rate limits and block toggles for 20+ AI agents.
3. **Company Profile Manager** — Brand identity fields and Meta Business integration.
4. **Author Profile Extensions** — Custom fields on the WordPress user profile for certifications and credentials.
5. **Schema Detector** — Auto-detects FAQ, Service, and Contact pages, fills in missing JSON-LD, and flags duplicate-schema conflicts.
6. **Image SEO** — Finds images missing alt text across your posts and pages and generates descriptive, AEO-friendly alt attributes.
7. **Modules Screen** — Enable or disable each feature independently.
8. **WooCommerce AEO** — Product schema with one-click sync to Google and Bing Merchant Center, integrity scoring, and rejection logs.
9. **Not Indexed** — Uses Google Search Console to surface published pages missing from Google's index and flags likely causes: thin content, high keyword density, and missing heading hierarchy.

== Changelog ==

= 2.9.0 =
Initial public release on WordPress.org.

* Schema Advisor and Detector — Organization, Article, NewsArticle, Person, FAQPage, Service, Product, LocalBusiness, ContactPoint, Event, Review, AggregateRating, and BreadcrumbList JSON-LD, added only where missing.
* AI Ready — `llms.txt` and `llms-full.txt`, Markdown content negotiation, Content-Signal headers, and per-bot rate limiting and blocking for 20+ AI crawlers.
* Author E-E-A-T profiles and Company/publisher identity (`article:publisher`, `fb:app_id`).
* Open Graph and Twitter/X Card manager with optional AI-generated share images.
* WooCommerce Product schema with Google and Bing Merchant Center sync.
* Local SEO with LocalBusiness schema and NAP consistency auditing.
* XML and Google News sitemaps, IndexNow, Image SEO alt text, Reviews, and a Not Indexed scanner.

== Upgrade Notice ==

= 2.9.0 =
Initial public release on WordPress.org.
