=== EZY.ai - AEO & AI SEO ===
Contributors: EZY.ai
Tags: aeo, ai seo, llms.txt, claude, chatgpt
Requires at least: 5.7
Tested up to: 6.9
Stable tag: 2.0.2
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Auto-generates llms.txt, schema, and AI content. Track AI visits from ChatGPT, Claude, Perplexity, Gemini & Copilot. Free forever.

== Description ==

**EZY.ai - The #1 AEO & AI SEO Plugin for WordPress. Get found on ChatGPT, Claude, Perplexity, Gemini and Copilot.**

The way people search is changing. ChatGPT now has 900M+ weekly users asking for recommendations instead of Googling - and AI search visitors convert at significantly higher rates than traditional search traffic. Without proper Answer Engine Optimization, AI engines either skip your site, cite outdated information, or recommend competitors with cleaner signals.

EZY.ai is the complete Answer Engine Optimization (AEO) platform for WordPress. Auto-generates and maintains every technical file AI engines need - directly on your site, under your control.

**Real attributed results:** Galliard Homes traced an £800,000 property sale to a ChatGPT referral. Transputec hit 774% growth in AI assistant visits in under 90 days. GlocuRX hit 332% growth.

== EZY vs. Other AEO Plugins ==

* **Yoast:** Generates a basic llms.txt URL list. No AEO analytics, no AI bot tracking.
* **Rank Math:** Same - config screen for llms.txt, no AEO-specific analytics.
* **Other AEO plugins:** Mostly generate schema only. None track AI bot visits, prompt visibility, or competitor citations.
* **EZY.ai:** Full AEO stack - llms.txt + llms-full.txt + facts + schema + meta + AI analytics + competitor tracking + Reddit monitoring. Generated content scores 95%+ on AI quality tests - far higher than basic URL-list generators.

== Content Quality That Actually Gets Cited ==

Most AEO plugins generate basic URL lists or thin schema. EZY runs deep LLM analysis on your live, rendered site - producing files that score 95%+ when tested by major AI models.

The difference shows up where it matters: in citations. AI engines reward enriched, factual, well-structured content. They ignore generic URL dumps. We've spent six months tuning our content generation to maximise citation eligibility - and the results show in the numbers.

== Set It and Forget It ==

EZY runs continuously in the background:

* **Weekly:** Tests your domain against 5+ prompts in ChatGPT, Claude, Perplexity, and Gemini
* **Weekly:** Tracks competitor citations and surfaces content gaps
* **Weekly:** Auto-publishes optimised blog posts to your WordPress site
* **Real-time:** Logs every AI bot visit and every AI-referred human user
* **Real-time:** Re-syncs your llms.txt, schema, and meta when content changes

Most AEO plugins are one-time fixes. EZY is an ongoing service.

== What EZY.ai Builds and Maintains on Your Site ==

**1. AI Readiness & Technical Files**

* `llms.txt` and `llms-full.txt` - machine-readable summaries AI engines use to understand your business
* `robots.txt` with explicit AI crawler permissions - without it, some AI engines skip your site by default
* AI `sitemap.xml` - purpose-built for AI crawlers, kept in sync as your site changes
* `facts.jsonld` - feeds direct facts about your business straight to AI models

**2. Structured Data & Schema**

* Bulk Schema.org injection - full creation, optimisation and injection across your site
* Entity optimisation - helps machines understand the context of your content
* Meta description automation - created, optimised and injected at scale

**3. Analytics & Tracking**

* **Prompt tracking** - we test your domain against 5+ prompts across ChatGPT, Claude, Perplexity, and Gemini every week. See exactly where you appear and where you don't.
* **Citation tracking** - see exactly where you appear (or don't) for each prompt.
* **AI agent + AI-referred user tracking** - see every AI bot visit (ChatGPT, Claude, Perplexity, Gemini, Copilot) AND every human visitor who arrived from an AI tool. Two views: are AI engines indexing you, and are AI users actually clicking through?
* **Competitor analysis** - automatically track competitor citations across AI engines weekly. See where rivals appear that you don't.
* **Reddit detector** - track your Reddit presence and mentions.
* **Visibility score** - proprietary EZY.ai score, tracked over time.

**4. Content & Authority**

* **AI-assisted blogs** - auto-generate and publish optimised blog posts to your WordPress site weekly. Set it once, EZY runs the content engine for you.
* **FAQ page generation** - automatically generates dedicated FAQ hubs.
* **Authority scanner** - see which pages have high authority for your topics.
* **Submission tools** - submit directly to Google Search Console and Bing Webmaster Tools.

== Why EZY.ai is Different ==

* **Files live on your site, not ours.** Files generated directly on your WordPress site, under your domain - not served from our cloud. More durable, more in your control.
* **Real automation, not just audits.** EZY.ai's Site-Fixer technology doesn't just find problems - it solves them.
* **Official WordPress.org and Cloudflare partner.** Built on the infrastructure that already powers most of the web. Cloudflare Worker integration available for non-WordPress sites.
* **Built for agencies too.** White-label dashboard at $29 per client for agencies managing multiple sites - bundle AEO into your existing offering.
* **Free forever on the plugin and analytics.** $29/month upgrade unlocks advanced features like competitor tracking and automatic blog posting.

== How It Works ==

1. Install the plugin and activate.
2. Connect your free EZY.ai account through the connection wizard.
3. Generate and upload your llms.txt, robots.txt and schema in two clicks.
4. Watch AI visits, citations and engine breakdown in your dashboard.

== Installation ==

1. Upload the plugin files to the `/wp-content/plugins/ezy-ai-plugin` directory, or install the plugin through the WordPress plugins screen directly.
2. Activate the plugin through the 'Plugins' screen in WordPress.
3. Go to **the "EZY AI" tab** in the admin menu to connect your account.
4. Follow the connection wizard to link your WordPress site to your EZY.ai account.

== Frequently Asked Questions ==

= Do I need coding knowledge? =
No. The plugin handles all technical optimisations automatically once connected.

= What AI engines does this support? =
ChatGPT, Claude, Google Gemini (and SGE), Perplexity, Microsoft Copilot, and other major AI search engines.

= How is this different from Yoast and Rank Math? =
Yoast and Rank Math are SEO plugins built for Google rankings. They've recently added basic llms.txt generation but don't track AI bot visits, prompt visibility, or AI-referred traffic. EZY.ai is purpose-built for AEO from the ground up.

= What's the difference between SEO and AEO? =
SEO = ranking on Google's blue links. AEO = being cited and recommended by ChatGPT, Claude, Perplexity, and Gemini. Different signals, different infrastructure, different metrics. Most sites need both.

= Does this replace Yoast or RankMath? =
No. Traditional SEO targets Google. EZY.ai targets ChatGPT, Claude, Perplexity, Gemini and Copilot. Run both for full coverage.

= Will it slow my site? =
No. The plugin is lightweight and runs asynchronously. All processing happens on EZY.ai's infrastructure.

= Is it really free? =
The plugin and analytics dashboard are free forever. $29/month upgrades unlock advanced features like competitor tracking and automatic blog posting.

= Can I use this for my clients? =
Yes. Agencies can white-label the dashboard at $29 per client and bundle AEO into existing service offerings.

= Can you guarantee citations in ChatGPT? =
No. AI models are opaque systems, and no tool can guarantee rankings. EZY.ai significantly improves your eligibility - the rest depends on your content.

= Who's behind EZY.ai? =
Co-founded by James Mackie (SEO since 2004, previously founded and exited a cloud computing company), with co-founders Khodr Badih (PhD Mathematics, MSc Physics) and Adnan Kabani (Lead Developer). 7,000+ websites analyzed. Featured in Yahoo Finance.

== Screenshots ==

1. Auto-generate AEO files: llms.txt, llms-full.txt, robots.txt, sitemap.xml, and facts.jsonld
2. Inject Schema.org structured data, entity optimization, and meta descriptions across your site
3. Track AI visibility and analytics for your website
4. Reach every major AI engine: ChatGPT, Claude, Perplexity, Gemini, and more

== Changelog ==

= 2.0.2 =
* Fix: AI bot and human visits to /robots.txt, /llms.txt, /llms-full.txt, /sitemap.xml and /facts.json are now tracked in analytics. Previously these were served as static files on disk and bypassed the analytics tracker entirely.
* New: Defense-in-depth serving for the five AEO files. Every request resolves through a layered chain — WordPress option, protected backup at wp-content/ezy-ai-backups/, physical file at the WordPress root, and a hardcoded last-resort fallback — so a bot or AI assistant always receives a valid response, even if one or more layers fail. Every fallthrough is logged so no failure is silent.
* New: /llms.txt and /llms-full.txt now have dedicated WordPress routes — they no longer depend on a file on disk to be reachable.
* New: Health endpoint at /wp-json/ezy-ai/v1/file-tracking-health (requires admin) exposes the current serving source for each file so external monitors can detect degraded states.
* New: On Apache, the plugin silently installs an .htaccess block that routes the five AEO files through PHP so every request is tracked while the physical file on disk remains a cold-DR fallback if WordPress fails.
* Improvement: Tracking hook priority lowered so visits are captured before any handler exits, eliminating a silent gap on robots.txt, facts.json and sitemap.xml.

= 2.0.1 =
* Fix: Analytics chart no longer expands indefinitely when switching to the 24-hour timeline.
* Fix: 24-hour view now labels the X-axis with hourly buckets instead of duplicated date labels.
* Fix: Y-axis numbers are no longer clipped in the AI Discovery Traffic chart.
* Improvement: Chart X-axis shows more day markers across 7-day, 30-day and 90-day ranges.
* Improvement: AI Discovery Traffic header icon restyled to a neutral glass treatment.

= 2.0.0 =
* New: Analytics dashboard works the moment you activate the plugin - no EZY.AI account required. See AI bot vs human visits over time, top pages, agent breakdown, recent crawler and visitor logs, and a visibility score.
* New: Built-in AI agent detection out of the box - identifies ChatGPT, Claude, Gemini, Perplexity, Bing, Grok, DeepSeek, Mistral, Cohere, Apple, Amazon, Bytedance, Meta and more.
* New: Visit history stored locally on your WordPress site with a configurable retention window (default 90 days, adjustable in Settings).
* New: Settings page to toggle analytics, set retention, and opt out of install diagnostics.
* Privacy: URLs and referrers in visit logs strip sensitive query parameters before storage (UTM, gclid, fbclid, msclkid kept for attribution). IPs are stored as a salted hash with the last octet masked.
* Privacy: Optional cloud sync (when connected to EZY.AI) now sends anonymised IPs and stripped URLs only - never raw IPs, full URLs, or full request headers.
* Performance: Visit logging happens after the page is delivered so it never slows down your site.
* Update: Plugin description and visuals refreshed for the v2 launch.

= 1.2.3 =
* Update: Description copy polished (replaced em-dashes with regular hyphens for cleaner rendering)
* No functional plugin changes in this release

= 1.2.2 =
* Update: Plugin description, screenshots, banner, and icon refreshed for the AEO/AI SEO positioning
* Update: Tag list refined for better discoverability (aeo, ai seo, llms.txt, claude, chatgpt)
* No functional plugin changes in this release

= 1.2.1 =
* Fix: Blog posts are now properly cleaned up when disconnecting from WP admin or EZY.AI dashboard
* Fix: Content Sync "Upload" now updates the Integration Completeness score dial in WP admin
* Fix: Content Sync "Upload" now purges page caches (WP Rocket, LiteSpeed, W3TC, etc.) after syncing
* Fix: Blog listing template cache (24hr transient) now invalidated on blog update, delete, and clear
* New: Plugin now notifies EZY.AI backend when disconnected from WP admin (backend reflects accurate status)
* New: Disconnect notification retries automatically if backend was unreachable at disconnect time
* New: Plugin auto-detects when integration is deleted on EZY.AI and cleans up content after confirmation
* New: Plugin uninstall now notifies EZY.AI backend before removing data
* Fix: Uninstall hook now properly includes blog class to prevent fatal error during cleanup

= 1.2.0 =
* Fix: WP-admin schema and meta re-upload now validates payloads before applying so false-success uploads are prevented
* Fix: Schema/meta sync parity improved so WP-admin sync uses the same normalized data shape as dashboard uploads
* Fix: Content Sync status for schema/meta now reflects valid generated payload availability, not timestamp-only signals

= 1.1.9 =
* Fix: Refresh button spin animation now scoped to icon only, preventing layout shift on click
* Fix: Blog content sync now preserves inline `<style>` blocks stripped by wp_kses
* New: Schema.org ld+json script tags now include a `data-ezy-ai="schema"` attribute for easier identification
* Fix: Content Sync panel feature count updated to 9

= 1.1.8 =
* Fix: FAQs sync now works when FAQs are generated but not yet uploaded from the dashboard
* Fix: Facts sync reliability improved with better widget data fallback
* Fix: Content Sync panel now correctly shows "Uploaded" status after syncing and refreshing
* New: Refresh button on Content Sync panel to check latest status without reloading the page
* Fix: Blog posts detection now checks generated blogs in addition to uploaded blogs

= 1.1.7 =
* New: Content Sync panel - upload generated content (robots.txt, llms.txt, schemas, etc.) directly from the WordPress admin
* New: Automatic widget re-analysis after uploading content from the plugin
* New: Plugin now detects generated content on EZY.AI even before uploading
* New: Blog posts sync support
* Fix: Improved content availability detection using widget data fallback

= 1.1.6 =
* Fix: Improved webhook authentication reliability on LiteSpeed, Nginx, and restrictive hosting environments
* Fix: Added fallback authentication header for servers that strip the standard Authorization header

= 1.1.5 =
* Fix: CSS loading compatibility with WordPress 6.9
* Fix: Disconnect redirect reliability
* Fix: Coding standards improvements for plugin submission

= 1.1.4 =
* Fix: CSS loading compatibility with WordPress 6.9
* Fix: Disconnect redirect reliability
* Fix: Coding standards improvements for plugin submission

= 1.1.2 =
* Fix: Minor overall enhancements

= 1.1.1 =
* Minor overall enhancements

= 1.1.0 =
* Minor overall enhancements

= 1.0.0 =
* Initial release
* AI bot tracking
* Prompt tracking
* Visibility score tracking
* Structured data generation
* facts.jsonld generation
* robots.txt and llms.txt optimization
* Sitemap improvements
* Blog metadata fixes
* Competitor tracking
* Reddit presence tracking

== Upgrade Notice ==

= 1.1.9 =
Bug fixes for blog content sync, schema markup identification, and UI refresh animation.

= 1.0.0 =
Initial release of EZY.ai WordPress plugin.

== External Services ==

This plugin connects to the EZY.ai API to provide AI-powered SEO and AEO features.

**EZY.ai Search Intelligence Platform**

* **Service:** EZY.ai API (https://api.ezy.ai/api/wordpress-plugin)
* **Used for:** Analyzing website content, generating SEO recommendations, schema markup, blog posts, tracking AI agent visits, and managing SEO files (robots.txt, llms.txt, sitemap.xml, facts.jsonld).
* **Data Sent:** Website URL, authentication credentials, and (with consent) visit data including user agent and IP address. The plugin sends data to the following API endpoints:
  * `/auth/initiate` - Initial connection setup
  * `/auth/exchange` - Authentication token exchange
  * `/verify` - Connection verification
  * `/health` - Service health checks
  * `/track` - AI agent visit tracking
  * `/schemas` - Schema.org markup management
  * `/blog/{slug}` - Blog content retrieval
  * `/integrations/{id}/*` - Integration-specific data (analytics, stats, file uploads)
  * `/robots-txt`, `/llms-txt`, `/sitemap-xml`, `/facts-json` - SEO file management
  * `/content-status` - Content availability checks
  * `/trigger-refetch` - Widget re-analysis after content sync
* **Provider:** This service is provided by EZY.ai.
* **Legal:** [Terms of Service](https://ezy.ai/terms), [Privacy Policy](https://ezy.ai/privacy)

No third-party services are used without your explicit connection and consent.
