Guide · WooCommerce
SEO for WooCommerce: permalinks, plugins, hosting and performance, indexation control and schema — conceptually, without treating any paid plugin as required.
360ecom Editorial · Updated Jul 22, 2026 · 9 min read
WooCommerce runs on WordPress. You (or your host) own PHP, the database, permalinks, caching, SSL and the plugin list. That flexibility is the reason teams choose it, and it is why WooCommerce SEO goes wrong in more ways than a hosted platform: anyone can add a URL type, a script, or a blocking robots rule.
This guide covers permalinks, plugins, hosting and performance, indexation, and schema as a concept. It does not endorse one paid plugin as required. For the store-wide SEO map, use the e-commerce SEO guide. Platform trade-offs: Shopify vs WooCommerce. WooCommerce-specific basics: WooCommerce SEO fundamentals.
| Layer | What it controls | Common failure |
|---|---|---|
| Hosting | TTFB, PHP workers, object cache, HTTP/2 | Shared hosting with page builders and no cache |
| Theme / templates | Headings, product HTML, image tags | Page builder shortcodes as the PDP |
| Permalinks | URL shape | Default ?p= leftovers, or /product/ changes after ranking |
| SEO plugin (one) | Titles, meta, canonical, sitemap, some robots | Two plugins both writing canonicals |
| WooCommerce settings | Product URLs, category base, attributes | Attribute archives indexed by accident |
| Filter / faceted plugins | Extra query URLs | Thousands of indexable combinations |
| Cache / optimize plugins | HTML and asset caching | Conflicting minifiers, stale prices, broken checkout |
If those layers disagree, search engines see a slow, duplicated catalog. Fix ownership first: one person (or team) who can say what is indexable.
Set permalinks before you invest in rankings, then leave them.
Practical pattern for many stores:
/%postname%/ for posts and pages (or a short prefix you will keep)/product/handle/) that you do not change seasonallyWhat not to do:
/product/ to /shop/ six months in without a full redirect map/color/navy/) unless that tree is a deliberate landing-page strategyWhen you migrate from another platform, redirects are the SEO project. Spreadsheet old URL → new URL, test a sample, then monitor coverage. The URL slug generator is for drafting handles, not for bulk migration.
WooCommerce and WordPress will still emit extra archives (tags, product tags, authors). Decide each type: index, noindex, or unused.
Plugins are how WooCommerce becomes a store — payments, shipping, subscriptions — and how it becomes unmaintainable.
You want one component responsible for:
noindex on search, cart, and thin taxonomiesSeveral mature plugins — free and paid — can fill that role. Requirements, not brand names:
Do not run two general SEO plugins. They will fight over the same <head> tags.
Security updates are an SEO issue. Abandoned plugins get exploited; recovery can mean downtime and hacked spam URLs in the index.
Core Web Vitals on WooCommerce are usually hosting + images + plugins, not a missing “SEO setting”.
A stack that tends to hold up:
What to measure: product and category templates on mobile, in the field if you can, not only a desktop lab test of the homepage. See Core Web Vitals for e-commerce.
Full-page cache that serves the wrong price or an empty cart is a conversion incident. Cache is not free; it is a configuration project.
Walk these URL types and assign a policy. Details that apply across platforms are in e-commerce technical SEO.
| URL type | Default instinct |
|---|---|
| Product | Index |
| Product category | Index if it is a real merchandising page |
| Shop page | Often index as a hub, or noindex if it duplicates a top category |
| Product tags | Often noindex unless you curate them as landings |
| Product attributes (color, size) | Usually noindex |
| Filter query strings | Canonical to clean category or noindex |
?orderby= / ?count= | Canonical to clean URL |
| Site search | noindex |
| Cart, checkout, account, add-to-cart parameters | Disallow or noindex; never sitemap |
| Pagination | Consistent rel or self-canonical strategy |
robots.txt should disallow cart, checkout and account-style paths, not /wp-content/ wholesale. Crawlers need CSS and JS. Draft a conservative file with the robots.txt generator, then adjust to your real paths.
Sitemaps should list indexable products and categories. The sitemap URL generator is a formatting helper for lists you already trust; it does not crawl your shop. Submit the live sitemap in Search Console.
WooCommerce can keep a product published, hidden from catalog, or in draft. For SEO:
On-page product SEO is the same discipline as product page SEO: unique title, real specs in HTML, images, internal links to the category.
WooCommerce extras:
Avoid duplicate titles from a rigid template (%title% | %sitename% | buy online cheap) that truncates the product name. Preview like any other SERP snippet.
WooCommerce can output product data; many themes and SEO plugins add JSON-LD. Your rules:
If you debug theme JSON or metafield dumps, keep it local. The JSON formatter runs in the browser.
You do not need a paid schema product to “unlock rankings”. You need valid, honest markup if you use it at all. See e-commerce schema markup for types that are worth considering.
Staging must not be indexed. Duplicate the live catalog on a subdomain or tunnel without noindex, basic auth, or IP allowlisting and you will split signals — or worse, leak draft prices. Block staging in robots.txt and send noindex. Robots.txt alone is not enough if someone links the staging URL.
Internal search (?s= and live search). WordPress search pages are almost always thin. noindex, follow is the usual pattern. Do not sitemap them. On-site search queries still belong in your conversion research; they just should not be Google’s index of your store.
Product feeds. Google Merchant Center, comparison sites and affiliate feeds need consistent identifiers (SKU, GTIN if you use them), price and availability. Feeds do not replace crawlable PDPs. They do create a second place for price mismatches to appear. When you debug JSON or feed payloads, keep catalog data off random websites; the JSON formatter stays in the browser.
Multilingual and multi-currency. A translation plugin is an architecture project: URL strategy (/en/, domains, parameters), canonicals, and whether every product is actually translated. Incomplete machine translation of 2,000 SKUs can look like a duplicate site in another language. Currency-only switches should not create a second indexable copy of the same English page. Check tax display rules locally.
Galleries and variation images. WooCommerce variation images should change with the picker and stay in the HTML or a crawler-accessible state. Lazy-loading is good; replacing the only product image with a 20kb placeholder forever is not. Gallery plugins that load a second copy of jQuery for one PDP need a reason.
Author archives, dates and the blog mix. If the site is commerce-first, noindex author archives unless you have real bylines people search. A blog can support categories (see the SEO guide) if posts are not spun product pages.
Crawl budget on weak hosting. Slow TTFB means fewer URLs crawled per day. Facet explosion plus cheap hosting is how products sit in “Discovered – currently not indexed.” Fixing hosting and parameter hygiene does more than adding another sitemap ping.
REST API and headless fronts. If the shopper-facing site is a separate Next.js (or similar) storefront, SEO lives on that host’s HTML, not on example.com/wp-json. Canonicals, sitemaps and Core Web Vitals must be measured on the public origin. Headless is optional complexity; it is not an SEO upgrade by itself.
If you are comparing ecosystems, the Shopify SEO guide explains a different set of constraints. Migrating either direction is a redirect and content project, not an export button.
WooCommerce SEO rewards operators who treat WordPress as production software: few plugins, boring permalinks, explicit indexation, and hosting that can serve the catalog. Control is the feature. Use it on purpose.
When you upgrade WooCommerce core, PHP, or the SEO plugin, re-check canonicals, sitemaps and checkout on staging first. Template and schema output change in quiet ways. A changelog that says “updated plugins” with no HTML diff is how Product JSON-LD doubles overnight. Keep the JSON formatter for payload debugging; keep Search Console for whether the live URLs still match the policy you wrote.
WooCommerce SEO starts with permalinks, plugin overlap, indexation and performance debt. WordPress control is real; so is the cost of a poorly hosted stack.
Shopify and WooCommerce solve different hosting, cost, SEO and checkout problems. An honest comparison so you can match the platform to how you actually operate.
Technical SEO for stores is duplicates, canonicals, robots, sitemaps, JavaScript rendering and parameter URLs. Fix the catalog graph before you rewrite copy.
LCP, INP and CLS on catalog pages are usually hero images, apps and third-party scripts. How to think about those vitals for grids, filters and PDP media.
Product SEO is unique titles, specs, variant indexation and internal links. Duplicate manufacturer copy—not missing adjectives—is the usual ranking problem.
You have more control over URLs, robots and HTML. That helps if you use the control well. It also means you can ship a slower, more duplicated site. Neither platform guarantees rankings. See Shopify vs WooCommerce for the operational comparison.
You need one owner for titles, canonicals, sitemaps and robots directives. Several established plugins can do that job. This guide does not require a specific paid product. Pick one, configure it, and do not run two.
No. You should keep cart, checkout, account and usually filtered or search URLs out of the index. Products and the category archives you care about should remain crawlable.
You need templates that output sane headings, product data in HTML, and reasonable image markup. A bloated page builder on every product is often worse than a simple classic or block theme you actually control.
Build a conservative robots.txt with sitemap reference and optional disallows for carts and account paths.
Turn a list of paths or URLs into a sitemap-ready URL list with your domain prefixed.
Pretty-print JSON for theme settings, API payloads and feed debugging.
A practical map of e-commerce SEO: information architecture, keyword research, product and category pages, technical indexation, schema, Core Web Vitals and measurement.
SEO for Shopify stores: themes, collections, products, apps, duplicate URLs, speed and a high-level look at international — including constraints you cannot theme away.