XooCode(){

GroceryStore

GroceryStore is a direct Store subtype for supermarkets, bodegas, co-ops, and food-first retailers. It adds no properties of its own; use inherited LocalBusiness/Store vocabulary. For delivery-plus-pickup services, attach Offer entries with offeredBy and hasDeliveryMethod.

Full example of schema.org/GroceryStore json-ld markup

The markup is verified as valid with Rich Results Test from Google.

schema.org/GroceryStore
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "GroceryStore",
  "name": "Dunmore Community Market",
  "description": "Worker-owned grocery co-op in downtown Dunmore. Locally-sourced produce, bulk goods, prepared foods.",
  "address": { "@type": "PostalAddress", "streetAddress": "30 Main St", "addressLocality": "Dunmore", "addressRegion": "PA", "postalCode": "18512", "addressCountry": "US" },
  "telephone": "+1-570-555-0255",
  "geo": { "@type": "GeoCoordinates", "latitude": 41.4272, "longitude": -75.6320 },
  "openingHours": "Mo-Su 07:00-22:00",
  "priceRange": "$$",
  "paymentAccepted": "Cash, Credit Card, Debit Card, SNAP/EBT",
  "currenciesAccepted": "USD",
  "url": "https://xoocode.com/shops/dunmore-community-market",
  "amenityFeature": [
    { "@type": "LocationFeatureSpecification", "name": "Delivery", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Curbside pickup", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Wheelchair accessible", "value": true }
  ]
}
</script>

Minimal valid version

The smallest markup that still produces a valid GroceryStore entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/GroceryStore (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "GroceryStore",
  "name": "Dunmore Community Market",
  "address": { "@type": "PostalAddress", "streetAddress": "30 Main St", "addressLocality": "Dunmore", "addressRegion": "PA", "postalCode": "18512", "addressCountry": "US" }
}
</script>

Google rich results this unlocks

GroceryStore is a structural type. It does not produce a rich result on its own.

Its value comes from combining it with a primary type whose markup earns a rich result (Article, Product, Event, and so on). GroceryStore becomes the trunk that the primary type branches off viamainEntityorbreadcrumb. Include it on every page as the backbone of your markup.

Common GroceryStore mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    Tagging a specialty food shop as GroceryStore

    Wrong
    GroceryStore for a butcher, fishmonger, or bakery
    Right
    Bakery / Florist / specific Store subtype when one fits; GroceryStore only for full-range food retailers

    GroceryStore implies a broad food-and-household-goods inventory. Specialty shops have their own subtypes (Bakery is a separate schema.org type) and should use them.

About the example data

"Dunmore Community Market", a fictional worker-owned co-op grocery in downtown Dunmore.

Comments

Loading comments...

Leave a comment