Schema markup LocalBusiness : la dernière couche d'optimisation locale en 2026
Le Schema markup est un balisage structuré (vocabulaire schema.org) que Google lit pour comprendre précisément ce que représente une page : entreprise, produit, événement, FAQ, recette, article. Sur le SEO local, le type LocalBusiness et ses 80+ sous-types (Restaurant, Dentist, Plumber, Store, Hotel...) sont la fondation des rich snippets (étoiles, prix, horaires, photos enrichies dans la SERP).
Format recommandé Google 2026 : JSON-LD (JavaScript Object Notation for Linked Data), injecté dans le de la page via . Plus simple à maintenir que microdata ou RDFa.
Sur 100 sites PME Dakar audités en mai 2026 : 64 % n'ont AUCUN Schema markup. Sur les 36 % qui en ont, 19 % ont des erreurs critiques détectées par le Rich Results Test Google.
H2 : Les 12 propriétés essentielles LocalBusiness
| Propriété | Type | Obligatoire | Exemple Sénégal |
|---|---|---|---|
| @type | Texte | Oui | "Restaurant" |
| name | Texte | Oui | "Le Baobab Dakar" |
| image | URL | Oui (recommandé) | "https://lebaobab.sn/photos/facade.jpg" |
| @id | URL | Recommandé | "https://lebaobab.sn/#localbusiness" |
| url | URL | Oui | "https://lebaobab.sn" |
| telephone | Texte | Oui | "+221775969333" |
| address | PostalAddress | Oui | Voir snippet |
| geo | GeoCoordinates | Recommandé | latitude/longitude |
| openingHoursSpecification | Tableau | Oui | Voir snippet |
| priceRange | Texte | Recommandé | "$$" (4 niveaux) |
| sameAs | Tableau URL | Recommandé | Liens vers FB, IG, GBP |
| aggregateRating | Object | Recommandé si reviews | ratingValue + reviewCount |
H2 : Code snippet de base — Restaurant Dakar
`json
{
"@context": "https://schema.org",
"@type": "Restaurant",
"@id": "https://lebaobab.sn/#localbusiness",
"name": "Le Baobab Dakar",
"image": [
"https://lebaobab.sn/photos/facade.jpg",
"https://lebaobab.sn/photos/salle.jpg",
"https://lebaobab.sn/photos/plat-signature.jpg"
],
"url": "https://lebaobab.sn",
"telephone": "+221775969333",
"priceRange": "$$",
"servesCuisine": ["Sénégalaise", "Africaine", "Fusion"],
"address": {
"@type": "PostalAddress",
"streetAddress": "Route des Almadies, Lot N° 12",
"addressLocality": "Dakar",
"addressRegion": "Dakar",
"postalCode": "BP 12345",
"addressCountry": "SN"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 14.7449,
"longitude": -17.5269
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Sunday"],
"opens": "12:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Friday","Saturday"],
"opens": "12:00",
"closes": "01:00"
}
],
"sameAs": [
"https://www.facebook.com/LeBaobabDakar",
"https://www.instagram.com/lebaobabdakar",
"https://www.tripadvisor.com/Restaurant_Review-LeBaobab",
"https://g.page/lebaobabdakar"
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "342"
},
"hasMenu": "https://lebaobab.sn/menu"
Besoin d'un site web professionnel ?
Kolonell crée des sites web qui attirent des clients, optimisés pour le marché sénégalais. Devis gratuit en 2 minutes.
}
`
H2 : Variantes par niche — 8 snippets prêts à copier
Dentist (clinique dentaire)
@type : "Dentist". Ajouter medicalSpecialty : "Dentistry", hasMap (lien GBP), acceptsReservations : true. Pas de servesCuisine ni hasMenu.
Plumber (plombier)
@type : "Plumber". Ajouter areaServed : tableau de villes (Dakar, Almadies, Plateau, Médina), availableLanguage (français, wolof, anglais), hoursAvailable (24h/24 si urgence).
LodgingBusiness (Hotel)
@type : "Hotel". Ajouter starRating (object avec ratingValue), amenityFeature (tableau : "WiFi gratuit", "Piscine", "Restaurant", "Climatisation"), checkinTime, checkoutTime, numberOfRooms.
Store (boutique mode/électronique)
@type : "Store" ou "ClothingStore" ou "ElectronicsStore". Ajouter paymentAccepted ("Cash, Wave, Orange Money, Carte Bancaire, Wire Transfer"), currenciesAccepted ("XOF, EUR, USD").
AutomotiveBusiness (garage auto)
@type : "AutoRepair" ou "AutomotiveBusiness". Ajouter makesOffer (tableau : "Vidange", "Diagnostic OBD2", "Pneumatique"), brand (marques traitées Toyota, Renault, Hyundai...).
Pharmacy
@type : "Pharmacy". Ajouter medicalSpecialty : "Pharmacy", hoursAvailable (24h/24 si garde), availableService : "Home delivery".
MedicalClinic (cabinet médical)
@type : "MedicalClinic". Ajouter medicalSpecialty (Cardiology, Pediatrics, etc.), physician (tableau Person), healthPlanNetworkId si conventionné.
EducationalOrganization (école / centre formation)
@type : "EducationalOrganization" ou "School" ou "CollegeOrUniversity". Ajouter alumni (Person), hasCourse (tableau Course), numberOfStudents.
H2 : Où placer le JSON-LD dans Next.js 14
Pour un projet Next.js 14 App Router (stack Kolonell) :
`tsx
// src/app/[locale]/restaurant/[slug]/page.tsx
export default function RestaurantPage({ params }) {
const restaurant = getRestaurant(params.slug);
const jsonLd = {
"@context": "https://schema.org",
"@type": "Restaurant",
"name": restaurant.name,
// ... reste des propriétés
};
return (
<>
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
/>
{/* reste de la page */}
>
);
}
`
Pour générer dynamiquement depuis Prisma : créer un helper buildLocalBusinessSchema(business) dans src/lib/seo.ts qui retourne l'objet à sérialiser.
H2 : Validation — 3 outils incontournables
- Google Rich Results Test (search.google.com/test/rich-results) — affiche si rich snippet est éligible + erreurs. Le seul officiellement validé par Google.
- Schema.org Validator (validator.schema.org) — validation syntaxique stricte vs vocabulaire schema.org. Plus exigeant que Google.
- Search Console > Améliorations — détecte les erreurs sur les pages déjà crawlées + alerte si propriété requise manquante.
H2 : Pièges fréquents à éviter
- Téléphone sans indicatif international : "+221" obligatoire.
- Horaires en 12h au lieu de 24h : "23:00" pas "11:00 PM".
addressCountryen français : "SN" ISO-3166 pas "Sénégal".aggregateRatinginventée : violation des Guidelines Google → pénalité manuelle. Ne mettre que les vraies notes Google/TripAdvisor/Facebook.- JSON-LD dupliqué sur la même page (LocalBusiness + Organization avec mêmes infos) → conflit, Google ignore les deux.
sameAsavec liens cassés : auditer trimestriellement.
FAQ
Schema markup pèse-t-il sur le ranking ?
Indirectement. Google a confirmé que Schema seul n'est pas un facteur de ranking direct. Mais les rich snippets améliorent CTR de +15-30 % en moyenne (BrightEdge 2026), et meilleur CTR booste le ranking via signaux comportement.
JSON-LD ou microdata 2026 ?
JSON-LD obligatoire. Google déprécie progressivement microdata. Pas de raison de coder en microdata en 2026.
Combien de propriétés sameAs ?
Minimum 3 (GBP, FB, IG). Idéal 5-8 (ajouter LinkedIn, TripAdvisor, YouTube, Wave Business...). Au-delà de 12 : signal spammy.
Peut-on mettre plusieurs LocalBusiness sur un site multi-agences ?
Oui, recommandé : 1 JSON-LD distinct par page de l'agence locale (page Dakar, page Saint-Louis, page Thiès). Chaque agence a son propre @id unique.
Comment gérer les horaires spéciaux (fériés, Korité, Tabaski) ?
Propriété specialOpeningHoursSpecification avec validFrom + validThrough. Permet d'overrider openingHoursSpecification standard pour la journée concernée.
Discutons de votre cas
Si vous voulez implémenter le Schema markup LocalBusiness complet sur votre site PME Dakar (audit + génération + intégration Next.js/WordPress + validation), nous pouvons coder la solution. WhatsApp +221 77 596 93 33.
Mohamed Bah
Fondateur, Kolonell
Passionné par le digital et l'entrepreneuriat en Afrique, Mohamed accompagne les entreprises sénégalaises dans leur transformation digitale depuis 2020. Fondateur de Kolonell, il croit que chaque PME mérite une présence en ligne professionnelle et accessible.
