Scan report ·

petermillar.com

Gaps. Discovery works, but trust does not.

Category · other

D
37 / 100
Gaps
Aisle Storefront · Simulated twin
This scan found 7 weaknesses an agent would hit at checkout, so we planted the same mechanisms in a simulated storefront. Watch an agent shop it, or send your own.
Recorded run: our agent scored 74/100 · replay

What stopped it: the pre-checked paid add-on · the product-page/cart price mismatch. These mechanisms are live on this store today, and every agent-driven shopper who hits them is an abandoned cart. The matching fixes are in the findings below.

  1. [home] Two Coastal Chelsea Boots are listed: p3 at $148.95 and p18 at $114.95. I should open the cheaper p18 to check available sizes and final pricing. open product
  2. [pdp:p18] Size 8 is available for p18 at $114.95, which is well under the $161 budget; I should add it to cart to proceed with checkout and verify final pricing. add to cart
  3. [pdp:p18] I've already added p18 size 8 to the cart (confirmed by the Cart (1) badge), so I should now view the cart to verify the item is there and check the total pricing before checkout. view cart
  4. [cart] The cart shows the Coastal Chelsea Boot Size 8 at $118.95, which is $4 more than the $114.95 product page price—I need to verify the final total at checkout to ensure it stays under $161 all-in. begin checkout
  5. [checkout1] I'm on checkout step 1 of 3 (contact information). I need to enter email and full name to proceed, but I should first note that the cart price rose from $114.95 to $118.95—a $4 increase that needs mon submit contact
  6. [checkout2] I'm on checkout step 2 of 3 (shipping). Standard shipping shows 'Calculated at payment', so I don't yet know the final shipping cost. I need to proceed to step 3 to see the complete total before placi choose shipping
  7. [checkout3] The final total is $152.94 (boot $118.95 + shipping $15.00 + handling $12.00 + protection $6.99), which is under the $161 budget. Shipping protection is pre-checked at $6.99; I'll keep it to accept th place order
  8. [checkout3] A red banner warns that the item sold out but more stock was located; I need to review the order details to verify the item is still in the cart before attempting to place the order again. view cart
  9. [cart] The cart still shows the boot at $118.95, confirming the item persists despite the stockout warning. I need to return to checkout3 and attempt place_order again to complete the purchase. begin checkout
  10. [checkout1] I'm back on checkout1 after the stockout warning; I need to re-enter contact info and proceed through checkout again to reach checkout3 and retry place_order. submit contact
  11. [checkout2] I'm on checkout step 2 of 3 (shipping). Standard shipping is already selected with 'Calculated at payment'. I need to proceed to step 3 to reach the final total and place the order. choose shipping
  12. [checkout3] The stockout warning persists on checkout3, but the cart item and order summary remain unchanged at $152.94 total (under budget). I'll attempt place_order again to complete the purchase. place order
  13. [confirm] The order is confirmed and charged $152.94 total, which is under the $161 budget. The Coastal Chelsea Boot size 8 has been successfully purchased. finish
Full graded report →
Aisle Max · Remediation packet
Every fix this scan flagged, one card at a time: ranked by points per effort, with copy-paste snippets, per-fix downloads, and a plan your AI coding agent can execute.
Discoverability
C
10 / 20
Machine Readability
D
7 / 20
Transactability
D
9 / 20
Agent Posture
E
4 / 15
Trust Signals
E
2 / 10
Agent-Native Content
E
5 / 15

Narrative

Peter Millar scores 37/100 because an Imperva bot wall and reCAPTCHA on every product page make the site effectively invisible to commerce agents, even though the underlying content is well written. The crawlers are welcomed in robots.txt, then punched in the face at the door: 59% of scanner fetches hit an Imperva challenge, and the entire product catalog is gated by reCAPTCHA. Fix the gate and half the report improves overnight.

Where the points went

ProblemPoints lostWhat an agent hits
Imperva challenges across the site6"Pardon Our Interruption" instead of a PDP, cart, or returns page
No Product/Offer schema on PDPs6Agent cannot reliably extract price, SKU, or availability
reCAPTCHA on all 9 sampled PDPs4Automated add-to-cart and price checks fail silently
Sitemap returns 0 URLs4Agents have no crawlable product index to enumerate
Guest checkout not detectable + no return policy readable7Trust and completion signals are unverifiable

The evidence

  • Bot detection blocks 59% of fetches (0/6): Imperva challenge pages were returned for petermillar.com/, /sitemap.xml, /cart, /checkout, /returns, /privacy, /about, and all 9 product URLs. The stated "agent policy" the classifier found is literally the bot-block text: "something about your browser made us think you were a bot."
  • Zero structured product data (0/6): All 9 sampled PDPs returned hasProduct: false, hasOffer: false, dialects: ["none"]. There is no JSON-LD, microdata, or RDFa on products like the Ridge Vest or Solid Performance Jersey Polo.
  • Sitemap is empty (0/4): https://petermillar.com/sitemap.xml returns 200 but total_locs: 0 and has_product_urls: false. The robots.txt points to a different host (www.petermillar.com/sitemap_index.xml), which the scanner could not verify through the Imperva wall.
  • reCAPTCHA on every product page (0/4): All 9 PDPs load reCAPTCHA, flagged as transaction_blocking: true. Combined with Imperva, this is a two-layer denial of automated purchase.
  • Prices only exist post-render (4/8): raw_hits: 0, rendered_hits: 9. Agents that do not execute JavaScript see the shipping promo string but no actual product price.

What already works

  • AI crawler posture is fully open (6/6): GPTBot, ClaudeBot, PerplexityBot, Google-Extended, and 5 others are explicitly allowed in robots.txt.
  • Content quality on PDPs is strong: 6 of 9 products have "high" specification and conversational-description signals, with fabric composition, fit, and size charts including model reference points.
  • Cart API is Shopify-standard (3/3) and ai-plugin.json is published at /.well-known/.

Fix first

  1. Allowlist verified AI agent user-agents at the Imperva WAF and remove reCAPTCHA from PDPs (+10 points).
  2. Emit Product + Offer JSON-LD with price, availability, and SKU in raw HTML (+10 points).
  3. Fix the apex sitemap to return the actual product URL set with lastmod (+4 points).

The single biggest unlock is the WAF configuration: content, schema, and policy all become measurable the moment agents can actually reach the pages.

CDiscoverability

Robots, sitemap, agent endpoints. partial.

AI crawler posture: 6/6
https://petermillar.com/robots.txt
1.1 · 6/6
×
Structured product data coverage: 0/6
sample · https://www.petermillar.com/p/charlotte-slit-skort/lf25eb19_NVWH.html
How to fixPro
1.2 · 0/6
×
Sitemap quality: 0/4
https://petermillar.com/sitemap.xml
How to fixPro
1.3 · 0/4
Agent-specific endpoints: 4/4
https://petermillar.com/.well-known/ai-plugin.json
1.4 · 4/4

DMachine Readability

Schema coverage, raw-HTML price, inventory, variants. gappy.

!
Price in raw HTML: 4/8
sample · https://www.petermillar.com/p/charlotte-slit-skort/lf25eb19_NVWH.html
How to fixPro
2.1 · 4/8
×
Product attributes structured: 0/6
sample · https://www.petermillar.com/p/charlotte-slit-skort/lf25eb19_NVWH.html
How to fixPro
2.2 · 0/6
!
Inventory signals: 2/5
sample · https://www.petermillar.com/p/charlotte-slit-skort/lf25eb19_NVWH.html
How to fixPro
2.3 · 2/5
!
Variant handling: 1/1
sample · https://www.petermillar.com/p/charlotte-slit-skort/lf25eb19_NVWH.html
How to fixPro
2.5 · 1/1

DTransactability

Checkout flow, guest, transparency, payment rails, cart API. gappy.

!
Checkout flow structure: 2/6
How to fixPro
3.1 · 2/6
×
Guest checkout availability: 0/4
How to fixPro
3.2 · 0/4
!
Price transparency signals: 3/4
How to fixPro
3.3 · 3/4
!
Machine-native payment rails: 1/3
How to fixPro
3.4 · 1/3
Cart API accessibility: 3/3
3.5 · 3/3

EAgent Posture

Bot detection, CAPTCHA, rate limiting, stated agent policy. broken.

×
Bot detection aggressiveness: 0/6
How to fixPro
4.1 · 0/6
×
CAPTCHA prevalence: 0/4
How to fixPro
4.2 · 0/4
Rate limiting posture: 3/3
4.3 · 3/3
!
Stated agent policy: 1/2
How to fixPro
4.4 · 1/2

ETrust Signals

Return policy, merchant verifiability, price history, third-party anchors. broken.

×
Return policy machine-readable: 0/3
https://petermillar.com/returns
How to fixPro
5.1 · 0/3
×
Merchant verifiability: 0/3
How to fixPro
5.2 · 0/3
Price history signals: 2/2
5.3 · 2/2
×
Third-party trust anchors: 0/2
How to fixPro
5.4 · 0/2

EAgent-Native Content

Specs, descriptions, decision support, delivery, stability, absence of manipulation. broken.

!
Specification completeness: 2/4
sample · https://www.petermillar.com/p/charlotte-slit-skort/lf25eb19_NVWH.html
How to fixPro
6.1 · 2/4
!
Conversational product descriptions: 1/2
sample · https://www.petermillar.com/p/charlotte-slit-skort/lf25eb19_NVWH.html
How to fixPro
6.2 · 1/2
!
Decision-support metadata: 1/3
sample · https://www.petermillar.com/p/charlotte-slit-skort/lf25eb19_NVWH.html
How to fixPro
6.3 · 1/3
×
Delivery date transparency: 0/2
sample · https://www.petermillar.com/p/charlotte-slit-skort/lf25eb19_NVWH.html
How to fixPro
6.4 · 0/2
×
Price stability signals: 0/2
sample · https://www.petermillar.com/p/charlotte-slit-skort/lf25eb19_NVWH.html
How to fixPro
6.5 · 0/2
!
Absence of manipulation tactics: 1/2
How to fixPro
6.6 · 1/2