# Cohérence d'entité : comment j'ai recollé ma fiche Google et mon schema pour le SEO local

**Auteur:** Sebastien Chaffer  
**Publié:** 2026-06-08T22:35:23+02:00  
**URL:** https://wordpress-freelance.com/articles/seo-local-google-business/  
**Catégories:** SEO Local

---

J’ai passé une journée entière sur un truc qui ne se voit pas. Pas une refonte, pas un nouveau contenu, pas une campagne de liens. Juste à faire en sorte que Google comprenne que ma fiche Google Business Profile, mon site, et le balisage JSON-LD de ma home parlent tous de **la même entreprise**. Spoiler : ce n’était pas le cas, et ça m’a coûté en visibilité locale sans que je m’en rende compte.

Cet article, c’est le détail complet de ce que j’ai fait, dans l’ordre, avec les pièges que j’ai rencontrés. Si vous gérez votre propre fiche et un site WordPress sous Rank Math, vous allez probablement reconnaître au moins trois de vos propres erreurs là-dedans. Je les avais toutes.

 ![Fiche Google Business Profile WebStrategy : note 5 sur 5, catégorie consultant en marketing à Paris, adresse 66 rue des Couronnes 75020](https://wordpress-freelance.com/wp-content/uploads/2026/06/fiche-google.webp "Fiche Google Business Profile WebStrategy : note 5 sur 5, catégorie consultant en marketing à Paris, adresse 66 rue des Couronnes 75020")Fiche Google Business Profile WebStrategy : note 5 sur 5, catégorie consultant en marketing à Paris, adresse 66 rue des Couronnes 75020

## C’est quoi la cohérence d’entité, et pourquoi ça change tout en local

La cohérence d’entité, c’est le fait que toutes les sources qui décrivent votre entreprise — fiche Google, site visible, balisage structuré, annuaires — racontent la même histoire : même nom, même adresse, même téléphone, mêmes identifiants. Google s’en sert pour décider s’il a affaire à une entité unique et fiable, ou à plusieurs entités floues qu’il n’arrive pas à recoller.

Quand les sources divergent, Google ne sait pas qui vous êtes. Et une entité qu’il ne comprend pas mal, il la classe mal en local. C’est aussi bête que ça. Le SEO local ne récompense pas seulement la proximité géographique et les avis : il récompense la **confiance dans l’entité**. Trois noms différents pour la même boîte, c’est exactement le contraire de la confiance.

Mon cas de départ était un manuel des erreurs à ne pas faire. Ma fiche s’appelait WebStrategy. Mon site se présentait sous trois noms selon l’endroit où on regardait : « Sébastien Chaffer » dans un bloc, « WordPress Freelance » dans deux autres. Et le mot « WebStrategy » — ma vraie marque, celle de la fiche — n’apparaissait **nulle part** dans mon balisage. Google avait donc une fiche d’un côté, un site de l’autre, et aucun pont solide entre les deux.

## Partie 1 — La fiche Google Business Profile

### L’état des lieux n’était pas glorieux

Ma fiche était techniquement valide, mais sous-exploitée au point d’en être contre-productive. Le diagnostic, point par point :

La **catégorie principale** était réglée sur « Consultant informatique ». Générique, vague, déconnectée de mon métier réel qui est SEO et GEO. Or la catégorie principale est le premier facteur de classement local. Le premier. Je l’avais laissée au pifomètre depuis l’ouverture de la fiche.

Côté **avis**, j’en avais un. Un seul, noté 5 sur 5, ce qui est joli mais statistiquement inexistant. La **description** était un bloc de mots-clés collés sans ponctuation propre, du genre « Consultant SEO & GEO à Paris Creation site Internet WordPress Symfony Hébergement & maintenance ». Du keyword stuffing pur, le truc que je déconseille à mes clients et que j’avais laissé traîner chez moi. Les **photos** se limitaient au logo et une vue extérieure. Un seul **post Google**, daté du 27 mai. Et un seul profil lié, LinkedIn.

### La catégorie principale, ce premier levier qu’on néglige tous

J’ai basculé la catégorie principale de « Consultant informatique » à **« Consultant en marketing »**. Petit problème au passage : Google ne propose pas de catégorie « Consultant SEO » en français. Il faut donc choisir le libellé existant le plus proche de votre cœur de métier, et « Consultant en marketing » est ce qui colle le mieux quand on fait du SEO et du GEO. J’ai ajouté deux catégories secondaires : « Service de marketing sur Internet » et « Concepteur de sites Web ».

Un point que je note pour ne pas paniquer : changer la catégorie principale fait bouger les positions locales les premiers jours. C’est normal, Google réindexe l’entité. Il ne faut surtout pas revenir en arrière en voyant les positions trembler, sinon on relance le cycle pour rien.

### Réécrire la description comme un humain, pas comme un robot à mots-clés

J’ai tout réécrit en prose lisible. Voici le texte que j’ai déployé :

> Consultant SEO et GEO à Paris. J’aide les entreprises à rester visibles sur Google, et désormais dans les réponses des IA comme ChatGPT, Perplexity ou Gemini. Concrètement : audit et SEO technique, contenu pensé pour être cité, sites WordPress rapides qui tiennent dans le temps. Je développe aussi sur mesure en WordPress et Symfony, et je gère l’hébergement et la maintenance. 20 ans de métier, des projets menés pour de grands comptes comme pour des indépendants. Installé dans le 20e, j’interviens à Paris et à distance.

Le détail technique à retenir : les 250 premiers caractères sont les plus visibles dans l’interface, avant le « voir plus ». Donc le positionnement — SEO/GEO à Paris — passe en tête. Tout ce qui est secondaire vient après le pli.

 ![Fiche Google Business Profile WebStrategy : note 5 sur 5, catégorie consultant en marketing à Paris, adresse 66 rue des Couronnes 75020](https://wordpress-freelance.com/wp-content/uploads/2026/06/fiche-google-apropos-400x889.webp "Onglet À propos de la fiche Google : catégorie principale Consultant en marketing, description réécrite, date de création 30 septembre 2019, adresse et zone desservie France")Onglet À propos de la fiche Google : catégorie principale Consultant en marketing, description réécrite, date de création 30 septembre 2019, adresse et zone desservie France

### Vérifier le NAP avant tout le reste

NAP, c’est le trio Nom / Adresse / Téléphone. C’est la colonne vertébrale de l’identité locale. J’ai vérifié que les trois étaient strictement identiques entre la fiche et le site :

- Nom : WebStrategy
- Adresse : 66 Rue des Couronnes, 75020 Paris
- Téléphone : 06 09 75 36 55

Strictement identiques, ça veut dire au caractère près. « Rue » et « rue », « 75020 Paris » et « Paris 75020 », ce sont des divergences pour un moteur. On y reviendra dans la partie schema, parce que c’est là que ça s’est joué.

### Le lien qui soude la fiche au site

C’est l’étape la plus importante et la plus discrète. J’ai récupéré l’URL courte de ma fiche ([https://share.google/GkgEfWEvVXvWEyRq3](https://share.google/GkgEfWEvVXvWEyRq3)) et je l’ai ajoutée comme sameAs dans le balisage de mon site. Concrètement, je dis à Google : « cette fiche locale et ce site, c’est la même entité ». C’est ce lien qui transforme deux objets séparés en une seule entité reconnue.

### Ce qu’il me reste à faire sur la fiche

Trois chantiers que je n’ai pas pu boucler dans la journée parce qu’ils s’étalent dans le temps :

Les **avis** sont mon levier de classement local le plus fort en l’état, parce que je pars de un. Je vais solliciter mes clients actifs avec le lien d’avis direct, étalé sur plusieurs semaines — un afflux brutal d’avis le même jour, c’est suspect. Et je répondrai à chacun. Pour le reste des fondamentaux du référencement de proximité, j’ai détaillé [sept conseils pour travailler son SEO local](https://wordpress-freelance.com/articles/seo-local-5-conseils/) dans un autre article.

Les **photos** : Google sert mieux les fiches qui publient en continu, pas seulement celles qui sont bien dotées au départ. Je vais y verser régulièrement des captures de dashboards et de réalisations.

Les **posts**, en cadence hebdomadaire, en recyclant mes contenus de blog. Et je dois remplir la section Prestations et pré-rédiger trois ou quatre questions/réponses dans la partie Q&A.

## Partie 2 — Le site : Rank Math et le schema custom

C’est là que c’était vraiment cassé. Et c’est là que la majorité des gens passent à côté, parce que ça ne se voit pas sans aller lire le JSON-LD source.

### Le diagnostic du schema : un patient à recoudre

Quand j’ai extrait le JSON-LD de ma home, j’ai trouvé ceci :

**Trois noms pour une seule entité.** Un bloc hybride Organization/Person nommé « Sébastien Chaffer », un WebSite et un ProfessionalService nommés « WordPress Freelance ». Et « WebStrategy », ma marque réelle, absente partout.

**Un type hybride \[« Organization », »Person »\].** Un nœud qui se déclare à la fois organisation et personne, ce qui est ambigu pour Google et brouille la lecture de l’entité.

**Un **ProfessionalService** sans adresse ni téléphone.** Le nœud censé porter le NAP local de l’entreprise était vide de NAP. Toute mon adresse vivait sur le nœud Person, c’est-à-dire sur moi en tant que personne, pas sur l’entreprise.

**Des formats de téléphone qui changeaient selon les blocs** : 0609753655, +33609753655, 06.09.75.36.55. Trois écritures pour un seul numéro.

**Une casse d’adresse sale** : « PARIS » et « ile de france » d’un côté, « Paris » de l’autre.

**Et l’adresse nulle part en clair.** Elle n’existait qu’en JSON-LD. Aucun bloc NAP visible en pied de page, alors que Google croise le balisage avec le texte affiché.

Le point clé à comprendre avant de corriger, c’est **d’où viennent les nœuds**. Rank Math génère nativement cinq nœuds : Place, Organization, WebSite, ImageObject, WebPage. Les deux autres — Person riche et ProfessionalService — venaient d’un schema JSON-LD personnalisé que j’avais ajouté dans l’éditeur Schema de Rank Math. Savoir qui produit quoi, c’est ce qui détermine où on va corriger : les réglages SEO local de Rank Math pour les cinq premiers, le JSON-LD personnalisé de l’éditeur Schema pour les deux autres.

### Les réglages Rank Math : SEO local

Direction **Rank Math → Réglages du titre → SEO local**, module « Local SEO & Knowledge Graph » actif.

Le champ *Personne ou Entreprise* passe sur **Organisation**. *Nom de l’entreprise* sur **WebStrategy**, *Nom alternatif* sur **WordPress Freelance** (mon ancien nom, que je garde comme alias historique).

Et là, le piège. Le champ qui s’appelle *Nom de la personne / organisation*, je l’ai passé sur **WebStrategy**. Pourquoi c’est un piège ? Parce que c’est **ce champ-là**, et pas « Nom de l’entreprise », qui alimente le name du nœud Organization du Knowledge Graph. Tant qu’il contenait « Sébastien Chaffer », mon Organization sortait sous mon nom de personne. Complètement contre-intuitif. Le champ qui ressemble au bon ne l’est pas.

 ![Réglages SEO local de Rank Math : Organisation sélectionnée, nom du site WebStrategy, nom alternatif WordPress Freelance, nom de la personne/organisation WebStrategy, description et logo](https://wordpress-freelance.com/wp-content/uploads/2026/06/seo-local-rankmath-400x620.webp "Réglages SEO local de Rank Math : Organisation sélectionnée, nom du site WebStrategy, nom alternatif WordPress Freelance, nom de la personne/organisation WebStrategy, description et logo")Réglages SEO local de Rank Math : Organisation sélectionnée, nom du site WebStrategy, nom alternatif WordPress Freelance, nom de la personne/organisation WebStrategy, description et logo

Deuxième point, et c’est là que mon cas diffère de la recette qu’on lit partout. Le select *Type d’entreprise* de Rank Math, je l’ai laissé sur **Organization**. La logique habituelle voudrait qu’on le bascule sur ProfessionalService pour accrocher le NAP local à une entité de type LocalBusiness. Sauf que mon ProfessionalService, je le gère en JSON-LD personnalisé dans l’éditeur Schema de Rank Math, avec un contrôle total sur ses propriétés et son @id. Si je l’activais aussi dans Rank Math, je me retrouverais avec deux ProfessionalService concurrents. Donc je laisse Rank Math produire une Organization propre, et c’est mon nœud custom qui porte le LocalBusiness. À retenir : le bon réglage dépend de qui gère quoi. Si vous n’avez pas de schema custom, basculez le select sur ProfessionalService. Si vous en avez un qui porte déjà ce type, laissez Rank Math sur Organization pour ne pas dupliquer.

Le reste se remplit proprement : adresse en champs séparés avec une casse correcte (66 Rue des Couronnes / Paris / 75020 / FR), email de contact, et les horaires réels — qui ne sont pas un simple lundi-vendredi uniforme chez moi, mais variables selon les jours (matinée seule le mercredi, fin plus tôt le vendredi). Rank Math gère ces plages au format 24:00 sans broncher.

 ![Réglages SEO local Rank Math : URL du site, email de contact, adresse en champs séparés, type d'entreprise sur Organization, horaires d'ouverture variables par jour](https://wordpress-freelance.com/wp-content/uploads/2026/06/seo-local-rankmath-2-400x588.webp "Réglages SEO local Rank Math : URL du site, email de contact, adresse en champs séparés, type d’entreprise sur Organization, horaires d’ouverture variables par jour")Réglages SEO local Rank Math : URL du site, email de contact, adresse en champs séparés, type d’entreprise sur Organization, horaires d’ouverture variables par jour

#### Les identifiants officiels (Additional Info)

Dans la section Additional Info du schema Organization, j’ai rempli ce qui a du sens pour une activité de conseil française. Les champs DUNS, NAICS, LEI, ISO 6523 relèvent du registre B2B international, ça ne me concerne pas. En revanche :

- *Legal Name* : **Sébastien Chaffer**. En entrepreneur individuel, le nom légal est le nom propre, pas la marque.
- *Founding Date* : **2019-09-30** (Rank Math n’a gardé que l’année dans le rendu, mais on saisit la date complète).
- *VAT ID* : **FR50853894731**.
- *Tax ID* : **85389473100019**, mon SIRET.

Ces identifiants comptent pour l’E-E-A-T. Une entité française qui expose son SIRET et sa TVA, c’est une entité vérifiable, et Pappers reprend justement le SIREN, ce qui crée un point de recoupement externe.

C’est aussi dans cet écran que se règlent le téléphone, l’échelle de prix et les coordonnées GPS. Le téléphone est en **+33609753655**, format E.164, type « Service Clients ». L’échelle de prix sur $$. Et les coordonnées au format latitude,longitude séparées par une virgule : un format invalide, Rank Math le signale en rouge, donc impossible de se tromper longtemps.

 ![Réglages SEO local Rank Math : téléphone +33609753655 en service clients, échelle de prix, Additional Info avec Founding Date Tax ID et VAT ID, coordonnées géographiques GPS](https://wordpress-freelance.com/wp-content/uploads/2026/06/seo-local-rankmath-3-400x588.webp "Réglages SEO local Rank Math : téléphone +33609753655 en service clients, échelle de prix, Additional Info avec Founding Date Tax ID et VAT ID, coordonnées géographiques GPS")Réglages SEO local Rank Math : téléphone +33609753655 en service clients, échelle de prix, Additional Info avec Founding Date Tax ID et VAT ID, coordonnées géographiques GPS

### Les réglages Rank Math : profils sociaux et sameAs

Direction **Rank Math → Réglages du titre → Métadonnées sociales**, champ **Profils supplémentaires**. C’est lui qui alimente la propriété sameAs. J’y ai centralisé :

> *https://share.google/GkgEfWEvVXvWEyRq3*  
> *https://www.pappers.fr/entreprise/webstrategy-853894731*  
> *https://www.linkedin.com/in/chaffer/*  
> *https://www.malt.fr/profile/sebastienchaffer0wordpress0developpeur*  
> *https://github.com/WordPress-freelance*

Avant, mes sameAs étaient éparpillés sur plusieurs nœuds. Les regrouper ici les attache tous à l’entité principale Organization, ce qui donne un signal d’entité unifié au lieu de plein de petits signaux dispersés. Et la présence de Google (la fiche) et de Pappers dans cette liste, c’est exactement ce qui soude l’entité locale et l’entité légale au site.

### Le schema personnalisé de l’éditeur Schema : corriger ce que Rank Math ne génère pas touche pas

Mes nœuds Person et ProfessionalService venant du JSON-LD personnalisé, c’est dans l’éditeur Schema de Rank Math que ça se corrige, pas dans les réglages SEO local de Rank Math.

Sur le **ProfessionalService**, j’ai renommé le name de « WordPress Freelance » en **WebStrategy**, basculé l’alternateName sur « WordPress Freelance ». J’ai ajouté l’address complète et le contactPoint avec le téléphone E.164 — c’est ce qui comblait le NAP manquant. J’ai corrigé founder et employee qui pointaient vers un \#person inexistant : ils référencent maintenant \#sebastien-chaffer, l’@id réel du nœud Person. J’ai complété les sameAs avec Google et Pappers. Et j’ai résolu un conflit d’@id de logo : le ProfessionalService partageait \#logo avec l’Organization, ce qui est interdit, un @id doit être unique.

Sur le **Person**, j’ai retiré « Directeur Général Associé » du jobTitle pour ne garder que « Consultant SEO/GEO et Expert WordPress ». J’ai sorti de la description toute mention qui diluait l’entité de référence, qui est WebStrategy. J’ai corrigé worksFor qui créait un doublon \#webstrategy : il pointe désormais vers \#organization. J’ai gardé les nœuds riches — hasOccupation, knowsAbout, knowsLanguage, alumniOf, estimatedSalary avec un TJM médian — parce qu’ils nourrissent l’E-E-A-T et donnent de la matière citable aux IA.

Sur l’**Organization**, un petit nettoyage : une virgule parasite dans la description (« WordPress , et »).

### Le piège des doublons, celui qui m’a fait perdre une demi-heure

Première version après injection : mon schema custom contenait les **sept nœuds** complets — Place, Organization, WebSite, ImageObject, WebPage, Person, ProfessionalService. Sauf que Rank Math génère déjà ses cinq. Résultat : ma home affichait **douze nœuds**, avec des doublons partout. Place deux fois, Organization deux fois, et ainsi de suite.

La règle que j’en tire, et que je vais répéter parce qu’elle est centrale : **un schema custom ne doit jamais contenir un nœud déjà produit par le plugin SEO.** Il ne doit ajouter que ce qui manque, et pointer vers les nœuds existants par leur @id. C’est exactement la logique que j’ai appliquée quand j’ai [déployé du schema sur toute l’architecture du site](https://wordpress-freelance.com/articles/schema-markup-wordpress-46-pages-optimisees-rank-math/). J’ai donc vidé mon custom de tout sauf Person et ProfessionalService, et fait pointer le ProfessionalService vers \#organization (généré par Rank Math) pour relier les deux sources sans rien dupliquer.

### Le résultat : sept nœuds, zéro doublon

Après crawl de la home, voilà le graphe final. Une seule entité, racontée d’une seule voix, avec chaque source qui pointe au bon endroit :

 

| Nœud | Source | name | NAP |
| --- | --- | --- | --- |
| Place | Rank Math | — | adresse + geo |
| Organization | Rank Math | WebStrategy | adresse + tél + 5 sameAs |
| WebSite | Rank Math | WebStrategy (alt. WordPress Freelance) | — |
| ImageObject | Rank Math | — | bannière OG |
| WebPage | Rank Math | Consultant SEO/GEO à Paris… | — |
| Person | JSON-LD perso (Rank Math) | Sébastien Chaffer | adresse + tél + 3 sameAs |
| ProfessionalService | JSON-LD perso (Rank Math) | WebStrategy (alt. WordPress Freelance) | adresse + tél + 5 sameAs |

  ![Réglages SEO local Rank Math : téléphone +33609753655 en service clients, échelle de prix, Additional Info avec Founding Date Tax ID et VAT ID, coordonnées géographiques GPS](https://wordpress-freelance.com/wp-content/uploads/2026/06/schema-test-enrichi-600x238.webp "Outil de test des résultats enrichis Google : exploration du 8 juin 2026, Commerces et services à proximité 1 élément valide, Organisation 2 éléments valides")Outil de test des résultats enrichis Google : exploration du 8 juin 2026, Commerces et services à proximité 1 élément valide, Organisation 2 éléments valides

Le test des résultats enrichis confirme le découpage : un bloc « Commerces et services à proximité » valide (mon ProfessionalService/LocalBusiness) et deux éléments « Organisation » valides. Les problèmes signalés sont non critiques — des recommandations, pas des erreurs bloquantes.

### Le footer NAP visible : ne pas oublier le texte que les humains voient

Mon adresse n’existait qu’en JSON-LD. Or Google croise le balisage avec ce qui est affiché en clair. J’ai donc ajouté un bloc NAP visible dans le footer Avada (Options globales → Footer), cohérent avec la fiche : nom, ville et code postal, téléphone, email, lien direct vers la fiche Google, et les profils (LinkedIn, Malt, GitHub).

 

 ![Réglages SEO local Rank Math : téléphone +33609753655 en service clients, échelle de prix, Additional Info avec Founding Date Tax ID et VAT ID, coordonnées géographiques GPS](https://wordpress-freelance.com/wp-content/uploads/2026/06/footer.webp "Bloc NAP dans le footer du site : Sébastien Chaffer consultant SEO/GEO, WebStrategy, 75020 Paris, téléphone, email, lien WebStrategy sur Google, profils LinkedIn Malt GitHub")Bloc NAP dans le footer du site : Sébastien Chaffer consultant SEO/GEO, WebStrategy, 75020 Paris, téléphone, email, lien WebStrategy sur Google, profils LinkedIn Malt GitHub

Et un point de format que je veux marteler, parce que c’est une source d’erreur classique : **E.164 en balisage, format local en affichage.** +33609753655 dans le JSON-LD, 06 09 75 36 55 à l’écran. Ce ne sont pas deux numéros différents, c’est le même dans deux conventions différentes, et chaque contexte attend la sienne.

## Les principes que je retiens de cette journée

Quelques règles que je vais appliquer systématiquement, chez moi comme chez mes clients.

**La catégorie principale de la fiche est le premier facteur de ranking local.** Ce n’est pas un détail de remplissage, c’est le réglage le plus structurant. Choisir le libellé le plus proche quand le métier exact n’existe pas dans la liste de Google.

**Rank Math génère cinq nœuds, le custom n’ajoute que ce qui manque.** Place, Organization, WebSite, ImageObject, WebPage viennent du plugin. Tout custom doit se limiter au reste et référencer l’existant par @id, jamais le redéfinir.

**Dans Rank Math SEO local, le champ « Nom de la personne / organisation » prime sur « Nom de l’entreprise »** pour le name du Knowledge Graph. Contre-intuitif, mais c’est comme ça.

**Le réglage « Type d’entreprise » conditionne le @type final, mais le bon choix dépend de votre setup.** Sans schema custom, basculez le select sur ProfessionalService (sous-type de LocalBusiness) pour accrocher le NAP local. Si un schema custom porte déjà ce type, laissez Rank Math sur Organization et faites pointer le custom vers \#organization — sinon vous dupliquez le LocalBusiness.

**La cohérence des @id est non négociable.** Une référence vers un @id inexistant casse le lien dans le graphe, et deux nœuds qui partagent le même @id créent un conflit. Un @id, un nœud.

**Format téléphone : E.164 en balisage, local en affichage.** Toujours.

**L’identité d’entité française gagne à exposer ses identifiants officiels** — TVA, SIRET, date de création — et des sameAs de confiance comme Pappers, qui reprend le SIREN et offre un point de recoupement externe vérifiable.

## Ce que ça vaut, au fond

Aucune de ces opérations n’est spectaculaire prise isolément. Changer une catégorie, renommer un nœud, déplacer une adresse d’un bloc à un autre. Mis bout à bout, ça transforme une entité que Google lisait en trois morceaux en une entité qu’il lit d’une seule pièce. Et une entité qu’il comprend, il la classe mieux, il la cite mieux, et il la sert mieux en local.

Le plus dur dans ce genre de chantier, ce n’est pas la technique. C’est de penser à aller regarder. On ne voit pas le JSON-LD cassé en naviguant sur son propre site. Il faut ouvrir le capot. Je ne l’avais pas fait depuis trop longtemps, et c’est précisément le conseil que je donne le plus souvent à mes clients. Comme quoi.