Vérification de site sur Baidu : le fichier HTML, la balise meta et l'enregistrement CNAME

On vous a confié un dossier Baidu, et la première chose qui vous barre la route est un écran de vérification. Baidu n'acceptera aucun sitemap, n'ouvrira aucun rapport d'indexation et ne vous laissera pousser la moindre URL tant qu'il n'a pas la preuve que le domaine vous appartient. Il existe trois façons de l'apporter, elles ne se comportent pas de la même manière, et leurs modes d'échec n'ont rien à voir avec ceux que vous connaissez sur Google Search Console.
Voici le détail de mise en œuvre de chaque méthode, les raisons pour lesquelles la vérification échoue le plus souvent, et la façon de contrôler chacune d'elles depuis un terminal.
Où se situe la vérification
L'outil pour webmasters de Baidu est la Baidu Search Resource Platform (百度搜索资源平台), à l'adresse ziyuan.baidu.com ; beaucoup continuent de l'appeler Baidu Zhanzhang. Vous ajoutez un site, choisissez une méthode de vérification, et Baidu va chercher quelque chose sur votre domaine pour confirmer que vous le contrôlez. La soumission de liens, l'envoi du sitemap et les diagnostics d'exploration ne se débloquent qu'après.
Deux particularités du modèle de propriété piègent les gens avant même qu'ils aient choisi une méthode :
- Le protocole et l'hôte font partie de l'identité.
https://example.comethttps://www.example.comsont deux sites distincts pour Baidu, tout comme leurs versions enhttp://. Ajoutez exactement l'origine qu'utilisent vos URL canoniques. Si vous vérifiez la mauvaise, tout ce que vous soumettrez ensuite se rapportera à une propriété qui ne porte aucun de vos visiteurs. - La requête part de Chine continentale. Ce qui prouve la propriété doit être joignable depuis là-bas, par l'internet public, sans page de contrôle devant. Ce seul fait explique la plupart des échecs listés en fin d'article.
Avant tout cela, il y a un compte. Un compte Baidu est indispensable ne serait-ce que pour atteindre l'écran de vérification, et l'inscription passe par une confirmation SMS sur un numéro de mobile de Chine continentale. C'est un vrai mur pour une entreprise en Europe ou au Royaume-Uni, et mieux vaut le savoir avant de passer un après-midi sur votre zone DNS. Nous y revenons à la fin.
Méthode 1 : le fichier de vérification HTML
La méthode la plus courante, et celle à privilégier dès que vous pouvez déployer un fichier statique.
Baidu génère un fichier pour votre site et vous le propose au téléchargement. Son nom ressemble à ceci :
baidu_verify_codeva-XXXXXXXXXX.html
Les propriétés plus anciennes ont reçu des noms de la forme baidu_verify_XXXXXXXXXX.html, et certains panneaux affichent un préfixe code- au lieu de codeva-. N'essayez pas de reconstituer le nom ou le jeton à partir d'un billet de blog : téléchargez le fichier que Baidu vous fournit, ou recopiez la chaîne du panneau caractère par caractère. Le contenu du fichier est court, en général le jeton et rien d'autre.
Il doit être servi depuis la racine de l'origine que vous avez enregistrée :
https://example.com/baidu_verify_codeva-XXXXXXXXXX.html
Pas dans un sous-répertoire, pas derrière un préfixe de langue, pas sur un autre hôte.
Où placer le fichier, selon la stack
| Stack | Emplacement |
| --- | --- |
| Vite, Create React App, SvelteKit (static), Nuxt | public/ ou static/ à la racine du projet |
| Next.js (les deux routeurs) | public/ |
| Hugo, Astro | static/ et public/ respectivement |
| Laravel | public/ |
| Django | un répertoire static/ collecté par collectstatic, ou servi directement par nginx |
| ASP.NET Core | wwwroot/ |
| WordPress | la racine web, à côté de wp-config.php, en SFTP |
| nginx ou Apache seuls | la racine des documents |
Contrôlez-le comme le fera Baidu
curl -sSI https://example.com/baidu_verify_codeva-XXXXXXXXXX.html
curl -sS https://example.com/baidu_verify_codeva-XXXXXXXXXX.html
Vous attendez un HTTP/2 200, un content-type en text/html, aucun en-tête location, et un corps réduit au jeton. Trois résultats signifient que ce n'est pas fini :
- Un 301 ou un 302. Quelque chose normalise le chemin, le plus souvent une règle de barre oblique finale ou une redirection de langue qui renvoie tout chemin inconnu vers
/en/.... Ajoutez une exception avant la règle attrape-tout. - Un 200 qui renvoie la coquille de votre application. C'est de loin le faux succès le plus fréquent. Une application monopage dotée d'une route attrape-tout répond
index.htmlavec un statut 200 sur n'importe quel chemin : le fichier « existe » donc, mais le corps contient votre balisage React. Baidu lit le corps, n'y trouve pas le jeton et refuse. Servez le fichier statique avant le repli de la SPA. - Un 404 qui persiste après le déploiement. En général, un CDN a mis en cache la réponse négative. Purgez ce chemin précis, puis recontrôlez avec
curl -H 'Cache-Control: no-cache'.
Conservez ensuite le fichier dans le dépôt. Baidu revérifie la propriété périodiquement, et un site qui perd son fichier de vérification disparaît discrètement du panneau.
Méthode 2 : la balise meta HTML
À retenir quand vous pouvez modifier les gabarits mais pas déposer de fichiers dans la racine web, ce qui est la situation habituelle sur un CMS géré ou une plateforme d'hébergement.
Baidu vous donne une balise de cette forme, à placer dans le <head> de la page d'accueil :
<meta name="baidu-site-verification" content="codeva-XXXXXXXXXX" />
L'attribut name vaut toujours baidu-site-verification, écrit exactement ainsi, traits d'union compris. La valeur de content est le jeton affiché dans le panneau.
Trois règles décident si cela fonctionne ou non :
- Elle doit se trouver dans le
<head>. Un analyseur qui la trouve dans le<body>considère que l'en-tête est déjà refermé. Tout ce qui est injecté après le premier élément hors en-tête arrive trop tard. - Elle doit figurer dans le HTML envoyé par le serveur. Ouvrez
view-source:ou, mieux, lancezcurl -sS https://example.com | grep baidu-site-verification. Si la balise n'apparaît que dans l'inspecteur d'éléments des DevTools, c'est que JavaScript l'a ajoutée après l'hydratation, et elle ne compte pas. C'est ce qui casse la méthode sur les applications React et Vue rendues côté client, et c'est pourquoi le fichier est plus simple sur une SPA. - Elle doit survivre au framework. Les gestionnaires d'en-tête dédoublonnent et nettoient. Next.js veut la balise dans l'export de métadonnées, pas dans un
<meta>isolé au fond d'un composant. React Helmet supprime les balises rendues hors de son provider. Certains plugins de sécurité de CMS retirent les balises meta aux noms inconnus. Un gestionnaire de balises ne peut pas la poser, puisqu'il s'exécute côté client.
Placement selon le framework :
// Next.js App Router, app/layout.js
export const metadata = {
other: { 'baidu-site-verification': 'codeva-XXXXXXXXXX' },
}
// WordPress, functions.php d'un thème enfant
add_action('wp_head', function () {
echo '<meta name="baidu-site-verification" content="codeva-XXXXXXXXXX" />' . "\n";
}, 1);
Sur un site rendu côté serveur, mettez-la dans le gabarit de base à côté des balises de charset et de viewport, et n'y pensez plus. Sur Hugo, c'est layouts/_default/baseof.html ; sur Django, le gabarit de base dont héritent toutes les pages.
Méthode 3 : l'enregistrement CNAME
La méthode DNS s'impose quand vous ne pouvez déployer quoi que ce soit, quand le site est derrière un équipement qui ne vous appartient pas, ou quand vous voulez que le contrôle survive à tous les redéploiements à venir. Elle prouve aussi la maîtrise du domaine entier, et non celle d'un seul document.
Baidu vous indique un libellé d'hôte aléatoire à créer sous votre domaine, pointant vers Baidu :
abcdef123456.example.com. 3600 IN CNAME ziyuan.baidu.com.
Dans la plupart des panneaux DNS, vous ne saisissez que le libellé de gauche, la zone étant sous-entendue :
| Champ | Valeur |
| --- | --- |
| Type | CNAME |
| Nom / Hôte | abcdef123456 |
| Valeur / Cible | ziyuan.baidu.com |
| TTL | 3600, ou la valeur la plus basse que le panneau autorise pendant les tests |
Quatre erreurs reviennent sans arrêt :
- Le domaine est ajouté deux fois. Taper
abcdef123456.example.comdans un panneau qui sous-entend déjà la zone créeabcdef123456.example.com.example.com. Si votre panneau affiche le nom pleinement qualifié après l'enregistrement, relisez-le. - Le point final sur la cible. Dans un fichier de zone brut,
ziyuan.baidu.comsans le point final est interprété relativement à la zone et devientziyuan.baidu.com.example.com. Les panneaux s'en occupent pour vous ;namedet les fichiers Terraform, non. - Un proxy devant l'enregistrement. Sur Cloudflare, un enregistrement proxyfié (nuage orange) ne se résout plus comme un CNAME vu de l'extérieur : la réponse faisant autorité devient les enregistrements A de Cloudflare. Passez l'enregistrement de vérification en DNS only.
- Attendre moins longtemps que le TTL. Si un résolveur a déjà une réponse négative en cache pour ce nom, c'est l'ancien TTL qui s'applique. Regardez ce que voit réellement le reste du monde, pas ce qu'affiche votre panneau.
dig +short abcdef123456.example.com CNAME
# ziyuan.baidu.com.
dig +short @8.8.8.8 abcdef123456.example.com CNAME
Laissez l'enregistrement en place. Le supprimer après une vérification réussie prépare un échec de revérification plus tard.
Pourquoi la vérification échoue alors que tout semble correct
Vous avez curlé le fichier, il renvoie 200, et Baidu refuse toujours. Déroulez cette liste :
- Un contrôle anti-bot ou une règle WAF. Le Bot Fight Mode de Cloudflare, les règles managées d'AWS WAF et la plupart des réglages « under attack » renvoient une page intermédiaire en JavaScript, avec un 403 ou un 503, à tout client qui n'exécute pas de scripts. Le récupérateur de Baidu n'en exécute pas. Mettez le chemin de vérification, ou le robot, en liste d'autorisation.
- Le blocage géographique. Beaucoup de sites européens bloquent ou limitent le trafic venu de Chine continentale pour couper court au scraping. La requête de vérification vient précisément de cette plage. Vérifiez que rien, en périphérie, ne la fait tomber.
- Le user agent est filtré. Le robot s'identifie comme
Baiduspider. Certaines piles de sécurité prennent les chaînes de robots inconnues pour des scrapeurs. Si vous voulez confirmer qu'une requête est authentique avant de l'autoriser, le DNS inverse de l'IP source se résout en*.baidu.comou*.baidu.jp, et la résolution directe doit concorder. robots.txtle bloque. UnDisallow: /sous un user-agent joker, ou un blocage expliciteUser-agent: Baiduspiderlaissé là par quelqu'un d'autre, arrête la requête avant même qu'elle parte.- Un problème TLS que les navigateurs masquent. Un certificat intermédiaire manquant est réparé en silence par les navigateurs de bureau, jamais par un simple client HTTP. Passez votre domaine dans un outil externe de contrôle TLS plutôt que de vous fier au cadenas vert.
- La mauvaise origine vérifiée. Le fichier est sur
www.example.com, la propriété déclarée dans Baidu ditexample.com. Rien dans le message d'erreur ne vous le dira. - Un premier octet trop lent. Les serveurs européens sans présence en Chine répondent lentement à une requête venue de Pékin, et un démarrage à froid en serverless par-dessus peut dépasser le délai d'attente. Réessayer à une autre heure aide vraiment.
Quelle méthode choisir
Déployez un fichier statique si vous avez une chaîne de build : c'est ce qui risque le moins d'être abîmé en route et le plus facile à tester. Prenez la balise meta si vous vivez dans un CMS et que vos pages sont rendues côté serveur. Prenez le CNAME si vous ne pouvez pas toucher au site du tout, ou si vous voulez prouver la propriété une bonne fois au niveau du domaine et ne plus y revenir.
Quel que soit votre choix, gardez le dispositif en place définitivement et notez-le dans votre documentation d'infrastructure, à côté de vos autres enregistrements DNS. La personne qui supprimera un fichier mystérieux dans dix-huit mois, ce sera vous.
Ce que ces méthodes ne résolvent pas
Chacune de ces trois méthodes suppose que vous êtes déjà connecté à un compte Baidu. L'inscription est confirmée par SMS sur un numéro de mobile de Chine continentale, et pour beaucoup de propriétés Baidu demande en plus une vérification d'identité réelle (实名认证) contre une carte d'identité chinoise ou une licence commerciale chinoise. Une entreprise à Francfort ou à Manchester, avec une zone DNS parfaitement configurée, n'atteint toujours pas l'écran de vérification.
C'est là qu'intervient notre service de soumission Baidu. Vous nous indiquez le domaine, vous réalisez une seule vérification de propriété de votre côté, et nous menons la soumission puis vous rendons compte de ce que Baidu a réellement indexé, à prix fixe par domaine. Pas de numéro de téléphone chinois, pas d'entité chinoise, pas de compte Baidu à vous.
Si vous préférez d'abord la vue d'ensemble, le guide complet de la soumission à Baidu couvre les sitemaps, l'API de push et ce que le classement de Baidu récompense vraiment. Et si vous voulez en parler de vive voix, réservez un appel.
Prestation
Nous pouvons tout prendre en charge
La preuve de propriété du domaine, l'envoi du sitemap et des URL, et un rapport d'indexation deux semaines plus tard. Un domaine, un tarif fixe, sans numéro de téléphone chinois, sans entité chinoise et sans compte Baidu à vous.
Voir le service de référencement Baidu