J'ai implémenté du balisage structuré sur des dizaines de sites de cabinets juridiques au cours des dernières années, et le schéma est toujours le même : le développeur du cabinet (ou pire, leur « gars SEO ») n'a rien fait, ou a simplement collé du schéma auto-généré par Yoast qui ne fait qu'effleurer la surface. Pendant ce temps, le cabinet concurrent au coin de la rue obtient des résultats enrichis FAQ, des données de panneau de connaissances, et se fait citer par les outils de recherche IA — tout simplement parce qu'ils ont pris le temps d'écrire du JSON-LD approprié.

Ce guide est celui que j'aurais aimé avoir quand j'ai commencé. Nous couvrirons chaque type de schéma qui importe pour les cabinets juridiques — LegalService, Attorney, FAQPage, Organization, et comment ils se connectent tous — avec du JSON-LD réel, prêt pour la production, que vous pouvez adapter et déployer aujourd'hui.

Table des matières

Schema Markup for Law Firms: Complete JSON-LD Guide (2026)

Pourquoi le balisage structuré importe pour les cabinets juridiques en 2026

Soyons directs : le balisage structuré ne classera pas magiquement votre site. Ce n'est pas un facteur de classement au sens traditionnel. Mais il fait trois choses qui se composent au fil du temps :

  1. Résultats enrichis dans les SERP. Dropdowns FAQ, évaluations par étoiles, détails commerciaux — ceux-ci occupent plus d'espace à l'écran et augmentent les taux de clics. Les données d'une étude Milestone Research 2025 ont montré que les pages avec données structurées obtiennent 40-50 % de CTR plus élevé que celles sans.

  2. Citations de recherche IA. Google AI Overviews, Bing Copilot, Perplexity et ChatGPT search analysent tous les données structurées pour comprendre les entités. Si vous voulez que votre cabinet soit cité quand quelqu'un demande « meilleur avocat en dommages corporels à Austin », le schéma aide ces systèmes à comprendre qui vous êtes, ce que vous faites et où vous êtes situé.

  3. Éligibilité au panneau de connaissances. Le Knowledge Graph de Google s'appuie fortement sur les données structurées. Un cabinet juridique correctement balisé avec des liens sameAs cohérents a beaucoup plus de chances de déclencher un panneau de connaissances de marque.

Pour les cabinets juridiques spécifiquement, les enjeux sont élevés. Les mots-clés juridiques sont parmi les plus chers en recherche payante (50-150 $ + par clic pour les domaines de pratique compétitifs). Tout ce que vous pouvez faire pour améliorer la visibilité organique vaut le temps d'ingénierie.

JSON-LD vs Microdata : Choisir le bon format

Réponse courte : utilisez JSON-LD. Toujours.

Google recommande explicitement JSON-LD. C'est plus facile à maintenir, ne pollue pas votre balisage HTML, et peut être injecté dynamiquement via des balises <script>. Microdata vous oblige à ajouter des attributs directement à vos éléments HTML, ce qui devient rapidement désordonné — surtout si vous travaillez avec un CMS headless comme Sanity, Contentful ou Storyblok où le contenu et la présentation sont découplés.

Fonctionnalité JSON-LD Microdata RDFa
Recommandé par Google ✅ Oui ⚠️ Supporté ⚠️ Supporté
Séparé du HTML ✅ Oui ❌ Non ❌ Non
Facile à maintenir ✅ Oui ❌ Désordonné ❌ Désordonné
Fonctionne avec CMS headless ✅ Parfait ⚠️ Possible ⚠️ Possible
Compatibilité recherche IA ✅ Excellente ✅ Bonne ✅ Bonne
Injection dynamique ✅ Triviale ❌ Nécessite changements DOM ❌ Nécessite changements DOM

Si vous construisez avec Next.js ou Astro (ce que nous faisons beaucoup chez Social Animal — voir nos capacités développement Next.js et développement Astro), JSON-LD est particulièrement propre. Vous le générez comme un objet JavaScript et le versez dans une balise <script type="application/ld+json"> dans le <head>.

Schéma LegalService : La fondation

LegalService est le type schema.org spécifiquement conçu pour les cabinets juridiques et les pratiques juridiques. C'est un sous-type de LocalBusiness, ce qui signifie qu'il hérite de toutes les propriétés des entreprises locales — adresse, téléphone, heures — plus vous pouvez spécifier des détails spécifiques aux domaines juridiques.

Voici un exemple prêt pour la production :

{
  "@context": "https://schema.org",
  "@type": "LegalService",
  "@id": "https://www.smithlawfirm.com/#organization",
  "name": "Smith & Associates Law Firm",
  "alternateName": "Smith Law",
  "url": "https://www.smithlawfirm.com",
  "logo": {
    "@type": "ImageObject",
    "url": "https://www.smithlawfirm.com/images/logo.png",
    "width": 600,
    "height": 200
  },
  "image": "https://www.smithlawfirm.com/images/office-exterior.jpg",
  "description": "Smith & Associates provides personal injury, family law, and estate planning legal services in Austin, Texas.",
  "telephone": "+1-512-555-0199",
  "email": "contact@smithlawfirm.com",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "456 Congress Avenue, Suite 300",
    "addressLocality": "Austin",
    "addressRegion": "TX",
    "postalCode": "78701",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 30.2672,
    "longitude": -97.7431
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "08:00",
      "closes": "18:00"
    }
  ],
  "priceRange": "$$",
  "areaServed": {
    "@type": "City",
    "name": "Austin",
    "sameAs": "https://en.wikipedia.org/wiki/Austin,_Texas"
  },
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "Legal Services",
    "itemListElement": [
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Personal Injury Representation",
          "description": "Legal representation for car accidents, slip and fall, and workplace injuries."
        }
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Family Law",
          "description": "Divorce, child custody, and prenuptial agreement services."
        }
      }
    ]
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "127",
    "bestRating": "5"
  },
  "sameAs": [
    "https://www.facebook.com/SmithLawAustin",
    "https://www.linkedin.com/company/smith-law-austin",
    "https://www.avvo.com/attorneys/smith-associates.html"
  ]
}

Propriétés clés à ne pas oublier

  • @id : C'est crucial pour connecter les schémas ensemble. Pensez-y comme un identifiant unique que d'autres blocs de schéma peuvent référencer.
  • geo : Google l'utilise pour les résultats du pack local. Ne le sautez pas.
  • areaServed : Si vous servez plusieurs villes ou comtés, listez-les tous. Utilisez GeoCircle pour les zones de service basées sur un rayon.
  • hasOfferCatalog : C'est comment vous énumérez vos domaines de pratique comme services. Chaque page de domaine de pratique devrait idéalement avoir son propre schéma Service aussi.
  • sameAs : Incluez votre Avvo, Justia, FindLaw, LinkedIn, Facebook — tout profil autoritaire. Cela aide Google à connecter les points pour votre panneau de connaissances.
  • aggregateRating : Incluez ceci uniquement si vous tirez des avis légitimes de première partie. Les directives de Google sont strictes ici — ne fabriquez pas d'évaluations.

Schema Markup for Law Firms: Complete JSON-LD Guide (2026) - architecture

Schéma Attorney avec balisage Person

Chaque avocat de votre cabinet devrait avoir un schéma Person sur sa page biographique. C'est là que E-E-A-T a vraiment un impact — vous dites explicitement aux moteurs de recherche les qualifications, les admissions au barreau, l'éducation et l'expertise.

{
  "@context": "https://schema.org",
  "@type": "Person",
  "@id": "https://www.smithlawfirm.com/attorneys/jane-smith/#person",
  "name": "Jane Smith",
  "jobTitle": "Managing Partner",
  "url": "https://www.smithlawfirm.com/attorneys/jane-smith",
  "image": "https://www.smithlawfirm.com/images/attorneys/jane-smith.jpg",
  "description": "Jane Smith is a personal injury attorney in Austin, TX with over 15 years of experience and a track record of $50M+ in settlements.",
  "telephone": "+1-512-555-0200",
  "email": "jane@smithlawfirm.com",
  "worksFor": {
    "@id": "https://www.smithlawfirm.com/#organization"
  },
  "alumniOf": [
    {
      "@type": "CollegeOrUniversity",
      "name": "University of Texas School of Law",
      "sameAs": "https://law.utexas.edu"
    }
  ],
  "hasCredential": [
    {
      "@type": "EducationalOccupationalCredential",
      "credentialCategory": "Bar Admission",
      "recognizedBy": {
        "@type": "Organization",
        "name": "State Bar of Texas"
      }
    }
  ],
  "knowsAbout": [
    "Personal Injury Law",
    "Car Accident Claims",
    "Wrongful Death",
    "Premises Liability"
  ],
  "sameAs": [
    "https://www.linkedin.com/in/janesmith-attorney",
    "https://www.avvo.com/attorneys/jane-smith.html",
    "https://www.martindale.com/jane-smith"
  ]
}

Pourquoi les références `worksFor` importent

Voyez cette propriété worksFor ? Elle utilise le @id du schéma LegalService. C'est comme vous construisez un graphe connecté — Google comprend que Jane Smith travaille chez Smith & Associates, qui est un fournisseur de services juridiques à Austin. Ces connexions renforcent les deux entités.

La propriété hasCredential est relativement nouvelle mais de plus en plus importante. Admissions au barreau, certifications de conseil, désignations Super Lawyers — balisez-les toutes. Les systèmes de recherche IA aiment ce genre de données de credential vérifiables.

Schéma FAQPage pour les domaines de pratique

Le schéma FAQ a eu une histoire turbulente. Google a réduit la visibilité des résultats enrichis FAQ en août 2023, les limitant principalement aux sites gouvernementaux et de santé autoritaires. Mais voici la chose — le schéma FAQPage importe toujours en 2026 pour deux raisons :

  1. Analyse de recherche IA. Les LLM consomment activement les données structurées FAQ lors de la génération de réponses. Perplexity et Google AI Overviews citent tous deux le contenu FAQ.
  2. Bing et autres moteurs. Bing affiche toujours les résultats enrichis FAQ plus libéralement que Google.

Pour chaque page de domaine de pratique, vous devriez avoir une section FAQ pertinente avec un schéma correspondant :

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How much does a personal injury lawyer cost in Austin?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Most personal injury attorneys in Austin work on a contingency fee basis, meaning you pay nothing upfront. The standard contingency fee ranges from 33% to 40% of the settlement or verdict amount. If you don't win, you don't pay attorney fees."
      }
    },
    {
      "@type": "Question",
      "name": "What is the statute of limitations for personal injury in Texas?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "In Texas, you generally have two years from the date of the injury to file a personal injury lawsuit. There are exceptions for minors, government entities, and cases where the injury wasn't immediately discovered. Consulting an attorney promptly is critical to preserve your rights."
      }
    },
    {
      "@type": "Question",
      "name": "How long does a personal injury case take to settle?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Most personal injury cases in Texas settle within 6 to 18 months. Simpler cases like fender-benders with clear liability may resolve in a few months. Complex cases involving catastrophic injuries or disputed fault can take 2-3 years or longer if they go to trial."
      }
    }
  ]
}

Règles critiques de FAQPage

  • Le contenu doit apparaître sur la page. Les directives de Google sont explicites : votre balisage FAQ doit correspondre au contenu visible sur la page. N'ajoutez pas de schéma FAQ pour des questions qui n'existent que dans le JSON-LD.
  • Gardez les réponses concises. Deux à trois phrases par réponse se comportent le mieux. Si vous devez expliquer quelque chose de complexe, établissez un lien vers une page dédiée.
  • Utilisez des questions réelles. Tirez de vos données Google Search Console, des boîtes « Les gens demandent aussi » et des conversations d'accueil client réelles. Ne fabriquez pas de questions que personne ne pose.
  • Limitez à 5-10 par page. Plus que cela et vous diluez la pertinence.

Schéma Organization : Tout rassembler

Si votre cabinet a plusieurs bureaux, vous voudrez un schéma Organization sur votre page d'accueil qui agit comme entité parent, avec des schémas LegalService individuels pour chaque emplacement.

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://www.smithlawfirm.com/#organization",
  "name": "Smith & Associates Law Firm",
  "url": "https://www.smithlawfirm.com",
  "logo": "https://www.smithlawfirm.com/images/logo.png",
  "foundingDate": "2008",
  "founder": {
    "@id": "https://www.smithlawfirm.com/attorneys/jane-smith/#person"
  },
  "numberOfEmployees": {
    "@type": "QuantitativeValue",
    "value": 25
  },
  "subOrganization": [
    {
      "@type": "LegalService",
      "name": "Smith & Associates - Austin Office",
      "url": "https://www.smithlawfirm.com/locations/austin"
    },
    {
      "@type": "LegalService",
      "name": "Smith & Associates - San Antonio Office",
      "url": "https://www.smithlawfirm.com/locations/san-antonio"
    }
  ],
  "sameAs": [
    "https://www.facebook.com/SmithLawAustin",
    "https://www.linkedin.com/company/smith-law-austin",
    "https://twitter.com/SmithLawATX"
  ]
}

Construire un graphe de schéma connecté

C'est là que la plupart des sites de cabinets juridiques échouent. Ils ont des blobs de schéma déconnectés — un peu de LocalBusiness ici, une Person là — mais rien n'est lié ensemble. La documentation de Google parle de « réconciliation d'entités », ce qui est essentiellement comment elle découvre que tous ces morceaux de données font référence aux mêmes entités du monde réel.

La propriété @id est votre outil pour cela. Voici comment le graphe devrait se connecter :

Page Type de schéma Références
Page d'accueil Organization + WebSite @id pour l'org
Pages de localisation LegalService parentOrganization → org @id
Bios d'avocats Person worksFor → org @id
Pages de domaines de pratique Service + FAQPage provider → org @id
Articles de blog Article author → person @id, publisher → org @id
Page de contact ContactPoint Imbriqué dans org ou LegalService

Voici un exemple rapide de comment une page de domaine de pratique se relie :

{
  "@context": "https://schema.org",
  "@type": "Service",
  "name": "Personal Injury Representation",
  "serviceType": "Personal Injury Law",
  "provider": {
    "@id": "https://www.smithlawfirm.com/#organization"
  },
  "areaServed": {
    "@type": "State",
    "name": "Texas"
  },
  "description": "Legal representation for car accidents, truck accidents, workplace injuries, and wrongful death claims throughout Texas.",
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "Personal Injury Services",
    "itemListElement": [
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Car Accident Claims"
        }
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Truck Accident Claims"
        }
      }
    ]
  }
}

Où placer JSON-LD dans vos modèles

JSON-LD va dans une balise <script type="application/ld+json">. Vous pouvez la placer dans le <head> ou juste avant la balise de fermeture </body> — Google ne se soucie pas de la position, mais je préfère <head> pour la santé organisationnelle.

Si vous travaillez avec un CMS headless et un framework comme Next.js ou Astro, vous voudrez générer le schéma dynamiquement à partir de vos données CMS. Voici un exemple Next.js simplifié :

// components/LegalServiceSchema.tsx
export function LegalServiceSchema({ firm }) {
  const schema = {
    "@context": "https://schema.org",
    "@type": "LegalService",
    "@id": `${firm.url}/#organization`,
    "name": firm.name,
    "url": firm.url,
    "telephone": firm.phone,
    "address": {
      "@type": "PostalAddress",
      "streetAddress": firm.address.street,
      "addressLocality": firm.address.city,
      "addressRegion": firm.address.state,
      "postalCode": firm.address.zip,
      "addressCountry": "US"
    }
  };

  return (
    <script
      type="application/ld+json"
      dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
    />
  );
}

Ce modèle fonctionne magnifiquement quand votre contenu réside dans un CMS headless. Le schéma reste synchronisé avec vos données automatiquement — pas de mises à jour manuelles quand le numéro de téléphone change. Si vous êtes intéressé par cette approche, nous construisons régulièrement ces types de systèmes avec notre travail développement CMS headless.

Validation et test

Avant de pousser quoi que ce soit en direct, testez-le. Chaque fois. Voici les outils que j'utilise réellement :

Outil URL Ce qu'il fait
Google Rich Results Test search.google.com/test/rich-results Montre quels résultats enrichis votre page est admissible
Schema Markup Validator validator.schema.org Valide contre la spécification complète schema.org (plus strict que Google)
Google Search Console search.google.com/search-console Affiche les erreurs et avertissements après déploiement
Merkle Schema Markup Generator technicalseo.com/tools/schema-markup-generator Bon pour générer le balisage initial

Mon flux de travail :

  1. Écrire le JSON-LD manuellement ou le générer à partir de données CMS
  2. Valider avec le validateur schema.org en premier (captures les problèmes structurels)
  3. Tester avec Google Rich Results Test (confirme que Google l'analysera)
  4. Déployer et monitorer le rapport « Enhancements » de Search Console pendant 2-4 semaines
  5. Vérifier si les résultats enrichis apparaissent réellement dans les SERP en utilisant les recherches site:yourdomain.com

Erreurs courantes qui détruisent vos résultats enrichis

J'ai débogué assez de schémas de cabinets juridiques pour avoir une liste de succès des erreurs :

Balisage invisible. Vous ajoutez un schéma FAQ mais les questions et réponses ne sont pas visibles sur la page. Google dit explicitement que les données structurées doivent refléter le contenu visible de la page. Violez ceci et vous risquez une action manuelle.

Avis faux ou auto-publiés. Ajouter AggregateRating avec des avis qui n'existent que sur votre propre site — non tirés du Google Business Profile, Avvo ou d'une autre partie tierce — viole les directives de Google pour les snippets d'avis. Ils ont sévèrement réprimé cela en 2024 et cela n'a pas assouplir.

Schémas dupliqués à partir de plugins. Vous installez Yoast ou Rank Math, qui génère automatiquement le schéma Organization. Puis vous (ou votre développeur) ajoutez aussi du JSON-LD personnalisé. Maintenant Google voit deux blocs Organization conflictuels. Choisissez une source de vérité.

Références manquantes @id. Sans propriétés @id, vos blocs de schéma sont des îles. Google ne peut pas connecter vos avocats à votre cabinet, vos services à vos emplacements. Utilisez toujours @id et référencez-le avec {"@id": "..."} dans les schémas connexes.

Données obsolètes. Votre bureau a déménagé il y a six mois mais le schéma a toujours l'ancienne adresse. Ou un avocat a quitté le cabinet mais son schéma Person est toujours en direct. Traitez le schéma comme du code — il a besoin de maintenance.

Utilisation de Attorney comme type de schéma. C'est une confusion courante. Schema.org n'a pas de type Attorney. Il n'y a pas de @type: "Attorney". Utilisez Person avec un jobTitle de « Attorney » et connectez-le à votre LegalService via worksFor. Certains plugins se trompent là-dessus.

FAQ

Quels types de schéma chaque site de cabinet juridique devrait-il avoir ?

Au minimum, vous avez besoin de LegalService (ou Organization avec sous-types LegalService) sur votre page d'accueil, Person sur chaque page bio d'avocat, et FAQPage sur les pages de domaines de pratique. Si vous publiez du contenu de blog, ajoutez le schéma Article avec des références author appropriées. Pour les cabinets avec plusieurs emplacements, chaque bureau a besoin de son propre bloc LegalService avec des détails spécifiques à la localisation.

Le schéma FAQPage fonctionne-t-il toujours pour les résultats enrichis en 2026 ?

Google a considérablement réduit la visibilité des résultats enrichis FAQ en août 2023, les affichant principalement pour les sites d'autorité gouvernementale et de santé. Cependant, le schéma FAQ reste précieux pour les systèmes de recherche IA comme Google AI Overviews, Bing Copilot et Perplexity, qui analysent activement les données FAQ structurées lors de la génération de réponses. Cela vaut toujours la peine d'implémenter.

Existe-t-il un type de schéma spécifiquement pour les avocats ?

Non. Schema.org n'a pas de type Attorney. L'approche correcte est d'utiliser Person avec des propriétés comme jobTitle défini sur « Attorney » ou « Partner », hasCredential pour les admissions au barreau, et worksFor référençant votre schéma LegalService ou Organization. Certains plugins SEO utilisent incorrectement Attorney — évitez-les ou remplacez la sortie.

Comment gérer plusieurs domaines de pratique dans le balisage de schéma ?

Chaque page de domaine de pratique devrait avoir son propre schéma Service avec une référence provider remontant à votre @id du cabinet. Sur votre page d'accueil ou page des services principaux, utilisez un hasOfferCatalog avec un OfferCatalog listant chaque service. Cela crée à la fois des signaux au niveau des pages individuelles et un aperçu au niveau du cabinet.

Le balisage de schéma peut-il aider mon cabinet juridique à apparaître dans Google AI Overviews ?

Oui. Google AI Overviews et autres outils de recherche IA utilisent les données structurées comme signal lors de la sélection de sources pour les réponses générées. Un graphe de schéma bien connecté — avec LegalService, Person, FAQPage et des liens sameAs appropriés — aide les systèmes IA à comprendre l'autorité, la localisation et les spécialisations de votre cabinet. Ce n'est pas le seul facteur, mais c'est un facteur de plus en plus important.

Dois-je utiliser un plugin de schéma ou écrire JSON-LD manuellement ?

Cela dépend de votre plateforme et de votre confort technique. Pour WordPress, des plugins comme Rank Math ou Schema Pro peuvent gérer les bases. Mais pour les cabinets juridiques, les valeurs par défaut sont rarement suffisantes — vous devrez personnaliser la sortie pour LegalService, les qualifications d'avocat et les services de domaine de pratique. Si vous êtes sur un CMS headless avec Next.js ou Astro, générer JSON-LD par programme à partir de vos données CMS est l'approche la plus propre. Nous aidons les cabinets à mettre cela en place via nos services de développement CMS headless.

Combien de temps faut-il pour que le balisage de schéma montre des résultats ?

Après le déploiement de données structurées valides, Google les traite généralement dans 2-4 semaines, bien que cela puisse prendre plus longtemps. Vous verrez d'abord le schéma détecté dans le rapport « Enhancements » de Search Console. Les résultats enrichis (s'ils sont admissibles) peuvent prendre quelques semaines supplémentaires pour apparaître. Les améliorations de citation de recherche IA sont plus difficiles à mesurer et peuvent prendre 1-3 mois pour devenir notables.

Quelle est la relation entre le balisage de schéma et E-E-A-T ?

Le balisage de schéma est l'un des moyens les plus directs de signaler E-E-A-T (Expérience, Expertise, Autorité, Fiabilité) aux moteurs de recherche. Les schémas Person avec hasCredential démontrent l'expertise. Les schémas AggregateRating et Review signalent la fiabilité. Les liens sameAs vers les répertoires juridiques autoritaires renforcent l'autorité. Les directives des évaluateurs de qualité de Google ne mentionnent pas explicitement le schéma, mais les données que vous encodez correspondent directement à ce que les évaluateurs de qualité évaluent.