Schema markup is code that tells search engines exactly what your business is: its name, address, phone number, hours and services. It won't rank you on its own, but it removes guesswork and supports your Google Business Profile.
Here's how I add it for local clients.
What schema does (and doesn't do)
It does:
- Confirm your business details in a format Google reads directly
- Reinforce the name, address and phone number on your Business Profile
- Help search engines and AI tools understand your services
It doesn't:
- Guarantee rich results. Google decides when to show them, and it now shows FAQ rich results for very few sites
- Replace a good profile, content and reviews
Step 1: Pick the most specific type
Start from LocalBusiness and choose the most specific type that fits, such as Dentist, Plumber, BeautySalon, AutoRepair, Restaurant or LegalService. The full list is on schema.org.
Step 2: Gather your details
Your details must match your Google Business Profile exactly:
- Business name
- Full address
- Phone number (with country code)
- Website URL and logo
- Opening hours
- Latitude and longitude
- Links to your official profiles (Facebook, Google Maps, etc.)
Step 3: Use this template
Replace everything in capitals:
{
"@context": "https://schema.org",
"@type": "Dentist",
"name": "BUSINESS NAME",
"url": "https://YOURWEBSITE.com",
"logo": "https://YOURWEBSITE.com/logo.png",
"image": "https://YOURWEBSITE.com/office.jpg",
"telephone": "+1-000-000-0000",
"priceRange": "$$",
"address": {
"@type": "PostalAddress",
"streetAddress": "STREET ADDRESS",
"addressLocality": "CITY",
"addressRegion": "STATE",
"postalCode": "ZIP",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 0.0,
"longitude": 0.0
},
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "09:00",
"closes": "17:00"
}],
"sameAs": [
"https://www.facebook.com/YOURPAGE"
]
}
Step 4: Add it to your site
Any website: paste the code inside a <script type="application/ld+json"> tag in the <head> of your homepage or contact page.
WordPress: most SEO plugins, such as Rank Math or Yoast, have local business settings. If you add custom code instead, use a header-code plugin and make sure you don't end up with two conflicting versions.
Multiple locations: each location page gets its own schema with that location's details.
Step 5: Test it
- Run the page through Google's Rich Results Test
- Check it in the Schema Markup Validator (validator.schema.org)
- After a few days, check Search Console for errors
Common mistakes
- Details that don't match the Business Profile. This is the one I fix most often
- Marking up content that isn't visible on the page. For FAQ schema, the questions and answers must appear on the page word for word
- Duplicate schema from a theme and a plugin at the same time
- Wrong business names or old addresses copied from outdated pages
On one dental site, I added Dentist schema with the correct details and FAQ schema on 11 service pages, 105 questions in total, each matching the visible text exactly. You can read the full story in my recovery case study.
Not sure your schema is set up correctly? Ask me for a free audit.
Want results like these for your business?
Send me your website and Google Business Profile. I'll reply with a free audit and the three to five changes I'd make first.