=== Blaze AI Discovery for WooCommerce ===
Contributors: blazecommerce
Tags: ai seo, chatgpt, ai crawlers, ai visibility, woocommerce
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.1.3
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

AI visibility for WooCommerce: check AI crawler access, score products for ChatGPT, build a Shopping feed, see when ChatGPT and AI Overviews cite you.

== Description ==

AI shopping is growing. ChatGPT, Google AI Overviews and AI Mode, Microsoft Copilot and Perplexity now recommend and sell products inside conversations. Stores whose pages AI crawlers can read, and whose product data is complete, tend to get found. Stores that block the crawlers or leave product data thin tend not to.

People call this work "ChatGPT SEO", AI visibility, or AEO/GEO (answer engine or generative engine optimization). Whatever the label, **Blaze AI Discovery for WooCommerce** does the practical parts inside WordPress: it checks that AI crawlers can reach your store, scores your product data, generates the ChatGPT Shopping feed and reports when ChatGPT or Google AI mention you — without giving up the control and ownership that made you choose WooCommerce in the first place. No plugin can promise that an assistant will recommend your store; this one shows you what the assistants can actually see and what to fix.

= What it does =

**AI crawler access**
Finds out whether GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, PerplexityBot, Google-Extended and bingbot can reach your store. Each crawler gets a verdict from your robots.txt, your server's own bot log and, with cloud checks on, a fetch from outside your network — because a CDN or firewall can turn a crawler away while everything looks fine from inside. When a shopping assistant is blocked the dashboard says so and links to the fix for the layer doing the blocking (Cloudflare, Wordfence, Sucuri, Kinsta or robots.txt).

**AI visibility — ChatGPT citations and Google AI Overviews**
A monthly report of how often ChatGPT and Google AI answers mentioned your store over the trailing 30 days, which of your pages they cited, and which other domains were named instead. Runs in the background with cloud checks on; it is the closest thing to a rank report that exists for AI answers, and it tells you whether the rest of the work is showing up.

**ChatGPT Shopping feed**
Generates a product feed in OpenAI's current CSV specification, validates every product against the required fields and walks you through the submission steps at chatgpt.com/merchants.

**AI readiness score**
Each product gets a 0–100 score on 10 criteria that assistants use when deciding whether to surface it: title quality, description depth, images, brand, category, attributes, price, identifiers (SKU/GTIN), reviews, and shipping/returns policies. Recommendations tell you what to fix on each product.

**AI traffic attribution**
Most AI-referred visits hide in your analytics as "Direct" traffic. The tracker detects visits from ChatGPT, Perplexity, Google AI Mode, Copilot, Claude and Gemini using referrer headers, UTM parameters and URL text fragments, then follows them through to WooCommerce orders and revenue.

**Schema**
Adds the Product properties assistants look for to your existing Schema.org markup — brand, multiple images, GTIN, dimensions, colour, material, itemCondition — working alongside Yoast SEO or Rank Math rather than duplicating them.

**llms.txt**
Serves an llms.txt file at your site root listing your store, categories and key pages. Some tools read it, so it is generated for you; for a store it is low priority next to crawler access and structured data, and the plugin treats it that way.

**Store audit, including Core Web Vitals**
Twelve diagnostic checks covering what affects AI discoverability: WooCommerce version, store visibility (WooCommerce "Coming soon" mode), SSL, REST API, existing schema, product data quality, robots.txt rules for AI crawlers, crawler access, Google for WooCommerce status, existing feed plugins, llms.txt and — with cloud checks on — mobile Core Web Vitals measured from real Chrome users.

= Key Features =

* AI crawler access check — per-crawler verdicts from robots.txt, your bot log and an outside-in probe, with a fix link for your CDN/firewall
* AI Visibility — how often ChatGPT and Google AI mention your store, which pages they cite and who gets named instead (refreshed monthly, covering the trailing 30 days)
* ChatGPT Shopping feed generator with validation against the current OpenAI spec
* Per-product AI readiness scoring with fix recommendations
* AI traffic attribution dashboard with platform breakdown and revenue tracking
* Order attribution — traces AI-referred visits through to WooCommerce orders
* Enhanced Schema.org/JSON-LD that augments your store's Product schema whether it is printed by WooCommerce, Yoast SEO (with its WooCommerce SEO add-on), or Rank Math (never duplicates)
* Google Merchant Center data quality audit
* Automatic llms.txt generation
* Store readiness audit with 12 diagnostic checks
* Core Web Vitals — mobile field data (LCP, INP, CLS, TTFB) from real Chrome users
* Zero-config — starts tracking the moment you activate
* Works on cached sites (Kinsta, WP Engine, SiteGround, Cloudways, shared hosting)
* Optional cloud checks — off by default, one click to enable
* Privacy-conscious — the visitor's IP and browser are combined into a salted, irreversible hash, but the referring AI platform, landing page URL, UTM parameters and (for AI crawlers) the raw user-agent string are stored as-is; all of it is deleted after 90 days

= How It Works With Caching =

Unlike server-side-only tracking that fails on cached pages, our tracker uses the same proven architecture as Independent Analytics: a lightweight inline script (delay-loaded via requestIdleCallback for zero performance impact) that sends data to a local REST endpoint. Works perfectly with full-page caching, edge caching, and CDNs.

== Installation ==

1. Upload the plugin files to `/wp-content/plugins/blaze-ai-discovery-for-woocommerce/` or install directly through the WordPress plugin screen.
2. Activate the plugin through the Plugins screen.
3. Visit **AI Discovery** in your WordPress admin sidebar — the dashboard starts showing data immediately.

No configuration required. AI traffic tracking begins on activation. Product scoring and store audit run automatically.

== Frequently Asked Questions ==

= Can ChatGPT see my WooCommerce store? =

Only if its crawlers can fetch your pages. ChatGPT uses OAI-SearchBot to index sites for its search answers, ChatGPT-User to fetch a page on demand when someone asks about it, and GPTBot for training — and any of them can be turned away by robots.txt, a firewall or a CDN without you noticing. The plugin's AI crawler access check (AI Discovery → Store Audit) tests each crawler from your server and, with cloud checks on, from outside your network, then shows a per-crawler verdict with a link to the fix.

= Why isn't my store showing up in ChatGPT or Google AI Overviews? =

Usually one of three things: the AI crawlers cannot reach the store, the product pages do not give the assistant enough facts (brand, identifiers, price, availability, shipping and returns) to recommend a product with confidence, or the store is simply not mentioned anywhere the assistant reads. The plugin addresses the first two directly, with the crawler access check and the per-product AI readiness score, and the AI Visibility page shows how often ChatGPT and Google AI mention you over the trailing 30 days, which pages they cite and which competitors get named instead. No plugin can make an assistant recommend you; it can make sure the reason is not something on your side.

= What are GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot and Google-Extended — should I allow them? =

They fall into two groups. Training crawlers (GPTBot, ClaudeBot, Google-Extended) collect pages to train models; blocking them is a legitimate choice and does not by itself hide you from shoppers. Retrieval crawlers (OAI-SearchBot, ChatGPT-User, Claude-SearchBot, PerplexityBot, bingbot) are what the assistants use to find and cite your pages when a user asks — ChatGPT-User is the on-demand fetcher that visits a page the moment someone asks about it — so if those are blocked, the store cannot be recommended. Google-Extended is a robots.txt-only token rather than a user agent that visits your site, so it is judged from robots.txt alone. The plugin lists every crawler with its class and verdict, and the audit row passes when every retrieval crawler can get in.

= Does Cloudflare block AI crawlers? =

Often, yes. Since mid-2025 Cloudflare has blocked known AI training crawlers by default on newly created zones, and Super Bot Fight Mode or a managed challenge can stop the retrieval crawlers as well; some of these crawlers are on Cloudflare's verified-bot list and some are not, so what gets through depends on your settings. Because the block happens at the edge, a check from your own server passes while the crawler is turned away. With cloud checks on, the plugin fetches your pages from outside with each crawler's user agent, reports which layer is blocking (Cloudflare, Wordfence, Sucuri, Kinsta or robots.txt) and links to the fix for that layer.

= Do I need an llms.txt file? =

Probably not, and it is not where the gains are. llms.txt is a proposed convention — a plain-text summary of your site served at /llms.txt listing your store name, description, categories and key pages — that some tools read but the major assistants have not committed to; asked directly, ChatGPT itself calls it low priority for ecommerce and puts crawlable pages, structured data and clear product facts ahead of it. The plugin generates and serves one anyway because it costs nothing, but spend your time on the crawler access check and the product readiness scores first.

= Is this AEO / GEO / "ChatGPT SEO"? =

Yes, in the sense that it does the practical, measurable parts of answer engine or generative engine optimization for a WooCommerce store: making sure AI crawlers can reach you, making product data complete and machine-readable (schema, feed, identifiers, policies), and measuring whether ChatGPT and Google AI mention you. It does not write content, build links, submit your store to assistants or promise placement, and it does not replace conventional SEO — Google's AI Overviews are built on Google's index, so the ordinary SEO work still matters.

= How does this relate to ChatGPT Shopping and agentic commerce? =

ChatGPT Shopping shows products inside ChatGPT answers and, for approved merchants, lets shoppers buy without leaving the chat. The plugin generates a product feed in OpenAI's current CSV spec, validates every product against it and scores each product's readiness so you know what to fix first. Joining the merchant programme, uploading the feed and enabling instant checkout happen with OpenAI (chatgpt.com/merchants), not inside the plugin, and agent-driven purchasing is still early — the plugin prepares the data, it does not enrol you.

= What are good Core Web Vitals? =

Google's thresholds, measured at the 75th percentile of real visits: Largest Contentful Paint (LCP) 2.5 s or under, Interaction to Next Paint (INP) 200 ms or under, and Cumulative Layout Shift (CLS) 0.1 or under are "good"; above 4 s, 500 ms and 0.25 respectively is "poor", with "needs improvement" in between. Time to First Byte (TTFB, good under 800 ms) is shown for context and does not decide the pass. With cloud checks on, the audit shows mobile field data — what real Chrome users experienced on your store over the last 28 days, from Google's Chrome UX Report — rather than a lab test. "Not enough data" means Google has not yet collected enough real-user samples for your origin; the numbers appear once the store gets steady Chrome traffic.

= Does this slow down my site? =

No. The tracking script is delay-loaded using requestIdleCallback (runs only when the browser is idle) and only fires a network request when an AI referral is detected — which is less than 1% of visits. Schema injection adds under 5ms to page render. Heavy operations like batch scoring run in the background via Action Scheduler.

= Does it work with Yoast SEO or Rank Math? =

Yes. The plugin detects which system prints your Product schema — WooCommerce itself, Yoast's WooCommerce SEO add-on, or Rank Math — and augments that output through its filter hooks. It never creates duplicate schema blocks. Tested with Yoast SEO, Yoast WooCommerce SEO, and Rank Math.

= What AI platforms can it detect? =

ChatGPT (via UTM parameters and referrer), Perplexity (referrer), Google AI Mode/Overviews (URL text fragments), Microsoft Copilot (referrer), Claude (referrer), Gemini (referrer), and Grok (referrer). It also detects AI bot crawlers like GPTBot, PerplexityBot, and ClaudeBot via user-agent matching.

= Can it track AI traffic to specific orders? =

Yes. When a visitor arrives from an AI platform, the plugin sets a first-party cookie. When that visitor completes checkout, the order is tagged with the AI source. The dashboard shows AI-attributed orders and revenue.

= Why does the dashboard say "your actual AI traffic may be higher"? =

Industry benchmarks show approximately 70% of AI-referred traffic arrives without identifiable headers (especially from mobile apps). We detect what we can via referrer headers, UTM parameters, and text fragments, but some AI traffic is fundamentally undetectable with current technology. We believe in being transparent about this.

= Can you push the feed to OpenAI for me? =

Not yet. The plugin generates the CSV; you upload it to the SFTP endpoint OpenAI provides once your merchant application is approved. If you are in the merchant programme and want automatic delivery, post on the support forum and we will work with you. The generated feed file is saved under `wp-content/uploads/blazeaid/` and, like the rest of your uploads directory, is publicly readable at that URL — it contains only the same product data already visible on your storefront.

= Does it work on cached sites? =

Yes. The tracking uses client-side JavaScript (like Google Analytics) that works regardless of server-side page caching. Tested on Kinsta, WP Engine, SiteGround, Cloudways, and shared hosting. Tracking signatures embedded in cached pages expire after two full days; if your page cache keeps HTML longer than that, visits from those stale pages are silently skipped. Adjust with the blazeaid_signature_window_days filter.

= Where is the data stored? =

All data is stored locally in your WordPress database. Optional cloud checks send only your store's public URL, one public product URL, your store's domain, country, locale, up to five product category names and version numbers — and only after you enable them. See External Services below for the full list.

== Screenshots ==

1. AI Discovery Dashboard — AI-referred visits, orders and revenue by platform
2. Product AI Readiness — every product scored with actionable recommendations
3. Store Readiness Audit — diagnostic checklist including AI crawler rules
4. ChatGPT Feed — generate, validate and download a spec-compliant CSV feed
5. AI Visibility — monthly ChatGPT and Google AI mentions, cited pages and who gets named instead

== Changelog ==

= 1.1.3 =
* Fixed: product pages returned HTTP 500 and product saves failed on WooCommerce 8.0–9.1 (a WooCommerce 9.2+ method is now guarded)
* Fixed: orders placed through the Checkout block (Store API) are now attributed to AI referrals; previously only the classic shortcode checkout was
* Fixed: database tables are created on the first request with WooCommerce when the plugin was activated before WooCommerce, and repaired automatically if missing; the schema version is recorded only after every table exists, and a restricted database user sees a notice naming the missing tables
* Fixed: multisite — network activation installs every site, new subsites are installed automatically, network uninstall cleans every site
* Fixed: /llms.txt returned 404 after activation on some sites; the rewrite rule is registered before the rules are flushed and removed on deactivation
* Fixed: deactivation cancels the scoring healthcheck job along with every other background job
* Feed: generation runs as a background job with progress on the Feed page; products are processed in pages of 200 so large catalogues no longer exhaust memory (catalogues of 500 or fewer still generate instantly); works on hosts where WordPress cannot write files directly; write failures show an error instead of a blank 500
* Feed: is_eligible_search reflects stock, purchasability, status and visibility; validation reads the written file (first 2,000 rows) and lists not-yet-searchable products separately
* Attribution: the AI platform is derived on the server from the referrer host and utm_source, so visits from lookalike referrer domains are no longer credited to an AI platform; the tracker signature stays valid for 30 days and is refreshed automatically on long-cached pages (for up to 400 days from when the page was cached)
* Retention: cleanup deletes everything older than 90 days in batches (was capped at 1,000 rows a day) and now also covers attributed orders
* New "Store visibility" audit row: fails while WooCommerce "Coming soon" mode is on and links to Settings → Site visibility
* Audit: the REST API, robots.txt and llms.txt rows report "Could not verify" with the HTTP code when the site answers the plugin's own request with 401/403/407/429, a server error or a bot challenge, instead of a pass; the self-fetch also requests one published product page and never takes more than 20 s
* Audit: "Run audit now" finishes within a request — local checks run in full, cloud checks share a 12 s budget and rows that do not fit show as pending until the background audit fills them in
* Cloud: a response that is not the expected JSON is never cached as an empty result; transient failures (connection errors, 429, 5xx) are retried once; new filter blazeaid_cloud_retry_delay
* Scoring: batch scoring resumes from the last product actually scored, retries a stalled chunk three times and then marks the run failed with a reason; a second run cannot start while one is running
* Admin: pages say when the REST API is blocked (session expired or a security plugin) or answers with something other than JSON; every status poll stops after 20 minutes and when the page is left
* Schema: enhancement now works with Yoast SEO free and Rank Math — Yoast free stores augment WooCommerce's own Product block (only the Yoast WooCommerce SEO add-on replaces it), and the Rank Math integration now matches the payload Rank Math actually passes to its filter
* Schema: Schema Pro stores no longer get a second Product JSON-LD block from this plugin; the plugin augments WooCommerce's block instead

= 1.1.2 =
* Dashboard keeps checking for the first audit, shows when it is still queued, and can run it immediately
* Background jobs can be run on demand from the Dashboard and Products pages when the site's queue is behind (WP-Cron only runs on visits on many hosts); a failed background audit is reported with its error
* An audit check that crashes is reported as a failed row instead of aborting the whole audit
* Site verification works on sites whose security plugin rejects unauthenticated REST requests (WordPress rest_authentication_errors)
* Admin pages now load on WordPress 6.4 and 6.5

= 1.1.1 =
* Core Web Vitals replaces the PageSpeed check in the store audit: mobile field data (LCP, INP, CLS, TTFB at the 75th percentile over the last 28 days) for your store's origin from Google's Chrome UX Report, fetched through api.blazecommerce.io when cloud checks are on; the PageSpeed Insights proxy is no longer called
* Plugin row on plugins.php now links to the Dashboard, AI Visibility, the plugin page, Docs & FAQ and Support
* AI Visibility wording corrected: the report covers the trailing 30 days, not the previous calendar month
* Site verification hardened: stores whose firewall blocks the direct verification request are now verified through fallback routes, and a failed verification says why
* Activation now opens the AI Discovery dashboard, starts the first audit and offers cloud checks once; a one-time reminder after the first audit; and scores your products in the background
* Dashboard: clearer cards, tracking-since date, no misleading zeros; menu reordered

= 1.1.0 =
* New "AI Visibility" page (AI Discovery → AI Visibility) — monthly report of how often ChatGPT and Google AI mention your store, which of your pages they cite and which domains get named instead (the trailing 30 days); fetched in the background from api.blazecommerce.io (DataForSEO LLM Mentions data) when cloud checks are on, never on page load
* New "AI Crawler Access" audit row — per-crawler verdicts (GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, PerplexityBot, Google-Extended, bingbot) from robots.txt, your server's bot log and, with cloud checks on, an outside-in probe; dashboard alert when an AI shopping assistant is blocked; "How to fix this" links per blocking layer (Cloudflare, Wordfence, Sucuri, Kinsta, robots.txt)
* Site verification endpoint `/wp-json/blazeaid/v1/ping` (plugin id, version and a random site token only) so the cloud service can confirm the plugin is installed before probing
* Security hardening: ALTCHA bypass restricted to the exact tracking route; tracking beacon signed with an HMAC day bucket; per-visitor write throttles and daily write caps; attribution cookie whitelist with the Secure flag; hidden and password-protected products excluded from the ChatGPT feed
* Retention cleanup and the daily feed refresh are now scheduled on activation and upgrade
* Privacy-policy guide text for the WordPress Privacy Policy screen
* "Re-run Audit" now runs in the background and the page polls for the result, so slow checks no longer hit the PHP time limit
* Robots.txt audit row now uses the same RFC 9309 parser as the crawler-access row
* New filters: blazeaid_audit_checks, blazeaid_fix_urls, blazeaid_cloud_base_url, blazeaid_daily_write_caps, blazeaid_signature_window_days

= 1.0.1 =
* ChatGPT feed now follows the current OpenAI product feed spec: CSV output, item_id, url, target_countries, store_country, is_eligible_search, is_eligible_checkout, variant fields, is_digital, gtin/mpn
* Feed validator updated to the new required fields
* AI crawler detection updated for 2026 user agents (OAI-SearchBot, Claude-SearchBot, Perplexity-User, Meta, Amazon, CCBot, Bytespider) with training/retrieval classification
* Cloud checks (PageSpeed) are now opt-in with a one-click consent screen; readme disclosure corrected
* Added blazeaid_bot_user_agents, blazeaid_bot_classes and blazeaid_feed_entry filters
* Build now ships a Composer-generated autoloader
* Feed falls back to the store name when a product has no brand (filter: blazeaid_feed_default_brand)

= 1.0.0 =
* Initial release
* AI traffic attribution dashboard with multi-platform detection
* Product AI readiness scoring with 10 criteria
* Schema.org enhancement compatible with Yoast SEO and Rank Math
* ChatGPT merchant feed generator with validation
* Google Merchant Center data quality audit
* llms.txt auto-generation
* Store readiness audit with 11 diagnostic checks
* Order attribution through WooCommerce checkout
* Bot crawler detection and logging

== External Services ==

This plugin can connect to Blaze Commerce cloud services. These connections are **off by default** and only run after you click "Enable cloud checks" in the plugin (WP admin → AI Discovery → Store Audit). You can turn them off again at any time from the same screen.

**Blaze Commerce cloud services** (`api.blazecommerce.io`), operated by Blaze Commerce ([https://blazecommerce.io](https://blazecommerce.io), [privacy policy](https://blazecommerce.io/privacy-policy/))

* Crawler access check — Sends your store's public URL, one public product URL and the plugin/WordPress/WooCommerce/PHP version numbers to `https://api.blazecommerce.io/v1/crawler-access`, which fetches those public pages with AI crawler user-agents and returns what each crawler saw. Fetches are made through Evomi's proxy network ([terms](https://evomi.com/legal/terms-of-service), [privacy](https://evomi.com/legal/privacy-policy)) so the store is tested from residential and datacenter IP addresses. Before the first probe the service makes a single inbound request to `https://<store>/wp-json/blazeaid/v1/ping` to confirm the plugin is installed; that endpoint returns only the plugin id, version and a random site token (no personal data). Runs when the store audit runs and only after you enable cloud checks.
* Data sent: your store's public URL, one public product URL, and version numbers. No customer, order or user data.
* Data retained: call metadata (site URL, timestamp, response codes) is retained for service operation and abuse prevention; no customer or order data is ever sent. The per-crawler result is saved in your own WordPress database as part of the audit results.

* Core Web Vitals check — Sends your store's public URL and the plugin/WordPress/WooCommerce/PHP version numbers to `https://api.blazecommerce.io/v1/cwv`, which looks up the mobile Core Web Vitals (LCP, INP, CLS and TTFB at the 75th percentile over the last 28 days) that real Chrome users recorded for your store's origin in the Google Chrome UX Report API ([terms](https://developers.google.com/terms), [privacy](https://policies.google.com/privacy)) and returns them. No page of your store is loaded or tested by the service. The same inbound `ping` verification described above is made before the first request. Runs when the store audit runs and only after you enable cloud checks.
* Data sent: your store's public URL and version numbers. No customer, order, product or user data.
* Data retained: call metadata (site URL, timestamp, response codes) is retained for service operation and abuse prevention, and the returned metrics are cached by the service for 24 hours; no customer or order data is ever sent. The metrics are saved in your own WordPress database as part of the audit results.

* AI Visibility report — Once a month (on the 2nd at 03:00 UTC, in the background via Action Scheduler) and when you click "Refresh" on the AI Visibility page, sends your store's registrable domain, store country, site locale, up to five product category names and the plugin/WordPress/WooCommerce/PHP version numbers to `https://api.blazecommerce.io/v1/visibility`. The service looks up how often ChatGPT and Google AI mentioned your domain over the trailing 30 days, which of your pages they cited and which other domains were named, using DataForSEO's LLM Mentions data ([terms](https://dataforseo.com/terms-of-service), [privacy](https://dataforseo.com/privacy-policy)), and returns a report that the plugin renders on the AI Visibility page. The same inbound `ping` verification described above is made before the first request. Never runs while a page loads, and only after you enable cloud checks.
* Data sent: your store's registrable domain, country, locale, up to five product category names, and version numbers. No customer, order or user data.
* Data retained: call metadata (site URL, timestamp, response codes) is retained for service operation and abuse prevention, and the report is cached by the service per domain for the month it was generated in; no customer or order data is ever sent. The returned report is saved in your own WordPress database and removed when cloud checks are turned off or the plugin is uninstalled.

All other features — attribution, scoring, schema, feed generation, llms.txt, the remaining audit checks — run entirely on your server. If cloud checks are off, no request leaves your site.

== Upgrade Notice ==

= 1.1.3 =
Compatibility release: fixes product-page errors on WooCommerce 8.0–9.1, attribution for the Checkout block, feed generation on large catalogues, and installs where the plugin was activated before WooCommerce. Update recommended for every store.

= 1.1.2 =
The Dashboard keeps checking for the first audit and can run it immediately; background jobs can be run on demand when the site's queue is behind. Site verification works on sites whose security plugin rejects unauthenticated REST requests. Admin pages load on WordPress 6.4 and 6.5.

= 1.1.1 =
The Site Speed audit row is now Core Web Vitals: mobile field data from Google's Chrome UX Report via api.blazecommerce.io (store URL and version numbers sent, cloud checks only). The PageSpeed proxy is no longer called. AI Visibility covers the trailing 30 days.

= 1.1.0 =
New AI Visibility page (AI Discovery → AI Visibility): with cloud checks on, a monthly report of ChatGPT and Google AI mentions of your store (your domain, country, locale and up to five category names are sent to api.blazecommerce.io). Cloud checks now also test AI crawler access from outside your network (store URL + one product URL sent to api.blazecommerce.io). Retention cleanup now runs: attribution data older than the retention period (90 days by default) is deleted after upgrade.

= 1.0.1 =
Feed format changed to CSV per OpenAI spec — regenerate and re-upload your feed. Cloud checks now require one-click opt-in.

= 1.0.0 =
Initial release. Install to start tracking AI traffic and improving your store's AI discoverability.
