{"id":340783,"date":"2026-08-23T10:15:17","date_gmt":"2026-08-23T10:15:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/agentrank-ai-visibility-for-woocommerce\/"},"modified":"2026-08-23T10:49:29","modified_gmt":"2026-08-23T10:49:29","slug":"webkoding-product-schema-crawl-audit","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/webkoding-product-schema-crawl-audit\/","author":23513870,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1","requires":"6.2","requires_php":"8.1","requires_plugins":null,"header_name":"Webkoding Product Schema and Crawl Audit for WooCommerce","header_author":"WebKoding","header_description":"Stock WooCommerce publishes no Product structured data on product pages. Webkoding Schema Audit restores it, so ChatGPT, Claude, Gemini, Perplexity and Google can actually see what you sell.","assets_banners_color":"101a2d","last_updated":"2026-08-23 10:49:29","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/schema-audit.webkodingtheme.com","header_author_uri":"https:\/\/webkoding.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":40,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"webkoding","date":"2026-08-23 10:15:02"},"1.0.1":{"tag":"1.0.1","author":"webkoding","date":"2026-08-23 10:49:29"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3661653,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3661653,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3661653,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3661653,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3661676,"resolution":"1","location":"assets","locale":"","width":1512,"height":798},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3661676,"resolution":"2","location":"assets","locale":"","width":1512,"height":798},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3661676,"resolution":"3","location":"assets","locale":"","width":1512,"height":420}},"screenshots":{"1":"The same product page twice: what a shopper sees, and the Product JSON-LD this plugin publishes on it. Without the plugin that second panel is empty.","2":"The audit \u2014 your AI Visibility Score, how many products agents cannot identify, and exactly what is missing.","3":"Settings. There are two. They apply to the whole catalogue."}},"plugin_section":[],"plugin_tags":[2353,1117,186,1121,286],"plugin_category":[45,55],"plugin_contributors":[277071],"plugin_business_model":[],"class_list":["post-340783","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-schema","plugin_tags-seo","plugin_tags-structured-data","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-seo-and-marketing","plugin_contributors-webkoding","plugin_committers-webkoding"],"banners":{"banner":"https:\/\/ps.w.org\/webkoding-product-schema-crawl-audit\/assets\/banner-772x250.png?rev=3661653","banner_2x":"https:\/\/ps.w.org\/webkoding-product-schema-crawl-audit\/assets\/banner-1544x500.png?rev=3661653","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/webkoding-product-schema-crawl-audit\/assets\/icon-128x128.png?rev=3661653","icon_2x":"https:\/\/ps.w.org\/webkoding-product-schema-crawl-audit\/assets\/icon-256x256.png?rev=3661653","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/webkoding-product-schema-crawl-audit\/assets\/screenshot-1.png?rev=3661676","caption":"The same product page twice: what a shopper sees, and the Product JSON-LD this plugin publishes on it. Without the plugin that second panel is empty."},{"src":"https:\/\/ps.w.org\/webkoding-product-schema-crawl-audit\/assets\/screenshot-2.png?rev=3661676","caption":"The audit \u2014 your AI Visibility Score, how many products agents cannot identify, and exactly what is missing."},{"src":"https:\/\/ps.w.org\/webkoding-product-schema-crawl-audit\/assets\/screenshot-3.png?rev=3661676","caption":"Settings. There are two. They apply to the whole catalogue."}],"raw_content":"<!--section=description-->\n<p>Open one of your WooCommerce product pages and view the source. Search it for <code>\"@type\":\"Product\"<\/code>.<\/p>\n\n<p>On a clean WooCommerce install \u2014 the current release, WooCommerce's own Storefront theme, no other plugins \u2014 you will not find it. The page publishes a <code>BreadcrumbList<\/code> and nothing else. <strong>No Product. No price. No availability. No identifier.<\/strong><\/p>\n\n<p>To ChatGPT, Claude, Gemini, Perplexity and Google's shopping results, that page is not a product. It is text.<\/p>\n\n<h4>This is not an opinion. It is reproducible in two minutes<\/h4>\n\n<p>WooCommerce <em>generates<\/em> the data correctly \u2014 calling its generator by hand returns a complete Product node. But that generator is attached to the <code>woocommerce_single_product_summary<\/code> hook, and WooCommerce now renders product pages from its own block template, which never fires that hook. The data is built for an event that no longer happens, so nothing is ever queued for output.<\/p>\n\n<p>The breadcrumb survives because it is generated somewhere else.<\/p>\n\n<p>Nobody opted into this, and nothing in the admin tells you. It was verified on two independent clean installs, on two different WooCommerce versions, before a line of this plugin was written. Please verify it on your own store rather than taking our word for it \u2014 the instructions are in the first paragraph.<\/p>\n\n<h4>What this plugin does<\/h4>\n\n<ul>\n<li><strong>Restores the missing Product structured data<\/strong> on every product page: name, price, currency, availability, SKU, image, brand and GTIN.<\/li>\n<li><strong>Audits your store<\/strong> and scores it, with a plain list of what agents cannot see and why.<\/li>\n<li><strong>Unblocks the AI crawlers<\/strong> in robots.txt \u2014 GPTBot, ClaudeBot, PerplexityBot, Google-Extended and others.<\/li>\n<li><strong>Publishes \/llms.txt<\/strong>, the brief an assistant reads before deciding whether your store is worth crawling.<\/li>\n<\/ul>\n\n<p>It does not blindly inject a second Product node. It first checks whether Product schema already reaches the page \u2014 including from an SEO plugin \u2014 and stays silent if it does. Two conflicting Product nodes are worse for you than one missing.<\/p>\n\n<h4>No account, no subscription, no third party<\/h4>\n\n<p>Everything runs inside your own WordPress. This plugin contacts no external service and sends your catalogue nowhere.<\/p>\n\n<p>It makes exactly one network request, and it is to your own site: it fetches one of your own product pages over HTTP to see what a crawler would actually find there. Asking WooCommerce whether it <em>would<\/em> generate the data is a different question from whether the data reaches the page, and only the second one matters.<\/p>\n\n<h4>The paid add-on<\/h4>\n\n<p>A separate, paid add-on adds bulk barcode and brand editing, CSV import, an agent-readable product feed, and reporting on which AI crawlers really visited your store.<\/p>\n\n<p>It is not required, and this plugin is not a trial. Everything described above works permanently and for free. Your score is calculated only from the checks you actually have, so a store running just this plugin can reach 100 \u2014 you are never marked down for declining to buy anything.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin. WooCommerce must be active.<\/li>\n<li>Go to <strong>Schema Audit<\/strong> in the admin menu.<\/li>\n<li>Read the audit. The fixes are one click each.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20my%20store%20really%20missing%20this%3F\"><h3>Is my store really missing this?<\/h3><\/dt>\n<dd><p>Check before you trust us. Open a product page, view source, and search for <code>\"@type\":\"Product\"<\/code>. If it is not there, no AI assistant and no Google rich result can see your product's price, stock or identifier.<\/p><\/dd>\n<dt id=\"i%20already%20use%20yoast%20or%20rank%20math.%20do%20i%20need%20this%3F\"><h3>I already use Yoast or Rank Math. Do I need this?<\/h3><\/dt>\n<dd><p>Possibly not, and the plugin will tell you so honestly. If Product schema already reaches your product pages from any source, the plugin leaves it alone and reports that in the audit instead of adding a second, conflicting copy.<\/p><\/dd>\n<dt id=\"will%20this%20slow%20down%20my%20store%3F\"><h3>Will this slow down my store?<\/h3><\/dt>\n<dd><p>No. The schema is built from data WooCommerce already holds in memory for the page it is rendering. The audit runs only when you open the audit screen \u2014 never on the front end.<\/p><\/dd>\n<dt id=\"does%20it%20send%20my%20products%20anywhere%3F\"><h3>Does it send my products anywhere?<\/h3><\/dt>\n<dd><p>No. There is no external service and no account. See the Description.<\/p><\/dd>\n<dt id=\"can%20it%20invent%20my%20barcodes%3F\"><h3>Can it invent my barcodes?<\/h3><\/dt>\n<dd><p>No, and it would be dangerous if it tried: a wrong GTIN identifies somebody else's product. It can only tell you which products are missing one.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>The third dashboard card showed a bare tick or dash instead of a figure, and did not repaint after a re-scan. It now states how many product pages publish Product schema, out of the catalogue total, and updates with the rest of the audit.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Restores the Product structured data missing from stock WooCommerce product pages.<\/li>\n<li>Store audit with an AI Visibility Score.<\/li>\n<li>robots.txt rules for the AI crawlers.<\/li>\n<li>\/llms.txt.<\/li>\n<li>Registers a read-only ability (WordPress 6.9+ Abilities API) so an AI agent can ask the store how visible it is. It cannot change anything.<\/li>\n<\/ul>","raw_excerpt":"Stock WooCommerce publishes no Product structured data on product pages. This plugin puts it back, so AI assistants and Google can see what you sell.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/340783","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=340783"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/webkoding"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=340783"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=340783"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=340783"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=340783"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=340783"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=340783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}