Essiow — AI SEO Suite for WooCommerce

Description

Essiow turns your WooCommerce store into a search-traffic machine. 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.

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.

What Essiow does for you

1. Auto-rewrites your product pages. Long description, short pitch, meta title, meta description, focus keyword, image alt texts — 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.

2. Turns empty category pages into landing pages. 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 — the page Google needs to rank you in position 1 instead of position 30.

3. Writes blog articles that pull traffic to your products. 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.

4. Spots and grabs every “almost-ranking” keyword. When Google Search Console is connected, Essiow surfaces every query where your store sits at position 11-20 — the closest gains. One click rewrites the matching page targeting that exact query.

5. Resolves cannibalization in two clicks. Two of your pages competing for the same query? Essiow detects it, picks the strongest one, and consolidates the canonical from the others — without deleting anything.

6. Indexes everything instantly. 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.

7. Builds your internal mesh. 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 — reversible, with a mesh score / 100 and an anchor report.

8. Keeps your link equity. 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.

9. Runs on autopilot. 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 — all within a daily credit cap you control.

10. AI sales agent on your storefront. 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).

11. Exposes your catalog to ChatGPT, Perplexity and Claude. Toggle on and Essiow serves a clean /llms.txt at your root. It is an answer-engine signal, not a Google one: Google states it ignores the file, the other assistants read it.

12. Puts your catalog in the shopping feeds. One ProductGroup 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.

13. Watches your page experience. 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 — each reversible.

14. Finds your off-site opportunities. 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 — it never creates a link for you, and buying links is not part of the product.

15. Publishes on a rhythm you set. 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 — closing the tab or reloading the page changes nothing.

16. Gets your shop ready for Google Merchant Center. Most refusals and suspensions are about the shop, 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 — 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. Essiow prepares, diagnoses and fixes; Google decides — 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).

Why it ranks better

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 — it gets them from Google itself, and writes around what’s already working.

Made for shop owners, not SEOs

  • No keyword research needed
  • No technical setup beyond pasting an API key
  • Every action shows its credit cost upfront — no surprise billing
  • Bulk optimize, pause, resume, restore original — your content is always recoverable
  • 8 languages, 4 writing tones, 3 content lengths
  • A persistent SEO score / 100 on every product and category, with a factor-by-factor audit, filters and sorting
  • 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
  • Every long action stays marked until it ends, survives a page reload, and is listed in one activity centre

Compatible & safe

  • WooCommerce HPOS compatible
  • Works alongside Yoast SEO / Rank Math / All in One SEO (writes to all three)
  • GDPR compliant (auto-delete chat data after 90 days)
  • Original content backed up the first time you optimize — one-click restore

How credits work

  • 1 credit per product optimization
  • 1 credit per category optimization
  • 3 credits per blog article
  • 2 credits per AI Vision alt text generation
  • 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 — free (no AI involved)
  • Inside Merchant Center, only the assisted 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 — publishing a draft page, reopening guest checkout, switching prices to tax-included — cost nothing.
  • Credits are debited only on success. Failed AI calls don’t consume credits.
  • Purchased credits never expire (free trial credits expire after 30 days)

External Service

This plugin connects to the Essiow API at https://essiow.com/api/v1 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.

Screenshots

Installation

  1. Upload the essiow folder to /wp-content/plugins/
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Go to Essiow > Settings and enter your API key from essiow.com
  4. Click “Test Connection” to verify
  5. Start optimizing from Essiow > Products or Essiow > Categories

FAQ

Do I need an Essiow account?

Yes. Create a free account at essiow.com to get your API key and 10 free credits.

Do I need technical skills?

No. If you can install a WordPress plugin, you can use Essiow. Everything is done in a few clicks.

Do I need to know SEO?

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”.

Why does connecting Google Search Console matter?

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 — but generic. With GSC, they’re surgical.

Will optimizing break my existing content?

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.

Which SEO plugins are supported?

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.

Is my data safe?

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.

Do credits expire?

Purchased credits never expire. The 10 free credits expire after 30 days.

Can I cancel a bulk optimization?

Yes. Pause / Resume / Cancel buttons appear during a bulk run. Closing the tab also auto-cancels — items already processed remain saved.

Can I try before buying?

Yes. Create a free account and get 10 credits to test all features. No credit card required.

What is the SEO score shown on products and categories?

A local audit out of 100 (title and meta lengths, focus keyword, description length and structure, image alt texts, FAQ, schema…). 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.

Does the plugin slow down my store?

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.

What happens when I update the plugin?

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.

What is removed when I delete the plugin?

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.

Does Essiow build backlinks for me?

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.

What does /llms.txt actually do?

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.

Do I need a Google API key for the Speed module?

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.

Does the product feed need a Google Merchant Center connection?

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.

Will Essiow get my Merchant Center account approved?

No, and no plugin can: Google decides. What Essiow does is remove the reasons for a refusal before you ask — 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.

What does the Merchant Center diagnostic actually check?

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 — those checks say so instead of claiming to be covered.

Do I need a Google Cloud project to connect Merchant Center?

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.

If I close the tab during a long job, do I lose it?

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.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Essiow — AI SEO Suite for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.5.4

  • “Fix everything” per family. Each diagnostic family with fixable issues (Product data, Legal pages…) now has its own “Fix everything” button, which runs only that family’s fixes.
  • Products whose title the classification could not fix are fixed too. The run used to drop their title rewrite, so they stayed in the list; the batches now run first, then each remaining title — a title already fixed by the classification costs nothing.
  • One product, one verdict. Fixing a single product now tells whether THAT product still fails, instead of the whole check.
  • Bulk jobs say why they wait. 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.
  • Credits per product. The “Fix everything” estimate counts one credit per product in the classification and brand batches, as billed.

1.5.3

  • Titles with a technical acronym are accepted. 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 — nothing is charged twice.
  • “Fix everything” updates the diagnostic as it goes. Each fixed product leaves the list and the counters go down during the run, without waiting for the final check.

1.5.2

  • “Fix everything” waits instead of failing. 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 — nothing is charged for a step that waited.
  • Shorter requests. 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.
  • The “already running” message is shown in your language.

1.5.1

  • Merchant Center — a fixed issue disappears. 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”.
  • Categories and titles in one pass. 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.
  • Shipping in the feed. 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) — Google’s “Missing shipping information” goes away.
  • Return policy. The completeness check recognises the usual wording (“à la charge du client”, “frais de renvoi”, “transporteur”…), and the AI must write each required element under its own heading before anything is charged.
  • Merchant Center return policy. The return label source Google now requires is sent (customer responsibility, or a label to print when returns are free).
  • About page. A new fix writes it from your company details and catalogue, without inventing any history or figures.
  • Privacy policy. The recent WordPress template (“Suggested text”) is recognised and rewritten instead of being kept.
  • Legal notice. A VAT number is only required when your company has one.
  • Sample text in a product. The product is no longer unpublished: its description is rewritten.

1.5.0

  • Merchant Center — fix everything in one click. 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.
  • Find my company. 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.
  • Consumer mediator (France). 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 — it is suggested from your products — 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.
  • Legal pages written by AI. 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.
  • One set of company details, everywhere Google looks. 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 — company number, mediator, return and refund periods — or it is not published. When your details or pages change, the diagnostic tells you Merchant Center needs updating.
  • Policies that match what you sell. 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.
  • Online withdrawal form. 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.
  • Footer identity block. Company name, legal form, company and VAT numbers, address, clickable phone, e-mail and links to every legal page, rendered from your details.
  • More fixes are automatic. 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 — 40 products per credit), Organization block, return window in the structured data.
  • False alarms removed. Firewood “in a 25 dm³ 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.
  • Feed. 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.
  • Shipping zone. 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.
  • Cookie banner. 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.
  • Bank transfer shops. 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.
  • Merchant Center — connection check. 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.
  • Merchant Center — business identity. 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.

1.4.2

  • Merchant Center — accept the terms from the extension. 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 — never implicitly. If Google publishes a new version in between, you are asked to read it again.
  • Merchant Center — account creation. 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.
  • Merchant Center — site claim. 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.
  • Merchant Center — data source and issues. 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.

1.4.1

  • One rule for “optimized”. 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 — 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).
  • Automation log and content plan in your language. Results and errors written by a background run (“Optimized — SEO score 30 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.
  • Upgrade. 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.

1.4.0

  • New — Merchant Center. 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 — “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.
  • Merchant Center — fixes. 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 {{…}} marker is never published — that template text is exactly what Google sanctions.
  • Merchant Center — Google connection. 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.
  • Merchant Center — what Google reports. 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 — and the review request stays locked until every blocking check is green.
  • Feed. Feed and markup prices now come from the same source as the page (wc_get_price_to_display), so the feed can no longer contradict the shop. sale_price is only sent while the sale actually runs, with its effective date. The brand is no longer filled with the site name, and identifier_exists 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 (structured_title / structured_description with digital_source_type), as Merchant Center requires.
  • Product markup. 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.
  • Consistency. 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.
  • Upgrade & uninstall. The audit table and the new options are created at the first request after the update, crons are armed, nothing is lost — 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 spawn_cron() seconds after the purge).
  • Honest documentation. 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.
  • Developer. New AJAX actions essiow_gmc_* (22, all covered by the smoke test), the {prefix}essiow_gmc_audit table, the essiow_gmc_audit_weekly and essiow_gmc_daily crons, the essiow_gmc_tabs and essiow_gmc_state 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 CONTRIBUTING.md and docs/DESIGN.md.

1.3.0

  • New — Speed. 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.
  • New — Off-site. 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. Essiow never creates, buys or posts a link — it detects and prepares, you decide.
  • New — Product feeds. One feed file per platform (Google Merchant Center, Meta, Pinterest) served by your own shop and fetched daily — 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.
  • New — Content plan. 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.
  • Product schema. Variable products now emit a single ProductGroup with one offer per variant (instead of an aggregate), variant attributes as variesBy, product specifications, and shipping details read from your real WooCommerce shipping zones — which is what Google asks for to consider a variable product for free listings.
  • Front-end SEO. Image sitemap, hreflang with x-default 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.
  • Search Console reliability. 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.
  • Activity register. 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 — a toast now announces a result, never the start of an action.
  • Consistency. 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.
  • Upgrade & uninstall. essiow_run_upgrade() creates the new tables (speed runs, off-site findings, content plan) and their default options at the first request after the update — 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.
  • Honest documentation. No FAQ rich-snippet promise, /llms.txt 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.
  • Developer. New AJAX actions essiow_speed_*, essiow_offsite_*, essiow_lost_*, essiow_feeds_*, essiow_plan_* and essiow_activity_*, all covered by the smoke test; a real upgrade scenario from 1.2.0 (bin/upgrade-test.sh) checking data, schema, defaults and crons across the 14 admin pages; bin/shot.sh covering every page; inventory of actions, options, tables, crons and storage keys in CONTRIBUTING.md and docs/DESIGN.md; regenerated translation template.

1.2.0

  • Design : the whole admin is rebuilt on one design system — 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.
  • Dashboard : 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.
  • Products & Categories : a persistent SEO score / 100 on every product and category (_essiow_seo_score, 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.
  • Search Console : 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.
  • Internal links : 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.
  • Blog : 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).
  • Automation : 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.
  • Redirects : 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 active column, migrated automatically). Duplicate regex patterns are refused.
  • AI Agent : 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, #essiow-chat deep link).
  • Upgrade & uninstall : essiow_maybe_upgrade() runs idempotent migrations at the first request after any update (default options, database tables via dbDelta, expired caches purged, orphan cron hooks removed, essiow_upgraded action for extensions) — 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.
  • Developer : page styles live in assets/css/pages/<slug>.css (loaded automatically), Essiow_Admin::icon / page_header / kpi / empty_state and EssiowUI.icon / confirm / drawer / bulkBar / pagination / setKpi helpers documented in docs/DESIGN.md, a demo environment (bin/smoke.sh with SEED=1, mock API, bin/shot.sh screenshots), an upgrade scenario (bin/upgrade-test.sh) and an uninstall check (UNINSTALL=1) 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.

1.1.81

  • Langues : toutes les chaînes sources unifiées en anglais (convention WordPress.org), catalogue régénéré (1 665 chaînes) et traductions complètes livrées en français, espagnol, allemand, italien, portugais et néerlandais (.po + .mo). Sur les sites multilingues (Polylang, WPML), la langue de génération suit celle du produit, de la catégorie ou de l’article ; le chatbot répond dans la langue de la page.
  • Automatisation (nouveau menu) : file d’attente avec plafond de crédits par jour, optimisation automatique des nouveaux produits et catégories à la publication, blog en pilote automatique (sujets tirés de Search Console ou des catégories sans article, N articles par semaine), ré-optimisation des pages en déclin, texte alternatif à l’upload, rapport hebdomadaire par email, journal et boutons « Exécuter maintenant ».
  • Design : pages Produits, Catégories, Blog, Search Console, Maillage et Agent alignées sur le tableau de bord (bandeaux KPI, filtres par statut / score / catégorie, tri, sélection des non optimisés, états vides, chargements, dashicons à la place des emoji, générateur d’articles en deux colonnes, cartes de jobs, responsive).
  • Performance et robustesse : JavaScript découpé par écran (seul le script de la page est chargé), schémas Product et Organization mis en cache, catégorie des articles bulk « produits » retrouvée, lien support du chat corrigé, intégration continue (lint PHP 7.4 / 8.3, syntaxe JS, catalogue à jour, test d’exécution complet dans WordPress + WooCommerce).

1.1.80

  • SEO technique complet sans plugin SEO : title, meta description, canonical, OpenGraph et Twitter sur produits, catégories, boutique et accueil (modèles configurables) ; schéma Organization / LocalBusiness / Store avec logo, profils sociaux et horaires ; WebSite + SearchAction.
  • Robots : noindex des produits en rupture (option), des archives d’étiquettes et de la recherche interne, canonical propre et noindex sur les vues filtrées (orderby, filter_*, prix, utm…), exclusion des produits noindex du sitemap.
  • Schéma Product enrichi : marque, SKU, GTIN/MPN, disponibilité (précommande, réassort), priceValidUntil, politique de retour, frais et délais de livraison, AggregateOffer pour les variables — sans doublon avec Yoast WooCommerce / Rank Math / AIOSEO.
  • FAQ produit générée par l’IA : 3 à 5 questions d’acheteur stockées à l’optimisation, affichées en accordéon sur la fiche et balisées FAQPage.
  • Redirections et 404 (nouveau menu) : règles 301 / 302 / 410 avec regex, redirection automatique des produits, catégories et articles supprimés et des changements de slug, journal des 404 avec suggestion de cible et création en un clic, import / export CSV, alerte par email au-delà d’un seuil.
  • Blog E-E-A-T : encart auteur avec profils sociaux et schéma Person, blocs « À lire aussi » et « Produits liés », publication étalée du bulk sur N jours, rafraîchissement / remplacement d’un article existant sans doublon, liste enrichie (score, intention, temps de lecture, indexation), alertes qualité avant publication.
  • Interface : design system unifié, barre supérieure avec état de connexion, crédits, Search Console et IndexNow, navigation transversale, tableau de bord avec KPIs, détail du score, actions rapides et activités récentes, assistant de démarrage en 4 étapes, réglages par onglets, page d’aide avec statut système.

1.1.79

  • Sécurité de l’agent IA : les coordonnées bancaires ne sont plus envoyées à l’IA ni exposées sans activation explicite, les remises créent un coupon à usage unique réservé au client au lieu de modifier le prix réel, coupons et remises désactivés par défaut, limitation de débit par empreinte client et globale, jeton anti-abus sur l’endpoint public, conversations liées au visiteur (plus de reprise d’une conversation tierce), produits non publiés invisibles, email admin retiré des pages, leads stockés + export/effacement RGPD, mention de confidentialité dans le widget, widget absent du panier/checkout/compte.
  • Sécurité des données catalogue : plus aucun forçage de stock à l’optimisation, sauvegardes unifiées (titre, nom, descriptions, meta SEO, alt d’images) restaurables depuis la liste produits et catégories, jamais d’écrasement par une valeur vide, renommage des catégories en option, choix des champs à réécrire et respect des meta SEO existantes.
  • Bulk produits/catégories : verrou anti-doublon, budget de temps, reprise idempotente, items en échec signalés au lieu de bloquer le job, cron actif uniquement pendant un job.
  • Search Console : …