Ecommerce SEO ranking: URL structure, facets, duplicates and internal linking on Shopify, WooCommerce and PrestaShop — without the Google-penalty myths.

Ranking an online store in Google Search differs from ranking a blog or a company site in scale, not in kind: visibility depends first on technical order — URL structure, filters, product variants — and only then on the quality of the product pages themselves. Links from other sites matter too, but they won't fix the problems a store creates for itself: filters, variants and duplicates. Some of the SEO advice that circulates about online stores — for example, that Google "penalises" duplicate content — doesn't hold up against Google's current documentation. This article breaks ecommerce SEO ranking down into mechanisms you can actually verify: structure, filters, duplicates, internal linking, the platform a store runs on, and cost.

Screenshot: the Ecommerce section of Search Central
Google Search Central, developers.google.com/search/docs/specialty/ecommerce, screenshot 2 October 2026
Google has a dedicated page on designing URL structures for e-commerce, and it recommends a few concrete things. First: "Minimize the number of alternative URLs that return the same content to avoid Google making more requests to your site than needed." Second: "Use ?key=value URL parameters rather than ?value, where possible," and avoid repeating the same parameter twice in one URL. Third, on product variants: each variant — colour, for instance — can be structured either as a path segment (/t-shirt/green) or a query parameter (/t-shirt?color=green); Google doesn't prefer one form over the other. Fourth, on internal links specifically: "Avoid internally linking to temporary parameters, such as session-IDs, tracking codes, user-relative values... and the current time" (Search Central, designing a URL structure for e-commerce sites, read 1 October 2026).
Google describes the link structure the same way: menus lead to category pages, categories to subcategories, subcategories to every product page. Where category pages don't link directly to every product, "Googlebot might not find all of your products by crawling alone," and Google's advice is plain: "If it's not possible to link to all pages, use a sitemap or a Google Merchant Center feed." Google also repeats a general rule: "the more links a page has to it within a site, the higher the relative importance of the page" — in practice, bestsellers should have more paths leading to them than niche products, not be buried deeper in the hierarchy (Search Central, help Google understand your e-commerce site structure, read 1 October 2026).
Sort and filter controls (price, size, colour) are convenient for the shopper and risky for Google. The most common implementation of faceted navigation, based on URL parameters, "can generate infinite URL spaces." Google names two specific consequences — over-crawling, because the URLs created by filters "seem to be novel" to crawlers, and slower indexing, because crawlers spend time on useless combinations that would otherwise go to new, valuable pages. The recommendation is specific: "allow crawling of just the individual items' pages along with a dedicated listing page that shows all products without filters applied," and return an HTTP 404 status code when a filter combination doesn't return results. The weaker methods are rel=canonical and nofollow, which Google calls "generally less effective in the long term" than robots.txt rules and URL fragments (Search Central, managing faceted navigation, read 1 October 2026).
Shopify gives a concrete, documented example of this mechanism: the platform's default robots.txt includes rules such as Disallow: /collections/*+* and .../*sort_by*, meant to keep filtered and sorted collection-page variants out of the index. The file is editable through a theme-level robots.txt.liquid template, added to the platform on 21 June 2021 — but Shopify warns that it's "an unsupported customization" and that incorrect use "can result in loss of all traffic" (Shopify, editing robots.txt; release date: Shopify changelog, read 1 October 2026).
Faceted navigation — what to index and what to block
Search Central, managing faceted navigation (crawling-managing-faceted-navigation), read 1 October 2026
Every page of a paginated product list should have a unique URL — for example with a ?page=n parameter; Google treats these as separate pages and explicitly advises against setting the first page of a sequence as canonical for the whole thing: "give each page its own canonical URL." If you use incremental loading ("load more", infinite scroll) instead of pagination, each loaded chunk should also get its own persistent URL, with the address bar updated through the History API (Search Central, lazy-loading and infinite scroll, read 1 October 2026). On rel="next"/rel="prev": "Google no longer uses these tags, although these links may still be used by other search engines" — the documentation doesn't say when this changed, so no specific year is attached to the claim (Search Central, pagination and incremental page loading, read 1 October 2026).
For product variants (colour, size), Google doesn't give one explicit rule to "canonicalise every variant to a single URL" — the URL-structure page only says a variant can have its own address. The general rule is that "indicating a canonical preference is a hint, not a rule": Google names "a handful of factors that play a role in canonicalization" — HTTP or HTTPS, redirects, presence of the URL in a sitemap, rel="canonical" annotations — and may still pick a different page than you do (Search Central, what is canonicalization, read 1 October 2026). In practice: if variants differ only by colour or size and share an identical description, it's sensible to have one "main" URL with rel="canonical" on the others — that's our own practical recommendation, not a Google rule, because the documentation doesn't formulate one.
One of the most repeated beliefs in the industry — that "Google penalises duplicate content" — doesn't match Google's current documentation. The current position: "Your site will likely do just fine without specifying a canonical preference." Google still lists four reasons to set one anyway: choosing which URL people see in search results, consolidating signals (such as links) from similar or duplicate pages into one URL, simpler tracking of metrics for a piece of content, and not having Googlebot spend crawling time on duplicates instead of new or updated pages (Search Central, consolidating duplicate URLs, read 1 October 2026).
Historically, the position was stated even more forcefully. In September 2008, the Google Search Central blog wrote: "Let's put this to bed once and for all, folks: There's no such thing as a 'duplicate content penalty.'" — quoting the help article in force at the time: duplicate content "is not grounds for action on that site unless it appears that the intent of the duplicate content is to be deceptive and manipulate search engine results" (Google Search Central Blog, September 2008). That exact 2008 wording no longer appears on any current documentation page — it's historical material; the current documentation expresses it more softly, in the sentence quoted above.
For a store with colour variants and identical descriptions, this means: duplication by itself isn't grounds for a penalty. The real issue is that with many near-identical URLs, Google has to pick which one to show — and you lose control over that choice. Setting a canonical URL isn't "defending against a penalty"; it's keeping control over what actually shows up in results.
As a rule, Google can only crawl a link that's an <a> HTML element with an href attribute — links rendered purely through onclick or location.href in JavaScript aren't links Google reliably follows. That applies to "related products" or "frequently bought together" sections too, if they're loaded asynchronously: without a real <a href> in the markup, they can be invisible to Googlebot regardless of how well they work for the shopper (Search Central, crawlable links, read 1 October 2026).
Anchor text is "the visible text of a link," and it "tells people and Google something about the page you're linking to." Good anchor text is "descriptive, reasonably concise, and relevant to the page that it's on and to the page it links to" — Google warns against generic text like "click here," against cramming in keywords (keyword stuffing is a spam-policy violation), and against chaining links next to each other, which strips each one of its surrounding context; an image link inherits its anchor text from the alt attribute (same source).
Breadcrumbs also have a formal structured-data format: BreadcrumbList with at least two ListItem elements, each with position, name and item (the URL — not required on the last item in the trail). Google recommends "providing breadcrumbs that represent a typical user path to a page, instead of mirroring the URL structure" (Search Central, breadcrumb, read 1 October 2026).
A sitemap "helps search engines discover URLs on your site, but it doesn't guarantee that all the items in your sitemap will be crawled and indexed." Google treats a sitemap as optional only for a "small" site — roughly 500 pages or fewer; an e-commerce catalogue usually exceeds that, so for a store a sitemap is a standard element in practice, not an optional one. Technical limit: a single sitemap file can't exceed 50MB uncompressed or list more than 50,000 URLs — larger catalogues get split across several files, optionally tied together by a sitemap index file (Search Central, sitemaps overview; limits: Search Central, build and submit a sitemap, both read 1 October 2026).
Beyond these four verified mechanisms, we don't cite specific figures for how much internal linking lifts conversion or basket value — industry articles on this topic, including an earlier version of this article on our own site, quoted named-but-unverifiable customer case studies and unsourced percentages. If you want to measure the effect of internal linking in your own store, do it on your own Google Analytics and Search Console data, not on percentages quoted elsewhere.
On 5 March 2024, Google announced three new, named anti-spam policies, including "scaled content abuse." The current policy text: "Scaled content abuse is when many pages are generated for the primary purpose of manipulating search rankings and not helping users." One listed method is "using generative AI tools or other similar tools to generate many pages without adding value for users" (Search Central, spam policies for Google Web Search; announcement date: Search Central Blog, March 2024, read 1 October 2026). The sanction Google describes for spam-policy violations generally: sites "may rank lower in results or not appear in results at all."
This isn't a ban on using AI for product descriptions. Google separately writes that "generative AI can be particularly useful when researching a topic, and to add structure to original content" — but mass-generating pages without added value "may violate Google's spam policy on scaled content abuse" (Search Central, AI-generated content, read 1 October 2026). For a store with thousands of SKUs, that's a real risk: automatically rewriting a manufacturer's description with AI for every one of those SKUs, without adding anything specific to your own store, can fall squarely within that definition.
We found no dedicated Search Central page on out-of-stock or seasonal products — the e-commerce section doesn't have one. The only directly confirmed, related fact is the availability value for structured data: https://schema.org/OutOfStock "indicates that the item is out of stock" (schema.org). The commonly repeated advice — keep the product page live, mark it OutOfStock, and suggest alternatives, rather than redirecting or deleting it — is industry practice, not a quoted Google recommendation. We say that explicitly so as not to attribute to Google a rule it hasn't actually stated.
Shopify automates part of SEO: it adds automatic canonical tags "to prevent duplicate content from appearing in search results," generates sitemap.xml and robots.txt, has themes build page titles that include the store name, and generates structured data. Recommended URL style: "descriptive, hyphen-separated URLs," e.g. /collections/organic-skincare (Shopify, SEO overview, read 1 October 2026). The path structure itself is fixed: Shopify's redirect documentation lists /products, /collections and /collections/all as "fixed Shopify paths" that URL redirects can't be applied to (Shopify, URL redirects, read 1 October 2026). The robots.txt file is editable through a robots.txt.liquid template, added to the platform on 21 June 2021 — but Shopify warns it's "an unsupported customization" and an error in it can cost all your traffic (Shopify, editing robots.txt, read 1 October 2026).
In WooCommerce, you set the URL structure yourself, in WordPress's own permalinks. The vendor's guidance: "Keep permalink structures as short as possible and include keywords that relate to the content they categorize." There are four product-base options: default (?product=111, only with plain permalinks), shop base (/shop/product-name), shop base with category (/shop/category/product-name), or a custom base. WooCommerce warns directly: changing permalink structure changes the URLs of existing products, and old links or search-engine index entries without redirects "will return 404 errors" (WooCommerce, permalinks, read 1 October 2026).
PrestaShop generates uninformative URLs by default (product.php?id_product=27) and offers "friendly URLs" that turn them into something like 2-music-players/27-ipod-nano-green. This requires server-side URL-rewriting support (Apache mod_rewrite or equivalent) — the documentation warns that enabling friendly URLs without it "can make your shop completely unavailable to customers." PrestaShop also has a built-in canonical redirect setting — a standard rel="canonical" tag, with a choice between a 301 redirect (recommended once configuration is final), a 302, or no redirect; since version 1.7.6, the product's canonical URL is called by default (PrestaShop, v8 documentation, SEO and URLs, read 1 October 2026). This is version 8 documentation — we didn't check whether version 9 keeps identical SEO settings. The official page for PrestaShop's Google Shopping integration module couldn't be read (addons.prestashop.com blocked every attempt) — if you run a store on this platform, verify the current module in your own back office.
We found no reliable, methodology-disclosed survey of ecommerce SEO pricing in the EU or anywhere else. SEO-agency blog posts on "how much does ecommerce SEO cost" quote price ranges with no stated methodology or sample — marketing copy, not data. So we don't give a figure here, not as a Digital Vantage price and not as a "market" reference point.
Instead of a number — five components that build the price, regardless of who you buy the service from:
Each of these five variables moves the price independently of the others, which is why comparing two quotes purely by their final figure, without the scope spelled out, rarely tells you anything useful. If you want a quote sized to your own store, get in touch — we'll scope the work before we put a number on it.
Measuring ecommerce SEO results starts with the same free Search Console reports you'd use for an audit: the Page indexing report — how many URLs are indexed and why the rest aren't (documentation, read 1 October 2026); the Core Web Vitals report — Chrome User Experience Report data, grouped by status, metric and URL group (documentation, read 1 October 2026; more detail in our Core Web Vitals for online stores article); and the rich-results reports for products (product snippets and merchant listings), plus — once linked to a Merchant Center account — the "Shipping and returns" setting under Settings > Shopping (documentation, read 1 October 2026). If you'd rather work from a step-by-step checklist than go through the reports yourself, see our self-audit checklist.
None of these numbers replace your own business data — organic traffic to category pages, conversions from product pages, revenue per organic session. Treat Search Console reports as diagnosing causes, and your sales data as measuring the effect.
There's no such penalty in Google's current documentation. The current position is that a site "will likely do just fine without specifying a canonical preference" — setting a canonical URL gives you control over which URL is shown and keeps Googlebot from spending crawl time on duplicates; it doesn't protect you from a sanction.
There is no reliable, methodology-disclosed survey of this service's pricing. The price is really set by five variables: the billing model, the audit's scope, the size of the product catalogue, the platform's technical baseline, and whether the quote includes ongoing maintenance. Compare quotes by scope, not just the final figure.
Links from other sites won't fix problems a store creates for itself — filters, variants and duplicates — so start with technical order and product-page quality. Internal linking — crawlable links, descriptive anchor text, breadcrumbs, a sitemap — is what you actually control, and it's worth doing first.
Differently on each. Shopify automates canonical tags, the sitemap and basic structured data; in WooCommerce you set the permalink structure (and redirects after changing it) yourself; in PrestaShop, friendly URLs have to be enabled and require server support.
Google doesn't publish a dedicated recommendation for this situation — the confirmed fact is the OutOfStock structured-data availability value. Common practice is to leave the page live with that marking and suggest alternatives, but that's industry practice, not a Google rule.
We'll go through your structure, filters and platform's technical baseline together, and tell you what's actually holding back your rankings — before we propose a scope of work.
Ecommerce SEO in three layers: technical, product content and Merchant Center data. What makes a shop different from a regular site, and where to start.
An ecommerce SEO audit runs mostly on free Google reports: indexing, Core Web Vitals, rich results, duplicates and Merchant Center data.
Google Merchant Center: site verification, product data, shipping and landing page rules, disapproval reasons, and Shopify and WooCommerce integrations.
Core Web Vitals for ecommerce: LCP, INP and CLS thresholds, their ranking weight, field vs. lab data, and the platform gap from the 2025 Web Almanac.
Product description SEO: what Google expects, Merchant Center title/description limits, the 500×500 px image rule, GTIN and the duplicate content myth.
Your Partner in Business, Digital Vantage Team
Digital Vantage team is a group of experienced professionals combining expertise in web development, software engineering, DevOps, UX/UI design and digital marketing. Together we carry out projects from concept to implementation - websites, e-commerce stores, dedicated applications and digital strategies. Our team combines years of experience from technology corporations with the flexibility and immediacy of working in a smaller, close-knit structure. We work in agile methodologies, focus on transparent communication and treat each project as if it were our own business. The strength of the team is the diversity of perspectives - from systems architecture and infrastructure, frontend and design, to SEO and content marketing strategy. As a result, the client receives a cohesive solution where technology, aesthetics and business goals go hand in hand.
Rate this article

How price comparison websites work for a retailer: the CPC model, when a click pays for itself, Google's CSS rule, and EU rules on reviews and discounts.

TikTok Shop runs in 13 of the EU's 27 states, no company needed — but TikTok Shop Ads (GMV Max) reaches only 4-5 of them. What's open, what isn't.

Google Shopping ads explained: free listings vs paid ads, the CSS requirement, Performance Max and how to set a Target ROAS for a product campaign.

Omnichannel in e-commerce: the definition versus multichannel, the shared-inventory mechanism between a store and a till, and when to implement it.

Ecommerce fulfillment: what the service covers, how EU providers price it, and when outsourcing your warehouse pays off instead of doing it in-house.

What a product page needs: photos, the EU 30-day lowest-price rule, mandatory GPSR information, delivery, returns, reviews and Google structured data.

An ecommerce SEO audit runs mostly on free Google reports: indexing, Core Web Vitals, rich results, duplicates and Merchant Center data.

Google Merchant Center: site verification, product data, shipping and landing page rules, disapproval reasons, and Shopify and WooCommerce integrations.

WordPress themes are not chosen on looks: three fields in the directory tell you what a theme will cost you in a year, and what disappears when you switch.