Posters: FRQ (Find Retailers Quickly)
By Mohammad
If you've ever built a site for a relative's or neighbour's shop, you know the pattern: the site looks fine, but Google shows the wrong hours, no price range, and the map pin points at the next lane. For small clothing shops in India this matters a lot right now, because wedding and festive shoppers start on their phones.
Most of that information comes from the shop's Google Business Profile, but the website can help too. A small block of schema.org structured data tells search engines exactly what the shop is, where it is, and when it's open. Here is a copy-paste version for a clothing shop, and the mistakes I keep seeing.
1. Use the right type: ClothingStore
schema.org has a specific type for this, ClothingStore, which is a subtype of Store → LocalBusiness. Use it instead of a generic Organization.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ClothingStore",
"name": "Sharma Garments",
"image": "https://example.com/photos/shopfront.jpg",
"url": "https://example.com/",
"telephone": "+91-98xxxxxx10",
"priceRange": "₹300–₹6000",
"address": {
"@type": "PostalAddress",
"streetAddress": "Shop 14, Main Bazaar Road",
"addressLocality": "Indore",
"addressRegion": "MP",
"postalCode": "452002",
"addressCountry": "IN"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 22.7196,
"longitude": 75.8577
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Wednesday","Thursday","Friday","Saturday","Sunday"],
"opens": "10:30",
"closes": "21:30"
}
],
"sameAs": [
"https://www.instagram.com/example",
"https://wa.me/9198xxxxxx10"
]
}
</script>
2. The five fields that actually matter for a small shop
-
openingHoursSpecification: many market shops close one weekday (often Tuesday). Leave that day out ofdayOfWeekinstead of writing "closed" somewhere in text. -
geo: take the coordinates from the shop's own Google Maps pin, not from the street name. In crowded markets the street-level guess is often 100 metres off. -
priceRange: shoppers filter on budget. A real range ("₹300–₹6000") is more useful than "$$". -
telephone: use the number the shop actually answers, ideally the WhatsApp Business number, in international format. -
image: a real shopfront photo helps people recognise the shop when they arrive.
3. Keep it consistent everywhere
Search engines cross-check. The name, address and phone number (NAP) in your JSON-LD should match the Google Business Profile, the signboard, and any marketplace or directory page the shop has, character for character. "Shop 14, Main Bazaar Rd" in one place and "14 Main Bazar" in another is the most common reason a small shop's details look unreliable.
4. Validate before you ship
Paste the page URL into Google's Rich Results Test and the Schema Markup Validator (validator.schema.org). Fix every error; most are a missing comma or a time written as "10.30" instead of "10:30".
5. What if the shop has no website at all?
Plenty of small clothing shops don't, and building one just for schema isn't worth it. The practical options are a complete Google Business Profile plus a free shop page on a local marketplace. One I help with is FRQ, short for Find Retailers Quickly (frq.in): a clothing shop can make its own page with products and prices at https://frq.in/vendor/register, and shoppers browse local shops at https://market.frq.in/. (I help out with FRQ.) Whatever you pick, keep the same name, address and phone number as above.
Quick checklist
- [ ]
@typeisClothingStore - [ ] Address matches the signboard and Google Business Profile
- [ ]
geotaken from the real map pin - [ ] Weekly closed day left out of
openingHoursSpecification - [ ] Real
priceRangein ₹ - [ ] WhatsApp number in international format
- [ ] Passed the Rich Results Test
If you've done this for a family shop, I'd like to hear which field caused you the most trouble.
(I help out with FRQ.)


Top comments (1)
i followed the copy‑paste schema but got a warning