{"id":294906,"date":"2026-04-11T07:07:29","date_gmt":"2026-04-11T07:07:29","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/essiow-ai-seo-suite-for-woocommerce\/"},"modified":"2026-09-28T10:14:25","modified_gmt":"2026-09-28T10:14:25","slug":"essiow","status":"publish","type":"plugin","link":"https:\/\/vec.wordpress.org\/plugins\/essiow\/","author":23472740,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.4","stable_tag":"1.5.4","tested":"6.9.10","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Essiow \u2014 AI SEO Suite for WooCommerce","header_author":"Essiow","header_description":"All-in-one AI SEO suite for WooCommerce. Auto-generate optimized product descriptions, category pages, blog articles (1500-5000 words), and add an AI sales chatbot to your store. Supports Yoast SEO, Rank Math, AIOSEO. 8 languages, bulk optimization, JSON-LD schema.","assets_banners_color":"ffffff","last_updated":"2026-09-28 10:14:25","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/essiow.com\/plugin","header_author_uri":"https:\/\/essiow.com","rating":0,"author_block_rating":0,"active_installs":10,"downloads":2277,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.10":{"tag":"1.1.10","author":"boni58","date":"2026-05-06 09:46:08","revision":3524143},"1.1.11":{"tag":"1.1.11","author":"boni58","date":"2026-05-06 09:52:11","revision":3524153},"1.1.12":{"tag":"1.1.12","author":"boni58","date":"2026-05-06 10:07:02","revision":3524179},"1.1.13":{"tag":"1.1.13","author":"boni58","date":"2026-05-06 10:27:52","revision":3524214},"1.1.14":{"tag":"1.1.14","author":"boni58","date":"2026-05-06 11:55:10","revision":3524360},"1.1.15":{"tag":"1.1.15","author":"boni58","date":"2026-05-06 14:38:28","revision":3524530},"1.1.16":{"tag":"1.1.16","author":"boni58","date":"2026-05-06 15:33:20","revision":3524587},"1.1.17":{"tag":"1.1.17","author":"boni58","date":"2026-05-06 16:54:30","revision":3524665},"1.1.18":{"tag":"1.1.18","author":"boni58","date":"2026-05-07 12:36:43","revision":3525532},"1.1.19":{"tag":"1.1.19","author":"boni58","date":"2026-05-07 13:09:49","revision":3525557},"1.1.20":{"tag":"1.1.20","author":"boni58","date":"2026-05-07 14:01:15","revision":3525611},"1.1.21":{"tag":"1.1.21","author":"boni58","date":"2026-05-07 14:11:37","revision":3525625},"1.1.22":{"tag":"1.1.22","author":"boni58","date":"2026-05-07 15:02:02","revision":3525670},"1.1.23":{"tag":"1.1.23","author":"boni58","date":"2026-05-07 15:21:30","revision":3525706},"1.1.24":{"tag":"1.1.24","author":"boni58","date":"2026-05-07 15:38:00","revision":3525740},"1.1.25":{"tag":"1.1.25","author":"boni58","date":"2026-05-07 15:49:25","revision":3525753},"1.1.26":{"tag":"1.1.26","author":"boni58","date":"2026-05-07 16:06:04","revision":3525780},"1.1.27":{"tag":"1.1.27","author":"boni58","date":"2026-05-07 17:05:51","revision":3525835},"1.1.28":{"tag":"1.1.28","author":"boni58","date":"2026-05-07 18:07:29","revision":3525869},"1.1.29":{"tag":"1.1.29","author":"boni58","date":"2026-05-07 18:40:28","revision":3525888},"1.1.30":{"tag":"1.1.30","author":"boni58","date":"2026-05-07 19:46:18","revision":3525925},"1.1.31":{"tag":"1.1.31","author":"boni58","date":"2026-05-07 20:28:58","revision":3525941},"1.1.32":{"tag":"1.1.32","author":"boni58","date":"2026-05-07 20:43:40","revision":3525951},"1.1.33":{"tag":"1.1.33","author":"boni58","date":"2026-05-07 21:05:32","revision":3525965},"1.1.34":{"tag":"1.1.34","author":"boni58","date":"2026-05-07 21:14:36","revision":3525975},"1.1.35":{"tag":"1.1.35","author":"boni58","date":"2026-05-07 21:45:04","revision":3525996},"1.1.36":{"tag":"1.1.36","author":"boni58","date":"2026-05-07 22:10:29","revision":3526009},"1.1.37":{"tag":"1.1.37","author":"boni58","date":"2026-05-07 22:49:57","revision":3526024},"1.1.38":{"tag":"1.1.38","author":"boni58","date":"2026-05-07 23:12:18","revision":3526038},"1.1.39":{"tag":"1.1.39","author":"boni58","date":"2026-05-07 23:39:05","revision":3526047},"1.1.40":{"tag":"1.1.40","author":"boni58","date":"2026-05-08 00:02:15","revision":3526063},"1.1.41":{"tag":"1.1.41","author":"boni58","date":"2026-05-08 00:21:22","revision":3526067},"1.1.42":{"tag":"1.1.42","author":"boni58","date":"2026-05-08 07:54:51","revision":3526252},"1.1.43":{"tag":"1.1.43","author":"boni58","date":"2026-05-08 08:00:34","revision":3526258},"1.1.44":{"tag":"1.1.44","author":"boni58","date":"2026-05-08 08:07:51","revision":3526262},"1.1.45":{"tag":"1.1.45","author":"boni58","date":"2026-05-08 08:19:54","revision":3526279},"1.1.46":{"tag":"1.1.46","author":"boni58","date":"2026-05-08 08:50:35","revision":3526300},"1.1.47":{"tag":"1.1.47","author":"boni58","date":"2026-05-08 09:16:32","revision":3526315},"1.1.48":{"tag":"1.1.48","author":"boni58","date":"2026-05-08 09:57:32","revision":3526348},"1.1.49":{"tag":"1.1.49","author":"boni58","date":"2026-05-08 10:13:12","revision":3526366},"1.1.5":{"tag":"1.1.5","author":"boni58","date":"2026-04-11 07:22:48","revision":3503805},"1.1.50":{"tag":"1.1.50","author":"boni58","date":"2026-05-08 10:44:28","revision":3526405},"1.1.51":{"tag":"1.1.51","author":"boni58","date":"2026-05-08 10:51:50","revision":3526419},"1.1.52":{"tag":"1.1.52","author":"boni58","date":"2026-05-08 11:12:54","revision":3526444},"1.1.53":{"tag":"1.1.53","author":"boni58","date":"2026-05-08 11:27:53","revision":3526461},"1.1.54":{"tag":"1.1.54","author":"boni58","date":"2026-05-08 11:47:32","revision":3526473},"1.1.55":{"tag":"1.1.55","author":"boni58","date":"2026-05-08 12:34:35","revision":3526527},"1.1.56":{"tag":"1.1.56","author":"boni58","date":"2026-05-08 13:16:22","revision":3526568},"1.1.57":{"tag":"1.1.57","author":"boni58","date":"2026-05-08 13:44:19","revision":3526590},"1.1.58":{"tag":"1.1.58","author":"boni58","date":"2026-05-08 14:14:38","revision":3526607},"1.1.59":{"tag":"1.1.59","author":"boni58","date":"2026-05-13 08:41:03","revision":3530718},"1.1.6":{"tag":"1.1.6","author":"boni58","date":"2026-04-29 05:45:56","revision":3517976},"1.1.60":{"tag":"1.1.60","author":"boni58","date":"2026-05-13 09:51:17","revision":3530781},"1.1.61":{"tag":"1.1.61","author":"boni58","date":"2026-05-13 11:42:35","revision":3530880},"1.1.62":{"tag":"1.1.62","author":"boni58","date":"2026-05-13 12:39:29","revision":3530947},"1.1.63":{"tag":"1.1.63","author":"boni58","date":"2026-05-14 13:16:53","revision":3532034},"1.1.64":{"tag":"1.1.64","author":"boni58","date":"2026-05-14 13:28:02","revision":3532052},"1.1.65":{"tag":"1.1.65","author":"boni58","date":"2026-05-14 15:16:11","revision":3532190},"1.1.66":{"tag":"1.1.66","author":"boni58","date":"2026-05-14 15:31:46","revision":3532203},"1.1.67":{"tag":"1.1.67","author":"boni58","date":"2026-05-14 15:56:58","revision":3532237},"1.1.68":{"tag":"1.1.68","author":"boni58","date":"2026-05-14 17:15:15","revision":3532330},"1.1.69":{"tag":"1.1.69","author":"boni58","date":"2026-05-14 17:35:33","revision":3532357},"1.1.7":{"tag":"1.1.7","author":"boni58","date":"2026-05-06 08:12:10","revision":3524066},"1.1.70":{"tag":"1.1.70","author":"boni58","date":"2026-05-14 18:25:08","revision":3532401},"1.1.71":{"tag":"1.1.71","author":"boni58","date":"2026-05-14 20:23:49","revision":3532468},"1.1.72":{"tag":"1.1.72","author":"boni58","date":"2026-05-14 20:32:26","revision":3532474},"1.1.73":{"tag":"1.1.73","author":"boni58","date":"2026-05-14 20:48:14","revision":3532478},"1.1.74":{"tag":"1.1.74","author":"boni58","date":"2026-05-14 20:57:03","revision":3532485},"1.1.75":{"tag":"1.1.75","author":"boni58","date":"2026-05-14 21:28:59","revision":3532499},"1.1.76":{"tag":"1.1.76","author":"boni58","date":"2026-05-21 10:25:51","revision":3541556},"1.1.77":{"tag":"1.1.77","author":"boni58","date":"2026-05-21 10:32:57","revision":3541592},"1.1.78":{"tag":"1.1.78","author":"boni58","date":"2026-09-17 11:50:47","revision":3700211},"1.1.8":{"tag":"1.1.8","author":"boni58","date":"2026-05-06 09:18:16","revision":3524120},"1.1.81":{"tag":"1.1.81","author":"boni58","date":"2026-09-17 18:00:28","revision":3700762},"1.1.9":{"tag":"1.1.9","author":"boni58","date":"2026-05-06 09:37:49","revision":3524136},"1.2.0":{"tag":"1.2.0","author":"boni58","date":"2026-09-18 11:20:50","revision":3701873},"1.3.0":{"tag":"1.3.0","author":"boni58","date":"2026-09-18 17:07:05","revision":3702383},"1.4.0":{"tag":"1.4.0","author":"boni58","date":"2026-09-18 23:00:05","revision":3702839},"1.4.1":{"tag":"1.4.1","author":"boni58","date":"2026-09-23 09:32:07","revision":3708975},"1.4.2":{"tag":"1.4.2","author":"boni58","date":"2026-09-24 20:11:42","revision":3711965},"1.5.0":{"tag":"1.5.0","author":"boni58","date":"2026-09-25 10:32:11","revision":3712861},"1.5.1":{"tag":"1.5.1","author":"boni58","date":"2026-09-25 16:24:54","revision":3713316},"1.5.2":{"tag":"1.5.2","author":"boni58","date":"2026-09-25 20:13:08","revision":3713524},"1.5.3":{"tag":"1.5.3","author":"boni58","date":"2026-09-26 06:13:49","revision":3713891},"1.5.4":{"tag":"1.5.4","author":"boni58","date":"2026-09-28 10:14:25","revision":3716873}},"upgrade_notice":{"1.5.4":"<p>A &quot;Fix everything&quot; button per diagnostic family, product titles the classification could not fix are now rewritten, and bulk jobs explain why they wait.<\/p>","1.5.3":"<p>Product titles with a technical acronym (PTAC, DIN\u2026) are no longer refused, and &quot;Fix everything&quot; removes each fixed product from the diagnostic as it goes. The diagnostic runs again after the update.<\/p>","1.5.2":"<p>&quot;Fix everything&quot; now waits for a running writing to finish instead of failing every following step.<\/p>","1.5.1":"<p>Fixed issues now disappear from the screen at once, products get their Google category and a corrected title in one pass, and the feed carries shipping costs. The diagnostic runs again after the update.<\/p>","1.5.0":"<p>Fix every Merchant Center issue in one click, with one set of company details copied to your pages, structured data, footer and Merchant Center account. Adds the online withdrawal form required in the EU, a cookie banner and a default shipping zone, and removes several false alarms. Out-of-stock products and offers Google would refuse (no price, image too small) are no longer sent in the feed. The diagnostic runs again automatically after the update.<\/p>","1.4.2":"<p>Accept the Google Merchant Center terms directly from the Connection tab \u2014 explicitly, with the official link to Google&#039;s text. The claim refusal reason is now shown, and the verify button disappears once the site is claimed.<\/p>","1.4.1":"<p>A product scoring 70 or more now counts as optimized, and the score badge, score card, Score filter and optimized status all follow that one threshold. Shops still on the former default of 80 are moved to 70 once; a threshold you chose yourself is kept.<\/p>","1.4.0":"<p>New Merchant Center page: a 95-point audit of your shop against what Google checks before it accepts an offer, reversible one-click fixes, the optional Google connection, and the account and product problems Google reports. Feed and markup prices now come from the same source as your product page. The audit table, the new options and the crons are created at the first request after the update \u2014 no reactivation, nothing lost. Essiow prepares and fixes; Google decides. Requires WordPress 5.8+ and PHP 7.4+.<\/p>","1.3.0":"<p>Four new modules \u2014 Speed (Core Web Vitals and technical audit), Off-site (brand mentions, outreach targets, lost links), Product feeds (Google Merchant Center, Meta, Pinterest) and the Content plan \u2014 plus <code>ProductGroup<\/code> schema for variable products, image sitemap and hreflang. New tables and options are created at the first request after the update; no reactivation, nothing lost. Requires WordPress 5.8+ and PHP 7.4+.<\/p>","1.2.0":"<p>Major admin redesign (dashboard, products, categories, blog, internal links, Search Console, redirects, automation, AI agent), persistent SEO scores, and automatic data migration at the first request after the update \u2014 no reactivation needed, your API key, settings, optimizations and redirects are kept. Requires WordPress 5.8+ and PHP 7.4+.<\/p>","1.1.81":"<p>All source strings are now in English with complete French, Spanish, German, Italian, Portuguese and Dutch translations; new Automation menu. Safe update.<\/p>","1.1.29":"<p>Massive SEO release : AI re-optimize uses your real Search Console queries (top 10 \/ striking distance), new Opportunities tab (cannibalization, low CTR, lost rankings), Issues report, Audit tab (image SEO + schemas), auto BreadcrumbList + FAQPage JSON-LD. Required.<\/p>","1.1.28":"<p>Adds Pause \/ Resume \/ Cancel controls during bulk optimization. Leaving the page now cancels the bulk automatically (saved items stay, pending queue is dropped). Auto-resume on page load removed by design.<\/p>","1.1.27":"<p>Fixes Search Console KPIs stuck at 0 when the WP server returns 503 on admin-ajax (Wordfence\/Cloudflare overload). JS now retries with exponential backoff. Recommended.<\/p>","1.1.26":"<p>Auto-syncs Search Console data on page load (no more empty Overview after connecting), populates the Performance tab with striking-distance keywords, and auto-picks the property variant with the most actual data.<\/p>","1.1.25":"<p>Cosmetic fix: replaces the misleading &quot;Traitement en cours\u2026&quot; placeholder with a clearer empty state on the Search Console Indexation overview.<\/p>","1.1.24":"<p>Removes the manual &quot;Change property&quot; UI now that auto-fallback handles property variants automatically.<\/p>","1.1.23":"<p>Search Console connection is now self-healing: tries every property variant (sc-domain, www, http) until one works, and surfaces Google&#039;s real error message when none does. Recommended.<\/p>","1.1.22":"<p>Fixes Search Console 404 sync errors when your GSC property URL doesn&#039;t exactly match the WP site URL (sc-domain, www, http variants). Adds a manual &quot;Change property&quot; picker. Recommended.<\/p>","1.1.21":"<p>Critical fixes for 1.1.20 Search Console: OAuth response format, missing cryptography dependency, empty Indexation tab, indexation column on categories, <code>is_connected<\/code> guards, missing strings. Required if you upgraded to 1.1.20.<\/p>","1.1.20":"<p>Major release: full Google Search Console + IndexNow integration. New &quot;Search Console&quot; admin menu with stats, indexation status, sitemap submission, auto IndexNow on publish, and a per-product &quot;Indexation&quot; column. Recommended.<\/p>","1.1.19":"<p>Removes the page reload after a single category optimize (so concurrent optimizations don&#039;t get killed) and silences the spurious &quot;Task not found&quot; toast on page reload. Recommended.<\/p>","1.1.18":"<p>Fixes three concurrency bugs in 1.1.17 bulk: filtered re-selection re-running everything, items getting stuck in queue from parallel poll-driven processing, and spurious &quot;Task not found&quot; errors during transient races. Recommended.<\/p>","1.1.17":"<p>Critical fix for bulk and parallel optimizations stopping after 3-5 items. Each Flask call is now isolated to its own short-lived PHP process so <code>max_execution_time<\/code> and FPM worker saturation can&#039;t interrupt the queue. Recommended.<\/p>","1.1.16":"<p>Polish on 1.1.15 bulk: stuck-item recovery, clean cancel\/error UX, missing strings. Recommended.<\/p>","1.1.15":"<p>Major bulk overhaul: full async dispatch (no more 504 on category bulk), per-row progress states like single optimize, percentage bar everywhere, cancel button, auto-resume on page reload. Recommended for anyone using bulk optimization.<\/p>","1.1.14":"<p>Adds a filemtime-based cache buster so the new admin JS is loaded immediately after update, plus session\/timeout hardening on legacy sync endpoints. Recommended for anyone still seeing 504 on category optimize after 1.1.13.<\/p>","1.1.13":"<p>Fixes 504 Gateway Timeout on single-product and single-category optimization (same async dispatch as blog), and bans colons in AI-generated titles. Recommended update.<\/p>","1.1.12":"<p>Definitive fix for &quot;Erreur r\u00e9seau \/ 504&quot; on sites behind Cloudflare + Wordfence (or similar). Concurrent polls no longer block on PHP sessions, the loopback dispatch is removed, and the JS tolerates transient network errors. Recommended update for everyone on 1.1.8 \u2192 1.1.11.<\/p>","1.1.11":"<p>Critical fix for &quot;Erreur r\u00e9seau \/ 504&quot; when generating blog articles on hosts behind Cloudflare\/Caddy\/strict NGINX. The browser response now closes before the AI call runs. Recommended update.<\/p>","1.1.10":"<p>Fixes a payload mismatch that prevented categories and blog links from reaching the AI for articles and category pages, and adds JSON-LD Article schema. Recommended update for anyone on 1.1.8 or 1.1.9.<\/p>","1.1.9":"<p>Major content quality fix: AI now writes intent-driven titles (no more &quot;guide complet&quot; clich\u00e9s), stops paraphrasing the brief (&quot;Introduction&quot;, &quot;voici les liens&quot;), and articles publish as real Gutenberg blocks instead of a single HTML block. Recommended update.<\/p>","1.1.6":"<p>Fixes a &quot;Network error&quot; that could appear when generating blog articles on hosts with short HTTP proxy timeouts. Recommended update.<\/p>","1.0.0":"<p>Initial release of Essiow AI SEO Suite for WooCommerce.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3503791,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3503791,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3503791,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3503791,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.10","1.1.11","1.1.12","1.1.13","1.1.14","1.1.15","1.1.16","1.1.17","1.1.18","1.1.19","1.1.20","1.1.21","1.1.22","1.1.23","1.1.24","1.1.25","1.1.26","1.1.27","1.1.28","1.1.29","1.1.30","1.1.31","1.1.32","1.1.33","1.1.34","1.1.35","1.1.36","1.1.37","1.1.38","1.1.39","1.1.40","1.1.41","1.1.42","1.1.43","1.1.44","1.1.45","1.1.46","1.1.47","1.1.48","1.1.49","1.1.5","1.1.50","1.1.51","1.1.52","1.1.53","1.1.54","1.1.55","1.1.56","1.1.57","1.1.58","1.1.59","1.1.6","1.1.60","1.1.61","1.1.62","1.1.63","1.1.64","1.1.65","1.1.66","1.1.67","1.1.68","1.1.69","1.1.7","1.1.70","1.1.71","1.1.72","1.1.73","1.1.74","1.1.75","1.1.76","1.1.77","1.1.78","1.1.8","1.1.81","1.1.9","1.2.0","1.3.0","1.4.0","1.4.1","1.4.2","1.5.0","1.5.1","1.5.2","1.5.3","1.5.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3702837,"resolution":"1","location":"assets","locale":"","width":1280,"height":1000},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3702837,"resolution":"10","location":"assets","locale":"","width":1280,"height":1000},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3702837,"resolution":"11","location":"assets","locale":"","width":1280,"height":1000},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3702837,"resolution":"12","location":"assets","locale":"","width":1280,"height":1000},"screenshot-13.png":{"filename":"screenshot-13.png","revision":3702837,"resolution":"13","location":"assets","locale":"","width":1280,"height":1000},"screenshot-14.png":{"filename":"screenshot-14.png","revision":3702837,"resolution":"14","location":"assets","locale":"","width":1280,"height":1000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3702837,"resolution":"2","location":"assets","locale":"","width":1280,"height":1000},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3702837,"resolution":"3","location":"assets","locale":"","width":1280,"height":1000},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3702837,"resolution":"4","location":"assets","locale":"","width":1280,"height":1000},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3702837,"resolution":"5","location":"assets","locale":"","width":1280,"height":1000},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3702837,"resolution":"6","location":"assets","locale":"","width":1280,"height":1000},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3702837,"resolution":"7","location":"assets","locale":"","width":1280,"height":1000},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3702837,"resolution":"8","location":"assets","locale":"","width":1280,"height":1000},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3702837,"resolution":"9","location":"assets","locale":"","width":1280,"height":1000}},"screenshots":{"1":"Dashboard: site SEO score, KPI, prioritized to-do list and module overview","2":"Products: SEO score per product, server-side filters, bulk optimization and audit panel","3":"Categories: same workflow for product categories","4":"Blog: three-step article generator with SEO research, article list and bulk generation","5":"Internal links: overview, suggestions, automatic mesh and link graph","6":"Search Console: connection status, performance, indexation, opportunities","7":"Redirects, 404 monitor and lost links","8":"Automation: automations, content plan, queue and log","9":"Speed: Core Web Vitals, Lighthouse per template and technical audit","10":"Off-site: brand mentions, outreach targets and recovered visits","11":"Feeds: feed URLs per platform and free-listing eligibility","12":"Merchant Center: readiness score, the 95-point diagnostic grouped by family with its one-click fixes, the Google connection, the account and product problems reported by Google","13":"AI sales agent: settings with live preview, conversations and leads","14":"Settings and help"}},"plugin_section":[],"plugin_tags":[2353,65424,127115,186,286],"plugin_category":[45,55],"plugin_contributors":[259943],"plugin_business_model":[],"class_list":["post-294906","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-merchant-center","plugin_tags-search-console","plugin_tags-seo","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-seo-and-marketing","plugin_contributors-boni58","plugin_committers-boni58"],"banners":{"banner":"https:\/\/ps.w.org\/essiow\/assets\/banner-772x250.png?rev=3503791","banner_2x":"https:\/\/ps.w.org\/essiow\/assets\/banner-1544x500.png?rev=3503791","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/essiow\/assets\/icon-128x128.png?rev=3503791","icon_2x":"https:\/\/ps.w.org\/essiow\/assets\/icon-256x256.png?rev=3503791","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/essiow\/assets\/screenshot-1.png?rev=3702837","caption":"Dashboard: site SEO score, KPI, prioritized to-do list and module overview"},{"src":"https:\/\/ps.w.org\/essiow\/assets\/screenshot-2.png?rev=3702837","caption":"Products: SEO score per product, server-side filters, bulk optimization and audit panel"},{"src":"https:\/\/ps.w.org\/essiow\/assets\/screenshot-3.png?rev=3702837","caption":"Categories: same workflow for product categories"},{"src":"https:\/\/ps.w.org\/essiow\/assets\/screenshot-4.png?rev=3702837","caption":"Blog: three-step article generator with SEO research, article list and bulk generation"},{"src":"https:\/\/ps.w.org\/essiow\/assets\/screenshot-5.png?rev=3702837","caption":"Internal links: overview, suggestions, automatic mesh and link graph"},{"src":"https:\/\/ps.w.org\/essiow\/assets\/screenshot-6.png?rev=3702837","caption":"Search Console: connection status, performance, indexation, opportunities"},{"src":"https:\/\/ps.w.org\/essiow\/assets\/screenshot-7.png?rev=3702837","caption":"Redirects, 404 monitor and lost links"},{"src":"https:\/\/ps.w.org\/essiow\/assets\/screenshot-8.png?rev=3702837","caption":"Automation: automations, content plan, queue and log"},{"src":"https:\/\/ps.w.org\/essiow\/assets\/screenshot-9.png?rev=3702837","caption":"Speed: Core Web Vitals, Lighthouse per template and technical audit"},{"src":"https:\/\/ps.w.org\/essiow\/assets\/screenshot-10.png?rev=3702837","caption":"Off-site: brand mentions, outreach targets and recovered visits"},{"src":"https:\/\/ps.w.org\/essiow\/assets\/screenshot-11.png?rev=3702837","caption":"Feeds: feed URLs per platform and free-listing eligibility"},{"src":"https:\/\/ps.w.org\/essiow\/assets\/screenshot-12.png?rev=3702837","caption":"Merchant Center: readiness score, the 95-point diagnostic grouped by family with its one-click fixes, the Google connection, the account and product problems reported by Google"},{"src":"https:\/\/ps.w.org\/essiow\/assets\/screenshot-13.png?rev=3702837","caption":"AI sales agent: settings with live preview, conversations and leads"},{"src":"https:\/\/ps.w.org\/essiow\/assets\/screenshot-14.png?rev=3702837","caption":"Settings and help"}],"raw_content":"<!--section=description-->\n<p><strong>Essiow turns your WooCommerce store into a search-traffic machine.<\/strong> It plugs into Google Search Console, watches what your customers actually search for, and rewrites your product pages, category pages and blog articles to capture every query you nearly rank on.<\/p>\n\n<p>You don't write SEO. You don't pick keywords. You don't guess what works. You click a button and the right pages get fixed.<\/p>\n\n<h4>What Essiow does for you<\/h4>\n\n<p><strong>1. Auto-rewrites your product pages.<\/strong> Long description, short pitch, meta title, meta description, focus keyword, image alt texts \u2014 all generated from your real GSC queries when connected, in 8 languages, in your store's tone. Compatible with Yoast SEO, Rank Math and All in One SEO.<\/p>\n\n<p><strong>2. Turns empty category pages into landing pages.<\/strong> Bare category pages don't rank. Essiow generates 1,500-2,500 words of category content with FAQ, comparison tables and links to your top products \u2014 the page Google needs to rank you in position 1 instead of position 30.<\/p>\n\n<p><strong>3. Writes blog articles that pull traffic to your products.<\/strong> 1,500-5,000 word articles with internal links to the products mentioned, a structured FAQ, automatic featured image. Suggestions based on what your audience already searches.<\/p>\n\n<p><strong>4. Spots and grabs every \"almost-ranking\" keyword.<\/strong> When Google Search Console is connected, Essiow surfaces every query where your store sits at position 11-20 \u2014 the closest gains. One click rewrites the matching page targeting that exact query.<\/p>\n\n<p><strong>5. Resolves cannibalization in two clicks.<\/strong> Two of your pages competing for the same query? Essiow detects it, picks the strongest one, and consolidates the canonical from the others \u2014 without deleting anything.<\/p>\n\n<p><strong>6. Indexes everything instantly.<\/strong> Bing, Yandex, Naver, Seznam, Amazon and Yep are pinged the second you publish. Google gets the URL pushed via sitemap re-submit + URL Inspection refresh + a one-click manual indexation request. The Search Console page shows clicks, impressions, CTR and position over 7 days to 16 months, the Google status of every URL, and a diagnostics panel when a sync returns nothing.<\/p>\n\n<p><strong>7. Builds your internal mesh.<\/strong> Every page gets a click depth and an inbound \/ outbound count (menus, archives, cross-sells included). Orphans, weakly linked pages and dead-ends are listed with one-click fixes, suggestions can be inserted in batches or from the post editor, and the automatic mesh links the right pages together \u2014 reversible, with a mesh score \/ 100 and an anchor report.<\/p>\n\n<p><strong>8. Keeps your link equity.<\/strong> 301 \/ 302 \/ 410 rules (exact or regex) with a live source tester, automatic redirects when a product, category or article is deleted or renamed, a grouped 404 monitor with one-click fixes, CSV import \/ export, and an on\/off switch per rule.<\/p>\n\n<p><strong>9. Runs on autopilot.<\/strong> New products and categories are optimized when published, declining pages are re-optimized, missing alt texts are written on upload, articles are scheduled from your Search Console data, and a weekly e-mail report sums it up \u2014 all within a daily credit cap you control.<\/p>\n\n<p><strong>10. AI sales agent on your storefront.<\/strong> A chatbot that knows your full catalog, handles objections, can issue promo codes within your discount limit, and quotes your delivery \/ returns \/ payment policy. Conversations and leads are listed in the admin (CSV export, GDPR retention).<\/p>\n\n<p><strong>11. Exposes your catalog to ChatGPT, Perplexity and Claude.<\/strong> Toggle on and Essiow serves a clean <code>\/llms.txt<\/code> at your root. It is an answer-engine signal, not a Google one: Google states it ignores the file, the other assistants read it.<\/p>\n\n<p><strong>12. Puts your catalog in the shopping feeds.<\/strong> One <code>ProductGroup<\/code> markup with an offer per variant makes your variable products eligible for Google free listings, and a product feed file (Google Merchant Center, Meta, Pinterest) is served by your shop and fetched automatically. The file alone needs no connection: you paste its URL in the platform and it fetches daily.<\/p>\n\n<p><strong>13. Watches your page experience.<\/strong> Core Web Vitals from real Chrome users (LCP, INP, CLS) plus a Lighthouse score per page template, a ~40-point technical audit of your server, database, assets and images, and one-click fixes for the safe ones \u2014 each reversible.<\/p>\n\n<p><strong>14. Finds your off-site opportunities.<\/strong> Essiow searches for pages that mention your brand without linking to it, lists sites worth contacting, and reports external links that now hit a 404 so you can redirect them in one click. It detects and drafts the e-mail \u2014 <strong>it never creates a link for you<\/strong>, and buying links is not part of the product.<\/p>\n\n<p><strong>15. Publishes on a rhythm you set.<\/strong> The content plan turns keywords, your categories and your Search Console gaps into a 14-day calendar: pick how many articles per day or per week, the days, the hour and the output (draft, scheduled or published). An activity register keeps every long action marked until it finishes \u2014 closing the tab or reloading the page changes nothing.<\/p>\n\n<p><strong>16. Gets your shop ready for Google Merchant Center.<\/strong> Most refusals and suspensions are about the <em>shop<\/em>, not the feed: a return policy left as a draft, the WooCommerce template text still in place, guest checkout closed, prices shown excluding tax, a page nobody can reach. Essiow audits 95 of those points the way a Google reviewer reads your site, tells you what is missing in plain words, and fixes what can safely be fixed \u2014 every fix reversible. Connect your Merchant Center account and you also get the account and product problems Google reports, in your own language, with the exact attribute in cause, plus an e-mail the day the account gets suspended. <strong>Essiow prepares, diagnoses and fixes; Google decides<\/strong> \u2014 no plugin can promise an approved account, which is why the review request stays locked until every blocking check is green (you only get one real appeal).<\/p>\n\n<h4>Why it ranks better<\/h4>\n\n<p>When Search Console is connected, every optimization sees the actual queries the page is already ranking on, the striking-distance keywords just outside page 1, and the CTR alerts when a title is converting poorly. The AI doesn't guess keywords \u2014 it gets them from Google itself, and writes around what's already working.<\/p>\n\n<h4>Made for shop owners, not SEOs<\/h4>\n\n<ul>\n<li>No keyword research needed<\/li>\n<li>No technical setup beyond pasting an API key<\/li>\n<li>Every action shows its credit cost upfront \u2014 no surprise billing<\/li>\n<li>Bulk optimize, pause, resume, restore original \u2014 your content is always recoverable<\/li>\n<li>8 languages, 4 writing tones, 3 content lengths<\/li>\n<li>A persistent SEO score \/ 100 on every product and category, with a factor-by-factor audit, filters and sorting<\/li>\n<li>One consistent admin: a dashboard with a site score and a prioritized to-do list, KPI on every page, server-side filters, side panels for previews, a floating bar for bulk actions<\/li>\n<li>Every long action stays marked until it ends, survives a page reload, and is listed in one activity centre<\/li>\n<\/ul>\n\n<h4>Compatible &amp; safe<\/h4>\n\n<ul>\n<li>WooCommerce HPOS compatible<\/li>\n<li>Works alongside Yoast SEO \/ Rank Math \/ All in One SEO (writes to all three)<\/li>\n<li>GDPR compliant (auto-delete chat data after 90 days)<\/li>\n<li>Original content backed up the first time you optimize \u2014 one-click restore<\/li>\n<\/ul>\n\n<h4>How credits work<\/h4>\n\n<ul>\n<li><strong>1 credit<\/strong> per product optimization<\/li>\n<li><strong>1 credit<\/strong> per category optimization<\/li>\n<li><strong>3 credits<\/strong> per blog article<\/li>\n<li><strong>2 credits<\/strong> per AI Vision alt text generation<\/li>\n<li>All indexation actions, audits, internal-link suggestions, mesh-score, \/llms.txt, product feeds, Core Web Vitals, the off-site scan and the whole Merchant Center diagnostic \u2014 <strong>free<\/strong> (no AI involved)<\/li>\n<li>Inside Merchant Center, only the <strong>assisted<\/strong> fixes call the AI (a return, shipping or contact page written from your own settings, a product title or description rewritten to the feed rules). Automatic fixes \u2014 publishing a draft page, reopening guest checkout, switching prices to tax-included \u2014 cost nothing.<\/li>\n<li>Credits are debited only on success. Failed AI calls don't consume credits.<\/li>\n<li>Purchased credits never expire (free trial credits expire after 30 days)<\/li>\n<\/ul>\n\n<h4>External Service<\/h4>\n\n<p>This plugin connects to the Essiow API at <code>https:\/\/essiow.com\/api\/v1<\/code> to process AI content generation. Your product data (names, descriptions, prices, categories) is sent to the Essiow servers where it is processed using OpenAI's models. No data is stored beyond what is needed to track your credit usage.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/essiow.com\/terms\">Essiow Terms of Service<\/a><\/li>\n<li><a href=\"https:\/\/essiow.com\/privacy\">Essiow Privacy Policy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>essiow<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to <strong>Essiow &gt; Settings<\/strong> and enter your API key from <a href=\"https:\/\/essiow.com\">essiow.com<\/a><\/li>\n<li>Click \"Test Connection\" to verify<\/li>\n<li>Start optimizing from <strong>Essiow &gt; Products<\/strong> or <strong>Essiow &gt; Categories<\/strong><\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20essiow%20account%3F\"><h3>Do I need an Essiow account?<\/h3><\/dt>\n<dd><p>Yes. Create a free account at <a href=\"https:\/\/essiow.com\">essiow.com<\/a> to get your API key and 10 free credits.<\/p><\/dd>\n<dt id=\"do%20i%20need%20technical%20skills%3F\"><h3>Do I need technical skills?<\/h3><\/dt>\n<dd><p>No. If you can install a WordPress plugin, you can use Essiow. Everything is done in a few clicks.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20know%20seo%3F\"><h3>Do I need to know SEO?<\/h3><\/dt>\n<dd><p>No. Essiow does the SEO work : it picks the keywords (from Google Search Console when connected), writes the meta tags, generates the schema, builds the internal links and submits everything to search engines. You just click \"Optimize\".<\/p><\/dd>\n<dt id=\"why%20does%20connecting%20google%20search%20console%20matter%3F\"><h3>Why does connecting Google Search Console matter?<\/h3><\/dt>\n<dd><p>With GSC connected, every optimization is fed with the real queries your page already ranks on. Essiow finds queries where you sit at position 11-20 (just outside page 1) and rewrites the matching page targeting that exact query. Without GSC, optimizations are still good \u2014 but generic. With GSC, they're surgical.<\/p><\/dd>\n<dt id=\"will%20optimizing%20break%20my%20existing%20content%3F\"><h3>Will optimizing break my existing content?<\/h3><\/dt>\n<dd><p>No. The first time a product or category is optimized, the original content is backed up automatically. One click in the preview modal restores it.<\/p><\/dd>\n<dt id=\"which%20seo%20plugins%20are%20supported%3F\"><h3>Which SEO plugins are supported?<\/h3><\/dt>\n<dd><p>Essiow works with Yoast SEO, Rank Math, and All in One SEO. It writes to all three formats simultaneously, so switching SEO plugin later does not lose your data.<\/p><\/dd>\n<dt id=\"is%20my%20data%20safe%3F\"><h3>Is my data safe?<\/h3><\/dt>\n<dd><p>Your product data is sent to Essiow servers only during optimization. It is processed in real-time and not stored beyond credit-tracking metadata. Chat conversations are auto-deleted after 90 days per GDPR requirements.<\/p><\/dd>\n<dt id=\"do%20credits%20expire%3F\"><h3>Do credits expire?<\/h3><\/dt>\n<dd><p>Purchased credits never expire. The 10 free credits expire after 30 days.<\/p><\/dd>\n<dt id=\"can%20i%20cancel%20a%20bulk%20optimization%3F\"><h3>Can I cancel a bulk optimization?<\/h3><\/dt>\n<dd><p>Yes. Pause \/ Resume \/ Cancel buttons appear during a bulk run. Closing the tab also auto-cancels \u2014 items already processed remain saved.<\/p><\/dd>\n<dt id=\"can%20i%20try%20before%20buying%3F\"><h3>Can I try before buying?<\/h3><\/dt>\n<dd><p>Yes. Create a free account and get 10 credits to test all features. No credit card required.<\/p><\/dd>\n<dt id=\"what%20is%20the%20seo%20score%20shown%20on%20products%20and%20categories%3F\"><h3>What is the SEO score shown on products and categories?<\/h3><\/dt>\n<dd><p>A local audit out of 100 (title and meta lengths, focus keyword, description length and structure, image alt texts, FAQ, schema\u2026). It is computed by the plugin, never costs a credit, and is stored so you can filter and sort the catalog by score. Rating a large catalog happens progressively in the background of the Products page.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20slow%20down%20my%20store%3F\"><h3>Does the plugin slow down my store?<\/h3><\/dt>\n<dd><p>No. Nothing runs on the storefront except the optional chat widget, the JSON-LD schemas (cached) and the redirect lookup (cached). Bulk jobs, syncs and automations run through WP-Cron or on the Essiow servers.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20update%20the%20plugin%3F\"><h3>What happens when I update the plugin?<\/h3><\/dt>\n<dd><p>Nothing to do: the plugin migrates its own data at the first request after an update (database tables, new options with safe defaults, expired caches). Your API key, settings, optimizations and redirects are kept.<\/p><\/dd>\n<dt id=\"what%20is%20removed%20when%20i%20delete%20the%20plugin%3F\"><h3>What is removed when I delete the plugin?<\/h3><\/dt>\n<dd><p>All options, cached data, scheduled tasks, tables (agent conversations and leads, redirects, 404 log, automation queue, content plan, speed runs, off-site findings) and Essiow metadata. If \"Restore originals on uninstall\" is enabled in Settings, the original titles, descriptions, SEO meta and alt texts are put back and the internal links added by Essiow are removed.<\/p><\/dd>\n<dt id=\"does%20essiow%20build%20backlinks%20for%20me%3F\"><h3>Does Essiow build backlinks for me?<\/h3><\/dt>\n<dd><p>No, and it never will. The Off-site module searches for pages that already mention your brand without linking to it, lists sites worth contacting and reports external links that now hit a 404. It prepares the outreach e-mail; you send it and the other site decides. Nothing is posted, bought or published anywhere on your behalf.<\/p><\/dd>\n<dt id=\"what%20does%20%2Fllms.txt%20actually%20do%3F\"><h3>What does \/llms.txt actually do?<\/h3><\/dt>\n<dd><p>It exposes a clean summary of your catalog to AI assistants. It is an answer-engine signal, not a Google ranking factor: Google has stated it ignores the file. Keep it on if you care about ChatGPT, Perplexity or Claude citing your shop; it costs nothing either way.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20google%20api%20key%20for%20the%20speed%20module%3F\"><h3>Do I need a Google API key for the Speed module?<\/h3><\/dt>\n<dd><p>Only for the Field tab. Core Web Vitals from real users and the Lighthouse score come from the free PageSpeed Insights API. The technical audit and its fixes work without any key.<\/p><\/dd>\n<dt id=\"does%20the%20product%20feed%20need%20a%20google%20merchant%20center%20connection%3F\"><h3>Does the product feed need a Google Merchant Center connection?<\/h3><\/dt>\n<dd><p>No. Essiow serves the feed file at your own domain and you paste that URL in the platform (Google Merchant Center, Meta or Pinterest), which fetches it daily. The Eligibility tab lists what each item is still missing. Connecting your Merchant Center account is a separate, optional step that adds Google's own verdict on top.<\/p><\/dd>\n<dt id=\"will%20essiow%20get%20my%20merchant%20center%20account%20approved%3F\"><h3>Will Essiow get my Merchant Center account approved?<\/h3><\/dt>\n<dd><p>No, and no plugin can: Google decides. What Essiow does is remove the reasons for a refusal before you ask \u2014 it audits 95 points the way a reviewer reads your shop, explains each failure in plain words, and fixes the ones that can be fixed safely. The review request button stays locked until every blocking check is green, on purpose: you only get one real appeal, and each refusal lengthens the wait.<\/p><\/dd>\n<dt id=\"what%20does%20the%20merchant%20center%20diagnostic%20actually%20check%3F\"><h3>What does the Merchant Center diagnostic actually check?<\/h3><\/dt>\n<dd><p>Your shop, not your feed: HTTPS and reachability, return and shipping policies (published, not the WooCommerce template, complete), contact details and legal identity, the checkout end to end (guest checkout, payment method, terms, order e-mails), prices and tax display, placeholder content, structured data, and your product data (titles, descriptions, images, GTIN, category, variants). The probe reads your shop from your own server, so it cannot see blocking that depends on the visitor's country or IP \u2014 those checks say so instead of claiming to be covered.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20google%20cloud%20project%20to%20connect%20merchant%20center%3F\"><h3>Do I need a Google Cloud project to connect Merchant Center?<\/h3><\/dt>\n<dd><p>No. The authorization goes through essiow.com: you sign in with Google, accept the access, and come back. No WordPress.com account, no Cloud project, no API key to create. Disconnecting removes the link on both sides.<\/p><\/dd>\n<dt id=\"if%20i%20close%20the%20tab%20during%20a%20long%20job%2C%20do%20i%20lose%20it%3F\"><h3>If I close the tab during a long job, do I lose it?<\/h3><\/dt>\n<dd><p>No. Optimizations, bulk generations, scans and measurements are registered server-side. The item stays marked until the job finishes, the state comes back after a reload, and the activity centre in the top bar lists everything currently running.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.4<\/h4>\n\n<ul>\n<li><strong>\"Fix everything\" per family.<\/strong> Each diagnostic family with fixable issues (Product data, Legal pages\u2026) now has its own \"Fix everything\" button, which runs only that family's fixes.<\/li>\n<li><strong>Products whose title the classification could not fix are fixed too.<\/strong> The run used to drop their title rewrite, so they stayed in the list; the batches now run first, then each remaining title \u2014 a title already fixed by the classification costs nothing.<\/li>\n<li><strong>One product, one verdict.<\/strong> Fixing a single product now tells whether THAT product still fails, instead of the whole check.<\/li>\n<li><strong>Bulk jobs say why they wait.<\/strong> A queued job explains that another bulk job of the account is running, and a job stopped for lack of credits says so in your language.<\/li>\n<li><strong>Credits per product.<\/strong> The \"Fix everything\" estimate counts one credit per product in the classification and brand batches, as billed.<\/li>\n<\/ul>\n\n<h4>1.5.3<\/h4>\n\n<ul>\n<li><strong>Titles with a technical acronym are accepted.<\/strong> A single acronym in capitals (\"PTAC 3500 kg\", \"DIN\", \"HEPA\") is no longer taken for shouting, on the diagnostic side as on the writing side: the corrected title of such a product used to be refused. Emphasis words in capitals (\"SUPER\", \"PROMO\") are still refused, and a refused title is rewritten once more before failing \u2014 nothing is charged twice.<\/li>\n<li><strong>\"Fix everything\" updates the diagnostic as it goes.<\/strong> Each fixed product leaves the list and the counters go down during the run, without waiting for the final check.<\/li>\n<\/ul>\n\n<h4>1.5.2<\/h4>\n\n<ul>\n<li><strong>\"Fix everything\" waits instead of failing.<\/strong> Essiow writes one text at a time per account: when a writing was still running, every following step failed with \"Another generation is already running\". The run now waits the delay the server gives and resumes the same step \u2014 nothing is charged for a step that waited.<\/li>\n<li><strong>Shorter requests.<\/strong> Products are classified 10 at a time and brands read 20 at a time, and a writing may run up to 5 minutes on your server: hosting time limits no longer cut a batch in the middle. If your hosting still cuts a request, the run pauses 20 seconds before the next step.<\/li>\n<li>The \"already running\" message is shown in your language.<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li><strong>Merchant Center \u2014 a fixed issue disappears.<\/strong> After a fix, the product leaves the list and the counters update at once; if the check still fails, the screen says what is still missing instead of \"Saved\".<\/li>\n<li><strong>Categories and titles in one pass.<\/strong> The AI now receives only the product title and its shop categories, picks the Google category from the official taxonomy (shortlisted by Essiow) and, when the title breaks Google's rules (words in capitals, length), writes a corrected one. 20 products per credit.<\/li>\n<li><strong>Shipping in the feed.<\/strong> Each product now carries its shipping cost per country, read from your WooCommerce zones (flat rate plus shipping class, free shipping from an amount the item reaches on its own) \u2014 Google's \"Missing shipping information\" goes away.<\/li>\n<li><strong>Return policy.<\/strong> The completeness check recognises the usual wording (\"\u00e0 la charge du client\", \"frais de renvoi\", \"transporteur\"\u2026), and the AI must write each required element under its own heading before anything is charged.<\/li>\n<li><strong>Merchant Center return policy.<\/strong> The return label source Google now requires is sent (customer responsibility, or a label to print when returns are free).<\/li>\n<li><strong>About page.<\/strong> A new fix writes it from your company details and catalogue, without inventing any history or figures.<\/li>\n<li><strong>Privacy policy.<\/strong> The recent WordPress template (\"Suggested text\") is recognised and rewritten instead of being kept.<\/li>\n<li><strong>Legal notice.<\/strong> A VAT number is only required when your company has one.<\/li>\n<li><strong>Sample text in a product.<\/strong> The product is no longer unpublished: its description is rewritten.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li><strong>Merchant Center \u2014 fix everything in one click.<\/strong> A new \"Fix everything\" button in the Merchant Center tab lists what can be fixed automatically (settings, pages written by AI, product fixes), the details still missing and the cost in credits against your balance, then runs every fix in order. It stops cleanly when credits run out or Google needs reconnecting, and lists each failure with its reason.<\/li>\n<li><strong>Find my company.<\/strong> Type your company name (and optionally a postcode or city): Essiow searches the official French company register and fills in the legal name, legal form, SIREN, VAT number, registered office and legal representative in one click. The hosting provider is detected from your server, your contact email and phone from your site, and the legal minimum return and refund periods are proposed. Each field shows where it came from, nothing already filled in is overwritten, and you check everything before saving. The consumer mediator is never guessed: pick yours from the list of approved mediators and its website is filled in.<\/li>\n<li><strong>Consumer mediator (France).<\/strong> The official list of mediators referenced by the CECMC (67 mediators, 110 business sectors, as of 25 September 2026) is built into the extension. Pick your sector \u2014 it is suggested from your products \u2014 then the mediator you joined among those competent for it, or type another one. A mediator missing from the official list (no longer referenced, or misspelt) is flagged, and a mediator already named in your terms is picked up automatically.<\/li>\n<li><strong>Legal pages written by AI.<\/strong> The legal notice, terms of sale and privacy policy are now written by AI from your company details and your shop, published and linked where Google and WordPress expect them. Existing terms or a privacy policy you wrote yourself are kept and simply linked. Your company name and SIREN can also be shown in the site footer.<\/li>\n<li><strong>One set of company details, everywhere Google looks.<\/strong> The details you validate are copied to the structured data (legal name, VAT and company number, address, phone, e-mail, return window, who pays returns, delivery times), to the footer and to the Merchant Center account itself (address, customer service, default return policy for your country). Every page written by AI must repeat them word for word \u2014 company number, mediator, return and refund periods \u2014 or it is not published. When your details or pages change, the diagnostic tells you Merchant Center needs updating.<\/li>\n<li><strong>Policies that match what you sell.<\/strong> The AI receives your real catalogue: legal exceptions to the withdrawal right only when they apply to your products, and bulky items (pallets, trailers, stoves) returned by carrier without any made-up cost. Terms and return policy link to your withdrawal form and privacy policy.<\/li>\n<li><strong>Online withdrawal form.<\/strong> A new fix publishes the \"Withdraw from contract here\" function required in the EU since 19 June 2026: no customer account, a confirmation step, an acknowledgment e-mailed with date and time, a copy to you and a note on the order.<\/li>\n<li><strong>Footer identity block.<\/strong> Company name, legal form, company and VAT numbers, address, clickable phone, e-mail and links to every legal page, rendered from your details.<\/li>\n<li><strong>More fixes are automatic.<\/strong> Mixed content (files of your own site loaded over http), policy pages left as drafts (the 404 errors), the manufacturer brand (read from the product title or attributes, never guessed \u2014 40 products per credit), Organization block, return window in the structured data.<\/li>\n<li><strong>False alarms removed.<\/strong> Firewood \"in a 25 dm\u00b3 bag\" or fireplace accessories were treated as clothing (age group and gender required); descriptions were refused for HTML and links that the feed already strips; products looked unbuyable because the check ran as the administrator (Dokan blocks buying your own products); a \"Europe\" shipping zone did not count for France; a 14-day return window was called too short (Google expects the legal 14 days in the EU, not 30); an enabled card gateway was missed when the check ran from the admin. The diagnostic now judges exactly what the feed sends and what a visitor sees.<\/li>\n<li><strong>Feed.<\/strong> Only offers Google can accept are sent: products without a price, without an image or with an image below Google's minimum (250 px, 500 px from 31 January 2027) stay on your site but are left out of the feed, so they are never refused and never weigh on the account. Out-of-stock products are now left out by default (you can put them back in the Feeds tab). The main description is sent (the short one only as a fallback), cleaned of links, and cut at the last full sentence.<\/li>\n<li><strong>Shipping zone.<\/strong> When no zone covers your country, a fix creates it with a flat rate you validate (a suggestion is prefilled) and, if you want, free delivery from an amount.<\/li>\n<li><strong>Cookie banner.<\/strong> When no consent tool is installed, a fix adds a light banner with \"Refuse all\" and \"Accept all\" of equal weight, based on Google consent mode v2: Google Analytics, Ads and Tag Manager store nothing before consent. A \"Cookies\" link lets visitors change their choice.<\/li>\n<li><strong>Bank transfer shops.<\/strong> A shop paid by bank transfer or cheque only is no longer flagged: Google accepts it, and the terms written by AI state that the order is prepared once payment is received.<\/li>\n<li><strong>Merchant Center \u2014 connection check.<\/strong> The check panel could say \"Connection healthy\" next to red steps, and keep showing \"feed not declared as a data source\" after the feed was declared. The steps are now recomputed every time the page is shown, and \"healthy\" can no longer appear while a step is blocking.<\/li>\n<li><strong>Merchant Center \u2014 business identity.<\/strong> A pending identity is now shown as a pending step (orange) instead of a failure, and no longer marks the connection as degraded. The message after \"Fetch now\" no longer promises processing \"within a few minutes\", and the date of the last check is set as soon as you connect.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li><strong>Merchant Center \u2014 accept the terms from the extension.<\/strong> An account created from Essiow had not accepted the Google Merchant Center terms, and Google then refuses everything else on it (site claim, data source, issues). A new step in the Connection tab shows the official link to Google's terms for your country and accepts them only when you tick the box yourself \u2014 never implicitly. If Google publishes a new version in between, you are asked to read it again.<\/li>\n<li><strong>Merchant Center \u2014 account creation.<\/strong> After creating an account, the extension tells you which address received Google's invitation: until it is accepted, you have no access to the new account.<\/li>\n<li><strong>Merchant Center \u2014 site claim.<\/strong> When Google refuses the claim, its reason is shown instead of an endless \"claim still pending\", and the \"Verify and claim\" button disappears once the site is verified and claimed.<\/li>\n<li><strong>Merchant Center \u2014 data source and issues.<\/strong> Declaring the Essiow feed and reading the issues Google reports in your language were both refused by Google's current API; both are fixed on the Essiow platform, with no action needed on your side.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li><strong>One rule for \"optimized\".<\/strong> A product scoring 70 or more now counts as optimized. Until now three different rules coexisted: the score badge turned green at 70, the score card counted \"good\" only from 80, and the optimized status also waited for 80 \u2014 so a product at 75 was green, \"medium\" and \"not optimized\" at the same time. The badge colour, the score card, the Score filter, its labels and the optimized status now all derive from the single \"Optimized score threshold\" setting, so they can no longer disagree, whatever value you choose. \"Medium\" starts at 50 everywhere (the badge used 40).<\/li>\n<li><strong>Automation log and content plan in your language.<\/strong> Results and errors written by a background run (\"Optimized \u2014 SEO score 30 \u2192 75\", \"Invalid API key\") were stored already translated, frozen in the language of the moment they were written. They are now stored as message keys and written out in the language of whoever reads them, like the Merchant Center diagnostic since 1.4.0. Entries written before the update keep their original wording.<\/li>\n<li><strong>Upgrade.<\/strong> Shops still on the former default of 80 are moved to 70 once, at the first request after the update. A threshold you set yourself is kept.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li><strong>New \u2014 Merchant Center.<\/strong> A new page that audits your shop the way a Google reviewer reads it: 95 checks in eight families (reachability and indexability, policy pages, identity and contact, checkout, prices and tax, content quality, structured data, product data), each failure explained by what is actually missing \u2014 \"the return policy does not say who pays the return shipping\", not \"policy incomplete\". Checks run in steps, products in batches, and the run survives a page reload.<\/li>\n<li><strong>Merchant Center \u2014 fixes.<\/strong> Automatic fixes publish a policy page left as a draft, leave \"coming soon\" mode, remove a noindex or a password, attach the terms to the checkout, reopen guest checkout, switch the price display to tax-included, or replace a main image that is too small with a compliant one from the gallery. Assisted fixes write a return, shipping or contact page from your own shop settings, or rewrite a product title, description, category or attributes. Manual fixes ask you only for what you alone know. Everything is logged, reversible, and re-checked right after it is applied. A text that falls back to the WooCommerce template or still carries a <code>{{\u2026}}<\/code> marker is never published \u2014 that template text is exactly what Google sanctions.<\/li>\n<li><strong>Merchant Center \u2014 Google connection.<\/strong> One click through essiow.com: no WordPress.com account, no Google Cloud project, no API key. Pick or create the account, verify then claim the site, declare the Essiow feed as a data source with its daily fetch hour, run the first fetch. A permanent status banner and a five-step connection check, on the Search Console model. Site claimed by another account, business identity pending, account suspended and revoked token each get a short message and one action.<\/li>\n<li><strong>Merchant Center \u2014 what Google reports.<\/strong> Account problems rendered by Google in your own language, with severity, explanation, documentation and the local check that fixes them; per-product serving status with the exact reason and the attribute in cause, filters, search, server-side pagination and bulk re-read. Statuses are read in batches, never product by product. A daily check e-mails you on a suspension or a new blocking issue \u2014 and the review request stays locked until every blocking check is green.<\/li>\n<li><strong>Feed.<\/strong> Feed and markup prices now come from the same source as the page (<code>wc_get_price_to_display<\/code>), so the feed can no longer contradict the shop. <code>sale_price<\/code> is only sent while the sale actually runs, with its effective date. The brand is no longer filled with the site name, and <code>identifier_exists<\/code> is only sent when the answer is known. New columns: Google product category, age group, gender, size type and system, custom labels 0-4. A title or description written by the AI is declared to Google as such (<code>structured_title<\/code> \/ <code>structured_description<\/code> with <code>digital_source_type<\/code>), as Merchant Center requires.<\/li>\n<li><strong>Product markup.<\/strong> Every published product is marked up, not only the ones optimized by Essiow. The duplicate-markup guard now observes whether another plugin really writes a Product block instead of assuming it. No aggregate rating unless reviews actually carry a rating.<\/li>\n<li><strong>Consistency.<\/strong> The Feeds page and the Merchant Center page say what each of their counters measures and link to each other; the eligibility lights can no longer be green where the diagnostic is red (they name the failing checks instead); one date format per screen; the Merchant Center entry sits in the menu, the top bar, the Help modules list and the screenshots in the same order.<\/li>\n<li><strong>Upgrade &amp; uninstall.<\/strong> The audit table and the new options are created at the first request after the update, crons are armed, nothing is lost \u2014 no reactivation, no need to open the page. Uninstall removes the new table, options and scheduled tasks; two long-standing causes of leftovers were fixed at the root (the activity register recreating its own option, and WordPress rescheduling a recurring event through <code>spawn_cron()<\/code> seconds after the purge).<\/li>\n<li><strong>Honest documentation.<\/strong> No promise that Merchant Center will accept the account: Essiow prepares, diagnoses and fixes, Google decides. The probe says what it cannot see (it reads your shop from your own server, so no geo-blocking or WAF), and the checks that depend on it are marked partial instead of being presented as covered.<\/li>\n<li><strong>Developer.<\/strong> New AJAX actions <code>essiow_gmc_*<\/code> (22, all covered by the smoke test), the <code>{prefix}essiow_gmc_audit<\/code> table, the <code>essiow_gmc_audit_weekly<\/code> and <code>essiow_gmc_daily<\/code> crons, the <code>essiow_gmc_tabs<\/code> and <code>essiow_gmc_state<\/code> filters for adding a tab to the page without touching it, a Merchant Center API mock with six failure modes, an upgrade scenario from 1.3.0 across the 15 admin pages, and an updated inventory in <code>CONTRIBUTING.md<\/code> and <code>docs\/DESIGN.md<\/code>.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li><strong>New \u2014 Speed.<\/strong> Core Web Vitals from real Chrome users (LCP, INP, CLS, FCP, TTFB) with a 10-month trend, a Lighthouse score per page template (mobile \/ desktop) with its \"what to fix first\" list, and a technical audit of about forty checks on your server, database, assets and images. The safe fixes are applied in one click and can be undone; the risky ones stay behind an explicit confirmation. Weekly measurement, optional e-mail alert, free PageSpeed API key needed only for the field data.<\/li>\n<li><strong>New \u2014 Off-site.<\/strong> Finds pages that mention your brand without linking to it, lists sites worth contacting, and drafts the outreach e-mail for you. A \"Lost links\" tab in Redirects shows the external links that now hit a 404 with the visits they used to bring, and turns them into a 301 in one click. <strong>Essiow never creates, buys or posts a link<\/strong> \u2014 it detects and prepares, you decide.<\/li>\n<li><strong>New \u2014 Product feeds.<\/strong> One feed file per platform (Google Merchant Center, Meta, Pinterest) served by your own shop and fetched daily \u2014 no OAuth, no app review. Built-in validation lists every rejected or incomplete item, and an Eligibility tab explains what is still missing for Google free listings. Optional exclusion of out-of-stock items and a cap on the number of items.<\/li>\n<li><strong>New \u2014 Content plan.<\/strong> Turn keywords, your product categories and your Search Console gaps into a publishing rhythm: N articles per day or per week, active days, generation hour, publishing window, and output as draft, scheduled or published. A 14-day calendar shows what comes next, items can be reordered by priority, and the plan shares the same daily credit cap as the rest of the automations. Catch-up after a missed run, pause when credits run low, e-mail when the plan is done.<\/li>\n<li><strong>Product schema.<\/strong> Variable products now emit a single <code>ProductGroup<\/code> with one offer per variant (instead of an aggregate), variant attributes as <code>variesBy<\/code>, product specifications, and shipping details read from your real WooCommerce shipping zones \u2014 which is what Google asks for to consider a variable product for free listings.<\/li>\n<li><strong>Front-end SEO.<\/strong> Image sitemap, <code>hreflang<\/code> with <code>x-default<\/code> on multilingual sites (Polylang, WPML), complete sharing tags, and business-profile fields (coordinates, price range, area served, Google Business Profile link, X \/ Twitter handle) feeding the Organization \/ LocalBusiness schema.<\/li>\n<li><strong>Search Console reliability.<\/strong> The connection banner now shows a real health state (healthy, degraded, reconnection required) that survives a reload, a \"Check the connection\" button, and an explicit diagnostic whenever a sync returns nothing. Sync results and quota cooldowns are reported everywhere instead of failing silently.<\/li>\n<li><strong>Activity register.<\/strong> Every long action (optimizations, generations, scans, measurements) is registered server-side: the item stays marked until the job ends, the state comes back after a reload or in another tab, AI generations run one at a time per site, and the top-bar activity centre lists what is running. One loading indicator per zone, everywhere \u2014 a toast now announces a result, never the start of an action.<\/li>\n<li><strong>Consistency.<\/strong> The Essiow menu follows the same order as the top navigation, action columns fit on one line at 1280 px, \"Top queries\" and \"Top pages\" no longer overflow their card, the dashboard and the Products page count optimized products the same way, and duplicated buttons (\"Run queue now\", \"Bulk generation\") appear once per screen. Lighter wording across every page: shorter subtitles, one line of help per block, no repeated explanations.<\/li>\n<li><strong>Upgrade &amp; uninstall.<\/strong> <code>essiow_run_upgrade()<\/code> creates the new tables (speed runs, off-site findings, content plan) and their default options at the first request after the update \u2014 no reactivation, no need to open the module's page. Crons for the new modules are armed automatically, and uninstall removes every new table, option and scheduled task.<\/li>\n<li><strong>Honest documentation.<\/strong> No FAQ rich-snippet promise, <code>\/llms.txt<\/code> described for what it is (an answer-engine signal Google states it ignores), the IndexNow engine list kept accurate (Bing, Yandex, Naver, Seznam, Amazon, Yep), and no backlink-building claim anywhere.<\/li>\n<li><strong>Developer.<\/strong> New AJAX actions <code>essiow_speed_*<\/code>, <code>essiow_offsite_*<\/code>, <code>essiow_lost_*<\/code>, <code>essiow_feeds_*<\/code>, <code>essiow_plan_*<\/code> and <code>essiow_activity_*<\/code>, all covered by the smoke test; a real upgrade scenario from 1.2.0 (<code>bin\/upgrade-test.sh<\/code>) checking data, schema, defaults and crons across the 14 admin pages; <code>bin\/shot.sh<\/code> covering every page; inventory of actions, options, tables, crons and storage keys in <code>CONTRIBUTING.md<\/code> and <code>docs\/DESIGN.md<\/code>; regenerated translation template.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li><strong>Design<\/strong> : the whole admin is rebuilt on one design system \u2014 top bar with module navigation, connection \/ credits \/ Search Console \/ IndexNow status and a quick search, a header with primary actions on every page, KPI tiles, server-side filters remembered per page, 44 px tables with sticky headers, a floating bar for bulk actions, side panels for previews and details, styled confirmations (no more browser dialogs), illustrated empty states, skeleton loaders, SVG icons (Lucide) instead of Dashicons, keyboard-friendly panels and tabs, and layouts checked at 1280 \/ 1024 \/ 782 px.<\/li>\n<li><strong>Dashboard<\/strong> : site SEO score ring with breakdown and \"Fix\" links that open the right tab, four KPI (products, articles, Search Console clicks, indexed pages), a second row for the modules (average SEO score, internal mesh score, automation queue, redirects and 404), a prioritized \"To do now\" list that also reports the week's 404s and failed or paused automations, recent activity and shortcuts. The setup wizard is kept for new sites.<\/li>\n<li><strong>Products &amp; Categories<\/strong> : a persistent SEO score \/ 100 on every product and category (<code>_essiow_seo_score<\/code>, rated progressively in batches), global KPI with score distribution, server-side filters (name \/ SKU, status, score, category, sort, page size) kept in the URL and in the browser, a fixed paginated table, \"select the page\" or \"select the whole filter\" with a floating bar, a preview panel with a factor-by-factor audit, before \/ after scores, FAQ and restore, and a restyled bulk job (pause, resume, cancel, failed items). Optimizing or restoring no longer reloads the page.<\/li>\n<li><strong>Search Console<\/strong> : an always-visible connection banner (account, property with selector, last sync, rows stored, diagnostics when a sync returns nothing), a single Overview tab (7 days to 16 months, KPI with deltas, clicks and impressions curve, indexation summary, top queries and pages), plus Indexation, Opportunities, Issues, Submission (sitemap, IndexNow queue with \"flush now\", llms.txt) and Audit tabs; daily totals kept for 16 months, weighted average position, titles decoded.<\/li>\n<li><strong>Internal links<\/strong> : inventory rules made explicit (published content only, noindex \/ password-protected \/ system pages excluded, WordPress pages optional, manual exclusions), click depth per page, server-side metrics and mesh score, a real automesh plan with configurable quotas, batch suggestions with one-way insertion and ignored pairs, a force-directed SVG graph with filters and focus, an anchor report, settings tab, and a repaired editor meta box.<\/li>\n<li><strong>Blog<\/strong> : a three-step generator (topic with SEO research and Search Console ideas, options for length \/ tone \/ language \/ linked products \/ featured image, progress), preview in a side panel (score, audit, FAQ, sources; publish, schedule or draft), a server-side article list (search, status, source, score, pagination, bulk IndexNow), bulk generation as a wizard with job details, and E-E-A-T settings (default author, default status, publishing window).<\/li>\n<li><strong>Automation<\/strong> : one card per automation with an on \/ off switch, inline settings saved automatically, next run and last result, a paused-queue notice, and queue \/ log tables with retry and clear actions.<\/li>\n<li><strong>Redirects<\/strong> : KPI, server-side filters (type, status, sort), an add \/ edit panel with a live test of the source path, CSV import in a panel, a grouped 404 monitor with suggested targets, a settings tab, and an active \/ inactive switch per rule (new <code>active<\/code> column, migrated automatically). Duplicate regex patterns are refused.<\/li>\n<li><strong>AI Agent<\/strong> : status and quota KPI (messages per hour), Settings \/ Conversations \/ Leads tabs, identity and widget cards with a live preview, knowledge, delivery and returns, behaviour, coupons, bank details and privacy cards, conversation transcripts in a side panel with deletion, leads list with CSV export, and a modernized storefront widget (SVG icons, Escape to close, <code>#essiow-chat<\/code> deep link).<\/li>\n<li><strong>Upgrade &amp; uninstall<\/strong> : <code>essiow_maybe_upgrade()<\/code> runs idempotent migrations at the first request after any update (default options, database tables via dbDelta, expired caches purged, orphan cron hooks removed, <code>essiow_upgraded<\/code> action for extensions) \u2014 no reactivation needed. Uninstall now removes every option, transient, table, cron, post \/ term \/ user meta added since 1.1.79 and still restores the original content when the option is enabled.<\/li>\n<li><strong>Developer<\/strong> : page styles live in <code>assets\/css\/pages\/&lt;slug&gt;.css<\/code> (loaded automatically), <code>Essiow_Admin::icon \/ page_header \/ kpi \/ empty_state<\/code> and <code>EssiowUI.icon \/ confirm \/ drawer \/ bulkBar \/ pagination \/ setKpi<\/code> helpers documented in <code>docs\/DESIGN.md<\/code>, a demo environment (<code>bin\/smoke.sh<\/code> with <code>SEED=1<\/code>, mock API, <code>bin\/shot.sh<\/code> screenshots), an upgrade scenario (<code>bin\/upgrade-test.sh<\/code>) and an uninstall check (<code>UNINSTALL=1<\/code>) in the smoke test, the smoke test covering every page, AJAX action, cron and front page, new server filters on the products \/ categories \/ articles \/ redirects lists, and a regenerated translation template.<\/li>\n<\/ul>\n\n<h4>1.1.81<\/h4>\n\n<ul>\n<li><strong>Langues<\/strong> : toutes les cha\u00eenes sources unifi\u00e9es en anglais (convention WordPress.org), catalogue r\u00e9g\u00e9n\u00e9r\u00e9 (1 665 cha\u00eenes) et traductions compl\u00e8tes livr\u00e9es en fran\u00e7ais, espagnol, allemand, italien, portugais et n\u00e9erlandais (.po + .mo). Sur les sites multilingues (Polylang, WPML), la langue de g\u00e9n\u00e9ration suit celle du produit, de la cat\u00e9gorie ou de l'article ; le chatbot r\u00e9pond dans la langue de la page.<\/li>\n<li><strong>Automatisation<\/strong> (nouveau menu) : file d'attente avec plafond de cr\u00e9dits par jour, optimisation automatique des nouveaux produits et cat\u00e9gories \u00e0 la publication, blog en pilote automatique (sujets tir\u00e9s de Search Console ou des cat\u00e9gories sans article, N articles par semaine), r\u00e9-optimisation des pages en d\u00e9clin, texte alternatif \u00e0 l'upload, rapport hebdomadaire par email, journal et boutons \u00ab Ex\u00e9cuter maintenant \u00bb.<\/li>\n<li><strong>Design<\/strong> : pages Produits, Cat\u00e9gories, Blog, Search Console, Maillage et Agent align\u00e9es sur le tableau de bord (bandeaux KPI, filtres par statut \/ score \/ cat\u00e9gorie, tri, s\u00e9lection des non optimis\u00e9s, \u00e9tats vides, chargements, dashicons \u00e0 la place des emoji, g\u00e9n\u00e9rateur d'articles en deux colonnes, cartes de jobs, responsive).<\/li>\n<li><strong>Performance et robustesse<\/strong> : JavaScript d\u00e9coup\u00e9 par \u00e9cran (seul le script de la page est charg\u00e9), sch\u00e9mas Product et Organization mis en cache, cat\u00e9gorie des articles bulk \u00ab produits \u00bb retrouv\u00e9e, lien support du chat corrig\u00e9, int\u00e9gration continue (lint PHP 7.4 \/ 8.3, syntaxe JS, catalogue \u00e0 jour, test d'ex\u00e9cution complet dans WordPress + WooCommerce).<\/li>\n<\/ul>\n\n<h4>1.1.80<\/h4>\n\n<ul>\n<li><strong>SEO technique complet sans plugin SEO<\/strong> : title, meta description, canonical, OpenGraph et Twitter sur produits, cat\u00e9gories, boutique et accueil (mod\u00e8les configurables) ; sch\u00e9ma Organization \/ LocalBusiness \/ Store avec logo, profils sociaux et horaires ; WebSite + SearchAction.<\/li>\n<li><strong>Robots<\/strong> : noindex des produits en rupture (option), des archives d'\u00e9tiquettes et de la recherche interne, canonical propre et noindex sur les vues filtr\u00e9es (<code>orderby<\/code>, <code>filter_*<\/code>, prix, utm\u2026), exclusion des produits noindex du sitemap.<\/li>\n<li><strong>Sch\u00e9ma Product enrichi<\/strong> : marque, SKU, GTIN\/MPN, disponibilit\u00e9 (pr\u00e9commande, r\u00e9assort), <code>priceValidUntil<\/code>, politique de retour, frais et d\u00e9lais de livraison, AggregateOffer pour les variables \u2014 sans doublon avec Yoast WooCommerce \/ Rank Math \/ AIOSEO.<\/li>\n<li><strong>FAQ produit g\u00e9n\u00e9r\u00e9e par l'IA<\/strong> : 3 \u00e0 5 questions d'acheteur stock\u00e9es \u00e0 l'optimisation, affich\u00e9es en accord\u00e9on sur la fiche et balis\u00e9es FAQPage.<\/li>\n<li><strong>Redirections et 404<\/strong> (nouveau menu) : r\u00e8gles 301 \/ 302 \/ 410 avec regex, redirection automatique des produits, cat\u00e9gories et articles supprim\u00e9s et des changements de slug, journal des 404 avec suggestion de cible et cr\u00e9ation en un clic, import \/ export CSV, alerte par email au-del\u00e0 d'un seuil.<\/li>\n<li><strong>Blog E-E-A-T<\/strong> : encart auteur avec profils sociaux et sch\u00e9ma Person, blocs \u00ab \u00c0 lire aussi \u00bb et \u00ab Produits li\u00e9s \u00bb, publication \u00e9tal\u00e9e du bulk sur N jours, rafra\u00eechissement \/ remplacement d'un article existant sans doublon, liste enrichie (score, intention, temps de lecture, indexation), alertes qualit\u00e9 avant publication.<\/li>\n<li><strong>Interface<\/strong> : design system unifi\u00e9, barre sup\u00e9rieure avec \u00e9tat de connexion, cr\u00e9dits, Search Console et IndexNow, navigation transversale, tableau de bord avec KPIs, d\u00e9tail du score, actions rapides et activit\u00e9s r\u00e9centes, assistant de d\u00e9marrage en 4 \u00e9tapes, r\u00e9glages par onglets, page d'aide avec statut syst\u00e8me.<\/li>\n<\/ul>\n\n<h4>1.1.79<\/h4>\n\n<ul>\n<li><strong>S\u00e9curit\u00e9 de l'agent IA<\/strong> : les coordonn\u00e9es bancaires ne sont plus envoy\u00e9es \u00e0 l'IA ni expos\u00e9es sans activation explicite, les remises cr\u00e9ent un coupon \u00e0 usage unique r\u00e9serv\u00e9 au client au lieu de modifier le prix r\u00e9el, coupons et remises d\u00e9sactiv\u00e9s par d\u00e9faut, limitation de d\u00e9bit par empreinte client et globale, jeton anti-abus sur l'endpoint public, conversations li\u00e9es au visiteur (plus de reprise d'une conversation tierce), produits non publi\u00e9s invisibles, email admin retir\u00e9 des pages, leads stock\u00e9s + export\/effacement RGPD, mention de confidentialit\u00e9 dans le widget, widget absent du panier\/checkout\/compte.<\/li>\n<li><strong>S\u00e9curit\u00e9 des donn\u00e9es catalogue<\/strong> : plus aucun for\u00e7age de stock \u00e0 l'optimisation, sauvegardes unifi\u00e9es (titre, nom, descriptions, meta SEO, alt d'images) restaurables depuis la liste produits et cat\u00e9gories, jamais d'\u00e9crasement par une valeur vide, renommage des cat\u00e9gories en option, choix des champs \u00e0 r\u00e9\u00e9crire et respect des meta SEO existantes.<\/li>\n<li><strong>Bulk produits\/cat\u00e9gories<\/strong> : verrou anti-doublon, budget de temps, reprise idempotente, items en \u00e9chec signal\u00e9s au lieu de bloquer le job, cron actif uniquement pendant un job.<\/li>\n<li><strong>Search Console<\/strong> :  &hellip;<\/li>\n<\/ul>","raw_excerpt":"Get more Google traffic on WooCommerce. AI rewrites your products, categories and articles using your real Google Search Console data \u2014 and pings ever &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/294906","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=294906"}],"author":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/boni58"}],"wp:attachment":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=294906"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=294906"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=294906"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=294906"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=294906"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=294906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}