Render the facts in HTML
If the price, availability, and specifications only appear after JavaScript runs, many retrieval crawlers will never see them.- Serve body content, price, and availability in the initial HTML
- Do not lock specifications inside tabs or accordions that load on click
- Never put specifications only in an image — a spec table rendered as a JPEG is invisible
State attributes as data, not prose
“Perfect for long days on the trail” is unextractable. A machine cannot filter on it. Give every product complete, explicit attributes:- Material, dimensions, weight, capacity
- Size and fit, including width where relevant
- Compatibility and requirements
- Care, warranty, and returns terms
- Colour, and what variant options exist
Add valid structured data
Product schema in JSON-LD is what makes a page machine-comparable. At minimum include name, description, sku, brand, image, and an offers block with price, priceCurrency, and availability.
Two rules that are broken constantly:
- Markup must match the visible page. A price in schema that differs from the rendered price is a violation and can result in loss of rich results.
- Availability must be accurate. Stale
InStockmarkup on a sold-out product causes exclusion once discovered, and erodes trust in the feed.
Write the description to be quoted
Front-load the facts. First sentence states what the product is and its defining attribute. Persuasion after, if at all. Compare:Discover our best-selling boot, crafted for adventurers who refuse to compromise.
A waterproof full-grain leather hiking boot with a Vibram sole, available in wide fit, weighing 540g per boot.The second can be extracted, compared, and cited. The first cannot.

