Trends & Industry Developments
Preparing Product and Service Data for AI Agents
How to prepare structured data for AI agents: schema.org markup for products and services, feed sync, and crawler access, so agents can cite your data accurately.

Structured data for AI agents means presenting your product and service information — price, availability, specs, terms — in a form a machine can parse without guessing, not just in persuasive prose a human would read. If an AI shopping agent, a chatbot with browsing, or an LLM answering a comparison query can’t extract a clean answer from your page, it will either skip you or quote a competitor whose data is easier to lift. This is a distinct problem from ranking well in search: a page can rank on page one and still be unreadable to an agent trying to compare five vendors’ return policies in one pass.
Key takeaway
- Structured data for AI agents starts with schema.org markup on Product, Service and Offer entities — price, availability, specs and terms as explicit fields, not paragraphs an agent has to interpret.
- A feed is only as good as its sync: if your structured feed and your live page disagree on price or stock, agents will act on whichever one they crawled last, and one of those answers is wrong.
- Clean markup does nothing if the agent’s crawler is blocked. robots.txt, rate limits and bot-detection rules need to be checked specifically for the AI user-agents you want visiting.

The path from a normal product page to a page an agent can actually transact on
- Audit what machines currently see. Pull a rendered-HTML view of key pages and check for schema.org markup, price, availability and spec fields.
- Mark up core entities explicitly. Product/Service, Offer, price, currency, availability and identifiers in structured, not prose-only, form.
- Separate facts from marketing copy. Specs, dimensions and terms in clean fields; persuasive copy stays separate so agents can parse the facts alone.
- Publish a machine-readable feed. A structured product/service feed (XML or JSON) that mirrors the schema on-page, kept in sync automatically. Feed drifts from live page data → agents cite stale prices and stock
- Confirm agent and crawler access. Check robots.txt and any llms.txt for the specific AI agent user-agents you want reading this data. Blocked or rate-limited crawler → the structured data is invisible however well it’s built
- Monitor freshness and drift. Track lastmod, price and stock fields on a schedule so agents aren’t working from outdated data.
What do AI agents actually read when they evaluate your site?
An AI agent doing product research — a shopping assistant comparing SKUs, a procurement bot pulling vendor terms, or an LLM answering “which of these three tools is cheaper” — doesn’t read your page the way a person does. It’s looking for entities it can extract with confidence: a price tied unambiguously to a specific variant, a stock status, a return window, a spec sheet. When that information only exists as a sentence buried in marketing copy (“our flexible plans start affordably”), the agent has two options: guess, or cite a competitor who stated the number plainly.
This is why agentic search behaves differently from a human clicking through results — the buyer, or the researcher acting on the buyer’s behalf, is a program that needs machine-parseable facts, not persuasion. Structured data for AI agents is the layer that sits underneath your page copy and gives that program something reliable to extract: schema.org markup, consistent field naming, and a feed that mirrors what’s actually live rather than a stale export.
How do you structure product data so agents can parse it?
Start with the schema.org vocabulary built for this exact purpose. A Product entity needs a name, a description, an image, and — critically — an Offer nested inside it with price, priceCurrency, and availability as explicit properties, not inferred from text. If you sell variants (sizes, colours, tiers), each variant needs its own Offer rather than one blended price range that forces the agent to guess which number applies to which SKU.
- Use Product + Offer schema for physical or digital goods, with SKU or GTIN identifiers where you have them — these give agents a stable way to match your listing against others without relying on your product name matching exactly.
- Keep specs (dimensions, materials, compatibility, technical requirements) in their own labelled fields or a structured table, not woven into descriptive paragraphs.
- State availability as a defined value (InStock, OutOfStock, PreOrder) rather than a phrase like “usually ships fast,” which an agent can’t map to a status.
- Validate the markup with a schema testing tool after every template change — a single missing closing tag or malformed JSON-LD block can silently drop the whole entity from what’s readable.
The pattern that shows up repeatedly is not that structured data is missing entirely — most ecommerce platforms generate baseline Product schema by default. It’s that the schema and the visible page drift apart over time: a price gets updated in the CMS but not in the schema block, or a variant gets discontinued and the Offer entity is never removed. An agent reading that markup has no way to know it’s stale, so it repeats the error confidently.
How should service pages be structured differently from product pages?
Services don’t have a SKU or a fixed price in the way physical products do, which is exactly why they’re harder for agents to parse and more often left as pure prose. The Service schema type, paired with an Offer for pricing (even if it’s “starting at” or a defined pricing tier), gives an agent something to anchor to. Where pricing genuinely varies by scope, state that explicitly as a range or a “request a quote” status rather than omitting the field — an agent that finds no price data at all will often deprioritise the listing rather than assume it’s negotiable.
Service pages also carry information agents specifically look for in B2B and local-service comparisons: areaServed, serviceType, and any certifications relevant to the category. If you offer several distinct services under one page (a consultancy listing “SEO audits, technical SEO, content strategy” in one paragraph), consider whether each deserves its own Service entity with its own schema block. One paragraph covering three services gives an agent a single blurred entity instead of three parseable ones, and it will typically surface only the one it can extract with the most confidence.
Which technical foundations do AI agents need before they can even reach your data?
Perfect markup on a page an AI crawler can’t reach is invisible. Before investing further in structured data, confirm the basics are open to the agents you care about, because AI crawler user-agent names change often enough that a robots.txt rule written a year ago may no longer match anything — or may be blocking a renamed crawler you meant to allow.
- Check robots.txt for every AI-specific user-agent relevant to your target surfaces, not just the major search crawlers — the list is longer and changes more often than most teams expect.
- If you’re on a CDN or edge platform, review how it classifies and handles AI bot traffic — Cloudflare’s content-signal controls are one example of infrastructure-level settings that can silently block or throttle agent crawlers independent of what your robots.txt says.
- Watch for aggressive rate limiting or bot-challenge pages (CAPTCHAs, JS challenges) that a legitimate AI agent can’t get past, even when it’s technically allowed by robots.txt.
- Make sure your sitemap and any dedicated feed are actually discoverable — linked from robots.txt or submitted where the relevant platform expects, not just sitting at a guessable URL nobody points to.
Freshness signals matter here too. Agents that revisit pages to check for changes rely partly on lastmod dates and cache headers to decide how often to re-crawl — the date signals Google’s documentation actually weights are a useful reference point even outside Google’s own systems, since most crawlers use similar heuristics. A product page whose lastmod date never changes, even after ten price updates, trains the crawler to check it less often — the opposite of what you want on a page whose price moves.
Most sites don’t have a structured-data problem so much as a synchronisation problem — the schema was correct on the day someone built it and has been quietly drifting from the live page ever since. An agent has no way to know that; it just reads what’s there and repeats it.
Palash, Founder, PalV’s DM
What mistakes most often break machine readability?
A handful of patterns account for most of the gaps we find when auditing product and service data for AI readiness. None of them are exotic — they’re mostly maintenance failures rather than missing knowledge.
- Schema that isn’t rendered server-side. If your JSON-LD is injected client-side by JavaScript that some crawlers don’t execute, the markup may be invisible to agents that only read the initial HTML response.
- Price and availability living only in a third-party widget. Embedded booking or pricing widgets often render their own iframe content that isn’t part of the page’s structured data at all.
- Duplicate or conflicting schema blocks. Plugins stacking their own Product markup on top of a theme’s default markup, leaving two Offer entities with different prices on one page.
- No structured data at all on service and pricing pages, even when product pages on the same site are well marked up — the two are usually built by different teams at different times.
- Feeds that exist but aren’t linked anywhere a crawler would find them, so they sit unused despite being correct.
Fixing these is less about writing new markup from scratch and more about auditing what’s already there and closing the gaps between the schema and the live page, then putting a recurring check in place so drift gets caught within weeks rather than a year later, when a prospect mentions your listed price was wrong. Treat structured data as part of the update workflow: wherever a price, spec or availability field changes on the page, the schema and any feed should change in the same deploy.
Where this fits into AI visibility
Structured data is one input into whether AI agents and answer engines cite, recommend or transact with your business — crawl access, content quality and off-site authority factor in too. A specific view of where your product and service pages stand today is the usual starting point.
Get an AI visibility audit of your product and service pages
What’s the difference between structured data for search engines and structured data for AI agents?
The vocabulary is largely the same, but the use case differs. Search engines mostly use structured data to generate rich results — star ratings, price snippets — in a results page. AI agents use it to extract facts they’ll act on directly, like comparing prices across vendors, so accuracy and freshness matter more than presentation.
Do I need a separate feed if my schema markup is already correct?
Not always. A dedicated feed makes it easier for agents and platforms to bulk-ingest your catalogue rather than crawling every page individually, and it’s often required for specific integrations like shopping feeds. If you only have a handful of service pages, well-maintained on-page schema is usually enough on its own.
How often should structured data be checked for drift?
Tie it to your update cadence rather than a fixed calendar date. Anywhere prices, stock or terms change in your CMS, the schema should update in the same action. As a backstop, a monthly spot-check comparing live page values against the rendered schema on a sample of pages catches drift that slips through process gaps.
Can I block some AI agents while still allowing others to read my structured data?
Yes, robots.txt rules can be scoped per user-agent, so you can allow agents you want citing your data while blocking ones you don’t, such as those training models without attribution. The practical difficulty is that crawler names change and new agents appear regularly, so a rule set needs periodic review rather than a one-time setup.
Does adding structured data guarantee an AI agent will cite or recommend my product?
No. Structured data makes your facts extractable, which is a precondition for being cited accurately, not a guarantee of being chosen. Selection still depends on relevance, price competitiveness, review signals and off-site authority. Clean data removes one failure mode; it doesn’t replace the rest of an AI visibility strategy.
Short version: preparing structured data for AI agents means marking up products and services with schema.org’s Product, Service and Offer types, keeping price, availability and spec fields explicit rather than buried in prose, and syncing any feed with the live page so nothing drifts. None of that helps if crawler access is blocked, so verify robots.txt and infrastructure-level bot rules for the agents you actually want reading your data. It connects to the broader shift in how search surfaces have changed — machine-readable data is no longer an ecommerce nicety, it’s a basic requirement for showing up in agent-mediated buying decisions at all.