Schema markup voor lokale bedrijven
Schema markup is gestructureerde data die helpt zoekmachines je website content beter te begrijpen. Voor lokale bedrijven is LocalBusiness schema essentieel voor rich snippets en betere ranking.
In deze gids leer je hoe je schema markup effectief implementeert.
Wat is schema markup?
Definitie
Schema.org is een collaboratieve standaard voor gestructureerde data op het internet. Het helpt zoekmachines zoals Google de context en betekenis van content te begrijpen.
Hoe het werkt:
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Tandartspraktijk De Liefde",
"address": {...}
}
Benefits:
- Rich snippets in zoekresultaten
- Better understanding door Google
- Enhanced search results
- Higher click-through rates
- Improved local SEO
JSON-LD formaat
Google prefereert JSON-LD:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Bedrijfsnaam",
...
}
</script>
Voordelen:
- Makkelijk te implementeren
- Separate van HTML
- Eenvoudig te onderhouden
- Google's aanbevolen formaat
LocalBusiness schema types
Basis LocalBusiness
Voor de meeste lokale bedrijven:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Tandartspraktijk De Liefde",
"image": "https://www.example.com/photo.jpg",
"telephone": "+31-20-1234567",
"url": "https://www.example.com",
"address": {
"@type": "PostalAddress",
"streetAddress": "Straatnaam 123",
"addressLocality": "Amsterdam",
"postalCode": "1234AB",
"addressCountry": "NL"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 52.1234,
"longitude": 4.5678
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "17:00"
}
],
"priceRange": "€€"
}
</script>
Specifieke business types
Restaurant:
{
"@type": "Restaurant",
"servesCuisine": "Italiaans",
"priceRange": "€€",
"menu": "https://www.example.com/menu"
}
Tandarts:
{
"@type": "Dentist",
"specialty": "Algemene tandheelkunde"
}
Loodgieter:
{
"@type": "Plumber",
"areaServed": "Amsterdam en omgeving"
}
Alle beschikbare types:
Populaire lokale types:
- Restaurant
- Dentist
- Plumber
- Electrician
- HairSalon
- AutoDealer
- HardwareStore
- InsuranceAgency
- Lawyer
- RealEstateAgent
- VeterinaryCare
- Gym
- Hotel
- Bakery
- CoffeeShop
Essentiële velden voor LocalBusiness
Verplichte velden
{
"@type": "LocalBusiness",
"name": "Bedrijfsnaam", // Verplicht
"address": {...}, // Verplicht
"telephone": "+31-20-1234567" // Sterk aanbevolen
}
Sterk aanbevolen
{
"image": "https://...", // Foto van bedrijf
"url": "https://...", // Website URL
"geo": {...}, // Coördinaten
"openingHoursSpecification": [...], // Openingstijden
"priceRange": "€€", // Prijsrange
"aggregateRating": {...} // Reviews (indien beschikbaar)
}
Optioneel maar waardevol
{
"sameAs": ["https://facebook.com/...", "https://instagram.com/..."],
"email": "info@example.com",
"faxNumber": "+31-20-1234568",
"areaServed": "Amsterdam",
"founder": "Naam van oprichter",
"foundingDate": "2010",
"department": [...]
}
Complete implementatie voorbeeld
Multi-page implementatie
Homepagina:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"@id": "https://www.example.com/#organization",
"name": "Tandartspraktijk De Liefde",
"url": "https://www.example.com",
"logo": "https://www.example.com/logo.png",
"image": "https://www.example.com/office.jpg",
"description": "Tandartspraktijk in Amsterdam West met meer dan 20 jaar ervaring.",
"telephone": "+31-20-1234567",
"email": "info@example.com",
"address": {
"@type": "PostalAddress",
"streetAddress": "Jan van Galenstraat 123",
"addressLocality": "Amsterdam",
"addressRegion": "Noord-Holland",
"postalCode": "1051AB",
"addressCountry": "NL"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 52.1234,
"longitude": 4.5678
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"opens": "09:00",
"closes": "17:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "09:00",
"closes": "13:00"
}
],
"priceRange": "€€€",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "150"
},
"areaServed": [
{
"@type": "City",
"name": "Amsterdam"
},
{
"@type": "City",
"name": "Amstelveen"
}
],
"sameAs": [
"https://www.facebook.com/example",
"https://www.instagram.com/example",
"https://www.linkedin.com/company/example"
]
}
</script>
Locatiepagina:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Dentist",
"parentOrganization": {
"@id": "https://www.example.com/#organization"
},
"name": "Tandartspraktijk De Liefde - Amsterdam West",
"image": "https://www.example.com/amsterdam-west.jpg",
"telephone": "+31-20-1234567",
"address": {
"@type": "PostalAddress",
"streetAddress": "Jan van Galenstraat 123",
"addressLocality": "Amsterdam",
"addressRegion": "Noord-Holland",
"postalCode": "1051AB",
"addressCountry": "NL"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 52.1234,
"longitude": 4.5678
},
"openingHoursSpecification": [...],
"areaServed": {
"@type": "City",
"name": "Amsterdam"
}
}
</script>
Advanced schema implementaties
1. BreadcrumbList schema
Voor navigatie:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.example.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "Locaties",
"item": "https://www.example.com/locaties"
},
{
"@type": "ListItem",
"position": 3,
"name": "Amsterdam"
}
]
}
</script>
2. Review schema
Voor testimonials:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Tandartspraktijk De Liefde",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "150",
"bestRating": "5",
"worstRating": "1"
},
"review": [
{
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5"
},
"author": {
"@type": "Person",
"name": "Maria S."
},
"reviewBody": "Geweldige tandarts! Heel professioneel en vriendelijk team."
}
]
}
</script>
3. FAQ schema
Voor veelgestelde vragen:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Wat zijn jullie openingstijden?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Wij zijn maandag t/m vrijdag geopend van 09:00 tot 17:00 uur. Op zaterdag zijn we open van 09:00 tot 13:00 uur."
}
},
{
"@type": "Question",
"name": "Moet ik reserveren?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Ja, wij werken op afspraak. U kunt online een afspraak maken of ons bellen op 020-1234567."
}
}
]
}
</script>
4. Product/Service schema
Voor diensten:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Algemene tandheelkunde",
"description": "Complete tandheelkundige zorg voor het hele gezin",
"provider": {
"@type": "Dentist",
"name": "Tandartspraktijk De Liefde"
},
"areaServed": {
"@type": "City",
"name": "Amsterdam"
},
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Tandheelkundige diensten",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Tandartscontrole"
},
"price": "40.00",
"priceCurrency": "EUR"
}
]
}
}
</script>
Schema markup tools
Generatoren
Online tools:
Validators
Test je schema:
WordPress plugins
Voor WP gebruikers:
- Schema Pro
- Yoast SEO (incl. schema)
- All in One SEO
- Schema App Structured Data
Best practices
✅ DO's
-
Gebruik JSON-LD formaat
- Google's preferred format
- Makkelijk te implementeren
- Separate van HTML
-
Wees specifiek
- Use most specific type
- Include all relevant fields
- Add detailed descriptions
-
Houd data up-to-date
- Update openingstijden
- Refresh contactgegevens
- Sync met website content
-
Valideer regelmatig
- Test na updates
- Check Search Console
- Monitor voor errors
-
Implementatie op alle relevante pagina's
- Homepagina
- Locatiepagina's
- Contactpagina
- Product/dienst pagina's
❌ DON'Ts
-
Don't mislead Google
- Geen valse informatie
- Geen spammy keywords
- Accurate data only
-
Don't create duplicate schema
- Eén schema per entity
- Geen redundantie
- Unique @id voor elke
-
Don't forget required fields
- Name en address zijn verplicht
- Telefoon sterk aanbevolen
- Missing fields = errors
-
Don't use outdated types
- Check schema.org for updates
- Deprecate old fields
- Use current standards
-
Don't over-optimize
- Natural language in descriptions
- Geen keyword stuffing
- Focus op accuracy
Implementatie workflow
Stap 1: Inventory
Wat te documenteren:
- Business name, address, phone (NAP)
- Openingstijden
- Services/products
- Reviews (average, count)
- Social media links
- GPS coördinaten
Stap 2: Create schema
Gebruik templates of generator:
- Select appropriate type
- Fill in all required fields
- Add recommended fields
- Validate syntax
Stap 3: Implement
Voeg toe aan HTML:
<head>
<!-- Other meta tags -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
...
}
</script>
</head>
Stap 4: Test
Validation checklist:
- [ ] Rich Results Test
- [ ] Schema Validator
- [ ] Search Console check
- [ ] Manual SERP inspection
Stap 5: Monitor
Ongoing checks:
- Search Console errors
- Rich search appearance
- Performance tracking
- Competitor analysis
Veelgemaakte fouten
❌ Fout 1: Verkeerde business type
Probleem: Generic "LocalBusiness" instead of specific type Oplossing: Use most specific type (Dentist, Restaurant, etc.)
❌ Fout 2: Ontbrekende required fields
Probleem: Missing name, address, or phone Oplossing: Include all required fields
❌ Fout 3: Inconsistent NAP
Probleem: Schema anders dan Google Business Profile Oplossing: Exact match between all platforms
❌ Fout 4: Geen validatie
Probleem: Syntax errors in JSON-LD Oplossing: Always validate before deploying
❌ Fout 5: Verouderde data
Probleem: Old openingstijden, address, etc. Oplossing: Update schema when business info changes
Conclusie
Schema markup is een krachtige tool voor lokale SEO:
- ✅ Rich snippets in zoekresultaten
- ✅ Better understanding door Google
- ✅ Enhanced search results
- ✅ Higher click-through rates
- ✅ Improved local ranking
Sleutel tot succes:
- Use JSON-LD format
- Be specific met business type
- Include alle relevante velden
- Validate regelmatig
- Houd data up-to-date
Start de GroeiScan om te zien hoe je schema markup scoort.
Lees verder:
