Rich snippets boost CTR by 35% on average for local queries, according to the SISTRIX 2026 study on 12 million SERPs. Yet 78% of Senegalese WordPress sites have no valid schema markup in 2026. Here is the complete guide to implementing a perfect LocalBusiness JSON-LD schema, validated by Google Rich Results Test.
TL;DR
- Format recommended by Google 2026: JSON-LD in HTML head
- Mandatory LocalBusiness type + precise sub-type (Restaurant, Hotel, MedicalClinic)
- Critical fields: name, address, geo, openingHoursSpecification, telephone
- sameAs: link 5+ profiles (Facebook, LinkedIn, Instagram, GBP) for strong entity
- Validation: Google Rich Results Test + Schema.org Validator
Why schema markup changes everything in 2026
Schema markup is structured code (schema.org vocabulary) that tells Google the meaning of your page data. Without schema, Google guesses. With a complete LocalBusiness schema, Google can display:
- Opening hours directly in the SERP
- Review rating (gold stars) under the title
- Price range ($ to $$$$)
- Direct call button on mobile
- Embedded Google Maps card
Measured CTR impact
Our internal Kolonell data across 24 WordPress clients shows an average +47% CTR uplift on brand+local queries after implementing a complete LocalBusiness schema, measured over 90 days before/after in Google Search Console.
Google's recommended 2026 JSON-LD structure
Minimum LocalBusiness skeleton
A valid LocalBusiness schema must include:
- @context: "https://schema.org"
- @type: "LocalBusiness" or specific sub-type
- name: exact legal name
- address: structured PostalAddress
- telephone: E.164 format (+221 77 596 93 33)
- url: site canonical URL
- image: absolute URL, 1200x630 format
LocalBusiness sub-types to prioritise
Google recognises 35+ specialised sub-types. Use the most precise:
| Activity | Recommended @type | Specific fields |
|---|---|---|
| Restaurant | Restaurant | servesCuisine, menu, acceptsReservations |
| Hotel | Hotel | starRating, checkinTime, amenityFeature |
| Clinic | MedicalClinic | medicalSpecialty, availableService |
| Web agency | ProfessionalService | priceRange, areaServed |
| School | School | numberOfStudents, hasCredential |
| Lawyer | LegalService | knowsAbout, knowsLanguage |
| Store | Store | currenciesAccepted, paymentAccepted |
| Hairdresser | HairSalon | priceRange, openingHoursSpecification |
The 8 critical fields you must never forget
Field 1: structured PostalAddress
Address must be a PostalAddress object, not a string. Example for Kolonell:
- streetAddress: "12 rue Mohamed V, Plateau"
- addressLocality: "Dakar"
- addressRegion: "Dakar"
- postalCode: "11000"
- addressCountry: "SN"
Field 2: precise GeoCoordinates
Google needs latitude/longitude coordinates for the local pack. For Plateau Dakar, typical value:
- latitude: 14.6709
- longitude: -17.4309
Grab them from Google Maps: right-click on the address then "Plus Codes" or copy coordinates.
Field 3: OpeningHoursSpecification
This is the field that unlocks the opening-hours display in the SERP. Mandatory format:
- dayOfWeek: ["Monday", "Tuesday", ...]
- opens: "09:00"
- closes: "18:00"
For variable hours (Mon-Fri vs Saturday), create several OpeningHoursSpecification objects in an array.
Field 4: sameAs (entity signal)
Link your social and third-party profiles to strengthen your Knowledge Graph entity:
- Facebook Page URL
- LinkedIn Company URL
- Instagram Business URL
- Twitter/X URL
- Google Business Profile URL (g.page/...)
- Wikipedia URL if applicable
Field 5: AggregateRating (gold stars)
To display stars in the SERP, the schema must contain:
- ratingValue: 4.7
- reviewCount: 47
- bestRating: 5
- worstRating: 1
Important: these data must be truly present on the page (visible reviews), otherwise Google treats the markup as manipulative.
Field 6: priceRange
Simple format: "$$" or "1000-5000 FCFA". Affects Google Maps result filtering.
Field 7: areaServed
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
For mobile services (consultants, plumbers), define a service area:
- areaServed: { "@type": "City", "name": "Dakar" }
Allows ranking on "SEO consultant Dakar" even without a physical address downtown.
Field 8: hasMap
Direct link to your Google Maps listing: "https://maps.app.goo.gl/...". Reinforces site/GBP consistency.
Implementing schema on WordPress
Through SEO plugin (recommended method)
- RankMath: includes free LocalBusiness schema, configured in "Local SEO" tab
- Yoast SEO Premium: Local SEO add-on 79 EUR/year
- Schema Pro: 99 USD/year, 35+ schema types
- WPSSO Schema JSON-LD: 79 USD/year, technically the most complete
Manual implementation (Next.js, custom sites)
For custom sites (like kolonell.com on Next.js 14), inject JSON-LD via a React server component in the head or via next-seo JsonLd component.
Mandatory validation
After implementation, always validate on:
- Google Rich Results Test: rich-results.google.com — official Google tool
- Schema.org Validator: validator.schema.org — semantic validator
- Search Console → Enhancements → Local Business: surface errors
Most frequent schema mistakes
Mistake 1: LocalBusiness @type without sub-type
Too generic. Google cannot display specific rich snippets (hotel stars, restaurant menu). Always use the precise sub-type.
Mistake 2: address as string instead of PostalAddress
Completely breaks Google's location rendering.
Mistake 3: telephone without E.164 format
"77 596 93 33" is rejected. Always "+221 77 596 93 33" in E.164.
Mistake 4: OpeningHoursSpecification as string
Many old templates use "Mo-Fr 09:00-18:00" as plain text. Obsolete since 2020. Always as structured object.
Mistake 5: AggregateRating without visible reviews
Google penalises as soon as it detects a ratingValue without reviews shown on the page. Possible manual penalty.
FAQ
Q: Do I need schema on every page or only the homepage?
A: LocalBusiness on the homepage + contact page is enough. Add BreadcrumbList on all internal pages. For a blog, Article schema on each post.
Q: How long to see rich snippets after implementation?
A: 2 to 8 weeks depending on Google crawl frequency. Force a re-crawl through Search Console → Inspect URL → Request indexing.
Q: Does schema actually rank higher?
A: Schema is NOT a direct ranking factor according to Google. But CTR gains via rich snippets indirectly improve ranking (engagement signal).
Q: Should I pay a developer for schema?
A: For WordPress, no — free RankMath is enough. For a custom site (Next.js, React), count 50,000 to 150,000 FCFA for the initial implementation.
Conclusion: schema, the underused local SEO lever
A perfectly implemented LocalBusiness JSON-LD schema is probably the best local SEO ROI for a Senegalese SME in 2026: +35 to +47% CTR, Google validation in less than 2 months, marginal cost.
At Kolonell, we implement and validate your LocalBusiness schema in 3 business days (audit + code + Rich Results Test) for 120,000 FCFA. Request a free audit of your current schema or reach us on WhatsApp +221 77 596 93 33.
Mohamed Bah
Fondateur, Kolonell
Passionate about digital and entrepreneurship in Africa, Mohamed has been helping Sénégalese businesses with their digital transformation since 2020. Founder of Kolonell, he believes every SME deserves a professional and accessible online présence.

