WooCommerce SEO consultancy, UK wide

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
Diagram of the growth sequence for a WooCommerce store, category terms first, then revenue per visit, then total sessions
The free audit, in 30 minutes

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
Get the free WooCommerce audit

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.

Figure 1 of 3
How one WooCommerce category page becomes tens of thousands of crawlable URLs A single category URL passes through four layers of WooCommerce parameters. Sorting multiplies it by six, colour filters by ten, size filters by eight and the price slider by twenty, producing roughly 96,000 addresses. Blocking the parameters in robots.txt returns the count to one. 1 category page /product-category/handles/ ?orderby= price, popularity, rating, date, name, menu order x6 ?filter_colour= ten colour values, combinable with each other x10 ?filter_size= eight size values, combinable with colour x8 ?min_price= & ?max_price= the slider emits a new address on every drag x20 Parameters left open 96,000 crawlable addresses, one catalogue Parameters blocked 1 the page you wanted ranked
One category, four parameter layers. The multiplication is not a worst case, it is the default behaviour of a shop with filters switched on. Blocking the patterns in robots.txt collapses the surface back to the page you wanted ranked.

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.

Figure 2 of 3
What to do with a WooCommerce product you stop selling A decision tree. Where a direct replacement exists, redirect the old product to it with a 301. Where the product is gone and nothing replaces it, return 410. Where the page still earns search traffic or the stock may return, keep it and mark it out of stock. Leaving the page to return a soft 404 is the failure state. Product withdrawn from sale ask one question before deleting anything Does something else on the site serve the same need? A replacement exists 301 to the replacement Authority and any links move with the shopper. Never bulk-map to /shop/. Gone, nothing replaces it 410 deliberately gone Dropped faster than a 404. Worth the effort on high-churn catalogues. Still ranks, may return 200 keep and mark it Out of stock, honest date, alternatives linked. Seasonal stock lives here. The option nobody picks on purpose Delete the product, leave the URL returning a soft 404, repeat across hundreds of lines. A crawler learns to distrust the whole catalogue, including the products you still sell.
Three deliberate outcomes, one accident. Stores with high product churn recover the most from getting this right, because the accident compounds every time a line is withdrawn.

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.

WooCommerce, Shopify and Shopwired compared on the things that decide search performance
Where it countsWooCommerceShopifyShopwired
URL controlComplete, including base slugsConstrained, fixed prefixesConstrained
Ways to generate wasteMany, by defaultFewFew
Server responseDepends on host and stackFast, delivered by networkFast
Schema controlTotal, with plugin conflictsManaged, less flexibleManaged
CeilingHigh, with the work doneGood, with limitsGood, 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.

Figure 3 of 3
How a WooCommerce SEO engagement runs across the first six months Four overlapping workstreams. Diagnosis runs from week one to week four. Structure runs from week two to week twelve. Content runs from week five to week twenty-two. Authority runs from week nine to week twenty-six. Crawl rate responds first, category terms move between months three and six. Month 1Month 2Month 3Month 4Month 6 Diagnosis weeks 1 to 4 Written up whether you continue or not. The only stream with a fixed end date. Structure weeks 2 to 12 Crawl rate answers here first. It overlaps diagnosis by three weeks. Content weeks 5 to 22 Starts before structure finishes, not after. Authority weeks 9 to 26 No two streams start together, and none of them runs alone.
Overlapping, not queued. Crawl rate responds during the structure phase, which is why it is the first honest signal that the programme is working. Category terms follow between months three and six.

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.