ServicesCase StudiesDT 1.5Get StartedAboutTry DT 1.5 freeLog in
Public regression suite · v1.0.0

We tried to make our Shopify SEO agent break a store.

These 18 deterministic fixtures target mistakes that can turn an approved fix into merchant harm: duplicate schema, invented commerce facts, heading errors, rendering gaps, and crawler-policy mix-ups.

18 / 18named fixtures passed
0failed
v1.0.0versioned contract
Aug 31tested in 2026
Download the raw JSON result
The cases

Specific failures. Specific checks.

Open a case to see the merchant risk and the exact behavior the test requires.

HTML and page classification

Empty H1 is not a missing H1

Risk: An empty H1 needs a different fix from a missing H1.

Required: Report the existing H1 as empty and do not claim it is absent.

Passed
Missing H1 stays distinct

Risk: A page with no H1 needs one clear main heading.

Required: Report the H1 as missing.

Passed
Readable and empty H1s are separated

Risk: Adding another H1 would worsen a page that already has a readable H1 plus an empty one.

Required: Keep the readable H1 and report the empty duplicate separately.

Passed
Homepage product-signal leak

Risk: Theme-wide product metadata can leak onto a homepage and create an invalid Product patch.

Required: Do not propose Product schema when the page is identified as the homepage.

Passed
JavaScript-only critical content

Risk: A browser-rendered page can look complete while critical initial HTML is empty.

Required: Report the initial-HTML blocker without claiming every AI system is unable to understand the site.

Passed

Structured data and commerce facts

Existing Product schema

Risk: A second Product entity can create conflicting product facts.

Required: Suppress a Product proposal when Product JSON-LD already exists.

Passed
Existing ProductGroup schema

Risk: ProductGroup already represents a product family and must not trigger a duplicate Product proposal.

Required: Suppress a Product proposal when ProductGroup JSON-LD already exists.

Passed
Existing organization-level entity

Risk: Duplicate Organization entities can introduce conflicting brand facts.

Required: Suppress an Organization proposal when an organization-level entity already exists.

Passed
Unknown currency is never guessed

Risk: Defaulting to USD can publish false pricing information for a non-US store.

Required: Require merchant input and never default an unknown currency to USD.

Passed
Unknown availability is never guessed

Risk: Defaulting to InStock can publish false inventory information.

Required: Require merchant input and never default unknown availability to InStock.

Passed
Known GBP currency is preserved

Risk: A valid store currency must survive proposal generation unchanged.

Required: Preserve GBP from observed product metadata.

Passed
Malformed JSON-LD

Risk: Malformed JSON-LD may be ignored by crawlers.

Required: Report the parse failure separately from schema presence.

Passed
Schema absence claim boundary

Risk: Missing JSON-LD does not prove search or AI systems cannot understand a business.

Required: Recommend accurate markup without making an absolute invisibility claim.

Passed

Canonical behavior

Canonical appears only after JavaScript

Risk: A JavaScript-added canonical can be delayed or conflict with fetched HTML.

Required: Report that the canonical is absent from the initial HTML.

Passed
Canonical is missing

Risk: URL variants can split signals when no canonical is present.

Required: Report the canonical as missing.

Passed

Crawler policy

Search crawler is blocked

Risk: Blocking a search crawler prevents search indexing and related AI search visibility.

Required: Classify a Googlebot homepage block as high severity.

Passed
Answer-time citation crawler is blocked

Risk: Blocking an answer-time citation crawler prevents that surface from fetching the page.

Required: Classify an OAI-SearchBot homepage block as high severity.

Passed
Training crawler is blocked

Risk: A training preference must not be mislabeled as a current search-indexing failure.

Required: Treat a GPTBot-only block as informational, not as a search blocker.

Passed
How to read the result

A regression suite, not a trust shortcut.

01

What passed

The named deterministic rule produced its required result for the published synthetic fixture.

02

What it does not prove

It does not cover every theme, certify security, guarantee accuracy, or predict rankings, traffic, citations, or sales.

03

What still gates action

Live evidence, exact-store authorization, merchant approval, current provider state, execution support, and read-back verification remain separate.

Reproduction boundary: the public JSON names every fixture, risk, expected behavior, and current status. The executable suite runs against the same production rule modules used by the audit worker. It uses no merchant data.
Your storefront

Test the live page, not a promise.

Run one read-only audit before connecting Shopify or approving a change.

Audit my Shopify store