Skip to content
codecollab.pl
§ Blog ecommerce seo

SEO for online stores - categories, product pages and filters

In an online store it is categories, not individual products, that decide visibility - and that is where most of the work belongs

Krystian Kacik 10 min read
Contents

In an online store it is categories, not individual products, that decide visibility - and that is where most of the work belongs. Someone typing “women’s hiking boots” is not after a specific model, they want a list to choose from. They will only reach a product page once they know the name or the code. That single rule sorts out the order of work in a store and saves months spent writing descriptions that bring nobody in.

Below I go through the technical and structural layer: what actually blocks visibility in the stores I look at. The general checklist - indexing, titles, speed, sitemap - is in the separate piece on the step-by-step SEO audit and I am not repeating it here. This is the part that only applies to stores.

The category is the landing page, the product closes the deal

The split looks the same in most stores. Categories and subcategories pick up broad and mid-range phrases - the ones with the traffic. Product pages pick up model names, codes and manufacturer references - less traffic, higher intent.

Three decisions follow from that:

  • Every category gets its own written copy. Not 300 characters of filler, but an answer to how the customer chooses: what separates the models, what to watch out for, what goes with what. You write it once and it works for years
  • The structure mirrors how people search, not how the warehouse is organised. If nobody types the name of your internal department, that department should not be a category
  • Two levels deep at most from the home page to a listing. A product buried four clicks down gets less attention from both the search engine and the customer

Where to put category copy: a short intro above the listing (two to four sentences so the customer knows where they are) and the longer part below it. The other way round - a wall of text before any products - costs sales and gains nothing in search.

Filters and sorting, the biggest source of index junk

This is problem number one in stores with faceted navigation. Every filter combination generates a URL. Three filters with five values each is already 125 combinations for a single category, and each one looks to a crawler like a separate page with almost identical content.

You can spot the symptom in a minute: type site:yourdomain.com into Google and compare the number of results with your product count. Several times more URLs than products means filters are sitting in the index.

What to do about it:

Type of URLDecision
Sorting (price, popularity)same set of products, canonical to the category
A single filter with real demand (“women’s winter jackets”)keep it indexable, but give it its own title and copy
Combinations of two or more filterskeep out of the index
Technical filters (view, items per page)keep out of the index

The working rule: a filter deserves its own indexed URL only when people actually search that way, and only if you give it a unique title and a few sentences of copy. Everything else should canonicalise to the base category. Filters that generate thousands of URLs are not worth fixing one by one - cut them off with a rule.

Worth knowing: the URL parameters tool in Search Console was retired, so there is no longer a switch for telling Google about this. The decision has to be made in the store’s code.

Pagination - so the products on page 4 exist

Google stopped using rel="next" and rel="prev" years ago, so pagination now rests on three things:

  1. Every listing page has a canonical pointing at itself, not at page one. A canonical to page 1 is the most common mistake - it tells the search engine that pages 2 to 10 are duplicates, and the products on them drop out of reach
  2. Links to further pages are ordinary links in the HTML. If pagination is JavaScript-only, or the “load more” button has no URL behind it, the crawler has nowhere to go
  3. The title distinguishes the page number. “Hiking boots - page 2” instead of ten identical titles

Infinite scroll looks good and is the worst option for visibility, unless there is real paginated navigation with URLs underneath it. Separate point: hundreds of products per page makes a listing so heavy that speed falls apart - I cover the effect on stores in the piece on Core Web Vitals in WooCommerce.

Product descriptions taken from the supplier

If the catalogue arrived in a supplier feed, you have exactly the same text as fifty other stores. The search engine picks one URL to show and, statistically, it will not be yours if a competitor has a stronger domain.

The systematic fix is not rewriting a thousand descriptions, it is choosing:

  • Pick the 30 to 50 products that genuinely sell or have the most potential, and write their descriptions yourself
  • Add what the supplier does not have: your own photos, dimensions you checked, what it fits, the questions your support team keeps answering, reviews
  • Leave the rest of the catalogue on the manufacturer’s text and rely on the categories - because it is the categories doing the work

If the catalogue is imported automatically, make sure the import does not overwrite your descriptions on every refresh. How to set that up is in the piece on XML product feed imports.

Variants: one URL or many

A product in five colours can be built two ways and both can be right.

One URL with a variant switcher - the default choice. All the strength gathers on a single address, one page to maintain, simpler structure. It works when the customer is searching for the model and picks the colour once they are there.

Separate URLs per variant - only makes sense when people genuinely search for the variant by name (“iPhone 15 128 GB black”) and each variant has its own code used in the trade. It costs you: more pages to index, a risk of them competing for the same phrase, and the need to differentiate titles meaningfully.

How to settle it: check the performance report in Search Console for whether variant names appear in your queries. If they do not - one URL.

Out-of-stock and discontinued products

Three situations, three different decisions:

  • Temporarily out of stock - keep the page, mark it unavailable, show a restock date or a back-in-stock notification. Deleting the page every time something runs out is the most expensive mistake on this list, because you lose rankings that took months to build
  • Discontinued with a successor - a permanent redirect (301) to the successor, provided it genuinely replaces it. Redirecting everything to the home page is a signal search engines dislike and customers find infuriating
  • Discontinued with no replacement - return 410 rather than a plain 404, because it says outright that the page is gone for good and it leaves the index faster. Before deleting, check whether the page has traffic; if it does, keep it with a note and a list of alternatives

On larger catalogue clean-ups, keep a change log with the URLs. That same list pays off in any store migration.

Product data for the search engine

A store has one advantage over an ordinary site: product data can be provided in machine-readable form, and then your search result looks different from the competition’s.

Three things worth setting up:

  1. Product markup with price, currency, availability and code. Store plugins usually generate it automatically - it is worth checking in the rich results test whether anything is flagged as missing
  2. Breadcrumbs - they show the category path in the search result instead of a raw URL
  3. A product feed for Merchant Center - same data source, different channel; free shopping listings can bring traffic with no ad budget

That same structured data now helps in a second place: in AI-generated answers, which assemble a reply out of specific pages. I set that out in the piece on visibility in ChatGPT and AI Overviews.

Internal linking in a store

The cheapest part of the work and the one most often skipped. Four moves that work:

  • From category to key products - a bestsellers or featured block, linked with ordinary links rather than a JavaScript carousel
  • From product back to the parent category through breadcrumbs - it strengthens the page that is meant to earn the traffic
  • Between related products - accessories, alternatives, sets; that is SEO and a higher basket value at once
  • From guide content into categories - a “how to pick the right size” piece linking to the listing does far more than the same piece without the link

The link text rule does not change: it should say what is on the other side, not “see more”.

Where to start when everything needs doing

The order that gives the most for the least effort:

  1. Check whether filter junk is sitting in the index - usually the single biggest problem
  2. Fix pagination if products on later pages are out of reach
  3. Write copy for the 5 to 10 most important categories
  4. Sort out category and product titles so they are not identical
  5. Measure speed on a phone and fix what blocks the first screen - with WooCommerce it is usually one of the known causes of slowdown
  6. Only then product descriptions and guide content

Points 1 and 2 are the technical layer: without them the rest runs at half power. What else goes into a full store review I listed in the piece on the ecommerce store audit.

Frequently asked questions

What should I optimise in a store: categories or products? Categories first, because they answer the phrases people type most - broad and mid-range ones. Product pages work on model names and codes: less traffic, higher buying intent. In practice: category copy and titles first, then descriptions for your best sellers.

Do filters hurt ecommerce SEO? Filters themselves do not; letting their URLs into the index does. Hundreds of combinations with near-identical content dilute the category and eat crawl budget. Keep single filters people genuinely search for, give them their own titles, and canonicalise everything else to the base category.

What should I do with a product that is out of stock? Keep the page and mark it unavailable, adding a restock date or a notification option. Deleting a page over a temporary shortage costs rankings that take months to rebuild. You only remove a URL when the product is discontinued for good - with a redirect to its successor if one exists.

Do copied supplier descriptions lower rankings? They are not a penalty, but they leave you with exactly the same text as dozens of other stores, and the search engine picks one URL to show. That is why it pays to write your own descriptions for the 30 to 50 products that actually sell, and to base catalogue visibility on category copy.

How long does ecommerce SEO take? Technical results - products returning to the index after filters or pagination are fixed - show within weeks. Traffic growth on category phrases takes months, because the search engine has to process the changes and weigh you against competitors. Before that you see indirect signals: rising impressions and new phrases in Search Console.


Want your company to show up in Google and in ChatGPT answers? I work on technical SEO and AI visibility from the code side, not the reporting side. Tell me which questions matter to you and I will quote it.

§ Quote in 24h

Your store is slowing down or looks dated, and you do not know where to start?

Describe the scope in two sentences or send a link to your store. I tell you what to fix first, and you get a fixed bid in writing within 24 hours - no "from X" pricing.

Send your scope - quote in 24h