10 min read

eCommerce SEO Tips That Work for Online Stores

Shashank Dubey
Content & Marketing, Wbcom Designs · Published Jun 13, 2024 · Updated Aug 29, 2026
WordPress Experts by Wbcom Designs - galaxy background with handwriting text

Most eCommerce SEO advice is generic: “write good content, build links, make the site fast.” That does not help when you have 2,000 SKUs, a faceted navigation that spits out 50,000 crawlable URLs, and product descriptions copied from the manufacturer. The tactics that move revenue for stores are narrower and more technical: getting category pages to rank for commercial terms, feeding Google accurate product data, controlling crawl waste, and turning the traffic you already have into orders.

This post collects the practices we apply on WooCommerce stores we build and maintain, updated for how Google works in 2026 (AI Overviews on shopping queries, merchant listing rich results, and the July 2026 Product structured data additions). It started life as a short list of tips in 2024; the list below is what actually held up.

Treat category pages as your main ranking asset

eCommerce SEO tip card: category pages are an online store's main ranking asset, with word and keyword targets

Individual product pages churn. Products go out of stock, get replaced, or lose demand. Category and sub-category pages are stable, and they are what Google tends to rank for the high-volume commercial terms (“men’s trail running shoes”, “ceramic pour over kettle”). Yet most stores leave them as a bare product grid with an H1 and nothing else.

What we do on every store:

  1. Write 150 to 300 words of real buying guidance for each top-level and second-level category. Place it below the product grid if your theme supports it (WooCommerce’s default archive puts the term description above the grid; many themes add a “bottom description” field, and Yoast and Rank Math both let you edit it). Cover what distinguishes the products, the two or three questions shoppers ask, and internal links to the most relevant sub-categories.
  2. Map one primary keyword per category and make sure no two categories target the same phrase. Duplicate intent between “kitchen knives” and “chef knives” is the single most common reason we see category pages flip-flopping in rankings.
  3. Keep the product grid crawlable. Infinite scroll that loads products only with JavaScript means Google sees page one and little else. Use paginated URLs (/category/page/2/) with rel="next" as a fallback, or render at least the first 24 to 36 products server-side.
  4. Expand the catalogue deliberately. The original version of this post said “add more products and categories”. That is half right. A new sub-category earns its place only if it maps to a search term people use and you can stock at least six to eight products for it. Empty categories with two items hurt more than they help.

Get product structured data right, including shipping and returns

Table of product schema fields eCommerce SEO plugins skip, from gtin and shippingDetails to priceValidUntil

Google now separates product snippets (informational pages, reviews) from merchant listing experiences (pages where a shopper can buy). Merchant listings are what put price, availability, shipping cost and return window into your organic result, and Google’s Product structured data documentation says combining on-page markup with a Merchant Center feed gives you the widest eligibility.

WooCommerce outputs basic Product schema by default, and Yoast or Rank Math extend it. Where stores fall down is the fields those plugins do not fill in automatically:

PropertyWhy it mattersWhere it comes from in WooCommerce
gtin, mpn, brandLets Google match your page to its product knowledge graph and to your Merchant Center feedWooCommerce added a native GTIN/UPC/EAN/ISBN field under the Inventory tab in 9.2 (November 2024). Brand needs the WooCommerce Brands feature (core since 9.6) or a plugin
offers.shippingDetailsShows shipping cost in the result; free shipping is a strong click-through signalNot output by default. Yoast WooCommerce SEO and Rank Math Pro can generate it from your shipping zones
offers.hasMerchantReturnPolicyReturn window and fee appear alongside priceNot output by default. Set it in Merchant Center, or add via SEO plugin schema settings
aggregateRating, reviewStar ratings in resultsWooCommerce reviews, when enabled under WooCommerce → Settings → Products
category, sale priceValidUntilAdded to Google’s documentation in July 2026 so page markup can match what the Merchant Center feed declaresManual or via a schema plugin update; check your SEO plugin changelog

One rule Google enforces hard: the price and availability in your markup must match what is on the page and in your feed. Mismatches cause Merchant Center disapprovals that also drag down organic merchant listings. Test every template with the Rich Results Test after any theme or plugin update, not just once at launch.

Product variants

For variable products (size, colour), Google’s variant markup expects a ProductGroup with hasVariant entries, each with its own SKU and offer. Most WooCommerce schema plugins still output the parent product only. If variants have distinct prices or stock, it is worth adding the group markup through a filter on woocommerce_structured_data_product.

Control faceted navigation and crawl waste

Layered navigation (filter by size, colour, price, brand) generates URL combinations faster than Google will crawl them. A 3,000-product store with five filters can easily expose half a million URLs, most of them near-duplicates. Googlebot spends its crawl budget on those and visits your new products days late.

The approach we take:

  • Canonicalise filter URLs to the clean category URL unless a specific filter combination has real search demand (for example “red running shoes” might; “red running shoes size 9 under $100” does not). Yoast and Rank Math handle this for query-string filters; check they still do after switching filter plugins.
  • Noindex, do not block. Blocking filter URLs in robots.txt stops Google from seeing the canonical tag. Let it crawl, then consolidate with canonical or noindex. The exception is sort and pagination parameters that create truly infinite spaces; those can go in robots.txt.
  • Set internal search result pages to noindex. WooCommerce search (?s=term&post_type=product) is crawlable by default.
  • Check Search Console → Pages → “Crawled, currently not indexed”. If that count is a large multiple of your product count, you have a facet problem.

Long-tail keywords still convert, but the format changed

Four-step eCommerce SEO process for winning long-tail queries with Search Console data

Long-tail phrases (“best budget espresso grinder for oily beans”) carry clear intent, and for years the play was a blog post per phrase. In 2026 many of those queries trigger an AI Overview, and the share of shopping queries showing one has grown steeply since late 2025. You still want the traffic; you get it by being the source the overview cites and by owning the transactional version of the query on a category or product page.

Practically:

  1. Pull 12 months of queries from Search Console, filter to impressions above 100 and position 8 to 25. Those are the phrases where you are almost there.
  2. Group them by intent. Comparison intent (“X vs Y”) gets a buying guide that links to both products. Specification intent (“does X fit Y”) gets answered directly in the product description and an FAQ block with FAQPage markup.
  3. Answer the question in the first 40 to 60 words of the section. Overviews and featured snippets lift short, direct passages; padded intros get skipped.
  4. Link from the guide to the category page with the commercial anchor text, not “click here”.

Use paid search data to decide what to optimise

If you run Google Ads, you already have the best keyword research tool available to you: the Search Terms report. It shows which queries produced purchases at what cost. Pull the terms with a conversion rate above your account average and check whether you rank organically for them. Every high-converting paid term where you sit outside the top five organically is a category page or guide you should build or improve.

The reverse works too. Terms that convert organically but where you are bidding expensively can sometimes be pulled from paid, and the budget moved to terms you cannot rank for. We review this quarterly on stores we manage; it routinely uncovers two or three categories worth rewriting.

Speed and mobile: fix the product template, not the homepage

Core Web Vitals are measured per page group, and for stores the product and category templates are what matter. The homepage is where owners run PageSpeed Insights, and it is usually the page with the fewest problems. Check the CrUX data in Search Console → Core Web Vitals and look at which URL groups fail.

The fixes that give the biggest gains on WooCommerce templates, in order of how often they apply:

  • Largest Contentful Paint: the main product image. Serve it as WebP or AVIF at the rendered size, add fetchpriority="high" to it, and do not lazy-load it (WordPress skips lazy-loading the first image in content, but gallery plugins often override this).
  • Interaction to Next Paint: variation swatches, quick-view modals and mini-cart scripts. Defer everything not needed for the first interaction; test with the Performance panel in Chrome DevTools on a throttled mobile profile.
  • Cumulative Layout Shift: reviews, “customers also bought” carousels and cookie banners loading late. Reserve the height with CSS.
  • Server response: full-page caching cannot cache cart and checkout, and logged-in customers bypass it. A persistent object cache (Redis) and a PHP 8.3 or newer runtime do more for those pages than another optimisation plugin. If that is outside what your host offers, it is the kind of job our WordPress performance optimisation service handles regularly.

Internal linking that reflects how people buy

Stores inherit their internal link structure from the menu and the breadcrumbs, and that is usually fine for categories. Where we add links by hand:

  • Product descriptions link to the parent category and to one or two complementary products, with the product name as anchor. “Pairs well with our stainless milk pitcher” is both useful and a relevant link.
  • Buying guides link down to specific products and categories; product pages link back up to the guide (“Not sure which grinder? Read our guide”).
  • Out-of-stock and discontinued products get a 301 to the closest replacement or the category, not a 404. WooCommerce keeps discontinued products published by default; set a reminder to review them monthly.
  • Breadcrumbs use the primary category. Yoast and Rank Math let you set a primary category per product so the breadcrumb and URL are consistent.

Conversion work is SEO work

Ranking traffic that bounces tells Google the page did not satisfy the query, and it wastes the traffic you earned. The conversion changes with the most consistent results on the stores we run:

  • Show the total cost early. Shipping surprises at checkout remain the top reason for abandoned carts; put the shipping threshold (“Free shipping over $75”) in the header and on every product page.
  • Put stock status, delivery estimate and return window next to the add-to-cart button. This is the same information you are putting in structured data, so the two stay in sync.
  • Collect reviews automatically. A post-purchase email seven to ten days after delivery, with a direct link to the review form, is the difference between 2% and 15% of orders leaving a review. Reviews feed aggregateRating, which feeds click-through.
  • Test one thing at a time, on the product template, for at least two weeks. Button colour tests are noise; shipping messaging, image count and description layout are where we see measurable movement.

If you sell services alongside products, or your checkout needs custom fields and steps, our WooCommerce plugins cover product inquiry and quote forms, document and audio previews, and service selling, all of which keep the shopper on a crawlable page rather than bouncing to a third-party tool.

Frequently asked questions

Should I noindex out-of-stock products?

No, not by default. If the product will return, keep it indexed with “out of stock” availability in the schema and a back-in-stock form. If it is discontinued, redirect it. Noindexing loses the rankings and gives the shopper nothing.

Do I still need a blog for an eCommerce site?

You need buying guides and comparison content, and a blog is a convenient place to keep them. What you do not need is a post per week on loosely related topics. Five thorough guides that link into your categories beat fifty thin posts.

How long until category page changes show in rankings?

On a site Google crawls daily, expect movement within two to six weeks. Use the URL Inspection tool in Search Console to request indexing after a significant rewrite, and watch the query report for that URL rather than overall traffic.

Is Merchant Center worth setting up if I do not run Shopping ads?

Yes. Free listings in the Shopping tab and the feed’s role in validating your structured data both apply without ad spend. WooCommerce’s Google for WooCommerce extension syncs the feed.

Where to start

If you do one thing this month, audit your top ten category pages: unique primary keyword, 150-plus words of useful copy, crawlable product grid, and a passing Rich Results Test on a product within each. Next month, pull the Search Console page report and deal with crawl waste from filters. After that, the Google Ads search terms report will tell you what to write. Each step compounds on the one before it, and none of them require a new plugin.

Shashank Dubey
Content & Marketing, Wbcom Designs

Shashank Dubey, a contributor of Wbcom Designs is a blogger and a digital marketer. He writes articles associated with different niches such as WordPress, SEO, Marketing, CMS, Web Design, and Development, and many more.

Related reading