Skip to main content

The Search Playbook | 10 min read

WooCommerce Duplicate Content: Where It Comes From and What to Do

By ยท Updated ยท 10 min read

What duplicate content means on a WooCommerce store

Duplicate content is the same, or almost the same, content reachable at more than one web address. It does not trigger a penalty in the way people fear. Google's own guidance treats it as a clutter problem: the search engine has to choose one version to show, and it may choose a version you would not have.

For a store, the cost is quieter and more practical. Your category page may have earned its links and history at one address, while a filtered copy of it soaks up crawling time at ten thousand others. The signals split. A crawler spends its visit on thin variants and arrives late at the pages you actually want shown. When you add new products, the right pages take longer to be noticed.

If you want the plain definition of the term before going on, the glossary page on duplicate content for WooCommerce covers it in a paragraph. This page is about the store-specific sources and what to do about each. If you would rather hand the job over, services that handle duplicate URLs for you are sorted by kind on our main guide.

Two ideas organize everything below. A canonical tag is a line in a page's code that says "the preferred version of this page is over there." A noindex tag is a line that says "do not list this page in search at all." They solve different problems, and picking the wrong one is the usual mistake.

Source one: sorting and filters

This is the biggest source on most stores. When a shopper sorts a category by price, or filters by size and color, WooCommerce adds extra words after a question mark in the address. Sorting adds an order word. Filters from the standard widgets add a word per filter. Price sliders add minimum and maximum values. Each combination is a new address, and the page it loads shows mostly the same products as the original in a different order or a smaller set.

A category with four sort orders, six colors, five sizes and a price slider can produce a very large number of addresses from one page. Most have no search demand and no unique content.

Three ways of handling it exist, and which you use depends on how your theme and plugins build filters.

A canonical tag from each filtered address to the plain category address. The page still loads for shoppers. Search engines are told the plain version is the real one. This is the common default, and many SEO plugins add it for you. Check it is actually present on a filtered page by viewing the page source.

A noindex tag on the filtered pages. Better when a filtered view is something you never want listed.

Blocking the parameters in robots.txt. This stops crawling, which saves crawl time, but it also stops a crawler from seeing a canonical or noindex tag on those pages. Use it sparingly, and read our glossary page on robots.txt for WooCommerce first.

Do not combine all three on the same address without a reason. A page blocked from crawling cannot pass on a canonical hint.

Source two: variations

A variable product is one product with options, such as a shirt in three sizes and four colors. By default WooCommerce keeps all those options on a single product page, and the page changes as the shopper picks. That is the safe case, one address for one product.

Duplicates appear in two ways. Some setups let a link preselect a variation by adding words to the address, so you get many addresses for one product. And some stores create each color as a separate simple product, which is a legitimate design but produces many pages with near-identical descriptions.

The questions to ask are the ones in the diagram. Does anyone search for the red version specifically, and does the red page say anything the main page does not? If shoppers do search for the specific variant, and you can give it its own photos, own details and own copy, keep it as a page worth indexing. If the only difference is the color name, point those addresses at the main product with a canonical tag.

The same logic applies to a product you sell in several pack sizes as separate products. Decide whether the pack sizes are different things to a buyer or the same thing in different quantities, and set the pages accordingly. On the writing side, the WooCommerce product page SEO page covers how to make variant copy genuinely different.

Source three: tags, archives and extra listings

WooCommerce has product categories and product tags, and WordPress itself adds archives for dates, authors and blog tags. Each makes list pages.

Product tags are the usual offender. Stores add tags freely, and a tag page lists products already listed in a category, under a heading with no copy. Fifty tags can mean fifty thin pages. If you use tags as a real browsing aid and each one has enough products and some intro text, keep the best and drop the rest. If you added tags by habit, set the tag pages to noindex or remove the tags.

Pagination makes page two and three of a category. Those are legitimate pages with different products on them. Do not canonicalize page two to page one, because that tells a search engine to ignore the products on page two. Let each paginated page canonicalize to itself. The category page SEO page covers pagination in more depth.

Shop page and a main category showing the same products. If your all-products shop page lists the same items as a top-level category, that is a duplicate worth a decision.

Author and date archives on the blog side add nothing on a store with one author. Most SEO plugins have a switch to remove them from search.

Settings in this area differ between plugins and versions, so check your SEO plugin's own documentation for the current names and defaults.

Source four: copied text

Not all duplicate content is about addresses. If you sell goods from a supplier and paste the supplier's description, thousands of other stores carry the same words. Search engines see the same paragraph on many sites and have no reason to prefer yours.

The fix is plain and slow: write your own description. Start with what a buyer needs to decide, such as size, fit, materials, what it is compared with, who it suits and who it does not suit. You do not need to rewrite the whole catalog at once. Start with the products that already get impressions in Search Console, or that earn the most.

Copied text inside your own store also counts. A short description and a long description that repeat each other, or a set of products where only the title changes, are weak. Our glossary page on thin content for WooCommerce explains how thin and duplicate overlap and how to spot them.

If you do not write every description yourself, say who does. If AI writes them, they still need to be specific to each product. The existing page on AI content for WooCommerce stores covers how to keep generated copy from turning into a repeat of the same paragraph.

How to find your duplicates

You do not need a paid tool. Four free checks cover most of it.

Google Search Console, Pages report. It lists addresses Google found but chose not to index and gives reasons. Look for entries like a duplicate without a user-selected canonical, or an alternate page with a proper canonical tag. Seeing many of those on filter addresses tells you where the crawl time is going.

A site search. Type the word site, a colon and your domain into Google, followed by a word that appears in filter addresses. If page after page of filtered results come back, they are being indexed.

View the source of a sample page. On a filtered category, a sorted category, a tag page and a variation link, search the source for the canonical line and see where it points.

Crawl your own site. A crawler that follows links the way a search engine does will show how many addresses your store has compared with how many real pages you think it has. A big gap is the finding.

Write down each type of duplicate you find, not each address. You are looking for patterns to fix with a rule.

Choosing the right fix for each type

Use the diagram above as a sorting tool. For each URL type, answer two questions and apply the result to the whole type.

Canonical suits a page that must stay reachable for shoppers but should not compete in search. Sorted and filtered views are the standard case. The page loads, the shopper is happy, and the search engine is told where the real version is. A canonical is a hint, not a command, so a search engine can ignore it if the pages differ too much.

Noindex suits a page that is useful to visitors, or needed internally, and has no place in search. Internal search results, cart-adjacent pages and thin tag archives fit here. The page must stay crawlable for the tag to be read.

A redirect suits a page that should not exist at all, such as an old duplicate left over from a rename. Visitors and signals are sent to the surviving page.

Keep and improve suits the pages worth ranking. A filtered view that matches a real search, say a category plus a brand, can be worth turning into a proper page with its own title and copy rather than suppressing.

The common mistake is reaching for noindex everywhere because it feels thorough. It stops the page ranking and does not consolidate signals the way a canonical can. Use the lightest tool that solves the case.

Which duplicate URLs get which treatment Demand on one axis, unique content on the other. Write it up Make it a real page. Own copy, own title. Keep and index A real category or tag page. Canonical or noindex Sort order, price sliders, session bits. Canonical to main Variation links with no new content. Does anyone search for it? No Yes Adds unique content? Yes No
Ask both questions of each URL type once. The answer applies to every page of that type.

After the fix: what to watch

Changes to tags are slow to show. Search engines have to recrawl the pages before they learn the new instruction. Give it several weeks.

In the Pages report of Search Console, expect the count of excluded duplicate addresses to rise at first, which is the fix working, and the count of crawled but not indexed pages to ease. Keep an eye on the pages that matter most: your top categories and best products should be indexed and should not slip. If one drops out, check you did not tag it by accident.

Then keep the rule in place. New plugins, a theme change or a new filter widget can reintroduce parameters without anyone noticing. Put a check on the list of recurring jobs. The WooCommerce SEO checklist places this among the other recurring checks and says where it ranks.

A worked example: one category, three problems

Take a store that sells hiking boots. It has one category called Hiking Boots with 60 products. Shoppers can sort four ways and filter by size, color and brand.

Problem one: each sort order and each filter makes a new address, so Google can reach thousands of versions of the one category. Fix: a canonical tag from every filtered and sorted address to the plain category address, confirmed by viewing the page source.

Problem two: the boots come in six colors, and each color is a separate product with the same two paragraphs of description. Fix: decide which colors have their own search demand and photos. Keep those as full pages with copy of their own, and point the rest at the main boot with a canonical tag.

Problem three: forty product tags, most with two or three products and no text. Fix: keep the five tags that match real searches, add a short intro to each, and set the rest to noindex.

Notice that none of the three fixes needed a new plugin. Each came from asking what a shopper and a search engine would each see, and deciding on purpose. Do the same exercise once per URL type on your own store, write the decision down, and apply it as a rule.

How RunOctopus handles this

Duplicate URLs are mostly a setup problem, but the thin and repeated text that often rides along with them is a writing problem, which is the part that is slow to fix by hand.

RunOctopus is a done-for-you service. Its AI, Ollie, researches your business, then writes and publishes pages directly on your own website, and it works with WordPress and WooCommerce. A team plans, writes, reviews and publishes alongside Ollie. There is nothing to install, nothing to approve, nothing to upload and nothing to schedule. Pages go live on their own.

In the first week you get 8 long-form articles, 6 pages and a custom interactive tool built for your niche. After that it is 175+ pieces of content a month, written, published and linked. Reports show where ChatGPT, Perplexity, Claude and Gemini name your business.

The promise is more visibility on Google and in AI answers within 90 days, measured against the 90 days before you joined, or every dollar back. For scale, an agency doing this work charges about $3,209 a month (2026 average, 439 providers) and publishes 4 to 12 pieces.

You can see the plan before you decide anything. Paste your address into the free site read and Ollie reads the site and shows the plan. No account, no call.

Frequently asked questions

Does WooCommerce duplicate content cause a Google penalty?

Not in the way most owners fear. The practical cost is that signals split across versions, crawl time is spent on thin variants, and Google may show a version you would not have chosen. It is a clutter and focus problem rather than a punishment.

Should I noindex or canonical my filter pages?

Canonical is the usual first choice for filtered and sorted views, because it keeps the page working and points search engines at the main category. Noindex suits pages you never want listed. Pick the lighter tool that solves the case.

Do product variations create duplicate content?

Not by default, since the options live on one product page. Duplicates appear when links preselect a variation through extra words in the address, or when each color is its own near-identical product. Treat variants as real pages only if they have their own demand and their own content.

Are WooCommerce product tags bad for SEO?

Tags are fine when each one has enough products and some intro text. Tags added by habit create thin list pages that repeat category content. Keep the useful ones and set the rest to noindex or remove them.

How do I check for duplicate pages without a paid tool?

Use the Pages report in Google Search Console, a site search for filter words, the page source of a sample of URL types, and a crawl of your own site. You are looking for patterns by URL type, not individual addresses.

MG
Written by

Matt is the founder of RunOctopus. He built All Angles Creatures from zero to page-1 rankings in reptile feeder insects using exactly this method. Turning a hard, entrenched niche into RunOctopus's proof store for programmatic SEO and AI search citation.

Connect on LinkedIn →

Ollie builds this for your store automatically

A complete launch build: 8 expert guides, 6 collection pages, and an interactive tool. Structured for both Google and AI search. Live on your store in week one.

See What Ollie Builds →

See what Ollie builds before you pay. Cancel anytime.

● Trusted by store owners in 20+ niches