Product pages are the highest-intent pages in any store. Someone searching "buy Sony WH-1000XM5" is moments from a purchase. Yet most product pages are thin, duplicate-prone and technically broken, and the stores running them keep adding SKUs instead of fixing templates.
Before the list, one thing worth saying plainly. Product pages rarely carry the biggest commercial keywords. Category pages do, and they survive when a SKU sells out. If your organic traffic has plateaued, the ceiling is usually category architecture rather than product copy β that's a different piece of work, covered on our ecommerce SEO service page. Everything below assumes your categories are already earning their keep.
Making individual product URLs rankable and clickable: unique descriptions that differentiate you from every other retailer carrying the same item, title tags built for relevance and click-through, accurate Product schema, optimised images, and enough internal links that the page isn't orphaned.
Fix 1: Stop shipping manufacturer product descriptions unchanged
Here's the part most guides get wrong. There is no duplicate content penalty for manufacturer descriptions. Google has said so directly, and its canonicalisation guidance treats duplicate content as a normal feature of the web rather than a spam violation.
What actually happens is deduplication. Google groups every page carrying the same block of text and picks one representative version to show. The version it picks is whichever it judges most complete and useful. Between the manufacturer's own site, a large marketplace, and your store, the established source wins that contest almost every time.
So you aren't penalised. You're just filtered out. From where you're sitting, no penalty and no rankings look identical, which is why this problem goes undiagnosed for years.
How to write product descriptions that get picked
-
1Start with the buyer's problem, not the product's features
Open with the pain point this product solves. "If noise cancellation doesn't block out your open-plan office, you're losing hours of focus every week" outperforms "50dB noise cancellation."
-
2Add real-world context to spec sheets
Turn "30-hour battery life" into "30 hours, a full work week without charging, even on heavy use days." Specs without context don't differentiate and don't persuade.
-
3Answer the top three pre-purchase questions directly
Mine reviews, competitor Q&A sections and People Also Ask boxes for what buyers actually worry about. Answering those in the description cuts bounce and lifts conversion at the same time.
-
4Add a "who is this for" section
Captures long-tail use-case searches and helps buyers self-qualify. Picks up keyword variations naturally, without stuffing.
Prioritise by revenue, not by alphabetical order. Rewrite high-traffic, high-margin products first and leave long-tail low-value SKUs on manufacturer text indefinitely. Google sets no word count; most product descriptions land around 150 to 300 words, and specificity beats length every time.
Fix 2: Rewrite your title tags
Product page title tags have two jobs: signal relevance to Google, and win the click when a searcher is looking at ten near-identical options. Most ecommerce title tags fail at both.
Sony WH-1000XM5 | AudioShop
Sony WH-1000XM5 Wireless Headphones β Best Price + Free Shipping | AudioShop
The formula: [Primary Keyword] β [Key Differentiator] | [Brand Name]. Include the model number, a buying signal (free shipping, best price, in stock), and keep it under 60 characters so it doesn't truncate.
Use a single canonical product page with variant selectors for colour, size and similar attributes. Only give a variant its own indexable URL when that variant has genuine independent search demand, confirmed in Search Console or Ahrefs. Splitting on a guess creates near-duplicates that compete with each other, which is the cannibalisation problem you were trying to avoid.
Fix 3: Add Product schema markup
Product schema is the highest-value structured data type for ecommerce. It makes the page eligible for a listing showing star ratings, price and availability directly in results, which lifts click-through before anyone reaches your site.
Be clear on the mechanism though. Structured data is not a ranking factor. It changes how your result looks, and that changes CTR. Google's own published case studies put the gain between 25% for Rotten Tomatoes and 82% for NestlΓ©, comparing pages with rich results against pages without. Those are observational comparisons rather than controlled tests, so treat them as directional.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Sony WH-1000XM5 Wireless Headphones",
"sku": "WH1000XM5B",
"brand": { "@type": "Brand", "name": "Sony" },
"offers": {
"@type": "Offer",
"priceCurrency": "USD",
"price": "349.99",
"availability": "https://schema.org/InStock",
"url": "https://yourstore.com/products/sony-wh1000xm5"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "2340"
}
}
Declaring ratings or prices that a visitor can't see on the page falls under Google's structured data spam policies. Out-of-stock items must update the availability field. Inaccurate schema costs you rich result eligibility and can trigger a manual action across the whole site. If you have no reviews yet, ship the schema without aggregateRating rather than inventing one.
Getting this right across a full catalogue is template work, not page work. Our schema markup service covers it, and the nine-step schema audit is the process if you'd rather run it in-house.
Fix 4: Optimise product images properly
Product images matter twice over. They're the LCP element on most product pages, and they drive Google Images traffic that most stores ignore entirely.
- Rename files before uploading:
sony-wh1000xm5-black-side.jpgbeatsIMG_4729.jpg. - Write descriptive alt text: "Sony WH-1000XM5 wireless headphones in black, side view", not "headphones1".
- Serve WebP or AVIF: 30 to 50% smaller than JPEG or PNG at the same visible quality.
- Set explicit width and height: always include dimensions on
<img>tags to prevent CLS. - Preload the hero image:
<link rel="preload" as="image">for the first visible product image is the highest-impact LCP fix available on a product template. - Lazy load gallery images:
loading="lazy"on anything below the fold.
Fix 5: Solve the faceted navigation problem
Filtering by size, colour, brand and price generates thousands of URLs. Left unhandled they consume crawl budget and dilute PageRank across near-duplicates. On large catalogues this is the single most expensive technical problem there is.
Three approaches. Pick one and be consistent.
-
ANoindex, allow crawl
Add
meta name="robots" content="noindex, follow"to filtered URLs. Google won't index them but will follow their links and discover products. The right default for most stores. -
BCanonical to the category page
Point filtered URLs' canonicals back at the parent category. Good when filtered views have no independent ranking value.
-
CIndex high-value combinations only
For filters with real demand, like "red Nike running shoes", build fully optimised indexable pages with their own titles, H1s and copy. High effort, real long-tail reward. The line is drawn by search volume, not by what your theme happens to generate.
Fix 6: Stop 404ing out-of-stock pages
Deleting or 404ing sold-out products is the most common and most expensive ecommerce SEO mistake I see. The correct handling depends entirely on why the product is gone.
- Temporarily out of stock: keep the page live, set schema availability to
OutOfStock, add a restock notification form. Never 404 or redirect β you'll lose rankings and any backlinks the page earned. - Permanently discontinued, has links or rankings: 301 to the closest alternative or the parent category.
- Permanently discontinued, no links or traffic: return 410 (Gone). Google removes it from the index faster than with a 404.
- Replaced by a new model: 301 to the new product URL and add a line on the destination: "Looking for the XM4? We now carry the improved XM5."
Fix 7: Your product pages are orphaned
Product pages are usually the most internally orphaned URLs on an ecommerce site, linked only from category navigation and nowhere else. That starves them of PageRank and ranking signal no matter how good the page itself is.
Crawl with Screaming Frog and filter for Inlinks = 0. Any product page with zero internal links is invisible to Google's internal crawl. Add two to three contextual internal links to every orphan you find. This week.
- Cross-sell blocks: "customers also bought" and "frequently bought together" pass PageRank between related products and lift average order value at the same time.
- Real breadcrumb links: every product page needs a breadcrumb trail, and those must be real HTML links rather than styled spans.
- Links from blog content: buying guides and comparison posts linking to product pages with descriptive anchor text are the highest-value internal links you can build.
- Recently viewed and similar products: creates additional crawl paths through the catalogue.
Product page SEO questions, answered
How do I handle SEO for product variations?
Use one canonical product page with variant selectors for colour, size and similar attributes, rather than a separate indexable URL per variant. Only split a variant into its own page when it has genuine independent search demand, confirmed in Search Console or a keyword tool. Splitting on a guess creates near-duplicates that compete with each other.
Does Google penalise manufacturer product descriptions?
No. Google's canonicalisation guidance treats duplicate content as normal rather than a spam violation. What happens instead is deduplication: Google groups the pages carrying the same text and shows one representative version, usually whichever it judges most complete. That's typically the manufacturer or a large marketplace rather than your store. No penalty, no rankings, and the two look the same from your end.
How long should a product description be?
Google sets no word count. Common practice lands around 150 to 300 words for most items, shorter for simple products and longer for considered purchases. Specificity matters more than length. A precise 120 words answering real pre-purchase questions beats 500 words of restated spec sheet.
What's the difference between product page SEO and category page SEO?
Category pages target broader commercial terms, hold more authority and survive when SKUs sell out or get discontinued. Product pages target specific model and brand queries at very high purchase intent. Most stores over-invest in product pages and under-invest in categories, which is exactly why their organic traffic plateaus.
Does Product schema improve rankings?
Not directly. Structured data is not a ranking factor. It makes the page eligible for a richer listing showing price, availability and stars, which can lift click-through at the same position. Google's published case studies report gains from 25% (Rotten Tomatoes) to 82% (NestlΓ©), comparing pages with rich results against pages without.
How do I find orphaned product pages?
Crawl with Screaming Frog or Sitebulb and filter for pages with zero inlinks. Any product URL with no internal links is effectively invisible to Google's internal crawl regardless of how good the page is. Add two to three contextual internal links to every orphan.
Where to start
Run the orphan crawl first. It takes twenty minutes and it's the only fix on this list that costs nothing and can be shipped the same day. Then work through descriptions by revenue, highest margin first.
If the problem is bigger than product pages β and on most stores it is β our ecommerce SEO service covers category architecture, faceted navigation containment and template-level schema, which is where the traffic ceiling usually sits.
See ecommerce SEO services β