DEV Community

Cover image for Structured Data for a Small Clothing Shop: a Copy-Paste ClothingStore Schema (and 5 Mistakes to Avoid)
Mohammad
Mohammad

Posted on

Structured Data for a Small Clothing Shop: a Copy-Paste ClothingStore Schema (and 5 Mistakes to Avoid)

FRQ (Find Retailers Quickly) poster for clothing shop owners

FRQ poster in Hindi for clothing shop owners

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>
Enter fullscreen mode Exit fullscreen mode

2. The five fields that actually matter for a small shop

  • openingHoursSpecification: many market shops close one weekday (often Tuesday). Leave that day out of dayOfWeek instead 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

  • [ ] @type is ClothingStore
  • [ ] Address matches the signboard and Google Business Profile
  • [ ] geo taken from the real map pin
  • [ ] Weekly closed day left out of openingHoursSpecification
  • [ ] Real priceRange in ₹
  • [ ] 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)

Collapse
 
citedy profile image
Dmitry Sergeev •

i followed the copy‑paste schema but got a warning