UXFixUXFix
Language
Free tool · one agent rule · PDP-A02

Does your price survive with JavaScript off?

Free 20-second check. We fetch one product page the way AI agents and shoppers on slow connections first see it, scripts off, and tell you whether the price and the stock line are in the HTML your server sends.

About 20 seconds · no sign-up · paste a product URL, or your store root and we pick a product · nothing is ordered
What the agent reads · then what we recommendPDP-A02
9:41
Free shipping this week onlyLinen throw · oatfold · 844px$64.00✕ no price in the HTML
Linen throw · oat$64.00● In stock+ $5.90 shipping · free over $80Add to cartfold · 844px✓ price and stock in the HTML
Raw HTML fetch · no JavaScript · what agents and slow phones get~20 s
1

It fetches one product page, scripts off

Your pasted product page, or one we find from your store root. The raw server response, before any JavaScript has run.

2

It reads the price and the stock line

A price with a currency, and an availability phrase like 'in stock' or a ship date, in the HTML text or in the JSON-LD. The same detector the full 115-rule audit runs.

3

Pass, partial or fail, with what we found

Both present is a pass, one of the two is a partial, neither is a fail. If the page cannot be fetched we say so rather than guess. Free, no sign-up.

What we check: rule PDP-A02 in four parts

Full rule page ›

The rule requires that a machine reading the raw page, with no JavaScript, can find the price and the availability. That is how AI shopping agents read your store, and it is what a shopper on a slow connection sees first.

RuleWhat we checkPasses when
PDP-A02 · aPrice in the server HTMLA price with a currency symbol or code in the HTML text your server sends, before any script runs.✓ pass a readable price is in the raw response.
PDP-A02 · bAvailability in the server HTMLAn availability phrase near the product: in stock, out of stock, a count, or a pre-order note.✓ pass a stock signal is in the raw response.
PDP-A02 · cPrice in the JSON-LDA price declared in the structured data as well, so a parser does not have to guess from page text.✓ pass offers.price is declared.
PDP-A02 · dAvailability in the JSON-LDAn availability value in the structured data, in the schema.org vocabulary a parser accepts.✓ pass offers.availability is declared.

Best practices any store should adopt

Each point comes with the reason it matters and the research it rests on. Most of it is one template edit or one server-side setting, not a redesign.

1
Render the price server-side

Currency converters and storefront APIs that fill the price after load leave a blank for crawlers, agents and slow connections. Print the default price in the HTML and let scripts update it.

EvidenceAI shopping agents read the server response; a price rendered only by JavaScript is missed. · OpenAI crawler docs · agent-commerce specs
2
Show stock beside the price, not after a variant pick

'In stock · ships today' next to the price answers the second question a shopper has. Hiding it until a size is chosen delays the answer by a tap.

EvidenceAvailability shown near the price reduces pre-purchase hesitation in usability testing. · Nielsen Norman Group, e-commerce product pages
3
Put the price directly under the product title

Title, price, stock, then the gallery. On a phone the first screen has room for four things; the price must be one of them.

EvidencePrice is the first fact shoppers look for on a product page, and hunting for it drives abandonment. · Baymard Institute, product page UX
4
Keep one price, clearly labelled

A struck-through compare-at price, a per-unit price and a subscription price in the same line read as three prices. Make the one they pay largest, and label the rest.

EvidenceMultiple adjacent figures without labels are a recurring source of price misreads in testing. · Baymard Institute, pricing display
5
Declare the price in JSON-LD too

The visible text serves people; the structured data serves parsers. Declaring both, and keeping them equal, is what makes your price quotable everywhere.

EvidenceProduct structured data with offers.price is what search and agent surfaces quote. · schema.org Offer · Google Merchant listings
How common is this? · September 2026
85.6%
of 395 audited stores show the price with scripts off · 4.3% fail outright · 10.1% partial
PDP-A02Price and availability present in DOM as text (not JS/image only)
All statistics →
Pass rate per rule · audited stores% pass cleanly
CHK-001Guest checkout offered as first-class option (no account wall)54%
n=226 · 19.5% fail outright · 26.5% partial
PDP-004Shipping cost or estimate discoverable from PDP34.5%
n=383 · 43.6% fail outright · 21.9% partial
PDP-A01Complete Product schema.org: price, availability, GTIN/SKU, rating, shipping details5.1%
n=451 · 74.3% fail outright · 20.6% partial

Three stores that get it right

All 37 passing stores ›
LLeathermanproduct page
Price and availability found in server-rendered HTML.
This store's audit stored no picture for this rule.Audited 2026-09-20
Leathermanshopify65

passes this rule · PDP-A02

OOoniproduct page
Price and availability found in server-rendered HTML.
This store's audit stored no picture for this rule.Audited 2026-09-20
Oonishopify64

passes this rule · PDP-A02

AArcheryworldproduct page
Price and availability found in server-rendered HTML.
This store's audit stored no picture for this rule.Audited 2026-09-14
Archeryworldopencart52

passes this rule · PDP-A02

Related articles

Resources ›
Audit findings · 13 min readPDP-001: Price Visible Above the Fold on Desktop and Mobile, Without Scrolling or Tapping

Rule PDP-001 fails more mobile product pages than any other pricing rule we audit, and the fix is usually a layout change you can ship this week.

Read →
Audit findings · 19 min readProduct Page Stock Availability UX: How We Score Rule PDP-006

Every product page must say, in words next to the price, whether the selected variant is in stock, low or gone; here is how UXFix scores it and what failing, partial and passing pages look like.

Read →
Audit findings · 13 min readPDP-002: Put the Add-to-Cart Button Above the Fold on Mobile

The add-to-cart button should be fully visible on a 375x667 phone screen before anyone scrolls. Here is how we score it, why it fails, and how to fix it.

Read →
My price depends on the variant. What counts as readable?

A default price, or a from-price, in the server HTML before any tap. A price that exists only after a size or colour is chosen, or only after JavaScript runs, is invisible to a machine reader.

Why check with scripts off? Real browsers run JavaScript.

AI shopping agents and most crawlers read the HTML your server sends and leave. So does a shopper on a slow connection for the first seconds. If the price is injected afterwards, both see an empty box.

Do you measure where the price sits on a phone screen?

Not yet. This check reads the raw HTML only. The full audit opens your page in a real phone-sized browser as well, and its product-page rules cover layout and the fold.

Free · no card · about 2 minutes

This is one rule. The full audit runs 115.

Product page, cart and checkout, scored for human shoppers and for AI shopping agents, with a revenue band on every failing issue.