Clienti

Blog

WooCommerce SEO: The Catalog Guide

Permalinks, product templates, schema and feeds for WooCommerce stores with hundreds or thousands of products.

The short answer

WooCommerce SEO is the work of making a WooCommerce store's product and category pages crawlable, indexed and understood by search engines and AI agents. It covers permalink settings and control of filter URLs, product titles and descriptions, global attributes with GTIN and brand, structured data, plus the Merchant Center feed.

01

Is WooCommerce good for SEO? The short answer

WooCommerce gives you clean URLs, basic Product markup and a core XML sitemap out of the box. What it doesn't give you is a catalog that search engines and AI agents can fully read, and that product data is where most WooCommerce SEO work happens.

  1. 01

    Fix the URL rules first. Changing permalinks on a live store breaks every product URL that isn't redirected.

  2. 02

    WooCommerce's built-in schema covers the basics but skips brand, shipping and returns, and variable products get an AggregateOffer that merchant listings can't use.

  3. 03

    Most ranking problems on a WooCommerce store are attribute problems: custom product attributes that never reach the markup, the feed or the filters.

  4. 04

    Google Search, Shopping and AI assistants read the same product data. Clean it once.

7+ million

active installations of the WooCommerce plugin

Millions of stores share your templatesSource: WordPress.org
20%

more clicks on average for retailers who added correct GTINs

One field, measurable liftSource: Google Merchant Center Help
693.4%

year-on-year rise in generative AI traffic to US retail sites, 2025 holiday season

AI now sends shoppers to storesSource: Adobe

The platform-agnostic method lives in the ecommerce SEO guide. This article sticks to what's specific to WooCommerce. If part of your business runs on Adobe Commerce, the Magento SEO guide covers the same ground for that platform.

03

Product page templates: titles, descriptions and attributes

A WooCommerce product page ranks on what its fields contain. Most stores leave half of them empty or stored in the wrong field type.

Product name and SEO title

The product name (post_title) becomes your H1, the default title tag and the base of the Merchant Center title. Write it the way people search, with the product type and the attribute that defines it near the front.

For Shopping, Google allows 150 characters but shoppers usually see only the first 70 or fewer, and each variant should carry its own color or size in the title (Google Merchant Center Help).

Short description versus long description

This one catches teams out. Core schema uses the short description (post_excerpt) as description and falls back to the long one only when it's empty (WooCommerce source). If it reads "Bestseller, buy now", that's what machines get. Make it the factual summary.

Global attributes, not custom ones

Global attributes live under Products > Attributes and become taxonomies like pa_color. Custom product attributes are typed into one product and stay there. If an attribute isn't global, your filters can't use it and the Google feed plugin can't map it. When we audit a WooCommerce catalog, it's the first thing we check.

GTIN and brand are now core fields

Since WooCommerce 9.2 there's a built-in GTIN field in the Inventory tab (WooCommerce docs). Since 9.6, Brands is part of core and switched on for every store (WooCommerce Developer Blog). Move identifiers out of old custom fields into these. Each variation needs its own GTIN, never the parent's barcode copied down (GTINs explained).

Here's a typical supplier-imported product before and after an Optimizer pass (illustrative values):

AndromedAI / OptimizerAI Readiness 31/100

post_title

BeforeMerino Crew Navy

AfterNorthvane Men's Merino Wool Crew Neck Sweater, Navy, Machine Washable

post_excerpt

BeforeBestseller, buy now

AfterFine-gauge 17.5 micron merino crew neck for men. Soft enough to wear on bare skin, machine washable at 30 degrees, regular fit.

attributes

Beforecustom: "Material: wool"

Afterpa_material: 100% merino wool; pa_fit: regular; pa_color: navy; care: machine wash 30 degrees; season: autumn, winter

gtin

Before(empty)

After05012345678900 (one per size)

brand

Before(empty)

AfterNorthvane

Illustrative example, AI Readiness Score from 31 to 89
04

WooCommerce structured data: what core outputs and what it leaves out

WooCommerce prints Product JSON-LD on every product page but omits brand along with shipping and return policies, and gives variable products an AggregateOffer.

Here's what the WC_Structured_Data class does by default, set against Google's merchant listing requirements. Your SEO plugin or the woocommerce_structured_data_product filter fills the gaps.

PropertyWooCommerce coreWhat to do
name, url, imageOutput (image if set)Nothing extra
descriptionShort description, else long descriptionWrite a factual short description
skuSKU, or the product ID if SKU is emptyFill SKUs
gtinOutput when the GTIN validatesFill GTIN per variation
brandNot outputAdd via SEO plugin or filter
offersOffer for simple products, AggregateOffer for variable onesAdd ProductGroup variant markup
aggregateRating and reviewOutput only when ratings are enabled and reviews existKeep reviews on (up to 5 recent ones are included)
shippingDetails and hasMerchantReturnPolicyNot outputDeclare at Organization level

Source: WooCommerce class-wc-structured-data.php.

Fix the variable product gap first. Google says merchant listings require an Offer, so a variable product's parent page in core markup only qualifies for basic product snippets. Google's product variant markup solves it with a ProductGroup that lists variants in hasVariant, with variesBy and a productGroupID declared on the group. WooCommerce variations selected through ?attribute_pa_color=navy fit Google's single-page model if each variant has its own preselecting URL and the group has one canonical.

Check the output in the Rich Results Test, then watch the Merchant listings report in Search Console. Field by field guidance is in structured data for ecommerce.

05

Feeds: Google for WooCommerce, Merchant Center and AI assistants

The free Google for WooCommerce extension syncs products to Merchant Center, but attribute mapping only reads global attributes. Get the attribute model right on the store and the feed follows.

Google for WooCommerce connects the store to Merchant Center and syncs product data automatically. Attribute mapping only works with global attributes; individual product attributes "are not supported" (attribute mapping docs). A value on a product's own Google tab overrides the category rule.

Products missing a title, description, ID, link or image don't sync at all. Google drops items not updated in 30 days; the extension resubmits them (product feed docs).

  1. 1

    Convert custom attributes to global ones

    Recreate any filterable attribute, such as material or fit, as a global attribute and reassign the values.

  2. 2

    Fill GTIN and brand in core fields

    Use the Inventory tab GTIN per variation and the Brands taxonomy.

  3. 3

    Connect Google for WooCommerce

    Link Merchant Center, then let the first sync finish.

  4. 4

    Set category mapping rules

    Map Color to pa_color, Brand to Brands, MPN to SKU; use fixed values only where a whole category truly shares one.

  5. 5

    Read the diagnostics

    Work through disapprovals in Merchant Center. Fix the data on the store, never only in the feed.

Patching data in a feed tool while the store stays wrong is a habit we argue against. Page, markup and feed should agree, since Google compares them. The full feed side is in the Google Merchant Center guide.

The same fields decide what an AI assistant can say about your product. Ask for a specific need and it picks the product whose data states it:

ChatGPT
Demo illustrativa
Scrivo la domanda
Illustrative example

The version with "Material: wool" in a custom attribute never makes that shortlist. This is the idea behind Agentic Commerce Optimization. Search engines and AI agents read one catalog, so you fix it once at the source.

06

How AndromedAI helps WooCommerce stores

AndromedAI handles the catalog side of WooCommerce SEO. It scores product pages, enriches them from your product data and publishes back to WooCommerce.

Start with the free AI Readiness Audit, which scores product pages on Product Data Completeness, Keyword Coverage, Customer Intent Match and Shopping Metadata. The Optimizer then rewrites titles, descriptions, bullets and FAQ, extracts attributes from existing copy and adds use cases and intents, following your Brand Kit. WooCommerce is one of the platforms AndromedAI publishes to, alongside Google Merchant Center (integrations). Robots.txt rules and redirects stay with your developer; the wider plan is in the ecommerce SEO guide.

+160%

organic traffic, with sales up 46.9%

Semprefarmacia
+80%

add-to-cart in two months

Altaforma Milano
-33%

bounce rate

Ausilium
07

FAQ

Yes. WooCommerce gives you editable URLs and title tags, outputs basic Product structured data and gets a core XML sitemap from WordPress. How well a store ranks depends on how you configure permalinks and filter URLs, and on how complete your product data is, especially global attributes, GTIN and brand.

You need one SEO plugin to control title tags, meta descriptions, sitemaps and extra schema such as brand, which WooCommerce core does not output. Either Yoast SEO or Rank Math does the job. Never run two at once, since they output overlapping sitemaps and duplicate structured data.

Usually no. The keyword benefit of removing the product base is small, and plugins that strip it can conflict with page slugs. On a live store every changed URL also needs a 301 redirect, so the maintenance cost outweighs the gain. Keep the default base and spend the time on product data.

Yes. WooCommerce core outputs Product JSON-LD with name, URL, image, SKU, GTIN, offers and reviews. It leaves out brand, shipping details and return policy, and variable products get an AggregateOffer that Google merchant listings do not accept. An SEO plugin or a code filter can add the missing properties.

Install the free Google for WooCommerce extension, connect it to Google Merchant Center and let it sync the catalog. Use global attributes and the attribute mapping rules so brand, color, size and GTIN reach the feed, then work through the disapprovals in Merchant Center diagnostics by fixing the data on the store.

State the facts shoppers ask about, such as material, fit, use case or care, in the page text, in global attributes and in structured data. Keep the Merchant Center feed consistent with the page. AI assistants recommend the products whose data clearly matches the request, so vague or missing attributes keep you off the shortlist.

08

Glossary

Permalink base
The fixed part of a WooCommerce URL before the product or category slug, such as product or product-category.
Global attribute
A WooCommerce attribute defined under Products > Attributes and stored as a taxonomy like pa_color, usable by filters and feed mapping.
Custom product attribute
An attribute typed into a single product. It shows on the page but cannot drive filters or Google feed mapping.
Short description
The post_excerpt field of a WooCommerce product, used by core as the schema description.
AggregateOffer
A schema.org offer type with a price range, which WooCommerce uses for variable products.
ProductGroup
Schema.org type that groups product variants with hasVariant, variesBy and productGroupID.

Parlano di noi