1. Corpus definition
The corpus is the StoreMend audit cohort labelled icp-1000-2026-Q2. It contains 1,091 Shopify storefronts audited between April 1 and June 30, 2026. Every store in the corpus is a live public Shopify storefront on the cdn.shopify.com surface at the time of audit, serving customers in USD, GBP, EUR, CAD, or AUD, with a functional product page and a functional cart page.
A store qualifies as audited when three conditions hold at fetch time. First, the homepage returns a 200 response and renders through to first contentful paint within 30 seconds on a deterministic-layer fetch. Second, at least one product page URL is reachable and returns a 200 response. Third, the store is identifiably Shopify by both platform meta tag and cart route signature. Stores gated behind password protection, geoblocked to non-supported regions, or serving a maintenance page were dropped at intake and are not counted in the 1,091.
Excluded by design: Shopify Plus wholesale-only storefronts, B2B login-gated catalogues, Shopify POS pop-up stores without a public checkout, and non-Shopify platforms (BigCommerce, WooCommerce, Magento, Wix, Squarespace, custom stacks). Excluded by drop during collection: sites that redirected to Amazon, sites in active migration, and sites returning empty product catalogues. The corpus is Shopify only. No other platform data is mixed in.
The audit surfaced 8,409 individual findings across the 1,091 stores, an average of 7.8 findings per store. Of the corpus, 1,077 stores classified cleanly to a primary cluster; the 14-store gap reflects stores with no dominant cluster at the v1.0 schema cut and is reported as unclassified.
2. Sampling method
The 1,091 stores were selected via curated sourcing across 8named verticals plus one long-tail “other” bucket. Source lists were assembled from three independent inputs: public Shopify vertical directories, category-specific merchant showcases (for example, Yotpo customer galleries for beauty; ReCharge case studies for supplements; Klaviyo customer stories for food and CPG), and search-result scrapes of category-representative queries (for example, “buy magnesium glycinate” for supplements, “organic dog treats” for pet). Each candidate store was manually verified as a live Shopify storefront before entering the intake queue.
Vertical quotas were set at 30 stores minimum per vertical to cross the directional-claims floor, and up to 205 stores per vertical where sourcing supplied it. The final vertical breakdown is apparel 205, beauty 171, other 162, food and CPG 146, home 122, electronics 108, pet 87, supplements 46, and outdoor 30.
Representativeness caveats worth stating up front. The corpus over-indexes on English-language storefronts serving the United States and the United Kingdom. It under-indexes on non-English-primary storefronts, on Asia-Pacific merchants, and on Shopify Plus enterprise tenants above the $5M annual revenue band. Revenue band across the corpus is small-to-medium (approximately $50K to $5M annual revenue based on public signals: employee count, review volume, backlink profile). The corpus is not a random sample of the Shopify population. It is a curated sample chosen to reflect the operator audience the StoreMend audit tool serves. Every claim in the report and on this page is scoped to that population, not to Shopify as a whole.
3. Vertical categorization
Every store in the corpus carries exactly one vertical tag. The taxonomy has nine values: apparel, beauty, food and CPG, home, electronics, pet, supplements, outdoor, and other. A store cannot carry two verticals; the primary catalogue category wins. A beauty brand that also sells apparel merchandise is tagged beauty, because the audit measures the signal a shopper would encounter for the store's dominant category surface.
Tagging proceeded through a two-signal check. First, the homepage hero copy and top-level navigation categories were read for category vocabulary (for example, “fragrance-free serums” maps to beauty; “dog leashes and harnesses” maps to pet). Second, the top three product pages by navigation prominence were fetched and their product_type and vendor metafields inspected. The two signals had to agree. Disagreements (roughly 4% of the corpus) were resolved by a manual reviewer looking at the full catalogue, or shunted to the other bucket if no single dominant category emerged.
The other bucket captures multi-category general stores, hobby and craft catalogues, digital-goods storefronts, and any store where the two-signal check failed to converge on one of the eight named verticals. The bucket accounts for 162 stores or roughly 14.8% of the corpus. Findings inside the other bucket are reported for completeness in the aggregate cohort numbers but are excluded from vertical-specific rate comparisons in the main report.
A tagging audit was run over a random 10% subsample by a second reviewer. The inter-reviewer agreement rate was 96.3% across the nine-value taxonomy. The 3.7% disagreement was concentrated on the boundary between food and CPG versus supplements (functional-food brands that carry both a snack line and a powder line). Boundary calls in that direction favour the category that ranks first in the store's homepage navigation.
4. The 11 failure clusters
The v1.0 cluster taxonomy defines 11 cluster labels grouped into four families: structured data and AI shoppability (S1, S2, S4), performance and page weight (P2, P3, P4, P5), governance and AI crawler posture (G1), and social proof and trust (R1). Two additional labels are reserved in the schema for future cohorts covering checkout integrity and mobile-only regression. In the Q2 2026 cohort, eight cluster labels received primary classifications and are reported in the main report.
The active eight, with a one-line definition each:
- S1 / S2: Product and Organization schema absent. No JSON-LD block on the homepage or the product page. Google rich results and AI shopping assistants have no structured catalogue to read.
- S4: Open Graph defects. Missing or malformed
og:title,og:description, orog:url. Social shares render a stripped card. - R1: Reviews surface absent. No review widget on the product page and no
aggregateRatingin JSON-LD. - G1: No AI crawler policy in robots.txt. No explicit rule for GPTBot, ClaudeBot, PerplexityBot, or Google-Extended. Neither deliberate permission nor deliberate block.
- P2: Page-builder JavaScript overhead. Pagefly, GemPages, Shogun, or a similar page builder shipping render-blocking JavaScript that overrides theme-level performance work.
- P3: Render-blocking scripts in head. Vendor scripts loaded synchronously in the document head, blocking first paint and Largest Contentful Paint.
- P4: Duplicate vendor script loads. The same analytics, chat, or reviews pixel loaded two or three times across theme, app, and custom code paths.
- P5: Font weight and family sprawl. Five or more font weights loaded across two or more font families.
A store is assigned exactly one primary cluster, the one corresponding to its highest-severity finding. A store with both schema absence and page-builder overhead is classified under the schema-absent cluster because S1 outranks P2 on the severity ordering. Secondary and tertiary cluster tags exist in the per-store record but are not used in the report percentages.
5. AI-shoppability tier scoring
Every classified store is scored into one of three AI-shoppability tiers: invisible, transitional, or ready. The scoring is deterministic and reproducible from the raw fetch: a store's tier is fully determined by the presence or absence of six on-page signals.
Invisible tier. A store lands in the invisible tier when the homepage and the tested product page both fail to emit either Product JSON-LD or Organization JSON-LD. No structured catalogue signal reaches the AI shopping surface. Of the 1,077 classified stores, 778 fell into this tier (72.2%).
Transitional tier. A store lands in the transitional tier when one of the following holds: Product JSON-LD is present but carries three or fewer of the six required fields (name, image, description, sku, offers.price, offers.priceCurrency); or Organization JSON-LD is present on the homepage without a matching Product JSON-LD on the product page; or llms.txt is published at the root without a corresponding robots.txt AI crawler policy. Partial signal, incomplete surface. 299 stores fell into this tier (27.8%).
Ready tier. A store lands in the ready tier only when all six signals hold at once: Product JSON-LD with all six required fields plus offers.availability plus aggregateRating; Organization JSON-LD on the homepage; FAQ schema on the product page; llms.txt at the root domain; an explicit AI crawler policy in robots.txt; and a functional canonical URL. Zero of the 1,077 classified stores met the full bar in Q2 2026. The top tier is empty across the entire corpus.
6. Structured data audit method
Structured data was audited via a deterministic-layer fetch of two URLs per store: the homepage at /and a representative product page selected as the first product URL linked from the homepage's primary navigation. Each response body was parsed for <script type="application/ld+json"> blocks. The blocks were JSON-parsed, and every @graph array entry and every root-level object was inspected for its @type value.
Four schema types were checked at the audit level:
Producton the product page. Required fields:name,image,description,sku,offers.price,offers.priceCurrency. Bonus fields for the ready tier:offers.availability,aggregateRating.Organizationon the homepage. Required fields:name,url,logo. Bonus fields:sameAs,contactPoint.Articleon any blog surface reachable from the homepage. Required fields:headline,author,datePublished. Scored for content-marketing signal, not gating for AI shoppability tiering.aggregateRatingas a sub-object underProduct. Required fields:ratingValue,reviewCount. Detection is strict: an on-page 4.8-star widget without anaggregateRatingblock in JSON-LD counts as absent, because AI shopping assistants read the JSON-LD, not the pixel.
Absence was detected structurally, not heuristically. A schema type was recorded as absent only when no matching @type value appeared in any parsed JSON-LD block on the audited URL. Malformed JSON-LD (parse errors, unclosed blocks, mixed quote styles that broke the parser) was recorded as a separate failure mode and treated as absent for tiering purposes, because AI shopping crawlers reject malformed blocks the same way.
7. Reproducibility
Every store classification in the report is reproducible from a browser and a text editor. To verify the classification of a specific store against the cohort, follow four steps.
Step one.Open the store's homepage in Chrome. Right-click, select View Page Source, and search the source for application/ld+json. Zero matches means the homepage emits no structured data and satisfies the S1 test on the homepage side.
Step two. Navigate to any product page. Repeat the source search. Look for a <script block with type="application/ld+json" containing "@type": "Product". Absent means the product page satisfies the S1 test on the product-page side. Present but missing aggregateRating while a review widget renders on the page means the store trips the R1-adjacent schema-completeness variant.
Step three. Append /robots.txt to the root domain and look for explicit user-agent rules for GPTBot, ClaudeBot, PerplexityBot, or Google-Extended. No such rule satisfies the G1 test. Then append /llms.txt to the root domain: a 404 satisfies the tier one llms.txt-absent check.
Step four.Combine the outputs of steps one through three with the vertical tag (the store's dominant catalogue category) and consult section 5 of this page for the tier assignment rule. The resulting tier will match the tier reported in the corpus for that store.
The machine-readable per-store record (URL, vertical, primary cluster, tier, six-signal breakdown) is available on request for named research use. Requests go to founder@storemend.com with the intended use, the outlet, and the citation surface. Bulk data access is not offered.
8. Statistical caveats
The corpus has 90 cohort cells (nine verticals times eight active clusters times three tiers, minus empty cells). Of those, only 9 cells contain 30 or more stores. Those nine cells carry the statistical weight of the report; every other cell is directional.
Sample sizes per vertical: apparel 205, beauty 171, other 162, food and CPG 146, home 122, electronics 108, pet 87, supplements 46, outdoor 30. Two verticals sit below the typical 50-store statistical floor: supplements at 46 and outdoor at 30. Cluster-level percentages inside those two verticals should be read as directional, not conclusive.
Portfolio-level claims (the 68.1% schema-absent rate across the classified cohort, the 72.2% invisible-tier rate across the classified cohort, the zero-store ready-tier finding) sit on the full 1,077-store denominator and are conclusive at the corpus level within the scoped population (SME Shopify storefronts, English-first, April-June 2026).
Confidence intervals are not published per-cell in the v1.0 report. The cluster-count and tier-count numbers are exact counts of stores that passed or failed a deterministic structural check, not point estimates from a statistical model. A 74% beauty schema-absent rate is 126 of 171 stores, verifiable from the raw cohort. Rate stability across a future refresh will depend on how the SME Shopify population itself changes; that question is tracked separately at the quarterly refresh cadence.
The report is directional at the vertical level for the two small-N verticals and conclusive at the cohort level. Journalists and analysts citing per-vertical rates should reference the vertical's sample size alongside the rate. The recommended citation format is “X% of N audited Shopify [vertical] stores”, not “X% of [vertical] stores”.
9. Data update cadence
The corpus was last refreshed on 2026-06-19. Every store in the current dataset was audited between April 1 and June 30, 2026, with the aggregation script run on June 25, 2026 against the cohort snapshot at that date.
The next refresh, the Q3 2026 cohort cut, is scheduled to publish between September 25 and October 5, 2026. The Q3 cut retains the same nine-vertical taxonomy, the same 11-cluster schema, and the same three-tier scoring rule, so quarter-over-quarter comparison of rates is well-defined from the first re-run. The stores in the Q3 cohort will overlap with the Q2 cohort by approximately 60% (returning-store panel), with the remaining 40% refreshed to reflect new sourcing and to cover the intake queue built during the quarter.
The Q4 2026 cut is scheduled for December 20, 2026 to January 10, 2027. Beyond Q4, the cadence commitment is quarterly on the same window (last week of the quarter, first week of the next), subject to schema-version rev events. A schema-version bump (for example, v1.0 to v2.0) is expected when either a new cluster is added to the taxonomy or the six-signal ready-tier bar is re-cut. Any bump will be published with a migration note explaining which prior claims still hold and which ones re-base.
The dataset version string in the report footer and on this page is the ground truth for cadence tracking. A citation from a future article should quote both the report and the dataset version, so a reader can trace back to the exact snapshot the cited number came from.
10. Contact for questions
Methodology questions, request-for-comment inquiries, data-access requests for named research use, and citation-verification requests all go to a single address: founder@storemend.com. Responses target a two-business-day turnaround.
Include in the request: the specific claim or number being verified, the outlet or research context, the publication window if known, and any follow-on data needed (per-vertical rates, per-cluster breakdowns, per-store classifications). Requests from newsrooms, analyst firms, and academic researchers are prioritised. Bulk-scrape requests without a stated use are declined.
Corrections. A verified numerical error in the report or on this page is corrected in place with a dated correction note appended to the section, and the dataset version string is not changed unless the underlying corpus changes. Structural corrections (renumbering, taxonomy edits) trigger a dataset version bump and a full changelog entry.