SEO

Ecommerce SEO: How to Rank Product and Category Pages on Google

Talha Aslan 19 min read

What is ecommerce SEO and how do you do it?

Ecommerce SEO is the work of ranking an online store's category and product pages for Google searches with buying intent. First, you map category pages to broad product searches and product pages to model searches. Then you make filter URLs, structured data, stock status and your product feed easy for Google to read.

I have run SEO strategy for ecommerce projects of different sizes since 2012. The pattern I see most often is simple. Store owners pour their energy into product pages; meanwhile, the category pages that should carry revenue stay thin and nearly identical. In practice, ecommerce SEO is less about polishing single pages and more about setting rules for how thousands of URLs behave.

This guide follows Google's official documentation and covers six layers:

  • Page roles: which queries a category page answers and which a product page answers.
  • Crawl control: filter, sort and pagination URLs.
  • Product data: Product, Offer and variant structured data plus your Merchant Center feed.
  • Lifecycle: products that go out of stock or leave your range for good.
  • Content: original product copy, category copy and customer reviews.
  • Measurement: Search Console and Merchant Center reports.

Why are category pages the main ranking pages in ecommerce SEO?

Category pages are the natural match for broad, high volume searches such as "women's running shoes" or "oak dining table". The person behind that search has not picked a product yet. Instead, they want to see options, understand the price range and narrow things down. That is why Google often ranks listing pages for these queries, and you can confirm it in your own niche by checking the results.

The second reason is permanence. Products change with seasons, stock and suppliers, while a category URL can stay the same for years. As a result, backlinks, brand searches and internal link equity collect on category pages. Most of your menu links also point to categories.

Title tags can follow a template, but avoid blind templates. For instance, a pattern like "Women's Running Shoes: Styles and Prices" covers the product group and the commercial intent. Keep each group's own vocabulary, too. For example, UK shoppers search for "trainers" while US shoppers search for "sneakers", so a store selling in both markets needs different category names.

A strong category page usually includes:

  • An H1 and title tag that match the target search.
  • Two or three sentences of intro copy above the product grid.
  • Links to subcategories and a set of useful filters.
  • A short buying guide below the grid.

I covered the architecture of the category tree in my guide to category structure for large websites. Here, instead, I focus on the ecommerce SEO decisions that sit on the store side.

Which searches should product pages rank for?

Product pages win searches where people already know what they want. Specifically, brand plus model name, model numbers, GTINs and queries such as "brand, model and color" belong here. By this stage most shoppers have finished comparing; they look at price, stock and delivery time.

Product pages also feed Google's shopping experiences. For example, merchant listings target pages where customers can buy from you. Likewise, Merchant Center free listings show product pages rather than category pages. In other words, if your price, stock and variant data are wrong on product pages, you lose a large share of visibility before you start.

I covered design, photography and conversion on product pages in my ecommerce product page guide. This article, on the other hand, looks at product pages only through a search engine's eyes: URLs, data and lifecycle.

How do you split keywords between category, filter and product pages?

In practice, every query cluster needs one target URL. Otherwise your category page, a filter page and a blog post all compete for the same search. Google then decides for itself which page to show, and it often picks the one you did not want to promote.

The table below summarizes the simple mapping logic I use with clients.

Search typeExample queryTarget page
Broad product groupwomen's running shoesCategory page
Product group plus one attributewaterproof running shoesSubcategory or indexable filter page
Brand plus product group[brand] running shoesBrand filter or brand category page
Brand plus model[brand] [model] size 8Product page with the variant preselected
Research and comparisonhow to choose running shoesBuying guide (blog)

Keep this map in a spreadsheet and check it before you open a new category. I explain the method step by step in my keyword mapping guide. Above all, watch the overlap between category and filter pages; it is the most common source of cannibalization I find in stores.

Why does faceted navigation cause crawling problems?

Faceted navigation lets visitors narrow products by color, size, brand or price. Shoppers rely on it; however, every filter combination creates a new URL. For example, five colors, ten sizes, twenty brands and four sort orders already add up to thousands of addresses. If filters stack on top of each other, the number becomes practically infinite.

Google's faceted navigation documentation describes the problem clearly. Crawlers cannot tell whether these URLs are useful without crawling them first. Therefore they typically fetch a very large number of filter URLs before they learn that most are useless. Meanwhile, crawl time spent on useless URLs is time not spent on new, valuable pages.

The cost for a store is therefore concrete. Google discovers new season products late, price changes reach search results late, and the index fills with near duplicate filter pages. In short, the problem is not only crawl budget; it is also signals spread across dozens of URLs.

To check whether this affects you, look in two places. First, the Crawl Stats report in Search Console shows sample requests from Googlebot, so check how many of them hit parameter URLs. Second, group Googlebot requests in your server logs by URL pattern. If most crawling goes to filter and sort URLs, you know where to start.

What does Google recommend for filter URLs: robots.txt, canonical or noindex?

Google's advice depends on whether you need filter URLs to appear in search results. If you don't, the most effective option is to stop crawling of those URLs with robots.txt. Alternatively, you can keep filter state in URL fragments (#), because Google Search generally doesn't support fragments in crawling and indexing.

The documentation calls rel="canonical" and rel="nofollow" generally less effective in the long term. A canonical tag may reduce the crawl volume of non-canonical versions over time; still, it does not stop crawling right away. Noindex, on the other hand, keeps a page out of the index, but Google still has to crawl the page to see the tag. Moreover, Google never sees a noindex tag on a page you block in robots.txt, because the rule only works when robots.txt does not block the page.

If you want filter pages to stay indexable, Google recommends these rules:

  • Use the standard & separator for parameters; avoid commas, semicolons and brackets.
  • Keep filters in the same logical order in every URL and prevent duplicate filters.
  • Return an HTTP 404 status code when a filter combination returns no results.
  • Don't redirect empty results to a generic error page.

Which filter combinations should you open to indexing?

That said, blocking every filter is a mistake too. Phrases like "black leather boots" or "V-neck sweater" carry their own search demand, and the page that meets that demand is often a filter result. My rule is simple. I open combinations that have real search volume, list enough products and match an intent the parent category does not cover. Everything else stays out of the crawl.

Filter typeExampleMy recommendation
Single searched attributeblack leather bootsIndexable, with its own title and H1
Brand[brand] bootsIndexable brand page
Three or more filtersblack, size 9, on saleOut of the crawl via robots.txt
Price range$50 to $100Out of the crawl via robots.txt
Sort orderprice, low to highOut of the crawl via robots.txt
Temporary statesin stock only, next day deliveryOut of the crawl via robots.txt

Treat every filter page you open as a real landing page. First, give it a clean, permanent URL, a title tag that matches the query, an H1 and a short intro. Then link to it from menus, related categories and buying guides. Finally, decide in advance what happens when the product count drops.

How do you set up pagination without hurting ecommerce SEO?

Pagination splits long product lists across several pages and, done right, helps Google find products deep in the list. Google's pagination documentation sets a few clear rules. Give each page a unique URL, for example with a ?page=2 query parameter. Google treats the URLs in a paginated sequence as separate pages, so each one needs clean signals of its own.

The mistake I see most is pointing the canonical tag of page two and beyond at page one. Google's instruction is explicit: don't use the first page of a paginated sequence as the canonical page; instead, give each page its own canonical URL. In addition, link from each page to the next one with a regular HTML link, because Googlebot finds later pages through those links.

Google no longer uses rel="next" and rel="prev", although other search engines may still use them. If you use infinite scroll or a "load more" button, keep crawlable paginated URLs behind it. For most stores I recommend a hybrid: shoppers click "load more", while crawlers follow ?page=n links.

How should you structure product variant URLs?

Variants such as color, size or material are, after filters, one of the most common sources of duplicate URLs. Google's product variants documentation recognizes two architectures. On a single-page site, shoppers pick every variant on one page and the URL carries the choice in a query parameter. On a multi-page site, however, each variant has its own page.

Some rules apply to both setups:

  • Give every variant a distinct URL that preselects it, using a path segment (/t-shirt/green) or a query parameter (/t-shirt?color=green).
  • Don't separate variants with URL fragments (#green); Google does not use fragment identifiers in indexing and treats those URLs as the same page.
  • If an optional query parameter identifies the variant, use the URL without the parameter as the canonical URL.
  • Use the ProductGroup type in structured data; connect variants with hasVariant, list the differentiating properties with variesBy and give the parent SKU in productGroupID.

In short, the right architecture depends on search demand. For instance, separate variant pages make sense when people search by color name. For options nobody searches separately, such as size, a single page with one canonical URL stays cleaner. Google announced this structured data support in February 2024 and has kept the documentation current since then.

Product snippet or merchant listing: which structured data should you target?

Google uses Product structured data for two experiences. Product snippets are for pages where people can't buy the product directly, such as review and comparison sites. Merchant listings, on the other hand, are for pages where customers can buy from you, and they offer richer fields for shipping, returns and sizing. For an online store's product pages, therefore, merchant listings are the target.

According to Google's merchant listing documentation, Product needs name, image and offers. On the Offer, you must provide price and priceCurrency, and the price must be greater than zero for merchant listings. Recommended fields include availability, itemCondition, shippingDetails, hasMerchantReturnPolicy, gtin, brand, aggregateRating and review.

On the store side, consistency matters most. Specifically, the price on the page, in the structured data and in your Merchant Center feed should match. Google states that providing both structured data and a Merchant Center feed maximizes your eligibility for experiences and helps it understand and verify your data. My schema markup guide also covers the basics.

Before launch, validate a few sample pages with Google's Rich Results Test. After launch, fix errors at template level rather than page by page. That matters because one template error in a store usually affects thousands of product pages at once.

How do you tell Google about shipping and returns?

Shipping costs and return terms directly affect clicks in shopping results. However, Google does not expect you to repeat them on every product. Instead, it recommends defining your general return policy once with MerchantReturnPolicy under your Organization markup. If some products follow a different policy, you override the general one with hasMerchantReturnPolicy under Offer.

Likewise, shipping follows the same logic. You describe the standard shipping policy that covers most products with the ShippingService type, nested under Organization through the hasShippingService property. When a specific product differs, you then add OfferShippingDetails under Offer through shippingDetails. If your rules are complex and change often, Google also suggests managing delivery settings in Merchant Center. Search Console also has a shipping and returns setting where you can add and manage these details.

My practical advice: publish the policy on a clear page first, then repeat the same details in markup and in Merchant Center. When sources contradict each other, Google has to choose which one to trust, and you lose control over what shoppers see.

Should you take down out of stock product pages?

No. If a product is temporarily out of stock, keep the page live. Google's guide to pausing an online business puts it plainly: it's better to keep the page and mark the product out of stock. That way people still understand what's going on, even if they can't buy the item. If you remove the product from Search, people don't know why it's gone.

On an out of stock product page:

  • Keep returning a 200 status code; don't use 404, 410 or noindex.
  • Update availability in structured data to OutOfStock, or to PreOrder or BackOrder when that fits.
  • Show an estimated restock date and a "notify me" option where shoppers can see it.
  • Link to similar in-stock products from the same category.
  • Update stock status in your Merchant Center feed at the same time as the site.

This keeps the links and rankings the page has earned, so you don't start from zero when stock returns. Seasonal products also work the same way. For example, don't delete winter boots in summer; keep the page marked out of stock and refill the same URL next season.

What should you do with discontinued product URLs?

When a product leaves your range for good, the situation changes. Google's crawl error troubleshooting guide gives two paths. If the page has moved or has a clear replacement, return a 301 permanent redirect. If the page is no longer available, return 404 or 410. Google also removes a previously indexed URL from the index when it returns 404. Therefore you decide product by product, based on whether a real replacement exists.

SituationRecommended responseNote
Temporarily out of stock200 with availability set to OutOfStockThe page keeps its rankings
A new model replaces the old one301 to the new modelA clear replacement exists
Discontinued, with a very close alternative301 to the alternativeOnly if it meets the same need
Discontinued, no replacement404 or 410Don't mass redirect to the home page
Discontinued, but people still search for it200 as an information pageSpare parts, manuals or an upgrade path

After a bulk redirect change, check for chains and loops with the redirect checker. That way you know old product URLs really land on the right target.

Why does copying manufacturer descriptions weaken your rankings?

Dozens of stores selling the same product use the same description the manufacturer sent them. Google's canonicalization documentation says some duplicate content on a site is normal and does not violate its spam policies. So there is no penalty. The problem sits elsewhere: among pages carrying the same text, Google has no reason to choose yours, and the stronger domain often wins.

The fix, however, is not writing a novel for every product. Instead, add what only someone who knows the product can add:

  • Your own measurements: fit, real weight, what's in the box.
  • Use cases: who the product suits and who it doesn't.
  • Compatibility: which models and parts it works with.
  • Short answers collected from customer questions.
  • A paragraph on how two similar products differ.

If you have thousands of products, set priorities by revenue and search demand. Start with the best sellers and the most searched items; for the rest, use templates fed by attribute data. Also watch products that appear under several category paths. For example, if /men/boots/product and /sale/product show the same item, set one canonical product URL that does not depend on the category path.

How do customer reviews help ecommerce SEO?

Customer reviews add fresh, original text to product pages on a regular basis. That is because customers describe products in their own words rather than in your catalog language. As a result, reviews connect your page with long tail searches such as "does it run small" or "is it waterproof in heavy rain". Star ratings also act as a visible trust signal in search results.

Google's review snippet guidelines are clear on a few points. First, Product supports review snippets. Second, the reviews you mark up must be readily available to users on the marked-up page. Also, don't aggregate reviews or ratings from other websites and mark them up as your own. The self-serving review restriction applies to LocalBusiness and Organization types, so it does not affect your product reviews.

An email a few days after delivery is a good start for collecting reviews in most stores. Don't cherry-pick which reviews to publish, and answer negative reviews briefly and concretely. Finally, use the live test in the URL Inspection tool to confirm that reviews appear in the rendered HTML. If your review widget loads content with JavaScript from another source, don't skip this check.

How do Merchant Center free listings complement ecommerce SEO?

Merchant Center free listings let your products appear across Google surfaces without an ad budget. According to Google's free listings help page, they can show on the Shopping tab, Google Search, Google Images, Google Lens, YouTube, Google Maps and Gemini. When you create a new Merchant Center account, you're opted in to free listings by default.

You can check your status under Marketing and then Marketing methods, in the Free listings card. Core product attributes include ID, title, link, image link, price, description and availability; used or refurbished items also need condition. Apparel also adds color, size, age group and gender.

There is one critical distinction: free listings show product pages, not category pages. Consequently, Merchant Center does not replace category-focused SEO; it complements it on the product side. Keep the feed in sync with your site, because price or stock mismatches can knock products out of listings.

How does internal linking strengthen category pages?

Google's ecommerce site structure documentation describes the link flow: link from menus to category pages, from categories to subcategories, and from subcategories to all product pages. It also notes that the more links a page has within a site, the higher its relative importance. That is why linking your best sellers and strategic categories from the home page makes sense.

These internal link patterns work best in stores:

  • Breadcrumbs on every page that show the category path.
  • Category page links to related subcategories and indexable filter pages.
  • Buying guides that link to the matching category with descriptive anchor text.
  • Product page links to the parent category and complementary products.

Build links with standard a href tags; Google advises against JavaScript events on other elements for navigation. For products that category links can't reach, use an XML sitemap or a Merchant Center feed. You can build the sitemap with the XML sitemap generator, and my internal linking strategy guide covers the full approach.

Which reports should you use to measure ecommerce SEO?

You can't read ecommerce SEO results correctly without splitting them by page type. In the Search Console Performance report, add a page filter for your category URL pattern and another for product URLs. Then track clicks, impressions and average position for each group separately. The position of category pages on broad queries shows the real SEO health of the store.

Search Console's shopping reports complete the picture. For example, the Merchant listings and Product snippets reports show errors and warnings in your structured data. Eligible stores also see the Merchant opportunities report, which recommends ways to improve how the shop appears on Google. In Merchant Center, track clicks from free listings as a separate channel.

For revenue, track organic sessions in GA4 by landing page and report which categories turn search traffic into sales. If you are new to Search Console, my Google Search Console guide is a good starting point.

What are the most common ecommerce SEO mistakes?

The mistakes I find in audits change very little from store to store. These are the most common:

  • Leaving every filter and sort URL open to indexing.
  • Pointing the canonical of paginated category pages at page one.
  • Deleting out of stock products and redirecting them to the home page.
  • Separating variants with URL fragments (#) or opening a page for every size.
  • Using the manufacturer description unchanged on every product.
  • Leaving category pages as nothing more than a product grid.
  • Letting the page price, structured data price and feed price drift apart.
  • Publishing one product under several category paths with different URLs.

Most of these mistakes come from one technical decision copied to thousands of URLs. So the fix also happens at template and rule level, not page by page.

In what order should you run ecommerce SEO in the first 90 days?

If your resources are tight, order the work by impact. The sequence I usually follow looks like this:

  1. Weeks one and two: crawl and index audit, plus an inventory of filter, sort and pagination URLs.
  2. Weeks three and four: robots.txt rules, canonical fixes and the list of filters you will open to indexing.
  3. Month two: titles, H1s, intro copy and internal links on category pages, plus the keyword map.
  4. End of month two: Product, Offer and ProductGroup markup, the Merchant Center feed and free listings.
  5. Month three: original descriptions for best sellers, a review collection flow and out of stock rules.

You can draft new robots.txt rules with the robots.txt generator, then test them before they go live. My team and I run this whole process as part of our SEO consulting work. We handle the product, feed and operations side of a store through ecommerce consulting. If you want to know how your products show up in AI assistants, my guide to GEO for ecommerce is the natural next step.

Frequently Asked Questions

How long does ecommerce SEO take to show results?
You usually see the effect of technical fixes in crawl and index reports within a few weeks. Lasting gains in category rankings take several months in most stores. Competition, domain strength, catalog size and the scope of the fixes set the pace. So track crawl and index metrics in the first month, then category traffic and organic revenue.
How much text should a category page have?
Add as much text as helps shoppers decide; length is not a goal in itself. Two or three sentences above the product grid and a short buying guide below it are enough for most stores. Don't push products down with long blocks stuffed with keywords, because they distract visitors from what they came to buy.
Should I use canonical tags or robots.txt for filter pages?
For filter URLs you don't want indexed, Google considers blocking crawling with robots.txt the most effective method. A canonical tag may reduce crawl volume over time, but Google's documentation describes it as generally less effective in the long term. Open valuable, searched filter combinations to indexing and give them clean URLs and unique titles.
Should I noindex out of stock products?
No. If stock has run out temporarily, don't add noindex. Google recommends keeping the page live and marking the product out of stock. Set availability to OutOfStock in structured data and show a restock date and similar products. If you discontinue the product for good, use a 301 when a clear replacement exists and 404 or 410 when it doesn't.
Can I do ecommerce SEO without Merchant Center?
Yes, Merchant Center is not required to rank in organic search results. However, you need an account and product data to appear in free listings on surfaces such as the Shopping tab. Google says that providing both structured data and a Merchant Center feed maximizes your eligibility, so I recommend using both together.
Should I invest in my own store if I already sell on Amazon?
Yes. Marketplaces are useful sales channels, but the customer relationship, the data and the rules belong to the marketplace. Every category page that ranks on your own site builds a sales channel without marketplace fees. Marketplaces are strong on many broad searches, so start with product groups specific to your brand and with long tail category queries.
  • ecommerce SEO
  • category pages
  • faceted navigation
  • product structured data
  • Merchant Center
  • product variants
  • technical SEO
Share:
Talha Aslan

Google Partner digital marketing expert. Hands-on with SEO, Google Ads, web design and e-commerce projects since 2012; every post here comes from that experience.

Next project

Let's talk about your project.

Your brief goes straight to Talha Aslan and team: strategy led by Talha, delivery by an experienced team. The first consultation is free; we listen and come back with a clear roadmap.