Skip to content

WooCommerce SEO

WooCommerce SEO starts in the catalog

Most WooCommerce SEO problems are not on the product page. They are in how the catalog is built: what is a category and what is a filter, what your filter plugin does to your URLs, what happens to a product when it sells out, and what an import does when a row goes missing.

We build and look after WooCommerce stores, from a wholesale tile catalog with a dealer portal to a bilingual course store. The largest runs on written weekly and quarterly checklists. This page is what we check on stores like these, and why.

Email info@woofocus.com Want us to look at your store?

Categories are for browsing, attributes are for filtering

Categories become pages, with their own URLs, titles and rankings. Attributes power filters. When every new idea becomes a category, a store ends up with thin, overlapping category pages that compete with each other.

From our logs

A tile manufacturer asked us for a new sub-category for its newest products. We added a Product Type attribute to its import template instead, the day before the next import, and built it into the filter sidebar. Customers get the same view. The catalog does not get another category to maintain.

Every quarter we also query the database for duplicate categories and duplicate SKUs, and check that nothing is sitting in Uncategorized.

Filter URLs: decide which ones deserve to exist

Filter plugins create a URL for every combination a shopper clicks. Some of those URLs duplicate your category pages exactly. On one store, a filter URL shaped like /shop/?_category=[collection] showed the same products as the category page /product-category/[material]/[collection]/.

What we do about it:

  • Keep crawlers out of filter combinations. Robots.txt rules for the filter parameters do this, and it is what Google’s own faceted navigation guidance recommends when those URLs do not need to be in search.
  • Remember what robots.txt does not do. It stops crawling, not indexing. A blocked URL can still appear in Google if other pages link to it.
  • Let category pages be the landing pages. They have clean URLs, their own copy and internal links pointing at them.
  • When a filter has real search demand, give it a real page, and link to that page from the site.

Our note to one client who asked for a clean URL for a filtered view:

“Friendly URLs aren’t possible for these results because the page uses a filter system. If you’d like a standard URL, we can build a dedicated page instead... Just note that we’d need to link to that page from somewhere on the site, otherwise it becomes an orphan page and won’t deliver much value.”

And if anyone suggests configuring URL parameters in Search Console: Google retired that tool in 2022.

Product data is SEO data

WooCommerce outputs basic Product structured data, and SEO plugins extend it. Check what your store actually outputs: price, currency and availability that match the page, SKUs, and brand and GTIN where you have them, with one Product entity per product page. More on markup in schema markup.

Availability deserves the most attention, because it is the field most likely to be wrong. On the tile store, stock sits in four warehouses. A product shows as in stock if any of them has it. Otherwise the page says it is out of stock and can be backordered. A weekly check compares the inventory sync count against what it should be.

From our logs

After a store moved to WooCommerce, Search Console reported 11 active products that were not appearing on the Shopping tab. The product pages themselves looked fine. Search Console’s shopping reports are worth reading even when nothing on the site looks wrong.

Sold out, discontinued, deleted

A sold-out product is still a page with a history: links, rankings, sometimes reviews. Deleting it throws that away.

  • Temporarily out of stock: keep the page live, say so clearly, and offer a backorder or an alternative.
  • Discontinued but still selling through: keep it live and visibly marked until the stock is gone. One of our clients gives discontinued products several months to sell their remaining stock, so those pages stay live, and we are adding a visible “discontinued” marker to them.
  • Gone for good: redirect to the closest replacement or to its category. Not to the homepage.
  • Dated products such as courses and events: on a course store, sold-out dates get an automatic “Full” badge, and past dates drop off the page.

A lesson about modeling

On a store selling one-of-a-kind pieces, each piece had been set up as a variation of a parent product, with a stock of one. When pieces sold, the parent products still showed up in filters and search, because filters work on parent products, not variations. There was no clean fix that did not fight WooCommerce’s structure. How products are modeled on day one decides what search and filters can do later.

Imports can delete your rankings

Stores that update their catalog by spreadsheet can lose products without anyone noticing, and every lost product is a 404 with rankings attached.

WP All Import has an option to remove products that are missing from the import file. Its own warning reads: “Products created by this import and no longer present in the import file will be permanently deleted.” On the tile store, we switched that option on only after confirming that every existing product was in the new file, and the client’s staff switch it off for a separate import that covers display products. We have also seen products disappear because their names were blank in the spreadsheet.

Site search is part of findability

If shoppers cannot find a product once they arrive, the work that brought them there is wasted. We check on-site search with canary queries that have expected result counts. On the tile store, a search for “grey” should return more than 100 products, and a search for “aura” fewer than ten.

Those checks exist because search has broken for real. On one day it failed twice: after a database cleanup, which needed a full re-index of the products, and again when the filter plugin’s license lapsed. We describe the full weekly routine in how we test websites with AI.

From our logs

A B2B manufacturer’s site search mostly returned product categories, with no images. Our developer changed the search template to return categories with their thumbnails, so the results looked like something worth clicking.

Replatforming a store

Moving a store onto WooCommerce is a migration with extra data. For a store moving off a hosted store builder, the scope included a crawl of every old URL, 301 redirects to the new product pages, titles and meta descriptions carried across, SKUs including variation SKUs, and a new product feed. As we told that client: “We’re not going to use your product page’s URL structure; we’ll redirect them to the new product pages.” The redirect side is covered in website migration SEO.

After any store launch, our checklist covers permalinks and product slugs, categories, tags and attributes, redirects, canonicals on the right domain, SEO titles and descriptions carried over, a working sitemap, robots.txt allowing indexing, and the stock sync running.

Speed matters on stores too, and carts and checkouts need their own caching rules. See Core Web Vitals.

Working with your SEO consultant

On a bilingual course store, the client’s SEO consultant crawls the site and sets priorities, and we implement them. At the consultant’s request we added trailing slashes and re-pointed breadcrumbs, so that 9 course pages, 3 event pages and 7 product pages each sit under the section people actually browse instead of WooCommerce’s default shop path.

Frequently asked questions

Should WooCommerce filter pages be indexed?+

Usually not. Let category pages rank, and keep crawlers out of filter combinations. If one combination has real search demand, give it a proper page and link to it.

Should I delete out-of-stock products?+

No. Keep the page and say it is out of stock. When a product is discontinued for good, redirect it to the closest replacement or its category.

Does WooCommerce add product schema by itself?+

Yes, basic Product markup. SEO plugins extend it. It is worth checking what your store outputs against Google’s product requirements.

Is /product-category/ in my URLs a problem?+

Not for rankings. Changing the category base on an established store means redirecting every category URL, so it is rarely worth doing on its own.

Can you work alongside our SEO consultant?+

Yes. On one course store, the consultant sets priorities and we implement them.

Send us your store

Email info@woofocus.com with your store URL and the category you most want to rank. We’ll tell you how it is built and what is in its way. Replies within one business day.

For builds and ongoing development, see our WooCommerce development page and our WooCommerce maintenance. For a full technical review, start with the SEO audit checklist or see our technical SEO work.

Sources