@type: Store · LocalBusiness
Retail store schema generator
For a shop, the local questions are simple: where are you, are you open now, and do you take my card? Store schema answers all three in structured data, which feeds “open now” filters and AI shopping assistants.
Free · no account needed · validated against Google's LocalBusiness guidelines
<script type="application/ld+json">{ "@context": "https://schema.org", "@type": "Store", "@id": "https://fieldworksupply.example/#localbusiness", "name": "Fieldwork Supply Co.", "description": "Independent outdoor and camping store in Portland's Pearl District: packs, tents, repairs and rentals.", "url": "https://fieldworksupply.example", "logo": "https://fieldworksupply.example/logo.png", "image": "https://fieldworksupply.example/img/store-16x9.jpg", "telephone": "+1 503-555-0166", "email": "shop@fieldworksupply.example", "priceRange": "$$", "currenciesAccepted": "USD", "paymentAccepted": "Credit Card, Debit Card, Cash, Apple Pay", "address": { "@type": "PostalAddress", "streetAddress": "1022 NW Glisan St", "addressLocality": "Portland", "addressRegion": "OR", "postalCode": "97209", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": 45.52641, "longitude": -122.68132 }, "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "10:00", "closes": "19:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": "Saturday", "opens": "09:00", "closes": "19:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": "Sunday", "opens": "11:00", "closes": "17:00" } ], "specialOpeningHoursSpecification": [ { "@type": "OpeningHoursSpecification", "name": "Thanksgiving", "validFrom": "2026-11-26", "validThrough": "2026-11-26", "opens": "00:00", "closes": "00:00" }, { "@type": "OpeningHoursSpecification", "name": "Black Friday", "validFrom": "2026-11-27", "validThrough": "2026-11-27", "opens": "08:00", "closes": "21:00" } ], "hasOfferCatalog": { "@type": "OfferCatalog", "name": "In-store services", "itemListElement": [ { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Gear rental", "description": "Tents, packs and stoves by the day." }, "priceSpecification": { "@type": "PriceSpecification", "minPrice": "15.00", "priceCurrency": "USD" } }, { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Tent repair", "description": "Pole, zip and seam repairs in about a week." }, "priceSpecification": { "@type": "PriceSpecification", "minPrice": "25.00", "priceCurrency": "USD" } } ] }, "sameAs": [ "https://maps.app.goo.gl/fieldworksupply-example", "https://www.instagram.com/fieldworksupplyco" ]}</script>Generate your retail store schema
Fill in your details — the JSON-LD, validator and search preview update as you type. Free, no account.
Step 1 of 7
Business
Type & identity
Business type
Pick the most specific schema.org subtype. It's the strongest relevance signal you can send.
@typeIdentity
Use the name exactly as it appears on your storefront and Google Business Profile.
nameMissing business name
alternateNamelegalNamedescription0/750
sloganfoundingDateWebsite & media
urlMissing website URL
logoSquare, at least 112×112px, on a plain background.
imageNo images
Free schema checker
Validate existing retail store markup
Already have retail store markup? Paste it to see its score, rich result eligibility and exactly what to fix.
Properties that matter for retail stores
@type: Store | The schema.org parent for shops — use a subtype like BookStore or HardwareStore when one fits. |
openingHoursSpecification | Shopping hours, late-night openings and Sunday trading per day. |
specialOpeningHoursSpecification | Holiday closures and extended December hours. |
paymentAccepted | Cash, card, contactless — removes a reason not to visit. |
name + address | Required by Google for every LocalBusiness — and must match your Business Profile exactly. |
Best practices
- Keep store markup about the location; mark up products on product pages with Product schema.
- Add holiday hours weeks in advance — Google shows them in the knowledge panel.
- Multi-branch retailers: one page and one markup block per branch.
FAQ
What the validator checks
- Required name and full postal address
- Phone format and international prefix
- Overlapping or invalid split hours
- Coordinates with 5+ decimal precision
- Expired holiday exceptions
- Keyword-stuffed business names
- Self-serving review markup
- Most specific schema.org subtype
For agencies
Managing several retail stores?
Host the schema for up to 25 client locations and update hours across every site from one dashboard.
See Pro