Fixing Weak Product Page SEO
A weak product page usually has the right product and the wrong page around it: a title made of a brand and a stock code, the manufacturer's description that fifty other shops also use, key details hidden in tabs that load later, and nothing linking it back into the rest of the shop.
The Ecommerce Audit checks how complete your product pages are. This guide works through a product page from top to bottom, explaining what each element should do, how to fix it at template level so every product benefits, and where one product at a time is the only way.
Why product pages end up weak
Almost every weak product page has the same history. Products were imported in bulk from a supplier spreadsheet or feed, the theme turned each row into a page, and the shop moved on to the next job. The result is a page that technically exists and can be bought from, but carries nothing a search engine or a shopper could not find on a dozen other sites.
The Ecommerce Audit looks at product page completeness. In practice, the gaps it finds fall into four groups:
| Group | Typical gap | Where it is fixed |
|---|---|---|
| Identity | Title tag of brand plus SKU; H1 identical across colour variants | Template pattern, then individual overrides |
| Substance | Manufacturer text, no specifications, no sizing or compatibility | Per product, starting with best sellers |
| Trust | Price or stock loaded by script; delivery and returns only on a separate page; reviews in a widget | Template and apps |
| Connection | No breadcrumb, no related products, not linked from any category | Template and category setup |
The template fixes are quick and affect every product at once. The substance fixes are slow and have to be prioritised. Mixing the two up is the most common reason product page projects stall: a shop decides to "rewrite all product pages", gets through forty, and gives up.
Titles and headings that match how people search
People search for products by type, brand, model and the attribute that matters to them. They rarely search by your internal SKU. A useful title pattern for most shops is:
[Product name] [key attribute] โ [Brand] | [Shop name]
Harbour 3-Seater Rattan Sofa, Grey โ Fernbrook | Fernbrook Outdoor
Keep the part before the shop name under roughly 55 to 60 characters so it is not cut short in results. When the brand is also the shop name, drop the duplicate. When the product has a model number people genuinely search for, such as a replacement part or a camera lens, include it.
Common title problems
- Every variant with the same title. If sizes and colours have their own URLs, add the variant attribute to the title and H1, or point their canonical at one main URL. The variant URL strategy guide covers the choice.
- Supplier naming. "HBR-3S-GRY Rattan Sofa" reads like a warehouse label. Rename products for shoppers in the admin and keep the code in the SKU field.
- Stuffed titles. "Rattan Sofa Garden Sofa Outdoor Sofa Patio Sofa Cheap" helps nobody and looks spammy in results.
The H1 on the page should be the product name, clear and short. It does not need the shop name or a marketing phrase.
A description worth reading
Manufacturer text is not penalised as such, but it gives search engines little reason to prefer your page over any other shop using the same words. It also rarely answers the questions that stop people buying. A strong description has a structure a shopper can scan:
- A plain opening sentence saying what the product is and who it suits.
- Two or three short paragraphs or bullet points on what makes it different: materials, fit, what is in the box, what it works with.
- The honest detail other shops leave out: "runs small, most customers size up", "cushions need storing indoors over winter", "fits standard 25 mm tubing only".
- Care, compatibility or setup, where relevant.
You do not need hundreds of words. For a simple item, sixty words of your own that answer the real questions beat three hundred copied ones. For technical or expensive products, more detail is usually justified because shoppers compare carefully before buying.
If a product sells in several of your shops or marketplaces, write the version on your own site first and make it the most complete. Copying your own text word for word to a marketplace listing means competing with yourself.
Specifications, price and delivery in the HTML
Specifications are the facts shoppers compare: dimensions, weight, materials, capacity, compatibility, standards. Put them in a real HTML table or definition list, not an image of a table and not a PDF download only.
<table class="specs">
<tr><th scope="row">Dimensions</th><td>W 190 ร D 78 ร H 72 cm</td></tr>
<tr><th scope="row">Frame</th><td>Powder-coated aluminium</td></tr>
<tr><th scope="row">Weave</th><td>Flat-weave synthetic rattan</td></tr>
<tr><th scope="row">Cushions</th><td>Quick-dry foam, removable covers</td></tr>
</table>
Using th scope="row" makes the table readable to screen readers, and plain text in cells
means search engines and AI shopping assistants can pick out exact values.
Price, stock, delivery and returns
These four facts decide whether someone buys, and they should be on the product page in text, in the HTML that loads first. Check with View Source rather than the browser's inspector: if the price only appears after scripts run, the first version of the page that crawlers fetch may show no price at all. Delivery cost and time, and a one-line returns summary with a link to the full policy, belong near the add-to-basket button. If you use Product markup, those same values must match what the page shows; the Product schema guide covers the markup itself.
Reviews, questions and out-of-stock products
Genuine reviews add wording, detail and reassurance that no copywriter can match. Show them on the product page itself, with at least the most recent or most helpful ones in the HTML rather than only inside a widget that loads after scrolling. If your review app offers server-side or "SEO" rendering of reviews, switch it on and confirm the review text appears in View Source.
A short questions section works in the same way. Seed it from real customer emails ("Will this fit a 2 m wide balcony?"), answer plainly, and add new questions as they come in. Avoid marking up these questions as FAQ structured data expecting rich results: Google limits FAQ rich results to well-known government and health sites.
When the product is out of stock
Do not delete the page or redirect it the moment stock runs out. If it is coming back, keep the page, say when, offer a back-in-stock email and link to alternatives. If it is gone for good and there is a direct replacement, a 301 redirect to the replacement is reasonable; if not, a helpful page pointing to the category keeps visitors in the shop. The out-of-stock products guide goes through each case.
Linking the product page into the shop
A product page that nothing links to, or that links nowhere, is hard for crawlers to find and a dead end for shoppers. Every product page should have:
- A breadcrumb back to its main category, using normal HTML links, with BreadcrumbList markup matching it.
- A link from at least one category page that is itself linked from the navigation. Products that only appear in search results or sale emails can become orphans.
- A small set of related products, chosen for relevance: the matching cover for a sofa, the next size up, the same design in another material.
- A link to a buying guide where one exists, such as a sizing guide or a materials comparison.
Keep related blocks focused. Twenty-four "you may also like" products with no obvious connection add weight to the page without helping anyone. The product internal linking guide and the cross-links guide go further into choosing what to link.
The fix, step by step
Step 1
Choose the products to work on first
Export products with revenue, margin and organic clicks from the last twelve months, then add the Ecommerce Audit findings for each. Sort by revenue and mark products that already get impressions in Search Console but sit on page two. Those are your first twenty to fifty. Separate the findings into template issues, which you fix once for every product, and content issues, which you fix product by product in that priority order.
Step 2
Fix the title tag and H1 pattern
Set the default title template to product name, key attribute, brand and shop name, and make sure the H1 outputs the clean product name only once. Rename products that still use supplier codes or capitals. Where variants have their own URLs, add the variant attribute to their titles or canonicalise them to the main product. Then override the title by hand for your priority products where searchers clearly use a different phrase.
Step 3
Replace the copied description
For each priority product, write an opening sentence saying what it is and who it suits, then short points on materials, fit, contents and compatibility, plus the honest detail drawn from reviews, returns reasons and customer emails. Keep any useful manufacturer facts but rewrite them in your own words. Aim for substance over length, and check the finished description does not repeat text used on another product or category.
Step 4
Build a real specification table
Move dimensions, weights, materials, capacities and standards out of images, PDFs and long paragraphs into an HTML table with row headings. Use consistent labels and units across the whole catalogue, so shoppers can compare products and so values can be read reliably by search engines and AI assistants. If your platform stores these as product attributes or metafields, output the table from them in the template instead of typing it into each description.
Step 5
Put price, stock, delivery and returns in the HTML
Open View Source on a product page and search for the price, the stock message and the delivery cost. Anything missing there is being added by script after load. Change the template so these values are rendered on the server, place delivery time and a one-line returns summary beside the add-to-basket button, and confirm any Product markup on the page carries exactly the same price and availability as the visible text.
Step 6
Show reviews and answer questions on the page
Check whether review text appears in View Source. If it does not, turn on your review app's server-rendered or static output, or show the most recent reviews in the template directly. Add a short questions section seeded from real customer emails and keep answering new ones. Show only genuine reviews of that product, never reviews copied from elsewhere, and keep any rating markup in line with what shoppers can see.
Step 7
Connect the page to the rest of the shop
Add a breadcrumb trail with normal links back to the main category, and confirm every priority product is linked from at least one category that appears in the navigation. Replace generic related-product blocks with a handful of genuinely connected items, such as accessories, the matching range or the next size. Link to your buying guide where one exists. Avoid linking to the same product through several different category paths.
Step 8
Check the rendered page and re-audit
Use URL Inspection in Search Console on a changed product and check the tested page shows the new title, description, specification table, price and reviews. Rerun the Ecommerce Audit on your priority products and compare the findings with the first run. Then track impressions, clicks and conversion rate for those pages over the following weeks before moving on to the next batch of products.
Platform notes
- Shopify. The "Search engine listing" section on each product sets the title tag, meta description and URL handle. Specification tables are best built from product metafields in the theme so they stay consistent. See the Shopify ecommerce SEO guide.
- WooCommerce. The short description sits beside the image and the long description in a tab; check your theme outputs the tab content in the HTML. Product attributes can feed the "Additional information" table automatically.
- Headless and custom builds. Render price, stock, description and specifications on the server. A product page that is an empty shell until JavaScript fetches data from an API is the most common cause of crawlers seeing a blank product.
Whatever the platform, keep a record of which title and description patterns you changed and when, so you can match any change in performance to the edit that caused it.
1. Will using the manufacturer's description get my shop penalised?
Not in the sense of a penalty. Search engines understand that many shops sell the same products and use the supplier text. The problem is that identical text gives them little reason to rank your page above the others, so your page is likely to be filtered in favour of a bigger or better-known retailer. Adding your own description, honest detail and real reviews gives your page something the other listings lack, which is what makes it worth showing.
2. How long should a product description be?
Long enough to answer the questions that stop people buying, which varies by product. A simple accessory may need a few sentences and a specification table. A sofa, a camera or a mattress deserves much more, because shoppers compare carefully and need detail on size, materials, comfort and care. Google has said there is no minimum word count. Write what a helpful member of staff would tell a customer, then stop, rather than padding to reach a target.
3. Should the product name be in the title tag exactly as it appears on the page?
The product name should appear in both, but the title tag can add context the H1 does not need, such as a key attribute, the brand and your shop name. The H1 is for shoppers already on the page, so it can be simply the product name. What you should avoid is a title tag and H1 that disagree about what the product is, or a title tag made of an internal code that nobody would ever search for.
4. Does hiding specifications in tabs hurt SEO?
Tabs themselves are fine, and search engines index content in tabs as long as it is present in the HTML when the page loads. The risk comes from themes or apps that load tab content only when a shopper clicks the tab. In that case the specifications may never be seen by crawlers. Check with View Source: if your dimensions and materials appear there, the tabs are not a problem. If they are missing, change the template so they are rendered on load.
5. Why does my product page show no price in Google's cached or tested version?
Usually because the price is added by JavaScript after the page loads, often by a currency converter, a subscription app or a headless front end fetching data from an API. The first HTML crawlers fetch then contains a placeholder or nothing. Use URL Inspection in Search Console to view the tested page, and View Source in your browser to check the raw HTML. Rendering the price on the server fixes it for search engines and speeds up the page for shoppers.
6. Should I write a separate description for every colour of the same product?
Only if each colour has its own indexable URL and there is something genuinely different to say, such as a different material or finish. Otherwise keep one product page with selectable colours and one strong description. Writing a dozen near-identical descriptions that differ only by the colour word creates a lot of thin pages competing with each other. The variant strategy guide explains how to decide whether colours should be separate URLs in the first place.
7. How quickly will product page improvements show in search results?
There is no fixed timescale. The page first has to be recrawled, which can take days to weeks depending on how often search engines visit your shop, and then re-evaluated against competing pages. Popular products tend to be recrawled sooner. Requesting indexing in Search Console for a few priority pages can help them be picked up. Judge the effect over several weeks, comparing impressions and clicks for the changed products against the same period before.
The Ecommerce Audit checks product page completeness, category page depth, Product and review schema, faceted navigation, product images, internal links and product page speed across your top pages.
Open Ecommerce Audit Fixes โ