The WooCommerce SEO consultancy that grows the store, not the URL count
Parameters, archives and schema, fixed at the source
Most WooCommerce stores do not have a content problem. They have a URL problem that looks like one. Filters, sorting and attributes publish addresses nobody asked for, a search engine spends its visit on those, and the pages that make money sit several clicks deep with nothing pointing at them.
- Category terms move in three to six months, and nothing moves in week two
- Written diagnosis first, yours to keep whether you continue or not
- Billed against agreed KPIs, no minimum term, thirty days’ notice
- Layered navigation
- Attribute archives
- Category structure
- Cart fragments
- Product schema
- Replatform maps

Find out how many URLs your store really has
- Indexed URLs measured against your product count
- The parameters your store publishes without asking
- Which single fault is costing you the most revenue
No obligation, no minimum term, and the written findings are yours whether you work with us or not.
Key takeaways
- WooCommerce generates crawlable URLs by default through filters, sorting, attributes and tags, and no one turns that off during a normal build.
- Category pages carry the commercial terms, and WooCommerce ships them nearly empty.
- Cart fragments and uncached dynamic state make WooCommerce slower to respond than a hosted store, and response time governs how much a search engine crawls.
- WooCommerce and an SEO plugin often both emit product markup, which produces conflicting structured data on the same page.
- A plugin sets fields. It does not decide catalogue structure, and structure is what ranks.
- The single most diagnostic number for any store is how many URLs it has against how many products it sells.
Start with a diagnosis, not a retainer
Our free 30-minute consultancy and SEO audit reads your store’s crawl, structure and query demand, then tells you in writing which of these faults is actually costing you revenue.
Book the free consultancy and audit You keep the written findings whether you work with us or not.What growth actually looks like on a WooCommerce store
Growth on WooCommerce shows up first as category terms moving, then as revenue per visit rising, and last as total sessions climbing. That order matters. Most dashboards are read from the top line down, which is the wrong way round here.
Category pages carry the buying language. Someone typing “brushed brass cabinet handles” is closer to paying than someone typing the brand name of a single product, and the page that should answer them is a category, not an item. When a store starts to grow properly, the movement appears on those terms while total traffic looks flat, because a smaller number of higher-intent visits arrives before the long tail follows.
Revenue per visit rises next, for a plain reason. Fixing structure sends people to the page that answers the search rather than to a product they have to navigate away from. The same traffic converts better before any of it grows.
Total sessions come last, usually in the third to sixth month. Anyone promising the reverse order is describing paid traffic.
Why a WooCommerce store usually underperforms its catalogue
The platform will publish an address for anything you hand it, and a standard build rarely closes that off. WordPress was built to make content easy to create. WooCommerce inherits that and applies it to filters, attributes, tags and search, each of which becomes a real URL a crawler can find and fetch.
Hosted platforms make the opposite trade. They give you fewer choices and, as a side effect, fewer ways to create waste. WooCommerce gives you every choice, which is why it can outperform hosted platforms in the right hands and underperform them badly in the wrong ones.
The result is a store where a search engine spends most of its visit on addresses that will never make a sale, then leaves before reaching the products that would.
Why Google indexes thousands of WooCommerce URLs you never created
Narrow a category by colour and WooCommerce mints a fresh crawlable address. Narrow it by price as well and you get another. Every narrowing combines with every other one, and the parameters that do it are the same on nearly every store.
The usual set is ?orderby= for sorting, ?filter_ for layered navigation, ?min_price= and ?max_price= for price sliders, ?rating_filter= for star filters, ?attribute_ for variation selection, and ?s= for internal search. Each one on its own is harmless. Combined, they multiply. ContentGecko sets out the arithmetic: five filter attributes with ten options each can produce roughly 100,000 addresses from a single category, and reports one store where Google had indexed 50,000 parameter URLs while missing half the actual product pages.
Nothing about that is exotic. It is the default behaviour of a shop with filters switched on.
The fix runs in three parts and the order matters. Block the parameter patterns in robots.txt, so crawlers stop fetching them at all. Canonicalise any filtered view that slips through anyway back to the clean category it came from. Then noindex, follow the thin combinations that should pass link equity without ever appearing in results.
One thing to avoid: the Search Console URL Parameters tool no longer exists. Google retired it, and several guides published since still recommend it. Anyone who suggests configuring it has not checked their own advice recently.
We run this on our own site. trueseo.co.uk is a WooCommerce store, and its robots.txt blocks /*?orderby=, /*?filter_, /*?min_price=, /*?max_price=, /*?rating_filter= and /*add-to-cart=. You can read the file yourself.
What WooCommerce attribute archives do to your index
Attribute archives publish a thin page for every value of every product attribute, and most store owners have no idea they exist. Set a colour attribute with twelve values and WooCommerce can expose twelve archive pages at addresses like /pa_colour/brushed-brass/, each listing a handful of products with no description, no heading worth reading and no reason to rank.
They compete with the category pages you actually want to rank. Google sees several near-identical listings of overlapping products and has to choose, which is a choice you would rather it never faced.
The decision is straightforward. An attribute people actually search by, such as size in footwear or capacity in batteries, deserves a real page with real copy and earns its archive. Every other attribute archive should be closed off. Most stores need one or two and are publishing forty.
Why WooCommerce category pages earn less than they should
The platform ships category pages as bare product grids with an optional description field almost nobody fills in. A heading, a list of products, pagination. That is not a page that can answer a commercial query.
A category page has to do three jobs at once. It has to answer the search in its opening lines, it has to list the right products in a sensible order, and it has to link sideways to the categories a shopper might have meant instead. WooCommerce gives you the middle job for free and leaves the other two blank.
Getting this right is the same discipline as matching any page to the reason behind a search, which is why understanding what a shopper actually intends before you build the page that serves them does more for a catalogue than another round of product descriptions.
The wider question of how catalogue structure should be planned across a whole store belongs to our ecommerce SEO consultancy, which sets out the four workstreams and the ninety-day sequence that apply on any platform.
Why your WooCommerce store is slow to respond, and what that costs
WooCommerce is slow to first byte because a large part of every page is dynamic, and dynamic pages cannot be served from cache the way static ones can. The cart has to know what is in it. Prices may vary by customer group. WooCommerce answers this with cart fragments, a background request through wc-ajax that runs on page load and blocks nothing visually while still consuming server time.
Add the query load of a typical WordPress plugin stack and a store can take well over a second to return its first byte where a hosted platform serving from a content delivery network returns in under two hundred milliseconds.
That gap costs you crawl rate, which is the consequence owners rarely connect to their hosting bill. Google’s own crawl budget documentation is explicit that faster server responses let Googlebot fetch more. We measured it on this site: days where the average response sat above 800 milliseconds saw a median of 33 requests, while days under 400 milliseconds saw 48. Same site, same content, roughly 45% more attention on the fast days.
A store that responds slowly gets crawled less, so new products take longer to appear and changes take longer to register.
Not sure which of these is your problem?
That is what the audit answers. We read the crawl, count the parameter surface and check the schema on your live URLs, then name the one fault costing you the most.
Get the free 30-minute audit Cardiff based, working with WooCommerce stores across the UK.What WooCommerce structured data gets wrong
WooCommerce emits product markup automatically, and it gets two things wrong often enough to be worth checking on every store.
The first is variable products. A product with six variants at different prices should describe that range properly. WooCommerce and the various SEO plugins disagree about how, and the result is frequently a price that does not match what the page displays, which is the sort of mismatch that gets rich results suppressed.
The second is duplication. WooCommerce emits product markup. Yoast and Rank Math emit product markup. Switch both on without deciding which owns it and the page carries two competing descriptions of the same item.
The rule is one owner per node. Pick the source, switch the other off, then validate what actually reaches the page rather than what the settings screen claims. We check the rendered output on the live URL, because plugins, caching layers and themes all modify markup after it leaves the database.
What to do with products you stop selling
Stop selling a product and you have three options, and picking the wrong one costs traffic either way.
Redirect it when a direct replacement exists. A discontinued kettle that has been superseded by the next model should send its visitors and its accumulated authority to the new one.
Return 410 when the product is gone and nothing replaces it. A 410 tells Google the page is deliberately gone, and Google drops it faster than it drops a 404. Stores with high product churn benefit from this more than they expect.
Keep the page when it still earns search traffic and the product may return. Mark it out of stock plainly, keep the content, and link to the alternatives. Seasonal stock belongs here.
The mistake we see most is the fourth option nobody chooses deliberately: leaving hundreds of dead products returning soft 404s, which trains a crawler to treat the whole catalogue as unreliable.
WooCommerce against Shopify and Shopwired
WooCommerce gives more control and more ways to break things. That is the honest comparison, and anyone who tells you one platform simply ranks better than another is selling a migration.
| Where it counts | WooCommerce | Shopify | Shopwired |
|---|---|---|---|
| URL control | Complete, including base slugs | Constrained, fixed prefixes | Constrained |
| Ways to generate waste | Many, by default | Few | Few |
| Server response | Depends on host and stack | Fast, delivered by network | Fast |
| Schema control | Total, with plugin conflicts | Managed, less flexible | Managed |
| Ceiling | High, with the work done | Good, with limits | Good, with limits |
Stores that thrive on WooCommerce are the ones with complex catalogues, unusual pricing rules, or content that has to sit alongside the shop. Stores that would be happier on a hosted platform are the ones with a simple catalogue and nobody to maintain the stack.
Our Shopify SEO service and our Shopwired SEO work apply the same method inside those platforms’ constraints.
How to audit your own WooCommerce store before you hire anyone
Run these six checks yourself, in an afternoon, before you pay anyone to tell you what is wrong.
Count your indexed pages against your products. Search Console reports how many URLs Google knows about. Compare it with your product count. A store selling 400 products with 12,000 indexed URLs has a parameter problem, and you have just found it without buying anything.
Fetch your own robots.txt. Look for the parameter patterns listed earlier. Most stores block nothing.
Read one category page as a stranger. Does it answer the search in its first two lines, or does it open with a product grid?
Time your own homepage. Any free speed tool reports time to first byte. Over 800 milliseconds is a crawl problem before it is a user problem.
Check one product page in Google’s Rich Results Test. Look for two competing product blocks or a price that disagrees with the page.
Search your own brand plus a category term. See which of your pages Google chose. Its choice is rarely the one you would have picked, and the gap tells you where the internal linking is wrong.
Two stores, and what changed
A Midlands homeware retailer selling roughly 600 products had 38,000 URLs indexed and organic revenue flat for two years. The filters had been switched on at launch and never constrained. Blocking six parameter patterns, canonicalising the filtered views and rewriting the top twelve category pages took the indexed count to 2,100 in eleven weeks. Category term visibility rose by about 140% and revenue per session by 31%. Traffic volume barely moved.
A Welsh specialist parts supplier with 2,400 products had a different fault. Its category pages ranked adequately, but its server returned first byte in 1.4 seconds and Google was crawling around 40 URLs a day against a 2,400 product catalogue, so new stock took weeks to appear. Object caching, a cart fragment fix and removing nine unused plugins brought first byte to 320 milliseconds. Crawl rate roughly tripled inside a month. New stock now appears in results within days.
Which UK sectors we do this work for
WooCommerce runs across most of the sectors we serve. The fault pattern changes with each one.
Automotive parts suppliers carry the worst parameter problems, because fitment filters multiply faster than anything else. Luxury and heritage brands usually have clean catalogues and weak category copy. Healthcare and dental suppliers face compliance constraints on product claims that shape what the copy can say. Hotels and hospitality businesses running WooCommerce for gift vouchers and packages tend to have three products and a structural problem out of all proportion to the catalogue. Accountancy practices and professional firms selling courses or downloads through WooCommerce usually need the shop kept entirely out of the way of their service pages.
Building the authority that makes a catalogue rank as a whole, rather than as a set of unrelated items, follows the same twelve steps we use to build topical authority on any site.
How a WooCommerce engagement runs, and what it costs
Four workstreams, overlapping rather than queued. Diagnosis reads the crawl, the parameters, the schema and the query demand against what the catalogue is actually trying to sell. Structure fixes the URL surface, the categories and the internal links. Content rewrites the category pages carrying commercial terms. Authority earns the coverage that makes a catalogue credible to a search engine that has never heard of you.
Expect movement on category terms in three to six months. Expect nothing in week two, and be suspicious of anyone who promises otherwise.
Pricing depends on catalogue size and how much structural damage is already there, and a 400 product store with clean URLs is a different job from a 40,000 URL parts catalogue. We quote after the free audit rather than before it, because a number given before anyone has looked at the crawl is a guess. Our SEO audit service covers the diagnosis on its own where you want the findings without the programme.
Stores that want the same work extended into how AI assistants describe their products should read how we optimise sites for AI Overviews and voice search, because clean product data is the input both systems read.
Frequently asked questions
Is WooCommerce bad for SEO?
No. WooCommerce ranks as well as any platform once its defaults are constrained. The platform is neutral. The defaults are the problem, and defaults are fixable.
Do I still need help if I have Yoast or Rank Math?
Yes, for anything structural. A plugin fills in titles, descriptions and basic markup. It does not decide your category architecture, constrain your parameters or choose which attribute archives deserve to exist, and those decisions are what move rankings.
How many URLs should my WooCommerce store have?
Roughly your product count, plus your categories, plus your content pages, plus a small margin. A store with ten times more indexed URLs than products has a parameter problem worth measuring today.
Will blocking filter URLs hurt my shoppers?
No. Blocking in robots.txt stops crawlers fetching those addresses. Shoppers keep using filters exactly as before, because robots.txt has no effect on a browser.
How long does WooCommerce SEO take to show results?
Three to six months for category terms, sometimes sooner where the fault is purely technical. Crawl rate improvements show within weeks, which is the first signal that the rest is coming.
The next step is a diagnosis, not a proposal
Work with a consultancy that runs WooCommerce itself
True SEO Consultants Ltd works from Startup Stiwdio, University of South Wales, 86-88 Adam Street, Cardiff, CF24 2FN, and runs WooCommerce programmes for stores across the UK and further afield through a fully remote digital onboarding and delivery process. We are a consultancy rather than an agency, which means you deal with the people doing the work, and we bill against agreed KPIs with no minimum commitment and thirty days’ notice.
We also run this site on WooCommerce, so every parameter rule, schema decision and caching choice described above is one we have made on our own store before recommending it on yours.
Our free 30-minute consultancy and SEO audit reads your store’s crawl, parameter surface, category structure and query demand, then tells you which fault is costing you the most.