The rules
103 rules for shoppers, 12 for AI agents
Every rule states what it checks and what earns each verdict, and shows how many of the stores we audited fail it. One audit runs all of them on your product page, cart and checkout.
36 Product page22 Cart45 Checkout12 AI agents
All rules are backed by research from global labs and standards: Nielsen Norman Group, Baymard Institute, WCAG and more.
Audit my store free →Free · no card · about 3 minutes
115 rules
Rule IDRule
PDP-001Price visible without scroll or interaction on desktop and mobile
PDP-002Add-to-cart CTA above the fold on mobilePDP-003Sticky add-to-cart on long product pagesPDP-004Shipping cost or estimate discoverable from PDPPDP-005Delivery/arrival date estimate shownPDP-006Stock/availability state explicit (in stock, low stock, out of stock)PDP-007Out-of-stock items offer notify-me or alternatives
PDP-008Variant selection: unavailable combos disabled, not error-on-click
PDP-009Selected variant state unambiguous (visual + text confirmation)PDP-010Variant swatches show accurate imagery (color swatch = color image)
PDP-011Product title includes brand + descriptive attributes (not SKU-only)PDP-012Original price shown alongside discounted price when applicable
PDP-013Quantity selector present and easy to use (tap-friendly on mobile)PDP-014At least 5 product images total
PDP-015Image zoom available on desktop and mobilePDP-016In-scale/lifestyle image included (product in real context)PDP-017Variant-specific imagery updates when variant is selected
PDP-018Reviews present with summary rating visible above foldPDP-019Review count visible next to ratingPDP-020Reviews filterable by rating/topic if more than 20
PDP-021Q&A section or complete specifications for considered purchasesPDP-022Returns/exchange policy visible on PDP (not buried in footer)PDP-023Guarantee/warranty communicated when applicable
PDP-024Product description structured with scannable sections, not one blobPDP-025Size guide accessible without leaving PDP (modal preferred)
PDP-026Brand or seller information present and clickablePDP-027No forced login before viewing price or ATC
PDP-028No region/currency wall blocking access before intent shownPDP-029No aggressive popup covering PDP within first 10 secondsPDP-030Video/animations do not autoplay with soundPDP-031Tap targets at least 44x44 px on all interactive elementsPDP-032No layout shift (CLS) when images loadPDP-033Largest Contentful Paint under 2.5s on mobilePDP-034Variant picker usable on small screens without accidental tapsPDP-035Payment methods accepted visible on PDP or footerPDP-036Security/trust badges when high-consideration category
CRT-001Cart shows full cost breakdown: items, shipping estimate, tax estimateCRT-002Shipping estimator (ZIP/country) available in cartCRT-003Tax shown or clearly labeled as calculated at checkoutCRT-004Free-shipping threshold and progress communicated
CRT-005Delivery estimate for each item visible in cartCRT-006Discount/promo application shows explicit line item, not silent adjustmentCRT-007Line items editable in place (qty, variant, remove) without page reloadCRT-008Cart persists across sessions and devices when logged in
CRT-009Guest cart persists via cookie for at least 7 days
CRT-010Primary checkout CTA visually dominant on the pageCRT-011Express wallet options (Apple/Google/Shop Pay) present in cartCRT-012Express wallets do not visually compete with primary checkout CTACRT-013Cross-sell/upsell never obstructs the checkout path
CRT-014Cross-sell items relevant to cart contents (not random)CRT-015Save-for-later distinct from Remove (recovery preserved)CRT-016Empty cart state suggests browse paths or shows recently viewed
CRT-017Image thumbnail shown for each cart itemCRT-018Item variant details (size, color) shown in cart line
CRT-019Return policy summary or link visible in cartCRT-020Promo code field not visually dominant (avoid coupon-hunting exit)CRT-021No forced account creation to view cart
CRT-022Cart usable on mobile without horizontal scrollCHK-001Guest checkout offered as first-class option (no account wall)CHK-002Checkout completes in 5 steps or fewer (or one-page equivalent)
CHK-003Clear step indicator showing progress through checkoutCHK-004Cart contents and total visible throughout checkout
CHK-005Ability to edit cart from within checkout without losing progressCHK-006Account creation offered after order placement, not beforeCHK-007Site logo/name does not link away from checkout (or warns first)CHK-008Header/nav minimized during checkout to reduce exitsCHK-009Total form fields 8 or fewer (industry average is 11.3)CHK-010Single Full Name field (not first + last)CHK-011Optional fields marked as optional (not required by default)CHK-012Address autocomplete (Google/Loqate) presentCHK-013Postal code entered before/without city (auto-fills city/state)
CHK-014Inline validation on blur, not only on submitCHK-015Error messages specific and actionable ('Enter a valid postcode', not 'Invalid')
CHK-016Errors preserve entered data (never clear the form on error)CHK-017Error location anchored (auto-scroll or focus to first error)
CHK-018Correct HTML input types (email, tel, number) for mobile keyboardsCHK-019Autocomplete attributes set correctly (given-name, family-name, cc-number, etc.)CHK-020Ship-to same as billing offered as defaultCHK-021Phone number field explains why it is needed (or is optional)CHK-022Company field only shown when relevant (B2B) or hidden by default
CHK-023Password fields include show/hide toggle
CHK-024Form labels visible above fields (not placeholder-only)CHK-025No forced format for phone/card (accepts spaces, dashes)
CHK-026Express wallet (Apple Pay / Google Pay / Shop Pay) offeredCHK-027Card entry inline (tokenized), not redirect to third-party pageCHK-028Card number field detects card type and shows iconCHK-029CVV field includes explanation/tooltipCHK-030Buy Now Pay Later options shown when supported (Klarna/Afterpay/Tabby)
CHK-031Full total including shipping and tax visible before payment entryCHK-032Card decline errors preserve entered data and offer alternatives
CHK-033Order review step before final charge (or clearly labeled final CTA)
CHK-034Final CTA labeled with the action ('Place Order', not 'Continue')CHK-035Trust/security signals visible near payment stepCHK-036Contact/help option accessible during checkout (phone, chat)CHK-037Return policy visible or linked in checkout footerCHK-038Delivery expectation shown before final purchaseCHK-039Checkout usable on mobile without pinch/zoom
CHK-040Payment form supports mobile browser autofill for card detailsCHK-041Sticky order summary or accessible via one tap on mobileCHK-042No layout jumps when form errors appearCHK-043Currency shown consistent with user region
CHK-044Country selector reachable, not hidden or dropdown-only after 3 clicks
CHK-045RTL rendering correct when language is Arabic/Hebrew
PDP-A01Complete Product schema.org: price, availability, GTIN/SKU, rating, shipping detailsPDP-A02Price and availability present in DOM as text (not JS/image only)
PDP-A03llms.txt present at root; product URLs not bot-blockedPDP-A04Canonical URLs stable; variant URLs machine-readable and permanentCRT-A01Cart state reachable via stable URL or API endpointCRT-A02No session trap that breaks agent-driven cart hydrationCRT-A03Cart line items include machine-readable product IDs/GTINsCHK-A01Agentic checkout readiness signals (ACP/UCP endpoints declared)CHK-A02No CAPTCHA-only gate without accessible agent pathCHK-A03Machine-readable order confirmation (JSON-LD Order schema)
CHK-A04Delegated-payment compatibility signals present (tokenization endpoints)CHK-A05Structured errors returned in machine-readable format for agent flowsFailing % is the share of the 40 published UXFix audits that fail the rule, counting only the stores it could be judged on. Under 8 judged stores we show no rate.Weights and scoring ›