In this article
Open your best-selling product page, copy a full sentence from the description, and search it in Google inside quotation marks. If a dozen other stores come back with the same sentence, you have found the reason that page does not rank.
The problem with supplier copy
Manufacturers hand out product text so retailers can list quickly. Everyone pastes it. Google ends up with fifty pages carrying identical paragraphs and has to choose which one to show — and it rarely chooses the newest, smallest store.
This is not a penalty. Nothing gets flagged, nothing gets removed. The page simply never surfaces, which is harder to notice than a penalty and costs just as much.
Why it bites stores hardest
On a service site you write every page yourself. On a store with 300 products you inherit 300 pages of text you did not write — and that is usually 90% of your indexable content.
Which products to rewrite first
Nobody rewrites 300 products in a week, and you do not need to. Order the work by what it is worth:
- Your top sellers. Pull the last 90 days of orders. The products already selling are the ones where a ranking gain turns straight into revenue.
- Products with impressions but no clicks. In Search Console, filter Performance by the
/product/path. Pages Google already shows but nobody clicks are the cheapest wins — they just need a better title and description. - Products with real search volume. Some items simply have demand behind them. Those deserve a proper page even if they are not bestsellers yet.
- Everything else, in batches. Ten a week beats a plan to do all of them that never starts.
What a product description needs
Length is not the goal. What makes a description rank is carrying information the supplier blurb does not have.
- The words buyers actually use. If people search "cold pressed olive oil 1 litre" and your page says "premium EVOO 1L", you are not in the conversation.
- Specifics only you can give. Where it is made, how it is produced, the harvest, the exact dimensions, what is in the box. This is what makes the page genuinely different.
- The question that stops the sale. Shelf life, delivery time, whether it fits a particular model, how to use it. Answer it on the page and you both rank wider and convert better.
- Honest comparison. How this one differs from the cheaper version you also sell. Buyers are already comparing; help them do it on your site instead of someone else's.
Two or three short paragraphs plus a specification list usually does it. A thousand words of padding below the fold helps nobody.
Doing it at catalogue scale
The trick is to keep the structure identical and the content specific. Build a skeleton — what it is, who it is for, the differentiator, the specs, the common question — then fill it per product with real details pulled from the supplier sheet, the packaging and your own experience of selling it.
That gives you consistency without duplication, and it makes the work delegable. It also means your category pages stop competing with their own products, because each page has a distinct job.
If you use AI to draft, feed it the real specifics and make a person check every line. Generated text with no product knowledge in it reads like filler, and filler is what Google is already ignoring.
The two things people forget
Image alt text
Product photos named IMG_4421.jpg with no alt text are invisible. Describe what is in the image using the words a buyer would search. Google Images sends real traffic to stores, and it costs a minute per product.
Product schema
Without product markup, your price, stock status and ratings never appear in the search result. With it, your listing takes more space and gets more clicks at exactly the same position. Most WooCommerce SEO plugins will output it once configured — the point is to check that it is actually there and valid, not to assume.
Together these three — original copy, alt text, product schema — are the bulk of what we do in a WooCommerce SEO engagement, and they are usually the difference between a store Google shows and a store it skips.