JSON-LD, the language of search engines
JSON-LD is the format recommended by Google to describe a page content in a structured way. Well implemented, it triggers rich results (rich snippets): price and ratings under a product, hours and address for a local business, expandable questions for a FAQ. These enhancements increase visibility and click-through rate.
This guide covers the three most profitable schemas in Senegal: Product for e-commerce, LocalBusiness for shops and services, FAQPage for content. For each, the required and recommended properties, the impact, and the mistakes to avoid.
Where to place JSON-LD
The markup goes in a script tag of type application/ld+json, usually in the head or at the end of the page. A page can contain several JSON-LD blocks, one per schema type.
| Rule | Detail |
|---|---|
| Format | Valid JSON inside a script ld+json tag |
| Consistency | Marked-up data must be visible on the page |
| Multiplicity | Several schemas possible per page |
| Validation | Test with Google's rich results tool |
Product schema: properties
For an e-commerce product page, here are the properties to fill in.
| Property | Status | Description |
|---|---|---|
| name | required | Product name |
| image | required | URL of at least one image |
| offers | required | Offer block with price and availability |
| offers.price | required | Numeric price |
| offers.priceCurrency | required | Currency, XOF in Senegal |
| offers.availability | recommended | InStock or OutOfStock |
| description | recommended | Product description |
| brand | recommended | Brand |
| sku | recommended | Product reference |
| aggregateRating | recommended | Average rating and review count |
| review | recommended | Individual reviews |
Impact of reviews
The aggregateRating property displays stars under the result. It is one of the enhancements that most increases click-through rate. Only mark up real reviews that are visible on the page, or risk a penalty.
LocalBusiness schema: properties
For a shop, clinic, hotel or restaurant, LocalBusiness feeds the local panel and Maps search.
| Property | Status | Description |
|---|---|---|
| name | required | Business name |
| address | required | Structured postal address |
| telephone | recommended | Contact number |
| openingHoursSpecification | recommended | Opening hours |
| geo | recommended | Latitude and longitude |
| priceRange | recommended | Price range |
| image | recommended | Photo of the business |
| url | recommended | Official site |
Specialize the type
Rather than generic LocalBusiness, use the precise subtype when one exists: Restaurant, MedicalClinic, Hotel. Google understands better and shows tailored enhancements.
FAQPage schema: properties
FAQPage turns your questions into expandable results directly in Google.
| Property | Status | Description |
|---|---|---|
| mainEntity | required | List of questions |
| Question.name | required | Question text |
| acceptedAnswer | required | Associated answer |
| acceptedAnswer.text | required | Answer text |
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
Strict rule: the content of the marked-up FAQ must be identical to what is visible on the page. A FAQ marked up but invisible is a guideline violation.
Common mistakes
| Mistake | Consequence | Fix |
|---|---|---|
| Marked-up data not visible | Rejection or penalty | Display the data on the page |
| Incorrect or missing currency | Price not shown | Set priceCurrency XOF |
| Fake reviews or invented ratings | Manual penalty | Real reviews only |
| Invalid JSON (trailing comma) | Schema ignored | Validate the syntax |
| Generic type instead of subtype | Limited enhancement | Use the precise subtype |
| Multiple FAQPage across the site | Filtering risk | One FAQPage per relevant page |
Concrete example
A shoe shop marks up its product page with a Product schema: name, image, offers at 18,000 FCFA in XOF, availability InStock, and an aggregateRating of 4.6 over 23 real reviews shown at the bottom of the page. In parallel, the home page carries a LocalBusiness schema of subtype Store with address, telephone, hours and geo. Result after indexing: the product listing shows its price and stars in the results, the business appears in the local panel. Click-through on product pages rose 14 percent.
Validation checklist
| Control | Expected status |
|---|---|
| JSON-LD valid in Google's test tool | mandatory |
| Required properties present per type | mandatory |
| Marked-up data visible on the page | mandatory |
| XOF currency on prices | mandatory |
| Precise LocalBusiness subtype | recommended |
| Real reviews only | mandatory |
FAQ
Does JSON-LD guarantee a rich snippet?
No. Correct markup makes the page eligible, but Google decides whether to show the enhancement. Valid markup and visible data maximize your chances.
Which format between JSON-LD and microdata?
JSON-LD, officially recommended by Google. It is easier to maintain because it is separate from the visible HTML.
Can I mark up reviews I invented?
Never. Fake reviews expose you to a manual penalty. Only mark up real reviews shown on the page.
Do I need a FAQPage schema on every page?
No, only on pages that actually contain a visible FAQ. Multiplying empty FAQPage exposes you to filtering.
How do I test my markup?
With Google's rich results test tool and the search console. They flag errors and missing properties per type.
Let's talk about your project. Kolonell implements the JSON-LD markup that triggers prices, stars and local panels in Google. 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.

