Skip to content

Schema markup for dog groomers

Dog grooming salon schema markup, with an example

Use LocalBusiness with your salon's street address, the days you groom, your phone number and an offer catalog of grooms with their starting prices. schema.org has no grooming type, so it's the services you list that tell search engines and AI assistants you groom dogs.

The type to use

LocalBusiness

There's no schema.org type for grooming, so the general LocalBusiness type is the accurate one for a salon. PetStore is a kind of shop; it only fits if a retail counter is a real part of your business.

LocalBusiness on schema.org

What to include

The properties that matter for dog groomers

Most important first. Fill in what's true for you and leave out the rest; every value must also be on the page.

name
The salon's name as it's painted above the door and written on your Google Business Profile, without “groomer near me” keywords bolted on.
address
Owners drive their dog to you, so give the full street address and postcode, with the unit number if you're on a trading estate.
hasOfferCatalog
Each groom as its own offer: full groom, bath and tidy, hand stripping, puppy introduction, nail trim. This is the part that says “dog groomer” to a machine.
openingHoursSpecification
Salon days, not admin days. If you groom Tuesday to Saturday and finish at five, that's what goes here, so “groomer open Saturday” is answered correctly.
telephone
Owners ring about a matted coat or a puppy's first visit. Use the salon number you pick up between dogs.
priceRange
A short span such as “£12–£75”, from a nail trim to a large double coat, so nobody expects one flat price.
hasCredential
A grooming qualification you hold, such as a Level 3 diploma, named exactly as it's printed on the certificate.
geo
Coordinates for the salon door. Worth adding if you're behind a parade of shops, where the postcode alone drops the pin in the wrong yard.
sameAs
The Instagram and Facebook pages where your before-and-after photos live, tied to the same salon.

Example

Copy, then make it yours

This is the markup for a made-up business. Replace every value with your own before you use it.

  1. Change every name, address, number and link to your own, and delete lines that don't apply.
  2. Paste it into your site's header code (website builders call it “code injection” or “custom code”), or let ServiceCited add it for you.
  3. Check it with Google's Rich Results Test or the Schema Markup Validator.

LocalBusiness JSON-LD

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Bramble Dog Grooming",
  "description": "Dog grooming salon in Acomb, York: full grooms, hand stripping and puppy introductions, one dog at a time.",
  "url": "https://www.example.com/",
  "image": "https://www.example.com/images/salon-front.jpg",
  "telephone": "+44 1632 960214",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "17 Front Street",
    "addressLocality": "York",
    "postalCode": "YO24 3BW",
    "addressCountry": "GB"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 53.9562,
    "longitude": -1.1284
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "08:30",
      "closes": "17:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "08:30",
      "closes": "13:00"
    }
  ],
  "priceRange": "£12–£75",
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "Dog grooming",
    "itemListElement": [
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Full groom, small dog"
        },
        "priceSpecification": {
          "@type": "PriceSpecification",
          "minPrice": 40,
          "priceCurrency": "GBP"
        }
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Full groom, large dog"
        },
        "priceSpecification": {
          "@type": "PriceSpecification",
          "minPrice": 60,
          "priceCurrency": "GBP"
        }
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Bath and tidy"
        },
        "priceSpecification": {
          "@type": "PriceSpecification",
          "minPrice": 28,
          "priceCurrency": "GBP"
        }
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Hand stripping"
        },
        "priceSpecification": {
          "@type": "PriceSpecification",
          "minPrice": 45,
          "priceCurrency": "GBP"
        }
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Puppy introduction groom"
        },
        "priceSpecification": {
          "@type": "PriceSpecification",
          "minPrice": 25,
          "priceCurrency": "GBP"
        }
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Nail trim"
        },
        "price": 12,
        "priceCurrency": "GBP"
      }
    ]
  },
  "hasCredential": {
    "@type": "EducationalOccupationalCredential",
    "name": "Level 3 Diploma in Dog Grooming",
    "credentialCategory": "Qualification"
  },
  "sameAs": [
    "https://www.instagram.com/example",
    "https://www.facebook.com/example"
  ]
}
</script>

Watch out

Mistakes dog groomers make with markup

  • HealthAndBeautyBusiness because it's a salon

    That type and the ones under it, like HairSalon, NailSalon and DaySpa, are salons for people. Calling a dog groomer one invites searches you can't serve and hides the ones you can.

  • One “full groom” price for every dog

    A single price of £40 tells assistants a Newfoundland costs the same as a Yorkie. Use minPrice for a “from” price, or list each size you charge separately, as your price list does.

  • Prices in the code, a photo on the page

    If your price list is a snap of the salon board, the prices in your markup aren't visible text anywhere. Type the list onto the page first; the markup then repeats it.

Also worth adding

  • Service: If one groom, say hand stripping, has a page of its own, a Service block there can describe it with its price and the breeds it's for.
  • FAQPage: On a first-groom page that answers how long it takes, what happens with matting and how you handle nervous dogs, in text owners can read.

FAQ

Dog groomers: markup questions

Type to search these questions, or ask anything about getting found on Google and AI.

My prices go by size. Should each size be a separate offer?

If your price list sets a price per size, yes: “Full groom, small dog” and “Full groom, large dog” as two offers. If you price by coat and time instead, one offer with a minPrice and a line on the page about what changes it is more honest.

I sell leads and shampoo at the counter. Does that make me a PetStore?

Not for a few shelves by the till. If retail is a real part of the business, PetStore (itself a kind of LocalBusiness) covers both, and the grooms stay in your offer catalog.

Can my markup say I'm good with nervous dogs?

Only through description, worded as your homepage words it, such as “one dog at a time, with breaks when they need one”. There's no property for how you handle dogs, and nothing in the code should claim more than the page does.

Be the first name owners find.

Run the free check, then press Optimize. Then back to the dogs.