Key Takeaways
- Unique, detailed product descriptions outperform supplier copy — they differentiate from every other retailer carrying the same product
- Product schema markup (Product, Offer, AggregateRating) makes prices, availability, and ratings eligible for rich results
- Product variant URLs (
/shoes?color=red) should be canonicalised to the parent product page unless each variant has meaningfully different content - Image alt text for product images serves dual purpose: image search traffic and accessibility
- Internal linking from category pages to product pages distributes link equity to your highest-value pages
Unique Product Descriptions
Manufacturer and supplier descriptions appear on hundreds of retailer sites. Google sees them as duplicate content and picks one winner — usually not the retailer with the lowest domain authority.
Write unique descriptions that add value: include use cases, size and fit guidance, materials, care instructions, compatibility notes. Aim for 100–300 words minimum. Focus on what buyers actually search for: "waterproof hiking boots wide fit" rather than "premium outdoor footwear". Specificity wins — both with search intent matching and with differentiation from every other retailer selling the same SKU.
A useful test: remove your brand name from the description and ask whether it could belong to any other retailer. If yes, it needs rewriting. Product descriptions that answer real pre-purchase questions — "will this fit a size 12 wide foot?", "is this dishwasher safe?", "what's the weight limit?" — generate long dwell time and reduce bounce, both indirect ranking signals.
Product Schema Markup
Product rich results — star ratings, price, availability — appear directly in search results. They require structured data that Google can parse reliably. The three components are:
- Product type with
name,description, andimage - Offer with
price,priceCurrency, andavailability(usehttps://schema.org/InStockorhttps://schema.org/OutOfStock) - AggregateRating with
ratingValueandreviewCount
A minimal but valid Product JSON-LD block looks like this:
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Men's Waterproof Hiking Boots — Wide Fit",
"description": "Lightweight waterproof hiking boots with ankle support...",
"image": "https://example.com/images/hiking-boots-wide.jpg",
"offers": {
"@type": "Offer",
"price": "129.99",
"priceCurrency": "GBP",
"availability": "https://schema.org/InStock"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "214"
}
}
Use the Schema Markup Tester to validate Product schema — it checks for all required and recommended properties and flags missing fields that would prevent rich result eligibility.
Handling Product Variants
Colour, size, and material variants create URL proliferation: /shoes/red-size-9, /shoes/blue-size-9, /shoes/red-size-10. For an ecommerce site with 1,000 products each having 10 variants, that's 10,000 URLs of largely duplicate content. Google has to crawl and evaluate all of them — at a cost to your crawl budget and with a risk of thin content signals across the board.
There are three defensible strategies:
Single URL with client-side state. Keep variant selection entirely in JavaScript — colour and size toggle the displayed content without changing the URL. One canonical URL, no duplication. Best for crawl budget. The trade-off: you can't rank for variant-specific queries like "blue suede size 9 chelsea boot" because there's no indexable page for them.
Canonical consolidation. Each variant has its own URL, but carries a <link rel="canonical"> pointing to the parent product page. Google crawls the variants but treats the parent as the authoritative version. Good middle ground — variants remain accessible for tracking and direct linking without contributing to duplicate content penalties.
Index meaningful variants only. If a specific variant has genuine standalone search demand — "nike air max 97 size 12 wide" is searched independently — give it a unique URL, unique content, and let it index. If there's no search demand for the specific variant combination, canonical back to the parent.
Check your variant canonicalisations with the SEO Analyzer — it flags canonical mismatches and missing canonicals across your full product catalogue, surfacing which variant pages are leaking indexability.
Title Tags and Meta Descriptions
Product page titles are one of the highest-leverage SEO changes on an ecommerce site. The gap between a weak and a strong title is significant:
Weak: "Blue Sneakers | My Store"
Strong: "Men's Blue Running Sneakers — Lightweight & Waterproof | BrandName"
The strong title includes the primary keyword, a key differentiator, and the brand — all within 60 characters. Include attributes that narrow purchase intent: fit, material, use case, and gender where relevant.
Meta descriptions for product pages should answer three questions: what is it, what makes it special, and why buy here. Include a commercial differentiator — free shipping, next-day delivery, exclusive colour, extended returns. Google doesn't always use the provided description, but when it does, a strong one improves click-through rate, which indirectly affects ranking.
Keep titles under 60 characters and descriptions between 120 and 160 characters. The SEO Analyzer flags TITLE_TOO_SHORT, TITLE_TOO_LONG, DESC_MISSING, and DESC_DUPLICATE — duplicate descriptions across variants are a common and easily missed problem.
Product Image Optimisation
Product images drive image search traffic and contribute to on-page engagement. Unoptimised images are also one of the most common sources of Core Web Vitals failures on product pages — specifically Cumulative Layout Shift (CLS) when width and height attributes are missing.
Optimise for search and performance:
- Alt text: descriptive and keyword-rich — "blue waterproof hiking boots with ankle support" rather than "product-1.jpg". Describe what the image shows in context of the product.
- File names:
blue-hiking-boots-waterproof.jpgrather thanDSC00123.jpg. File names are a minor signal for image search. - Dimensions: always include
widthandheightattributes on every image element. Missing dimensions are the primary cause of CLS on product pages. - Format: WebP with JPEG fallback for broad browser compatibility. WebP is typically 25–35% smaller at equivalent quality.
- Lazy loading: apply
loading="lazy"to below-fold images. Useloading="eager"(the default) on the primary product image — it is the LCP candidate and must not be deferred. - fetchpriority: add
fetchpriority="high"to the primary product image to hint to the browser that it is high priority. Do not combine withloading="lazy".
The Page Speed Inspector identifies images missing width/height attributes, below-fold images lacking lazy loading, and the LCP candidate image URL — all on any product page URL you provide.
Internal Linking From Category Pages
Product pages get their link equity from category pages, site navigation, and related product cross-links. Weak internal linking means low crawl priority and infrequent re-indexing — a product page with no inbound internal links may be discovered but treated as low-priority.
Use descriptive anchor text that reflects the product's keyword target: "women's waterproof hiking boots" rather than "click here" or "view product". Link related products from product pages (cross-sell sections). Include breadcrumb navigation with proper BreadcrumbList schema — breadcrumbs serve both users and crawlers, and the schema makes them eligible for display in search results.
Category pages should link to all their child product pages — not just the top few. If pagination hides products beyond page 1, those products receive no direct internal link equity from the category page. Use the Link Checker to find product pages with no inbound internal links — these orphaned pages are effectively invisible to Google's prioritisation logic.
Technical Checklist
Before publishing or auditing a product page, verify every item on this list:
<link rel="canonical">on every product page — and on every variant, pointing to the parent- Product schema with Offer and AggregateRating (validate with Schema Markup Tester)
- Unique title tag — no duplicates across variants (check with SEO Analyzer)
- Unique meta description — no duplicates across variants
- Image alt text on all product images
widthandheightattributes on all image elementsloading="lazy"on below-fold images;loading="eager"on the primary product image- Breadcrumb navigation with BreadcrumbList schema
- Internal links from category page to this product page
- Page speed: product pages should load with LCP under 2.5 seconds (check with Page Speed Inspector)
Audit Your Product Pages' SEO Signals
Free, no signup. The SEO Analyzer crawls your full product catalogue and surfaces duplicate titles, missing canonicals, noindex pages, and missing meta descriptions — the signals that hold product pages back from ranking.
Try the SEO Analyzer Free →Affiliate disclosure: Some links on this page may be affiliate links. We only mention tools we've personally used and have an honest opinion about. Affiliate revenue helps keep ByteWaveNetwork's tools free and maintained. We are not paid by any of the tools compared in this article for favorable coverage.