Schema coverage · You vs competitors
Lives at SEO Tools → Content → Spy & Compare → Schema Coverage.
The panel answers a single question every merchant has the moment they look at the comparison: which schema types do my competitors emit that I don't? And — newly — which of those did they ship in the last 7 days?
What it reads
Every day at 10:00 UTC, the snapshot worker fetches:
- Your storefront (
https://{shop}.myshopify.com/) — phase 692 added this - Each tracked competitor's homepage (capped 5 per shop)
- Any URL you manually saved via Competitor Schema Spy in the last 30 days
It parses every <script type="application/ld+json"> block, extracts @type strings, stores them in schema_snapshots. The comparison panel reads the latest snapshot per URL and joins them.
Three layers of intel
1. 🔥 Recently shipped (orange block, top of panel)
Pulled from the last 7 days of competitor snapshots. Diff: latest-vs-earliest snapshot per URL → what types appeared. Each row is a clickable badge that deep-links straight to the matching generator.
🔥 Competitors shipped 3 new schema types this week:
Recipe →by competitor-a.com — 2d agoHowTo →by competitor-b.com — 4d agoEvent →by competitor-a.com — 6d ago
Click any badge → land on the matching generator on the Generators sub-tab, ready to ship.
2. Aggregate gap (red banner)
Union of every type ANY tracked competitor emits that you don't. Same clickable-badge UX as above.
Aggregate gap: 5 schema types shipped by at least one competitor that you don't emit:
Recipe →HowTo →VideoObject →Event →BreadcrumbList →
3. Per-competitor table (granular detail)
| Competitor | Shared | They have, you don't | You have, they don't |
|---|---|---|---|
| competitor-a.com | 4 | Recipe, HowTo | — |
| competitor-b.com | 3 | HowTo, Event | Article, FAQPage |
Click any "they have you don't" badge → deep-link to generator.
Click-through routing
Every red/orange schema badge calls jumpToGenerator(type):
- Navigates to
/seo-tools?tab=content&subTab=generators - Scrolls the matching
<s-section>into view by heading-attr match
URL deep-links work correctly post-phase-697 (the bug fix that wired query-param routing at both the top-tab and sub-tab levels).
Dashboard surfacing
The schema gap count also appears as a Dashboard pending pill:
📊 5 schemas behind rivals (click → Spy & Compare)
And in the weekly digest email as a section titled:
📊 Schema gap · 5 types behind your competitive set
When the panel says "data pending"
For 24h after the merchant lands on this feature for the first time (or after a shop with no prior tracked competitors adds one). The 10:00 UTC daily worker run is the canonical data source — it captures the merchant's own storefront snapshot once per day. Once that runs, the panel is fully populated.
Related
- Competitor Schema Spy — the per-URL deep-dive
- Schema Injection Audit — your own coverage metrics
- Structured schema suite — the 9 generators behind the click-through deep-links