Schema is the single lowest-scoring dimension in the audit. The site implements roughly 10% of the already-written blueprint. Every page ships a malformed Organization block with http:// context and an HTML-entity name. Product pages ship three conflicting JSON-LD blocks (Shopify + Whisk + Okendo) with no shared @id references. Zero Recipe schema across 551 recipe posts. Zero BlogPosting JSON-LD across 1,227 blog posts. Zero of the four Google Merchant Listing required fields on any product. The gap is deployment, not design.

The deployment shape below is a Nature’s Path-specific Liquid snippet library — 10 snippets/dbc-schema-*.liquid files that hard-code brand, founder, certification, return policy, shipping, and facility values rather than accepting them as parameters. The theme includes snippets; snippets hold the source of truth. Every checklist item below either builds one of these snippets or wires it into a template.

Score Rationale

What this section shows. The weighted score breakdown across six schema dimensions: types present vs. required, Organization completeness, Product / Merchant Listing compliance, content schema (Recipe, BlogPosting), technical correctness, and missing types.

Schema is the cheapest lift with the highest E-E-A-T, AI-citation, and Shopping-eligibility payoff on the site. The blueprint is already written. The work is scaffolding and deploying the 10 Liquid snippets, not designing the schema. Every 10 points on this dimension trace to a specific snippet landing in production.

How to read the findings. The lowest-scoring rows (Content schema 0/15, Missing types 0/10, Organization completeness 2/20) are the greenfield builds. The Merchant Listing row (3/20) blocks Google Shopping eligibility. The Notes column explains what each sub-score is measuring.

DimensionWeightScoreNotes
Schema types present vs. required256/25Only Organization + WebSite sitewide; Product present but broken
Organization completeness202/201 of 11 required fields populated
Product / Merchant Listing compliance203/20Duplicate blocks, all 4 Merchant Listing fields missing
Content schema (Recipe, BlogPosting)150/15Recipe entirely absent; BlogPosting Microdata only, incomplete
Technical correctness104/10http:// throughout, relative @ids, HTML entities in name
Missing types (Breadcrumb, Collection, AboutPage)100/10All absent
Total10022/100Prior 38. Regression driven by tighter validation (Merchant Listings scored, Microdata BlogPosting not counted).

Current State vs. Blueprint

The blueprint specifies a complete @graph with Organization, WebSite, Person entities (4), Brand entities (8), Product (consolidated), Recipe, BlogPosting, BreadcrumbList, CollectionPage, AboutPage, and ContactPage. Every block is packaged as a Liquid snippet in the Snippet Library below. Below are current vs. target for the two highest-impact blocks.

Current Organization Block2/11 pass
Deployed sitewide (broken)
@context: http://schema.org — should be https://
name: Nature's Path — HTML entity not decoded
sameAs: 4 of 8 array entries are empty strings (Twitter, TikTok, Threads, LinkedIn)
logo: missing
description: missing
foundingDate: missing
legalName: missing
address: missing
@id: missing — blocks cross-reference from page-level schema
On /pages/about: url renders as page URL, not canonical org URL
Blueprint Organization Blockspec
Required to deploy (pre-written)
@graph pattern with @id: https://naturespath.com/#organization
@context: https://schema.org
Populated logo, description, legalName, foundingDate, address
Full sameAs array including Wikipedia (Q6980861), Wikidata, Crunchbase, LinkedIn, Facebook, Instagram, YouTube
4 linked Person entities (Arran, Ratana, Arjan, Jyoti Stephens)
8 linked Brand entities (Nature’s Path, EnviroKidz, Love Crunch, Que Pasa, Qi’a, Flax Plus, Anita’s Organic Mill, Love Child Organics)
knowsAbout: organic food, ROA, USDA NOP, Non-GMO Project
Current Product (PDPs)DUPLICATE BLOCKS
3 conflicting JSON-LD blocks per PDP
Block A (Whisk ProductGroup): @context http://schema.org/, relative @id, brand.name: "NaturesPath"
Block B (Okendo Product): https:// correct, but duplicates Whisk, no @id, brand.name: "NaturesPath"
Block C (Organization): site-wide broken block
All 4 Google Merchant Listing fields absent:
hasMerchantReturnPolicy, shippingDetails, priceValidUntil, itemCondition
nutrition missing. hasCertification missing. Brand name canonical mismatch.
Blueprint Product Blockspec
Single consolidated block per PDP
One Product with absolute @id referencing #organization and Brand entity
brand.name: "Nature’s Path" (canonical, with apostrophe)
Preserves Okendo aggregateRating (ratingValue, reviewCount)
All 4 Merchant Listing fields populated via Shopify metafields
NutritionInformation nested (calories, protein, fiber, sugar)
hasCertification: USDA Organic, Non-GMO Project Verified, B Corp
3 image URLs (1:1, 4:3, 16:9) at full resolution
Okendo standalone block disabled

7 Critical Issues

What this section shows. Seven critical schema defects, each named with the page surface affected (sitewide, every PDP, 551 recipe posts, 1,227 blog posts, etc.), the specific Liquid template where the fix lands, and the Merchant Listing or E-E-A-T consequence of leaving it unfixed.

Critical items gate the payoff from everything else. Deploying the Snippet Library without first fixing the http:// context, the HTML-entity name, the duplicate product blocks, or the missing Merchant Listing fields will leave validators warning and Google Shopping listings still invisible. The seven items here are the sequence every subsequent schema-related win depends on.

How to read the findings. Each callout is self-contained: what’s broken, where it ships from, and what to replace it with. Cross-reference with the Implementation Checklist below using the schema-* task IDs. Every critical callout has a matching Critical-tagged checklist item.

C1 — Organization schema: 9 missing properties, wrong @context, HTML entities in name
Every page on the site outputs a broken Organization block. The http:// context, missing logo/description/foundingDate/legalName/address, and 4 empty sameAs slots all fail Google validation. Fix: deploy the blueprint @graph block in theme.liquid, replacing the current minimal block.
C2 — Duplicate Product blocks (Whisk + Okendo) with no @id deduplication
Three JSON-LD blocks per PDP (Organization + ProductGroup + Product) with conflicting brand names and no shared identifiers. Google sees two competing Product representations. Fix: implement blueprint’s consolidated Product block in sections/main-product.liquid; disable the Okendo standalone block.
C3 — Brand name canonical mismatch on all products
brand.name renders as NaturesPath and LoveCrunch (no spaces, no apostrophes) on every product. These match no canonical reference — not Wikipedia, Wikidata, Google Knowledge Graph, or the Organization schema on the same page. Fix: Shopify product vendor bulk update + Product schema @id reference to Brand entity.
C4 — Merchant Listing compliance: 0/4 required fields on all PDPs
hasMerchantReturnPolicy, shippingDetails, priceValidUntil, itemCondition are absent from all product offers. Without these, products are ineligible for Google Shopping rich results and free Merchant Listings. Fix: implement per-offer properties as specified in blueprint.
C5 — Recipe schema entirely absent across 551 recipe posts
Recipes output BlogPosting Microdata (wrong type) and an Organization JSON-LD block (irrelevant). No cook time, ingredients, yield, or nutrition are parseable. Fix: Recipe JSON-LD in sections/article-template.liquid conditioned on article.blog.handle == 'recipes'.
C6 — BlogPosting JSON-LD absent across 1,227 blog posts
Microdata BlogPosting present but incomplete (missing author, ISO 8601 datePublished, publisher). No JSON-LD. Fix: BlogPosting JSON-LD in sections/article-template.liquid conditioned on non-recipe blog handles.
C7 — BreadcrumbList absent site-wide
No breadcrumb markup on PDPs, collections, blog posts, or content pages. Fix: implement in snippets/breadcrumbs.liquid as specified in blueprint.

Required Merchant Listing Fields (0/4 Present)

The 4 fields below are Google’s required baseline for a product to appear in the free Shopping carousel and earn rich Shopping results. Every Nature’s Path product is currently ineligible.

FieldStatusImplementation
offers.hasMerchantReturnPolicyMISSINGLink to MerchantReturnPolicy entity (return days, method, fees)
offers.shippingDetailsMISSINGLink to OfferShippingDetails (carrier, delivery time, fee, geo coverage)
offers.priceValidUntilMISSINGISO 8601 date string — populate via Shopify metafield
offers.itemConditionMISSINGConstant https://schema.org/NewCondition for all food products

Detected Schema Inventory by Page

What this section shows. The JSON-LD and Microdata types currently detected on 13 representative pages (home, 3 PDPs, 3 collections, 3 blog / recipe posts, and 3 content pages), with a per-page note on what’s present and what’s broken.

Per-page inventory is how coverage gaps turn into actionable Liquid edits. The blueprint’s 10 snippets each target a specific page surface (PDP, collection, article, about-page, contact-page, FAQ). Knowing which pages currently ship which types informs the deploy order: Organization-only pages are unblocked by the entity-graph snippet; duplicate-block PDPs need the Product consolidation work first; recipe posts wrongly typed as BlogPosting need article-template conditionals.

How to read the findings. Red cells mean the page is missing an expected type. Amber cells mean a type is present but malformed or duplicated. Green means the page passes. Use this as the QA checklist after each Implementation Checklist deploy to confirm the fix reached the intended page surface.

PageJSON-LD TypesMicrodata
/Organization, WebSiteNone
Heritage Flakes PDPOrganization, ProductGroup, Product (duplicate)None
Dark Choc & Red Berries PDPOrganization, ProductGroup, Product (duplicate)None
Panda Puffs PDPOrganization, ProductGroup, Product (duplicate)None
/collections/granolaOrganization onlyNone
/collections/cerealOrganization onlyNone
/collections/oatmealOrganization onlyNone
/blogs/posts/benefits-plant-based-proteinOrganization onlyBlogPosting (incomplete)
/blogs/recipes/5-ingredient-granolaOrganization onlyBlogPosting (wrong type for recipe)
/blogs/recipes/banana-overnight-oatsOrganization onlyBlogPosting (wrong type for recipe)
/pages/aboutOrganization (url bug)None
/pages/our-historyOrganization onlyNone
/pages/anitas-organic-millingOrganization onlyNone

High-Priority Issues

What this section shows. Six high-priority schema issues that sit below Critical but above cleanup: relative @id values, http:// availability constants, missing WebSite @id and publisher, absent CollectionPage across 60+ collections, missing NutritionInformation, and absent Person entities.

High-tier items unlock rich results and cross-block references the Critical items depend on. The @id cross-referencing makes the blueprint @graph pattern actually function. CollectionPage and NutritionInformation each open rich-result surfaces. Person entities lock in the Stephens family E-E-A-T and Knowledge Panel wiring the GEO audit relies on.

How to read the findings. Each card names the issue, the scope, and the Liquid file where the fix lands. Every card maps to a High-tagged task in the Implementation Checklist.

H1 — ProductGroup @id relativeHIGH

All @id values use paths (/products/heritage-flakes#product) not absolute URLs. Schema.org requires absolute for global identifiers.

H2 — availability uses http://HIGH

"availability": "http://schema.org/InStock" — warning-level. Blueprint specifies https://.

H3 — WebSite missing @id + publisherHIGH

Cannot be cross-referenced by page-level schema (isPartOf). Organization is not declared as publisher.

H4 — CollectionPage absent on 60+ collectionsHIGH

No CollectionPage, no ItemList, no product list enumeration. Fix in sections/main-collection-product-grid.liquid.

H5 — NutritionInformation absentHIGH

No structured nutrition on any product. Missed rich-result opportunity and signal gap for AI/LLM food queries.

H6 — Person entities absentHIGH

Blueprint specifies 4 Person entities (Stephens family) with Wikipedia sameAs. Strengthens E-E-A-T and Knowledge Panel. Entirely absent.

Technical Validation Notes

All generated JSON-LD in the blueprint passes the following checklist:

  • @context: https://schema.org (not http://)
  • All @id values: absolute URLs
  • All dates: ISO 8601 format
  • No placeholder text, no deprecated types (no HowTo, no SpecialAnnouncement, no FAQ on commercial pages)
  • AggregateRating sourced from Okendo live review data — preserve existing ratingValue and reviewCount in the consolidated Product block
  • Recipe recipeInstructions uses HowToStep sub-type (supported, distinct from the deprecated standalone HowTo rich result type)

Liquid Snippet Library

Rather than scatter JSON-LD across theme.liquid, sections/main-product.liquid, sections/article-template.liquid, and several page templates, every schema block lives in a dedicated snippet under a shared snippets/dbc-schema-*.liquid prefix. The theme only calls snippets; snippets hold the source of truth for Nature’s Path schema.

Each snippet is Nature’s Path-specific — brand list, founder entities, facility addresses, certifications, return policy, shipping terms, and customer service phone are hard-coded inside the snippet, not passed in as parameters. Only values that genuinely vary per page (product, article, collection, page, breadcrumbs) come from Liquid objects. This keeps the dev surface minimal and the blueprint single-source.

Liquid Snippet

Deployment pattern: the dev team ships one PR that adds the 10 snippets, wires each include point, and removes the legacy inline blocks (Whisk ProductGroup, Okendo Product, minimal sitewide Organization). Subsequent schema additions — new certifications, new Stephens family members, new sub-brands from future acquisitions — are single-snippet edits, not theme-wide sweeps.

Implementation Checklist

Progress
0 / 25