Skip to main content
An AI-readable product page states its facts as data a machine can extract, in HTML that does not require JavaScript to reveal. Most product pages fail this not because they lack information, but because the information exists only inside images, scripts, or persuasive prose.

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
Check: view source, or fetch the page with JavaScript disabled. What remains is roughly what a crawler gets.

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
Missing attributes cause silent exclusion. An agent filtering for “wide fit under £150” drops any product whose data does not say so — it does not fall back to reading your copy.

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. The markup must match the visible page and track real availability — see the validation rules in structured data for AI search.

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.

Make every variant addressable

Variants that exist only behind a picker cannot be cited or compared separately. Two valid patterns:
  • Its own page — give a variant its own indexable page when people search for it specifically and it has distinct content. See product variant markup.
  • One product URL — otherwise keep one page, make each variant pre-selectable through a stable URL parameter, and describe the set with ProductGroup and hasVariant markup so agents can read every variant’s price and availability.
Do not create a near-identical page per size — that is duplicate content, not AI-readability.