Narrative
Graza scores 49 out of 100, which lands squarely in the Gaps band, and the shape of the deficit is instructive: the site is genuinely welcoming to crawlers and has clean commerce plumbing underneath, but it withholds exactly the structured detail that an agent needs to close a purchase on a shopper's behalf. Every tracked bot from GPTBot to ClaudeBot to PerplexityBot to Amazonbot is allowed in robots.txt, an llms.txt exists at the well-known path, and JSON-LD Product plus Offer markup covers 8 of 9 sampled product URLs with prices rendered directly in raw HTML. The foundations are here. The finishing work is not.
The single largest hole is product attributes. Check 2.2 scored zero out of six, with the classifier finding structured attribute data on none of the nine sampled URLs and a single labeled "size" hit on the Umbrizzle page. Graza sells a product where varietal, harvest month, milliliters, smoke point, and country of origin are the entire purchase decision, and the prose descriptions actually contain all of it ("Picual olives from Jaen, Spain," "500ML," "up to 490°F smoke point"). None of it is exposed as machine-parseable additionalProperty fields. An agent comparing finishing oils cannot filter Graza on polyphenol content or bottle size without scraping paragraphs and hoping.
Inventory signals are the second black hole, another zero out of five on check 2.3. Not one of the nine product pages carries a schema.org availability value, and only two surface even a text-level "in stock" cue. For a perishable food brand where the return policy is literally "we are not able to accept returns," an agent has no programmatic way to confirm a bottle is purchasable before committing a customer's card. Compounding this, check 6.4 also scored zero: there are no delivery date estimates anywhere, structured or otherwise.
Price transparency at checkout is the third meaningful loss, zero out of four on check 3.3. The classifier found no shipping or tax visible pre-authentication on either product or cart pages, only a template variable "${{amount}}" sitting where a subtotal should render. Combined with CAPTCHA prevalence (check 4.2, zero out of four, with both reCAPTCHA and hCaptcha detected on the cart and homepage and flagged as transaction-blocking) and a 403 on https://graza.co/checkout, the transactability story falls apart precisely at the moment of conversion. Machine-native rails are present (Shop Pay, Apple Pay, PayPal, all detected) and the Shopify cart endpoint is reachable, so the infrastructure works; the bot-mitigation layer is what stops an agent cold.
Trust signals round out the damage. Check 5.4 scored zero because no third-party review platform (Yotpo, Okendo, Judge.me, Trustpilot, none of them) is detectable in markup, even though the pages themselves display "4.9 out of 5 stars based on 4,506 reviews." That rating exists as pixels, not as aggregateRating schema. Merchant verifiability (check 5.2) surfaces the business name but no physical address or registration ID, and check 4.4 finds no stated agent policy at all.
Graza's biggest opportunity is to expose what it already knows: structured attributes, availability, aggregateRating, and shipping estimates in JSON-LD would move this report from Gaps to Solid without changing a single word of customer-facing copy.
BDiscoverability
Robots, sitemap, agent endpoints. mostly strong.
DMachine Readability
Schema coverage, raw-HTML price, inventory, variants. gappy.
CTransactability
Checkout flow, guest, transparency, payment rails, cart API. partial.
DAgent Posture
Bot detection, CAPTCHA, rate limiting, stated agent policy. gappy.
DTrust Signals
Return policy, merchant verifiability, price history, third-party anchors. gappy.
EAgent-Native Content
Specs, descriptions, decision support, delivery, stability, absence of manipulation. broken.