Ecommerce SEO for a brand competing with a marketplace
Ecommerce SEO is mostly a crawling problem. Filters, sort orders and collection paths multiply one product into dozens of URLs, and Googlebot spends its budget there instead of on the pages you sell.

You are not competing with the shop down the road. On a product query it is Amazon, Walmart and a manufacturer who handed that description to forty retailers.
Copying them is pointless. What you can win are the queries a marketplace serves badly: the model with a specific fault, the comparison, the fit question, whether it works with what they own.
The other half is plumbing. A store generates URLs automatically as a services site never does, and a category page with three filters ticked is one Google crawls a thousand ways.
One thing to get out of the way. Building and maintaining stores has been the work here since 2018, WooCommerce and Shopify both. Selling the search half monthly is newer, and no store here has revenue we can claim.
More on this:our ecommerce website design and build work·how our SEO retainers are scoped and reported·SEO work on a Shopify storefront·our WooCommerce development work
What is actually holding the store back
Filters producing infinite URLs
WooCommerce layered navigation appends filter_colour and query_type_colour to the category URL. Tick four attributes and you have more addresses than products.
Two paths to every product
On Shopify the same item answers at a short product path and a longer one under every collection it sits in. Your sitemap lists one, your menus the other.
The manufacturer's description
Forty retailers publish the paragraph the supplier sent, and Google shows one of them, which will not be the store with eleven referring domains.
Discontinued lines left to rot
Three hundred out of stock products return 200 and sit in the sitemap. Crawl budget burns on what nobody can buy.
What the work covers
A parameter policy, written down
Google retired the URL Parameters tool in Search Console in 2022, so there is no switch to flip. What is left is robots.txt, canonicals and your own internal links, and those have to agree. We write the policy, then implement it.
Faceted navigation that stays crawlable
Some filters deserve an indexable page, because people search for them by name. Most do not. We decide by demand, then block the rest at crawl level rather than hope a noindex tag holds.
Product data Google can read
Product markup with price, availability and shipping, validated against Google's documentation, not a plugin's defaults. A merchant listing shows a price. A blue link does not.
Descriptions nobody else has
We rewrite the products that earn it, starting with those already getting impressions and no clicks. Fit, sizing, contents, and what the thing does not do. That last one wins the most trust.

In every month
- A full crawl of every URL, reconciled against your sitemap and Search Console index coverage
- A written parameter and facet policy, implemented in the theme by us rather than handed over
- Product structured data validated against Google's own published documentation
- Rewritten descriptions for the products already earning impressions and no clicks
- Monthly reporting from your own Search Console property, with access held in your name
The duplicate URL problem no other industry has
How the retainer runs on a store
Month one is a crawl and a decision list. We compare what the crawler finds against your sitemap and what Search Console has indexed, then give every URL pattern a verdict. Index, block, redirect or leave alone.
That list is the engagement in miniature, and it is where ecommerce SEO differs from every other retainer we sell. A plumber has forty URLs. Two thousand products with six filter attributes have a theoretical URL space in the millions, and nobody writes out of that.
From month two the split is roughly half technical, half commercial. Technical is template work in Liquid or PHP, done by us rather than raised as a ticket. Commercial is picking the twenty or thirty products worth real description work.
We report impressions and clicks per URL pattern, not just per page, because that is the only way to see whether blocking the filters moved the crawl onto the products. Revenue attribution stays in your analytics, where you can audit it.
One sequencing rule. Robots rules go in last, after the internal links stop pointing at the patterns we are about to block. Block a URL your menus still link and Google keeps it indexed with no snippet, which looks worse than the duplication did.
- Template edits shipped by us, in Liquid or in PHP
- A written index or block verdict for every URL pattern
- Fixed monthly hours, thirty days notice
- Reporting grouped by URL pattern as well as by page
The first quarter
- 01
Week one, the crawl
We crawl the store at full depth and pull sixteen months of Search Console data beside it. The gap between crawled and indexed is the story.
- 02
Week two, the URL verdicts
Every pattern gets a decision and a reason. You see the list before anything is blocked, because a facet that looks worthless to us may be how half your customers shop.
- 03
Week three, the template work
Canonicals, internal links, robots rules and structured data change in the theme. On Shopify that includes robots.txt.liquid, editable since 2021 and still the cleanest place for it.
- 04
Month two onward
Description work on products with impressions and no clicks, category copy where it earns its place, and whatever the crawl surfaces.
- 05
Every quarter
Indexed page count, impressions by URL pattern and clicks against the month one baseline. If the crawl moved and clicks did not, that is a content problem and we say so.
What ecommerce SEO costs
How large the catalogue is
Two hundred products is a different job from twenty thousand. The second needs rules rather than hand editing, and rules take time to get right.
How many filter attributes exist
Colour and size is manageable. Colour, size, material, brand, price band and rating is combinatorial, and untangling which combinations anyone actually searches for is most of month one.
Which platform you are on
Shopify constrains what can change, which keeps the work predictable. WooCommerce lets you change anything, faster when the install is tidy, slower when it carries thirty plugins.
Who writes the descriptions
If your merchandiser writes from an outline we stay technical and the retainer is smaller. If every word is ours, it is a bigger number.
The Shopify link that undoes your own canonicals
Here is the one that catches Shopify stores. Every product answers at two addresses, and most themes render grid links with `product.url | within: collection`, which emits the longer collection path, so your navigation spends the crawl on URLs your canonical tag tells Google to ignore. Drop the within filter from the product grid snippet and the crawl settles inside weeks. Check the rendered HTML, not the theme editor: sections and apps override it.
Sources:Google's product structured data documentation·Google on consolidating duplicate URLs
Do one check before you talk to anybody. Open the Pages report in Search Console, note how many URLs sit under Crawled, currently not indexed, and set that beside your product count. If the first dwarfs the second, the crawl is your problem. No amount of writing touches that.
Send that number with the store URL and you get back which patterns produce it and which we would block first. If the two numbers are close, your problem is that nobody has heard of you, and that is slower and dearer to fix.
Get a fixed-price quote Back within 1 business day
Questions store owners ask
Why does my product page rank below Amazon?+
Usually authority and duplication together. The marketplace has far more referring domains, and if your description came from the manufacturer then forty stores publish that text. Google picks one, and the tie goes to the stronger domain. Original copy claws it back.
Should filtered category URLs be indexed?+
Only where people search that combination by name, such as a colour or size with real demand. Everything else should be crawlable but not indexed, or blocked outright. Indexing every combination creates near duplicates that compete with the category you want ranking.
Is Shopify or WooCommerce better for ecommerce SEO?+
Neither wins on merit. Shopify limits what you can break and handles product canonicals sensibly. WooCommerce gives full control of URLs and templates, which helps a careful team and hurts a busy one. Build quality matters far more than platform choice.
How long does ecommerce SEO take to show anything?+
On a store with a duplication problem, faster than the usual answer. Once the filter URLs stop being crawled, Googlebot reaches the products it was missing and impressions move within weeks. Winning a competitive query on authority is slower, counted in quarters.
Do I need unique descriptions for every product?+
No, and chasing it is how budgets vanish. Start with the products already earning impressions and no clicks, which Search Console shows you in an afternoon. Twenty written properly beat two thousand rewritten by a tool that never handled it.