Schema.org est le vocabulaire commun que Google, Bing, Yandex et tous les moteurs de recherche utilisent pour comprendre votre site. Pour une agence web ou digitale, c'est l'occasion d'afficher des rich snippets (étoiles, FAQ, fil d'Ariane, événements) qui font la différence dans les résultats de recherche — gain CTR mesurable de 10 à 30%. Voici notre guide complet sur les balisages Schema.org qu'on déploie systématiquement chez Krealabs, avec exemples concrets et retours sur ce qui marche vraiment.
01ProfessionalService — la fondation pour agences
Le type ProfessionalService (sous-classe de LocalBusiness) est idéal pour une agence digitale. Il accepte tous les champs utiles : adresse postale, géolocalisation, services proposés, prix range, horaires, contact, zones desservies. À placer sur la home dans un script JSON-LD <type="application/ld+json">. Pour les variantes spécifiques métier, voir les sous-types : Restaurant, Dentist, AutoRepair, etc. Pour une agence web/digitale, ProfessionalService convient parfaitement. Inclure absolument knowsAbout (vos expertises) et areaServed (zones géographiques desservies).
02BreadcrumbList — fil d'Ariane visible dans Google
Sur chaque page intérieure, ajoutez un BreadcrumbList pour afficher le chemin de navigation sous le titre dans la SERP Google. Petit effort, vrai impact UX dans les SERP — l'utilisateur voit la hiérarchie de votre site, le contexte de la page. Sur un article de blog, les breadcrumbs montrent "Accueil > Blog > Catégorie > Titre article" avec liens cliquables. Mesuré sur nos sites : +5-8% de CTR après mise en place du BreadcrumbList.
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Accueil", "item": "https://krealabs.fr" },
{ "@type": "ListItem", "position": 2, "name": "Services", "item": "https://krealabs.fr/services" },
{ "@type": "ListItem", "position": 3, "name": "Développement web", "item": "https://krealabs.fr/services/developpement-web" }
]
}03FAQPage — réponses dans la SERP
Sur votre page FAQ ou les pages avec questions fréquentes, ajoutez un balisage FAQPage. Google peut afficher directement les questions/réponses sous votre résultat dans la SERP, ce qui augmente considérablement la visibilité et le CTR. Attention en 2026 : Google a restreint le FAQPage rich snippet aux sites "officiels" (gouvernement, santé) sur les requêtes très concurrentielles. Mais pour les requêtes long-tail métier ("comment fonctionne un X", "combien coûte un Y"), ça marche encore très bien. Mesurer dans Search Console : rapport Performance > comparer CTR avant/après.
{
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "Combien coûte un site WordPress sur mesure ?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Cela dépend du projet : vitrine simple 4-6k€, WooCommerce 10-20k€..."
}
}]
}04Article — pour articles de blog
Chaque article de blog doit avoir un balisage Article (ou ses sous-types : BlogPosting, NewsArticle, TechArticle). Champs obligatoires : headline, image, author (Person ou Organization), publisher (Organization avec logo), datePublished (ISO 8601), dateModified, mainEntityOfPage. Bonus : wordCount, articleSection, keywords, inLanguage. Cela permet à Google de proposer votre contenu dans Discover, Top Stories, et améliore le snippet (date, auteur affichés). On l'a implémenté sur tous les articles du blog Krealabs.
05Service — pour vos pages de services
Sur chaque page service (ex: /services/wordpress, /services/developpement-web), un Service avec serviceType, provider (votre Organization), areaServed, hasOfferCatalog. Aide Google à comprendre que vous proposez ces services concrets dans ces zones. Combiné avec ProfessionalService sur la home, ça structure clairement votre catalogue d'offres pour Google.
{
"@type": "Service",
"serviceType": "Création de site WordPress",
"provider": { "@type": "ProfessionalService", "name": "Krealabs" },
"areaServed": ["Rouen", "Normandie", "France"],
"hasOfferCatalog": {
"@type": "OfferCatalog",
"itemListElement": [
{ "@type": "Offer", "name": "Site vitrine WordPress" },
{ "@type": "Offer", "name": "WooCommerce" }
]
}
}06Person — pour pages équipe et auteurs
Sur votre page équipe (/equipe chez nous), un Person par membre avec name, jobTitle, image, sameAs (liens LinkedIn/GitHub/Twitter), knowsAbout. Sur les articles de blog, l'author dans l'Article schema peut renvoyer vers cette Person. Cela aide Google à construire la "Knowledge Graph" autour de votre équipe — les co-fondateurs et experts deviennent plus visibles dans les recherches nominatives.
07Review et AggregateRating — étoiles dans la SERP
Pour les agences avec témoignages clients, vous pouvez baliser les avis avec Review et un AggregateRating global (note moyenne, nombre d'avis). En 2026, Google est strict sur l'authenticité : pas de balisage de notes inventées, l'AggregateRating doit pointer sur une page qui affiche réellement les avis. Si fait correctement, les étoiles apparaissent dans la SERP — gain CTR souvent +15-25%. Important : vous ne pouvez baliser les avis QUE s'ils sont sur votre propre site, pas si vous compilez des avis Google externes.
08Outils de validation et debugging
Toujours valider vos balisages avant déploiement. Outils essentiels : 1) Google Rich Results Test (search.google.com/test/rich-results) — teste si Google va générer un rich snippet pour votre URL. 2) Schema.org Validator (validator.schema.org) — vérifie la conformité technique au standard. 3) Google Search Console > Améliorations — détecte les erreurs sur l'ensemble du site indexé. 4) Nodejs schema-dts pour TypeScript : typage strict des objets Schema, plus jamais de balisage cassé silencieusement.
// schema-dts pour typage strict en TypeScript
import { Person, Article, WithContext } from 'schema-dts'
const articleSchema: WithContext<Article> = {
'@context': 'https://schema.org',
'@type': 'Article',
headline: 'Mon article',
datePublished: '2026-01-15',
author: { '@type': 'Person', name: 'Maxime Dubois' }
}09Implémentation Next.js : pattern recommandé
Sur Next.js, le pattern qu'on utilise chez Krealabs : un dossier components/seo/ avec un composant par type de schema (OrganizationSchema, BreadcrumbSchema, ArticleSchema, FAQSchema). Chaque composant rend un <script type="application/ld+json"> avec les données passées en props. Insérés dans le layout ou la page concernée. Pour les types récurrents (BreadcrumbList sur toutes les pages internes), ça devient automatique. Sur WordPress, Yoast et RankMath gèrent la plupart des schemas mais on customise souvent avec du code pour des cas spécifiques (Service, Person).
Le balisage Schema.org ne demande pas de gros efforts mais offre un retour clair en visibilité Google. Si vous gérez le site vous-même, des plugins existent (Rank Math, Yoast pour WordPress, le helper officiel pour Next.js). Si vous êtes sur du custom, c'est quelques scripts à ajouter. Sur nos sites clients après mise en place complète : +10 à +30% de CTR organique en moyenne, des positions stables, des rich snippets visibles. Si vous voulez un audit du balisage Schema actuel de votre site et un plan d'enrichissement, on le fait régulièrement chez Krealabs.
Écrit par
Maxime Dubois
Co-fondateur · Krealabs
Découvrir l'équipe



