{"id":349174,"date":"2026-08-11T13:09:18","date_gmt":"2026-08-11T13:09:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/goppa-agentic-commerce\/"},"modified":"2026-09-12T17:31:52","modified_gmt":"2026-09-12T17:31:52","slug":"goppa-agentic-commerce","status":"publish","type":"plugin","link":"https:\/\/ssw.wordpress.org\/plugins\/goppa-agentic-commerce\/","author":23542707,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.7.1","stable_tag":"0.7.1","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Goppa \u2013 AI Visibility: llms.txt, IndexNow and AI Crawlers","header_author":"Goppa","header_description":"Makes your WooCommerce catalogue readable and searchable by AI shopping agents (ChatGPT, Gemini, Perplexity): conformant UCP manifest, MCP server and llms.txt served on your own domain. Optionally reports what agents did on your store. Purchase still happens on your store.","assets_banners_color":"16161a","last_updated":"2026-09-12 17:31:52","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/trygoppa.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":692,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.5.0":{"tag":"0.5.0","author":"goppa","date":"2026-08-11 13:09:05","revision":3642026},"0.5.1":{"tag":"0.5.1","author":"goppa","date":"2026-08-12 03:57:34","revision":3642793},"0.6.0":{"tag":"0.6.0","author":"goppa","date":"2026-08-28 06:42:10","revision":3669914},"0.6.1":{"tag":"0.6.1","author":"goppa","date":"2026-08-28 07:16:36","revision":3669956},"0.6.2":{"tag":"0.6.2","author":"goppa","date":"2026-08-29 03:59:06","revision":3671099},"0.6.3":{"tag":"0.6.3","author":"goppa","date":"2026-08-29 08:28:20","revision":3671257},"0.6.4":{"tag":"0.6.4","author":"goppa","date":"2026-08-31 18:06:52","revision":3674766},"0.6.5":{"tag":"0.6.5","author":"goppa","date":"2026-08-31 18:06:52","revision":3674766},"0.6.6":{"tag":"0.6.6","author":"goppa","date":"2026-09-02 11:38:13","revision":3677881},"0.6.7":{"tag":"0.6.7","author":"goppa","date":"2026-09-03 03:24:37","revision":3678898},"0.6.8":{"tag":"0.6.8","author":"goppa","date":"2026-09-08 11:40:20","revision":3686499},"0.7.0":{"tag":"0.7.0","author":"goppa","date":"2026-09-11 20:01:18","revision":3692039},"0.7.1":{"tag":"0.7.1","author":"goppa","date":"2026-09-12 17:31:52","revision":3692961}},"upgrade_notice":{"0.7.0":"<p>WooCommerce is no longer required. AI crawler visits are counted on your\nown site with no account, IndexNow now covers pages and posts, and the\nContent Signal works without connecting anything. Nothing was removed:\nevery catalogue feature works as before when WooCommerce is running.<\/p>","0.6.7":"<p>Documentation only. No behaviour changed: the page now leads with\nIndexNow, which the 2026 evidence puts ahead of everything else the\nplugin does.<\/p>","0.6.6":"<p>Small. Goppa now declares WooCommerce as a required plugin, and says so\non its own screen when WooCommerce is missing instead of showing zeros\nwith no explanation. No change if your store already runs WooCommerce.<\/p>","0.2.1":"<p>Important. On the stable WooCommerce release every endpoint served an\nempty catalogue because of a hook ordering bug. Also fixes search on\naccented product names and removes the store token on uninstall. Upgrade.<\/p>","0.2.0":"<p>The UCP manifest was not conformant and the plugin claimed your store was\ntransactable by agents. Both corrected. Upgrade recommended.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3642026,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3642026,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3642026,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3642026,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.5.0","0.5.1","0.6.0","0.6.1","0.6.2","0.6.3","0.6.4","0.6.5","0.6.6","0.6.7","0.6.8","0.7.0","0.7.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3691263,"resolution":"1","location":"assets","locale":"","width":1280,"height":980},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3691263,"resolution":"2","location":"assets","locale":"","width":1280,"height":760},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3691263,"resolution":"3","location":"assets","locale":"","width":1280,"height":1000},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3691263,"resolution":"4","location":"assets","locale":"","width":1280,"height":1400},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3691263,"resolution":"5","location":"assets","locale":"","width":1280,"height":700}},"screenshots":{"1":"What the plugin has already done on this site: AI crawler visits counted locally, URLs pushed to Bing through IndexNow, and the Content Signal written to robots.txt. No configuration, no account.","2":"The same screen on a site without WooCommerce. Everything that does not need a catalogue keeps working, and the plugin says so instead of showing zeros.","3":"Every block is a switch. The two that change what your customers see are off until you turn them on.","4":"The product summary and the FAQ, as visible text on the page. Both are built only from fields you already filled in, and both are off until you turn them on.","5":"llms.txt, served on your own domain, written from your catalogue."}},"plugin_section":[],"plugin_tags":[246479,246076,216196,204677,242115],"plugin_category":[45],"plugin_contributors":[275202],"plugin_business_model":[],"class_list":["post-349174","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-crawlers","plugin_tags-ai-visibility","plugin_tags-chatgpt","plugin_tags-indexnow","plugin_tags-mcp","plugin_category-ecommerce","plugin_contributors-goppa","plugin_committers-goppa"],"banners":{"banner":"https:\/\/ps.w.org\/goppa-agentic-commerce\/assets\/banner-772x250.png?rev=3642026","banner_2x":"https:\/\/ps.w.org\/goppa-agentic-commerce\/assets\/banner-1544x500.png?rev=3642026","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/goppa-agentic-commerce\/assets\/icon-128x128.png?rev=3642026","icon_2x":"https:\/\/ps.w.org\/goppa-agentic-commerce\/assets\/icon-256x256.png?rev=3642026","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/goppa-agentic-commerce\/assets\/screenshot-1.png?rev=3691263","caption":"What the plugin has already done on this site: AI crawler visits counted locally, URLs pushed to Bing through IndexNow, and the Content Signal written to robots.txt. No configuration, no account."},{"src":"https:\/\/ps.w.org\/goppa-agentic-commerce\/assets\/screenshot-2.png?rev=3691263","caption":"The same screen on a site without WooCommerce. Everything that does not need a catalogue keeps working, and the plugin says so instead of showing zeros."},{"src":"https:\/\/ps.w.org\/goppa-agentic-commerce\/assets\/screenshot-3.png?rev=3691263","caption":"Every block is a switch. The two that change what your customers see are off until you turn them on."},{"src":"https:\/\/ps.w.org\/goppa-agentic-commerce\/assets\/screenshot-4.png?rev=3691263","caption":"The product summary and the FAQ, as visible text on the page. Both are built only from fields you already filled in, and both are off until you turn them on."},{"src":"https:\/\/ps.w.org\/goppa-agentic-commerce\/assets\/screenshot-5.png?rev=3691263","caption":"llms.txt, served on your own domain, written from your catalogue."}],"raw_content":"<!--section=description-->\n<p>Goppa is an AI visibility plugin for WordPress. It shows you which AI\ncrawlers are reading your site, gets your changed pages into the index\nthose assistants answer from, and states \u2014 in your own robots.txt \u2014 that\nyour pages may be used to build a generated answer.<\/p>\n\n<h4>What Goppa does<\/h4>\n\n<ul>\n<li><strong>Counts AI crawler visits<\/strong> on your site \u2014 GPTBot, ClaudeBot,\nPerplexityBot, OAI-SearchBot, Google-Extended, Amazonbot, Applebot and\nothers \u2014 and shows the count on its own screen. The count is kept on\nyour server and nothing about it is sent anywhere.<\/li>\n<li><strong>Submits every changed URL through IndexNow<\/strong>, so Bing and Yandex\nlearn about your pages, posts and products in hours instead of weeks.\nThe verification key is generated and served automatically.<\/li>\n<li><strong>Declares <code>Content-Signal: search=yes, ai-input=yes<\/code><\/strong> in robots.txt,\nthe line that says an AI system may use your page in a generated\nanswer. It never touches <code>ai-train<\/code>.<\/li>\n<li><strong>Serves four agent endpoints from a WooCommerce catalogue<\/strong> when one\nis present: a UCP manifest, llms.txt, a live MCP server and your\ncatalogue as schema.org JSON.<\/li>\n<li><strong>Publishes a product summary and an FAQ as visible text<\/strong>, built only\nfrom fields you already filled in. Both are off until you turn them on.<\/li>\n<li><strong>Applies fixes for you<\/strong> when a Goppa account is connected: llms.txt,\nrobots.txt rules for named AI crawlers, the sitemap reference and\nmissing product schema fields.<\/li>\n<li><strong>Sends nothing about you anywhere<\/strong> until you enter a token. The\ncrawler count stays on your server. IndexNow submits your own public\nURLs, and nothing else, and can be switched off.<\/li>\n<\/ul>\n\n<p><strong>WooCommerce is optional.<\/strong> The crawler count, IndexNow and the Content\nSignal work on any WordPress site. The catalogue endpoints and the\nproduct feed check appear when WooCommerce is running.<\/p>\n\n<h4>The line nobody is declaring<\/h4>\n\n<p>Cloudflare switched the Content Signals format on across more than 3.8\nmillion domains with <code>ai-train=no<\/code> and <strong><code>ai-input<\/code> deliberately left\nblank<\/strong> \u2014 they said they did not want to guess your preference.<\/p>\n\n<pre><code>ai-input is the one that means \"you may use this page to build a\n<\/code><\/pre>\n\n<p>generated answer\". Millions of sites now say \"do not train\" and say\nnothing at all about appearing in the answer, and a crawler that reads\nblank as \"no\" quietly drops them from the answers they want to be in.<\/p>\n\n<p>Goppa writes <code>Content-Signal: search=yes, ai-input=yes<\/code>. It leaves\n    ai-train alone \u2014 training a model on your content is a separate\ndecision, and yours. If your server or CDN already sets a Content\nSignal, that one is left alone.<\/p>\n\n<h4>First, the page has to be findable<\/h4>\n\n<p>ChatGPT and Copilot answer shopping and research questions from Bing's\nindex. A page outside that index cannot be recommended, however good its\nstructured data is. This is the part most tools skip, because it is not\na file you can generate.<\/p>\n\n<p>A meta-analysis of 54 studies published in May 2026 puts URL\naccessibility as the strongest single factor in whether an AI cites a\npage \u2014 ahead of everything else on this list. That is why IndexNow is on\nby default. Turn it off under Settings if another plugin already submits\nyour URLs.<\/p>\n\n<h4>Then it has to be readable<\/h4>\n\n<p>With WooCommerce running, four endpoints on your own domain, with no\nconfiguration:<\/p>\n\n<ul>\n<li><strong>\/.well-known\/ucp<\/strong> \u2014 a UCP discovery manifest conforming to the\npublished specification, so an agent can find out what your store\noffers.<\/li>\n<li><strong>\/llms.txt<\/strong> \u2014 a plain-text description of your store, categories and\nproducts for AI models.<\/li>\n<li><strong>\/mcp<\/strong> \u2014 a live MCP server (JSON-RPC 2.0, protocol 2025-06-18) with\nthree tools: <code>search_products<\/code>, <code>get_product<\/code> and <code>get_store_info<\/code>.<\/li>\n<li><strong>\/goppa\/catalog<\/strong> \u2014 your catalogue as schema.org\/Product JSON.<\/li>\n<\/ul>\n\n<p>Products, prices, stock status, categories and attributes are read\ndirectly from WooCommerce and cached for ten minutes. Search ignores\naccents, so \"tenis\" finds \"T\u00eanis\" and \"fussball\" finds \"Fu\u00dfball\".<\/p>\n\n<h4>It applies the fixes, not just the files<\/h4>\n\n<p>With a Goppa account connected, the plugin checks hourly for fixes found\nby the diagnosis and <strong>applies them to your site itself<\/strong> \u2014 the llms.txt,\nthe robots.txt rules that let named AI crawlers through, the sitemap\nreference, and product schema fields that are missing. Then it reports\nback what it applied, so the diagnosis you see is the state of your site\nand not a to-do list.<\/p>\n\n<p>Two rules it never breaks:<\/p>\n\n<ul>\n<li><strong>It never changes what you wrote.<\/strong> Titles, descriptions, prices and\npolicies are on a refuse list inside the plugin. Even if the service\nasked, this code would discard the instruction \u2014 the list lives here,\non your server, precisely so it holds regardless of what happens\nupstream.<\/li>\n<li><strong>The plugin pulls; the service never pushes.<\/strong> Every connection is\noutbound from your site, like the telemetry. No authenticated route is\nopened on your WordPress.<\/li>\n<\/ul>\n\n<h4>Readable is not the same as recommended<\/h4>\n\n<p>Everything above makes your site readable. None of it can tell you\nwhether an assistant actually names you when someone asks what to buy or\nwho to use: that has to be measured by asking, from the outside.<\/p>\n\n<p>In our own published research we measured 64 shops twice: a technical\nreadiness score, and whether AI assistants name them when asked real\nbuying questions in their category. 25 of the 32 shops scoring a perfect\n100 appeared in 0% of the answers, and only 16 of 64 were named at all.<\/p>\n\n<p>The median readiness score of the shops that are never named is 100. For\nthe shops that are named, it is 97. The invisible ones score higher.<\/p>\n\n<p>It also varies enormously by category: 1 of 12 natural beauty shops\nappeared; 4 of 12 electronics shops did. The data and method are public\nat https:\/\/trygoppa.com\/study<\/p>\n\n<p>Anyone promising a specific outcome here is guessing. Serving these\nprotocols is a precondition, not a guarantee.<\/p>\n\n<h4>You can check where you stand without installing anything<\/h4>\n\n<p>Run the free check on your domain at https:\/\/trygoppa.com \u2014 it reads your\nsite from the outside and gives you a readiness score plus the pages an\nAI assistant read when answering questions in your category. No account,\nand the plugin is not required.<\/p>\n\n<p>Install the plugin when you want the work done on your site instead.<\/p>\n\n<h4>What this does not do<\/h4>\n\n<p>It does <strong>not<\/strong> process carts, checkout or payments, and the UCP manifest\ndoes not claim otherwise \u2014 it declares catalogue search and lookup,\nnothing else. An agent that reads it will send the shopper to your site\nto buy. Announcing a checkout that does not exist would make agents try\nto transact and fail.<\/p>\n\n<h4>Optional: see what the agents actually do<\/h4>\n\n<p>Paste a token from a Goppa account and the plugin reports agent activity\n\u2014 which endpoint was called, what was searched, which product was\nreturned. Never visitor data. This is off until you configure it; see\n\"External services\" below.<\/p>\n\n<h4>External services<\/h4>\n\n<p><strong>With no token configured, this plugin makes no external connection\ncarrying your data.<\/strong> The crawler count stays on your server. IndexNow,\nwhen on, submits your own public URLs to <code>https:\/\/api.indexnow.org<\/code> \u2014\nthe URL and your site's verification key, nothing else.<\/p>\n\n<p>If you enter a Goppa store token in Settings \u2192 Goppa, the plugin sends\nagent activity to the Goppa service at <code>https:\/\/trygoppa.com<\/code>\n(endpoint <code>\/api\/ingest<\/code>). This is what is sent, and only when an AI agent\nrequests one of the four endpoints above:<\/p>\n\n<ul>\n<li>which endpoint was requested (for example <code>mcp<\/code>);<\/li>\n<li>the User-Agent string sent by the agent, which the service classifies\ninto a known agent name;<\/li>\n<li>which MCP tool was called (for example <code>search_products<\/code>);<\/li>\n<li>the search term or product identifier the agent asked for;<\/li>\n<li>the name of the product returned first.<\/li>\n<\/ul>\n\n<p>Records are queued and sent after the response to the agent has already\nbeen delivered, so the service being slow or unreachable never delays\nyour site. Nothing is sent about your human visitors: no IP addresses, no\ncustomer or order data, no personal information. Clearing the token stops\nit immediately.<\/p>\n\n<p>Service provided by Goppa \u2014 <a href=\"https:\/\/trygoppa.com\/terms\">Terms of Service<\/a>,\n<a href=\"https:\/\/trygoppa.com\/privacy\">Privacy Policy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin ZIP via Plugins \u2192 Add New \u2192 Upload, or unzip into\n   \/wp-content\/plugins\/.<\/li>\n<li>Activate it. The crawler count, IndexNow and the Content Signal start\nworking immediately.<\/li>\n<li>Optional: Settings \u2192 Goppa for the site description, policy URLs and\nthe Goppa token.<\/li>\n<\/ol>\n\n<p>WooCommerce is optional. With it running, the four catalogue endpoints go\nlive too. If your permalinks are set to \"Plain\", switch to any other\nsetting so the endpoints resolve.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20woocommerce%3F\"><h3>Do I need WooCommerce?<\/h3><\/dt>\n<dd><p>No, not since 0.7.0. The AI crawler count, IndexNow and the Content\nSignal work on any WordPress site. WooCommerce adds the catalogue\nendpoints, the product feed check, the product summary and the FAQ block\n\u2014 those read your catalogue, so they need one.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20goppa%20account%3F\"><h3>Do I need a Goppa account?<\/h3><\/dt>\n<dd><p>No. Everything described above works without one. An account adds\nreporting of what agents did on your site, and the hourly fixes applied\nfor you.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20my%20site%20down%3F\"><h3>Does it slow my site down?<\/h3><\/dt>\n<dd><p>No. The catalogue is cached and the routing exits on the first check for\nanything that is not one of the endpoints, so ordinary page loads never\nreach that code. The crawler count writes one small option, and only when\na known AI crawler is the visitor.<\/p><\/dd>\n<dt id=\"does%20it%20expose%20private%20data%3F\"><h3>Does it expose private data?<\/h3><\/dt>\n<dd><p>No. Only published content, and only the fields already public on your\nsite: name, description, price, stock status, categories, attributes,\nimage and link. The crawler count stores the name of the crawler and a\nnumber \u2014 no IP addresses, no visitor data.<\/p><\/dd>\n<dt id=\"will%20ai%20assistants%20recommend%20my%20site%20now%3F\"><h3>Will AI assistants recommend my site now?<\/h3><\/dt>\n<dd><p>Serving these protocols and signals is what makes your content usable by\nan agent at all \u2014 it is a precondition, not a guarantee. Anyone promising\na specific outcome here is guessing. We publish our own evidence for that\nabove, and the method at https:\/\/trygoppa.com\/study<\/p><\/dd>\n<dt id=\"what%20happens%20if%20the%20goppa%20service%20is%20down%3F\"><h3>What happens if the Goppa service is down?<\/h3><\/dt>\n<dd><p>Your endpoints keep working. Pending reports stay queued on your site and\nare sent when the service is reachable again.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>Does it work with High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares compatibility and does not touch orders at all.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.7.1<\/h4>\n\n<ul>\n<li><strong>Apple Intelligence added to the robots.txt access list.<\/strong><\/li>\n<\/ul>\n\n<p>Goppa already counted <code>Applebot-Extended<\/code> when it visited and already\nchecked whether your site blocked it. It just never asked it in. The\nallow-list had drifted from the two lists beside it; this closes the gap.<\/p>\n\n<h4>0.7.0<\/h4>\n\n<ul>\n<li><strong>WooCommerce is no longer required.<\/strong> Goppa now runs on any WordPress\nsite.<\/li>\n<\/ul>\n\n<p>Three things that never needed a catalogue now work without one: the AI\ncrawler count, IndexNow, and the Content Signal in robots.txt. The\ncatalogue endpoints, the feed check, the product summary and the FAQ\nstill need WooCommerce and appear when it is running.<\/p>\n\n<ul>\n<li><strong>New: AI crawler visits are counted on your own site, with no\naccount.<\/strong> GPTBot, ClaudeBot, PerplexityBot and the others are counted\nby name and shown on the settings screen. The count never leaves your\nserver.<\/li>\n<li><strong>IndexNow now covers pages and posts<\/strong>, not only products. The hook\nwas <code>save_post_product<\/code>, which left every site without a shop out of\nthe plugin's strongest single feature.<\/li>\n<li><strong>The Content Signal no longer needs a Goppa account.<\/strong> It is a\npermission you grant, not a change of access, so it is on by default\nwith a switch on the settings screen. The crawler access rules in\nrobots.txt still come from a connected diagnosis, because those do\nchange access.<\/li>\n<li>The settings screen says what is working on a site without WooCommerce\ninstead of explaining what is missing.<\/li>\n<\/ul>\n\n<h4>0.6.8<\/h4>\n\n<ul>\n<li>robots.txt now carries a Content Signal saying this store may be used in AI answers.<\/li>\n<\/ul>\n\n<p>Cloudflare turned the Content Signals format on across more than 3.8 million domains with <code>ai-train=no<\/code> and <strong><code>ai-input<\/code> deliberately left blank<\/strong> \u2014 they did not want to guess. <code>ai-input<\/code> is the one that says \"you may use this page to build a generative answer\", which is the only thing this plugin exists to achieve. A crawler that reads blank as \"no\" quietly drops the store from the answers it wants to be in.<\/p>\n\n<p>Goppa now writes <code>Content-Signal: search=yes, ai-input=yes<\/code>. It does not touch <code>ai-train<\/code> \u2014 training a model on your catalogue is your call, and some shops want it off on purpose. If you or your CDN already set a Content Signal, yours is left alone.<\/p>\n\n<h4>0.6.7<\/h4>\n\n<ul>\n<li>Reordered, not rewritten. IndexNow is now the first thing this page\nexplains, before the endpoints. A meta-analysis of 54 studies published\nin May 2026 puts <strong>URL accessibility as the strongest single factor<\/strong>\nin whether an AI cites a page \u2014 9.5 out of 10, ahead of everything else\nthe plugin does. It was described here as a footnote, starting with\n\"It also submits\".<\/li>\n<li>The settings screen now says why the IndexNow number matters, not just\nwhat it is. The llms.txt line already explained itself; the line for\nthe stronger factor did not.<\/li>\n<li>Nothing was removed. llms.txt is still served and still useful \u2014 it is\nsimply not the thing that decides whether you get recommended.<\/li>\n<\/ul>\n\n<h4>0.6.6<\/h4>\n\n<ul>\n<li>The plugin now declares that it needs WooCommerce. From WordPress 6.5\nthat means WordPress itself will not let you activate Goppa without\nWooCommerce, and shows the dependency on the plugin card.<\/li>\n<li>On WordPress 6.0 to 6.4 that header is ignored, so the settings screen\nnow says it in words. Before this, a store without WooCommerce saw\n\"0 products\", \"0 in the feed\" and an empty catalogue on every endpoint,\nwith nothing explaining why \u2014 which reads as a broken plugin rather\nthan a missing dependency. Nothing was ever broken: every WooCommerce\ncall was already guarded. What was missing was the sentence.<\/li>\n<\/ul>\n\n<h4>0.6.5<\/h4>\n\n<ul>\n<li>New, and off until you turn it on: when a shopper arrives from ChatGPT,\nPerplexity or Claude and buys in that same visit, the order is tagged\nwith where they came from, and the totals reach your Goppa dashboard\nsplit into what an assistant can be shown to have brought and what it\nmerely took part in. The two are never added together.<\/li>\n<li>Nothing about the shopper leaves your site. Only the name of the site\nthey arrived from, the currency, the order total and a one-way code so\nthe same sale is not counted twice \u2014 never a name, email, IP address\nor the order number itself. It uses the session WooCommerce already\nkeeps for the cart, not a cookie of ours, and only covers a purchase\nmade in the same visit.<\/li>\n<\/ul>\n\n<h4>0.6.4<\/h4>\n\n<ul>\n<li>New on the settings page: how many of your products would be accepted\ninto the ChatGPT product feed, and exactly what is missing from the\nones that would not. A product with no image or no brand is dropped\nsilently by the channel, with no error anywhere \u2014 this tells you\nbefore that happens, and the same fields feed Google and Perplexity.<\/li>\n<li>Fixed a real defect in the feed we generate: products without a GTIN\nor MPN were sent without declaring that, which OpenAI reads as a\nclaim to an identifier that is not there. Small catalogues rarely have\nGTINs, so this affected most stores.<\/li>\n<\/ul>\n\n<h4>0.6.3<\/h4>\n\n<ul>\n<li>The settings page now uses WordPress's own admin components, so it\nreads as part of your dashboard instead of a wall of text: what the\nplugin has already done comes first, in a card with a status icon per\nline, and the endpoints it serves sit below it in a table you can open\none by one.<\/li>\n<li>No stylesheet of ours is loaded for any of it. The page inherits your\nadmin theme, dark mode and accessibility settings as they are.<\/li>\n<\/ul>\n\n<h4>0.6.2<\/h4>\n\n<ul>\n<li>Renamed from \"Goppa Agentic Commerce\" to \"Goppa - AI Visibility for\nWooCommerce\", so the name says what the plugin is for. Nothing else\nchanges: same plugin, same settings, same address. Your site keeps\nupdating normally.<\/li>\n<li>The settings page now shows what Goppa has actually done on your\nstore \u2014 how many products are being served as structured data, how\nmany URLs went to Bing and Yandex \u2014 instead of only listing what it\ncould do. Until now that summary appeared only for connected\naccounts, so anyone using the plugin on its own saw a form and no\nevidence that anything had happened.<\/li>\n<li>Asks for a review, once, after a week of real use, inside this\nplugin's own settings page. Dismissable, and the dismissal sticks.<\/li>\n<\/ul>\n\n<h4>0.6.1<\/h4>\n\n<ul>\n<li>The settings page now says what this plugin can and cannot tell you.\nIt makes your catalogue readable; whether an assistant actually names\nyour store has to be measured by asking, from the outside. The note\ndisappears once you connect an account.<\/li>\n<li>The connection field used to ask for a token without saying where one\ncomes from. It now links to the page that issues it, with this site's\naddress already filled in.<\/li>\n<\/ul>\n\n<h4>0.6.0<\/h4>\n\n<ul>\n<li><strong>New: a short summary on product pages.<\/strong> Two factual lines and a\nspec list, built only from fields you already filled in \u2014 name,\ncategory, brand, price, stock and attributes. Your own description is\nnever read, changed or rewritten. Off by default.<\/li>\n<li><strong>New: your category guide, as a draft.<\/strong> The comparison guide written\non the platform can now land here as a draft post instead of being\ncopied and pasted. It is created once, it is always a draft, and once\nyou touch it the text is yours \u2014 we never write over it. Off by\ndefault.<\/li>\n<li><strong>New: your official profiles in the schema (<code>sameAs<\/code>).<\/strong> The store\nidentity block already told an assistant your name and address. It now\nalso links the profiles you confirm on the platform, which is what\ntells a model that this shop, that review page and that social profile\nare the same business. Nothing is published until you confirm each one.<\/li>\n<li><strong>New: the FAQ can also be text on the page.<\/strong> Google no longer uses\nFAQ Page markup and AI reads the page itself, so the same questions and\nanswers can now appear as visible text. Off by default: hidden markup\ndoes not change what your customers see, and this does.<\/li>\n<li><strong>New: FAQ on category pages.<\/strong> Built from the products in that\ncategory \u2014 how many there are, what they cost, which brands you carry.\nCounted from your own catalogue, never written for you. Also off by\ndefault.<\/li>\n<li><strong>New: see when an AI actually used your shop.<\/strong> Until now the plugin\nonly reported the agent files it serves, so an assistant reading a\nnormal product page went unseen. It now reports two things that are\nreal counts, not estimates: pages fetched by AI crawlers, and visits\nfrom people who clicked a link inside an AI answer.<\/li>\n<li>The dashboard separates the two that matter. <code>ChatGPT-User<\/code>,\n  Claude-User and <code>Perplexity-User<\/code> fetch a page <strong>because someone\nasked a question right then<\/strong> \u2014 those are counted as real use.\n  GPTBot and the other sweeping crawlers are shown separately, because\na crawler passing through says nothing about being recommended.<\/li>\n<li><strong>Privacy:<\/strong> only the referring host is recorded (for example\n  chatgpt.com), never the full address, which can contain the\nvisitor's conversation id. No IPs, no raw headers, and ordinary\nvisitors are still not recorded at all.<\/li>\n<\/ul>\n\n<h4>0.5.1<\/h4>\n\n<ul>\n<li><strong>Fixed a privacy bug: hidden products were being served to AI agents.<\/strong>\nIf you had set a product's catalogue visibility to <em>Hidden<\/em>, or\nprotected it with a password, it was still included in the catalogue\nthe plugin publishes for AI assistants. Nothing changed on your\nstorefront, so there was no way to notice. Those products are now\nexcluded. If you use hidden products for B2B pricing, discontinued\nitems or testing, update.<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>New: the plugin now <strong>applies the fixes by itself<\/strong>. Once an hour it\nasks Goppa whether your latest diagnosis found anything it can repair,\nand repairs it: serving llms.txt, allowing AI crawlers and declaring\nthe sitemap in robots.txt, and filling in structured-data fields your\nproducts were missing. Before this you had to copy and paste them.<\/li>\n<li><strong>It will never touch what you wrote.<\/strong> Titles, descriptions, prices\nand policies are refused by the plugin itself, not only by the server\n\u2014 so even a bug or a breach on our side cannot change how your store\nlooks to a shopper. Only data that AI agents read is ever modified.<\/li>\n<li>Settings now show exactly what was applied and when, and the plugin\ndoes nothing at all until your store is connected.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>New: <strong>IndexNow<\/strong>. Your product URLs are submitted to Bing and Yandex\nwhenever a product is added, updated or removed. This matters more than\nit sounds: ChatGPT and Copilot answer shopping questions from Bing's\nindex, so a product that is not in that index cannot be recommended,\nhowever good its structured data is. IndexNow cuts the wait from weeks\nto hours. The verification key is generated and served automatically \u2014\nnothing to configure. Turn it off under Settings if another plugin\nalready submits your URLs.<\/li>\n<li>Fixed: uninstalling did not remove the <code>goppa_schema<\/code> option, so a\nsetting from 0.3.0 survived the plugin being deleted.<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>Fixed: on stores running the stable WooCommerce release, every endpoint\nserved an <strong>empty catalogue<\/strong>. The plugin routed on <code>init<\/code> at priority\n0, the same priority WooCommerce uses, and loaded first \u2014 so\n  wc_get_products() ran before WooCommerce had registered the <code>product<\/code>\npost type. Routing now runs at priority 20.<\/li>\n<li>Fixed: an empty catalogue was cached for ten minutes. If the first\nrequest happened before products existed, products added afterwards\nstayed invisible to agents. Only a non-empty catalogue is cached now.<\/li>\n<li>Fixed: search ignored accents. \"tenis de corrida\" ranked a t-shirt\nabove a running shoe, because \"tenis\" did not match \"T\u00eanis\". Accents\nare folded on both sides now, covering the Latin alphabet (including\n\u00df, \u00f8, \u00e6, \u0142, \u011f).<\/li>\n<li>Fixed: a match in the product name now outranks a match in the\ndescription.<\/li>\n<li>Fixed: <code>get_product<\/code> also matches without accents, so a lookup cannot\nfail where the search succeeded.<\/li>\n<li>Fixed: deactivating left the hourly reporting task scheduled forever.<\/li>\n<li>Fixed: uninstalling did not remove the store token or the telemetry\noptions, leaving a secret in the site database.<\/li>\n<li>Changed: text domain is now <code>goppa-agentic-commerce<\/code>, matching the plugin\nslug, so translations resolve.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Rewrote the UCP manifest to conform to the published specification,\nchecked against a live Shopify manifest. The previous version used\nfields that do not exist in the spec.<\/li>\n<li>The manifest now declares only what the plugin does \u2014 catalogue search\nand lookup. No checkout, cart or payment handlers.<\/li>\n<li>Corrected llms.txt and the plugin description, which claimed the store\nwas transactable by agents. It is not; purchase happens on the store.<\/li>\n<li>Hardened the MCP server against malformed input. Batches, <code>null<\/code>, bare\nnumbers, parameters sent as strings and arguments of the wrong type\nused to raise errors \u2014 which would surface as HTTP 500 on the\nmerchant's site. All of them now return proper JSON-RPC errors, and\nbatch size is capped.<\/li>\n<li>Added optional reporting of agent activity.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First release: UCP manifest, llms.txt, MCP server, schema.org catalogue\nendpoint, settings page, catalogue cache.<\/li>\n<\/ul>","raw_excerpt":"See which AI crawlers read your site, push changes into Bing with IndexNow, and tell AI systems your pages may be used in answers.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ssw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/349174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ssw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ssw.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ssw.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=349174"}],"author":[{"embeddable":true,"href":"https:\/\/ssw.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/goppa"}],"wp:attachment":[{"href":"https:\/\/ssw.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=349174"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ssw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=349174"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ssw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=349174"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ssw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=349174"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ssw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=349174"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ssw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=349174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}