Let AI draft titles and meta descriptions for your most valuable pages, paste them into your SEO plugin's fields, and then check the page source. A meta description cannot break product schema by itself, but a plugin change can add a second Product block. Count the Product blocks on a product page after every change.
The order matters. Schema is the structured data that tells Google a page is a product, with a price and availability. Meta descriptions are the sentence under the link in search results. Writing descriptions is a low-risk job for AI. The risk sits in the settings around them: a new SEO plugin, an add-on left running or a theme option can each add a Product block of its own.
Two jobs that happen to share a plugin
WooCommerce already outputs Product structured data on product pages as JSON-LD, a block of code in the page that search engines read. SEO plugins add schema of their own as well; Yoast's WooCommerce add-on, for example, advertises product schema with price, availability, ratings and identifiers. Where the two overlap, you can end up with two or three descriptions of the same product. The real worry is conflicting data: two blocks with different prices or availability leave Google to choose which to believe, and Google's own documentation says product rich results support pages that focus on a single product or variants of it.
Meta descriptions live in the page's head as a plain tag. Google's guidance says a page's description should accurately describe that page, that identical descriptions across pages do not help, and that for large database-driven sites generating descriptions programmatically can be appropriate and is encouraged. It also says there is no length limit, but snippets are truncated to fit the screen. So the job is to write accurate, distinct descriptions of about 150 characters that carry the useful point first.
Pick the pages first, because 600 is the wrong number
An illustrative shop sells garden furniture: 450 products across 30 categories. Open Search Console's Performance report for the last three months and export pages with their impressions, clicks and click-through rate. Mark three groups:
| Group | How to find it | Count | Action |
|---|---|---|---|
| Money pages | Top 20 products by revenue, the 5 best categories, homepage | 26 | Write or edit each description by hand; AI as a second opinion |
| Underperformers | High impressions, click rate well below pages at a similar position | about 40 | AI drafts three options each; a person picks and edits one |
| Everything else | Remaining products and categories | about 415 | Later batch, from a template and facts, sampled |
The underperformers are where the cheapest wins are. A page that ranks fifth but earns far fewer clicks than the pages near it probably has a dull or mismatched snippet. Fixing that may do more than all the others combined.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowDrafting meta descriptions the plugin can use
Feed the assistant facts from the page, not the old meta description. For each page you want the product name, the type of product, two or three real attributes, the price if you intend to mention it, and a genuine selling point such as delivery timing or returns that you can verify on the site.
You write meta descriptions for a garden furniture shop's product and category pages. For each item, write THREE options of 140 to 155 characters including spaces. Rules: put the most useful fact first; use only the facts I give; do not mention price, free delivery, discounts or stock unless it is in the facts; no exclamation marks; no superlatives; include the product type as people would search for it; each option must start differently. After each option, give its character count. Return a table: URL slug, Option 1, Option 2, Option 3.
Facts:
1. /product/teak-bistro-set | Teak bistro set, table plus 2 folding chairs | FSC-certified teak | Table 60 cm | Folds flat | Fits a small balcony
2. /product-category/parasols | Garden parasols | Tilting and cantilever types | 2 m to 3.5 m | Bases sold separately
An illustrative option for the bistro set might be: "Teak bistro set with two folding chairs and a 60 cm table. FSC-certified teak that folds flat to fit a small balcony." It is 117 characters, so you could add a clause, but resist padding: it already says what it is, the size and the benefit. The weaker option the model offers might say "Transform your outdoor space with our stunning teak bistro set", which fits the template of a thousand shop descriptions and has no facts. Pick option one, and reject the others.
Character counts from models are often wrong. Check them in the plugin: Yoast and similar plugins show a length bar as you type. Google truncates to fit the screen rather than at a fixed number, so treat 155 as a guide, not a cliff.
Your SEO plugin's own AI fields
Several plugins now draft titles and descriptions inside the editor. As of November 2026, Yoast's page for its WooCommerce SEO plugin says it can generate SEO titles and meta descriptions for product and category pages, and that it includes Yoast SEO Premium's features plus store-specific extras for $178.80 a year before tax. Its AI Generate for image alt text is part of the same plugin and, according to Yoast, you review every suggestion before it saves. Rank Math's Content AI, sold as a separate Rank Math AI subscription with monthly usage limits, lists AI-powered SEO meta and bulk generation of SEO titles and descriptions; check the limits on its current plans before you buy. Whichever you use, apply the same rules: facts only, a person approves, and character counts checked. A plugin's AI button changes where you click, not how much checking the result needs.
If you let a plugin generate in bulk, start with five pages, read the output, and check the page source afterwards. Not every plugin setting that adds convenience leaves the schema alone.
Checking page source for duplicate Product schema
This is the check most guides skip, and it takes three minutes per template. Product pages made by the same template behave alike, so check one simple product, one variable product and one product on sale, plus one category page.
- Open the live product page in a browser and choose View page source (in Chrome, Ctrl+U on Windows or Option+Command+U on a Mac).
- Search for
ld+json. Each match is a block of structured data. Count them. Many shop pages have one to three. - Search for
"@type":"Product"(or"Product"alone, since spacing varies). Each hit is a description of a product. You want exactly one Product item for the page's main product. - Look at the price and availability inside it. Do they match what the page shows today?
- Note the source of each block. A comment near the top of the head often names the plugin that generated its output, such as the SEO plugin's own comment line. Blocks without a comment usually come from WooCommerce or the theme. WooCommerce prints its own Product block from the page footer, so it normally sits near the end of the source: search the whole page, not only the head.
- Run the page through Google's Rich Results Test with its URL. It lists detected items. Two Product items, or warnings about missing fields, show up here.
Google's merchant listing documentation says a product needs a name, an image and an offer, with a price and a currency, and that merchant listings require a price greater than zero. It recommends adding availability, brand, a SKU or GTIN, review data and a return policy. Check that the single Product block on your page carries these, not that every block carries a partial version.
A duplicate, in illustrative form
Here is a cut-down picture of what you might find after enabling a plugin's schema and leaving the theme's on. The two blocks describe the same product with a different price.
<script type="application/ld+json">
{"@context":"https://schema.org/","@type":"Product","name":"Teak bistro set","sku":"BIS-01",
"offers":{"@type":"Offer","price":"249.00","priceCurrency":"USD","availability":"https://schema.org/InStock"}}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@graph":[{"@type":"WebPage"},
{"@type":"Product","name":"Teak bistro set","offers":{"@type":"Offer","price":"299.00","priceCurrency":"USD"}}]}
</script>
Two Product items, one at 249.00 with an availability value and one at 299.00 without. Search engines have to choose. Which is right? If the shop's sale price is 249.00, the second block is stale or reads the regular price. The cure is to leave one source of Product schema switched on and disable the other in its settings.
Fixing a duplicate without breaking the good one
- Decide which source you want. If your SEO plugin has a WooCommerce add-on or a product schema setting that handles prices, stock and reviews, that is usually the richer source. If not, keep WooCommerce's built-in block.
- Turn the other off in its settings first, in the plugin's schema or WooCommerce options, or in the theme options if the theme adds its own. Avoid code edits unless someone who maintains the site is doing them.
- Clear every cache layer (the caching plugin, the host's cache, any CDN), then reload the page source.
- Count the Product blocks again, then rerun the Rich Results Test.
- Repeat on the variable and sale product, since they sometimes behave differently from simple products.
- Watch Search Console's product-related reports for a few weeks. New errors or warnings after a change tell you something was dropped.
Keep a note of the change, the date and the plugin version. If a plugin update later brings the duplicate back, you will know where to look. An AI assistant helps here. Paste the structured data from a page, and ask: "List every Product item and every field in them, and tell me which fields conflict between items." Do not ask it to fix the markup in the chat and paste the code back into your site, since a changed bracket can silently invalidate a block; instead let the assistant explain, and let the plugin do the writing.
Five checks for a schema and snippet pass
- Price in the meta description versus price in schema. If you mention a price in the snippet, it will go stale at the next sale. Leave prices out unless a plugin updates them automatically.
- Variable products. The page shows a price range, but the schema may show one price. Check what the block says against the page for a product with size options.
- Out-of-stock items. Availability should say so in the schema. A snippet that says "In stock, delivered in 2 days" for a sold-out product is both a poor experience and a mismatch.
- Review markup. If reviews are shown on the page, the markup can include them; if you removed reviews from the page, make sure the schema does not still output them. Google's structured data guidelines say not to mark up content that is not visible to readers of the page.
- Category pages. Category pages list many products. They should not carry a Product block for one of them as if the page were about that product.
Using AI to read the markup, not write it
Reading JSON-LD is tedious for a person and easy for a model, so this is a good use. Copy the contents of each structured data block from one product page and paste them with the visible facts from the page.
Below are (A) the structured data blocks from one WooCommerce product page and (B) what the page shows a visitor. List: every item of type Product with its name, price, currency and availability; any field that differs between blocks; any field in the blocks that the visible page does not show; any field the page shows that the blocks lack (brand, SKU, reviews, shipping). Do not rewrite the markup. Answer in a table, then give a one-line verdict: one Product item or more than one.
(A) [paste blocks]
(B) Name: Teak bistro set. Price shown: $249.00 (was $299.00). In stock. 4.6 stars from 31 reviews. SKU BIS-01.
An illustrative reply notes two Product items, the first at 249.00 with InStock and the second at 299.00 with no availability; the visible page shows no brand and the markup carries none; and review data is absent from both although the page displays 31 reviews. Verdict: more than one. That summary takes a minute to read and points to exactly two jobs: remove the duplicate, and decide whether to add review markup through the one source you keep. Then verify in the Rich Results Test, which is the authority; the assistant is only a faster pair of eyes.
Category pages and titles: the same care, fewer fields
Category pages often rank for the broad searches that bring new customers, and their snippets are frequently the weakest on a shop because the default is a snippet of the first paragraph. Write each category's description with the three facts a buyer scanning results wants: what is in it, the range of options and one differentiator you can prove. For the illustrative parasol category: "Garden parasols from 2 m to 3.5 m, in tilting and cantilever styles. Bases are sold separately, so check the size guide before you buy." That is 135 characters, and the honest note about bases saves a returned order.
The SEO title, the text shown as the blue link, deserves the same discipline. Keep the product type first, then the distinguishing detail, then the shop name at the end, and keep it short enough that nothing is cut. If a plugin has a title template with variables such as the product name and site name, set it once for the whole shop and override only on the money pages. Changing a title on a page that already ranks can move it, so list the pages whose titles you changed and when.
What to put in a short written process
A small team forgets steps unless they are written down. One page is enough: where the priority list lives, who drafts, who approves, which plugin outputs the one Product block, which plugins must never gain a schema module, and the three-minute source check to run after any plugin update. Add a line for who owns Search Console. Put the date of the last check at the top and update it whenever someone rechecks. A plugin update is the most likely thing to reintroduce a duplicate, so make the check part of updating, not part of SEO.
Time it takes: drafting options for the 40 underperformers at about 5 minutes each is under four hours, choosing and entering them another two, the 26 money pages around six hours by hand, and the schema source check on four templates under an hour. That is roughly 12 hours for pages that carry most of the shop's search income, which is a better use of time than touching every product once.
A shop that changed plugins and doubled its schema
An illustrative mistake: a shop moved from one SEO plugin to another and kept the old plugin deactivated rather than deleted. The meta descriptions copied across fine. A month later the shop noticed that product rich results had disappeared from Search Console reports, and view-source showed two Product blocks with different prices. The old plugin's schema module was still running through a leftover add-on. Removing the add-on, clearing the caches and rechecking left one block. Nothing about the meta descriptions had anything to do with it. They had been written carefully, and the schema was the part nobody checked. The simplest defence is a checklist: after any plugin change, count the Product blocks on one product page.
Measuring whether the new snippets helped
Record a baseline before you change anything: for the pages you will edit, note impressions, clicks, click-through rate and average position over the last 28 days. Change in groups, such as 10 pages at a time, and leave at least two weeks before judging, since search results move with seasons and demand. A fair comparison uses the same length of period before and after, and avoids weeks with a sale or campaign. If click-through rate rises on pages where position held steady, the snippets are doing their job. If rankings fall, look at what else changed, such as a template, a plugin or the content, and do not blame the descriptions by default.
A rough sum shows why the underperformers are worth the effort. If a page appears 4,000 times a month at a 1.5% click rate, that is 60 visits. Lifting the click rate to 2.2% gives 88, which is 28 more visits a month from one description. Across 40 pages, that is about 1,100 extra visits, without any change in ranking. The figures are illustrative, and click rates depend on query and position, but the shape of the sum holds.
Before you ask AI to touch anything else
Keep the AI to drafts and checks, and keep switches and code with a person who can reverse them. The same discipline applies to the page text itself: if you plan to rewrite descriptions at scale, read the tutorial on bulk WooCommerce descriptions first, and for products coming from a supplier file, cleaning supplier data before a CSV import gives you consistent fields to work from. If you are weighing platforms, the comparison of Shopify, WooCommerce and BigCommerce covers where each is strong. For a wider audit than product pages, auditing your site's SEO with AI in one afternoon is the next step.
WooCommerce SEO and schema questions
Can AI-written meta descriptions break my structured data?
A meta description is a separate tag from schema, so the text alone cannot break product markup. The risk is the plugin or setting you use to generate it. Adding or switching an SEO plugin can output a second Product block, so check page source and the Rich Results Test after any change.
Which WooCommerce pages should I do first?
Start with the pages that already earn: your top products by revenue, their categories, the homepage and any page with many impressions but a low click rate in Search Console. Leave long-tail products for a later batch. Fixing 30 priority pages properly beats touching 600 loosely.
How do I know if I have duplicate Product schema?
Open a product page, view the page source and search for the word Product inside script tags of type application/ld+json. More than one block describing the same item, or one block repeated, is a duplicate. Google's Rich Results Test lists every item it detects, which makes a second one easy to see.
Does Google use my meta description as written?
Not always. Google says it sometimes uses the meta description when it describes the page better than the page text, and snippets vary by search. A good description still helps, and Google advises each page has its own accurate one, but do not expect it to appear word for word.
Do I need a paid SEO plugin for AI features?
No. You can draft meta descriptions in any assistant and paste them into the fields of a free plugin. Paid plugin AI features save the copy-and-paste and can work in bulk. Check the vendor's current plan page for what is included before paying, because the packages change.
Further reads
- Shopify SEO With AI: Fix Titles and Meta Descriptions in Bulk — The same titles-and-meta job in a Shopify store.
- What AI Can and Can't Do for Your Local SEO — What AI can and cannot do for search visibility.
- AI Schema Markup Generator: Validate Client Structured Data Before Launch — Validating schema markup before launch.
- WooCommerce AI Agent: Which Chatbot Fits a Small Store? — Compare AI agents that work inside WooCommerce.
- AI for Ecommerce Analytics: Shopify Reports, GA4 or ChatGPT First? — Read your shop's numbers before and after SEO changes.
- Abandoned Cart Recovery in WooCommerce: Plugin Setup and AI Copy — Install a free cart recovery plugin, set consent and timing, have AI draft three emails, and measure what the sequence really recovers.
- WooCommerce to Shopify Product Import: Variants and Redirects With AI — Map WooCommerce export columns to Shopify's import file, fix variants and images, build a redirect list and audit a sample before go-live.
- AI Assistant for WooCommerce: What Plugins Do and What to Review — What third-party AI assistant plugins do in a WooCommerce store, what they can see, and the checks to run on a staging copy first.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Google Search Central documentation on snippets, merchant listing structured data and generative AI content; Yoast's pages for Yoast WooCommerce SEO and AI Generate; Rank Math documentation on Content AI.