Back to Articles¿Prefieres no hacerlo tú? Registramos tu sitio en Baidu por un precio cerrado.Ver el servicio de registro en Baidu

Verificación de sitio en Baidu: el archivo HTML, la etiqueta meta y el registro CNAME

Beijing central business district skyline at dusk

Te han encargado una tarea de Baidu y lo primero que se interpone es una pantalla de verificación. Baidu no aceptará un sitemap, no abrirá sus informes de indexación y no te dejará enviar ni una sola URL hasta que tenga la certeza de que el dominio es tuyo. Hay tres formas de demostrarlo, se comportan de manera distinta y sus fallos no se parecen a los que conoces de Google Search Console.

Aquí tienes el detalle de implementación de cada método, los motivos por los que la verificación suele fallar y cómo comprobar cada uno desde un terminal.

Dónde encaja la verificación

La herramienta para webmasters de Baidu es la Baidu Search Resource Platform (百度搜索资源平台), en ziyuan.baidu.com, a la que muchos siguen llamando Baidu Zhanzhang. Añades un sitio, eliges un método de verificación y Baidu recupera algo de tu dominio para confirmar que lo controlas. Solo entonces se desbloquean el envío de enlaces, la carga del sitemap y los diagnósticos de rastreo.

Dos aspectos del modelo de propiedad pillan a mucha gente antes incluso de elegir método:

  • El protocolo y el host forman parte de la identidad. https://example.com y https://www.example.com son dos sitios distintos para Baidu, igual que sus versiones en http://. Añade exactamente el origen que usan tus URL canónicas. Si verificas el equivocado, todo lo que envíes después se referirá a una propiedad que no recibe nada de tu tráfico.
  • La petición sale de China continental. Aquello que demuestre la propiedad tiene que ser accesible desde allí, por internet público y sin una página de control delante. Ese único hecho explica la mayoría de los fallos que aparecen al final de este artículo.

Antes de todo eso hay una cuenta. Necesitas una cuenta de Baidu solo para llegar a la pantalla de verificación, y el registro va ligado a una confirmación por SMS a un número de móvil de China continental. Es un muro real para una empresa en Europa o en el Reino Unido, y conviene saberlo antes de dedicarle una tarde al DNS. Volvemos a ello al final.

Método 1: el archivo de verificación HTML

El método más habitual y el que conviene preferir siempre que puedas desplegar un archivo estático.

Baidu genera un archivo para tu sitio y lo ofrece para descarga. El nombre tiene este aspecto:

baidu_verify_codeva-XXXXXXXXXX.html

A las propiedades más antiguas se les asignaron nombres de la forma baidu_verify_XXXXXXXXXX.html, y algunos paneles muestran el prefijo code- en lugar de codeva-. No intentes reconstruir el nombre ni el token a partir de una entrada de blog: descarga el archivo que te da Baidu o copia la cadena del panel carácter por carácter. El contenido del archivo es breve, normalmente el token y nada más.

Tiene que servirse desde la raíz del origen que registraste:

https://example.com/baidu_verify_codeva-XXXXXXXXXX.html

No en un subdirectorio, no detrás de un prefijo de idioma, no en otro host.

Dónde va el archivo, según la stack

| Stack | Ubicación | | --- | --- | | Vite, Create React App, SvelteKit (static), Nuxt | public/ o static/ en la raíz del proyecto | | Next.js (ambos routers) | public/ | | Hugo, Astro | static/ y public/ respectivamente | | Laravel | public/ | | Django | un directorio static/ recogido por collectstatic, o servido directamente por nginx | | ASP.NET Core | wwwroot/ | | WordPress | la raíz web, junto a wp-config.php, por SFTP | | nginx o Apache a secas | la raíz de documentos |

Compruébalo como lo hará Baidu

curl -sSI https://example.com/baidu_verify_codeva-XXXXXXXXXX.html
curl -sS  https://example.com/baidu_verify_codeva-XXXXXXXXXX.html

Lo que buscas es un HTTP/2 200, un content-type de text/html, ninguna cabecera location y un cuerpo que sea exactamente el token. Tres resultados indican que aún no has terminado:

  • Un 301 o un 302. Algo está normalizando la ruta, casi siempre una regla de barra final o una redirección de idioma que manda cualquier ruta no reconocida a /en/.... Añade una excepción antes de la regla comodín.
  • Un 200 que devuelve el esqueleto de tu aplicación. Este es, con diferencia, el falso positivo más frecuente. Una aplicación de página única con una ruta comodín responde a cualquier ruta con index.html y estado 200, así que el archivo «existe», pero el cuerpo es tu marcado de React. Baidu lee el cuerpo, no encuentra el token y lo rechaza. Sirve el archivo estático antes del fallback de la SPA.
  • Un 404 que persiste tras el despliegue. Normalmente es un CDN que cacheó la respuesta negativa. Purga esa ruta concreta y vuelve a comprobarlo con curl -H 'Cache-Control: no-cache'.

Después deja el archivo en el repositorio. Baidu vuelve a comprobar la propiedad de forma periódica, y un sitio que pierde su archivo de verificación desaparece del panel sin avisar.

Método 2: la etiqueta meta HTML

Sirve cuando puedes editar plantillas pero no dejar archivos en la raíz web, que es la situación normal en un CMS gestionado o en un hosting de plataforma.

Baidu te da una etiqueta con esta forma, para el <head> de la página de inicio:

<meta name="baidu-site-verification" content="codeva-XXXXXXXXXX" />

El atributo name es siempre baidu-site-verification, escrito tal cual, con sus guiones. El valor de content es el token del panel.

Tres reglas deciden si funciona:

  1. Tiene que estar dentro de <head>. Un analizador que la encuentre en <body> da la cabecera por cerrada. Todo lo que se inyecte después del primer elemento fuera de la cabecera llega tarde.
  2. Tiene que estar en el HTML que envía el servidor. Abre view-source: o, mejor, ejecuta curl -sS https://example.com | grep baidu-site-verification. Si la etiqueta solo aparece en el inspector de elementos de las DevTools, la añadió JavaScript después de la hidratación y no cuenta. Esto es lo que rompe el método en aplicaciones React y Vue renderizadas en cliente, y por eso el archivo resulta más cómodo en una SPA.
  3. Tiene que sobrevivir al framework. Los gestores de cabecera deduplican y sanean. Next.js la quiere en el export de metadatos, no en un <meta> suelto dentro de un componente. React Helmet descarta las etiquetas renderizadas fuera de su provider. Algunos plugins de seguridad de CMS eliminan las etiquetas meta con nombres desconocidos. Un gestor de etiquetas no puede colocarla, porque se ejecuta en el navegador.

Colocación según el framework:

// Next.js App Router, app/layout.js
export const metadata = {
  other: { 'baidu-site-verification': 'codeva-XXXXXXXXXX' },
}
// WordPress, functions.php de un tema hijo
add_action('wp_head', function () {
  echo '<meta name="baidu-site-verification" content="codeva-XXXXXXXXXX" />' . "\n";
}, 1);

En un sitio renderizado en servidor, ponla en la plantilla base junto a las etiquetas de charset y viewport y olvídate. En Hugo eso es layouts/_default/baseof.html; en Django, la plantilla base de la que heredan todas las páginas.

Método 3: el registro CNAME

El método DNS es el indicado cuando no puedes desplegar nada, cuando el sitio está detrás de un equipo que no controlas o cuando quieres que la comprobación sobreviva a todos los despliegues futuros. Además demuestra el control del dominio entero, no el de un solo documento.

Baidu te muestra una etiqueta de host aleatoria que debes crear bajo tu dominio, apuntando a Baidu:

abcdef123456.example.com.  3600  IN  CNAME  ziyuan.baidu.com.

En la mayoría de paneles DNS solo se introduce la etiqueta de la izquierda, porque la zona se sobreentiende:

| Campo | Valor | | --- | --- | | Tipo | CNAME | | Nombre / Host | abcdef123456 | | Valor / Destino | ziyuan.baidu.com | | TTL | 3600, o el valor más bajo que permita el panel mientras haces pruebas |

Aquí hay cuatro cosas que salen mal una y otra vez:

  • El dominio se añade dos veces. Escribir abcdef123456.example.com en un panel que ya sobreentiende la zona crea abcdef123456.example.com.example.com. Si tu panel muestra el nombre completo tras guardar, léelo de nuevo.
  • El punto final del destino. En un archivo de zona en crudo, ziyuan.baidu.com sin el punto final se interpreta relativo a la zona y se convierte en ziyuan.baidu.com.example.com. Los paneles lo resuelven por ti; named y los archivos de Terraform, no.
  • Un proxy delante del registro. En Cloudflare, un registro con proxy (nube naranja) deja de resolverse como CNAME desde fuera: la respuesta autoritativa pasa a ser la de los registros A de Cloudflare. Pon el registro de verificación en DNS only.
  • Esperar menos tiempo que el TTL. Si un resolutor ya tiene cacheada una respuesta negativa para ese nombre, se aplica el TTL antiguo. Comprueba lo que ve el mundo de verdad, no lo que dice tu panel.
dig +short abcdef123456.example.com CNAME
# ziyuan.baidu.com.

dig +short @8.8.8.8 abcdef123456.example.com CNAME

Deja el registro donde está. Borrarlo tras una comprobación satisfactoria es pedir un fallo de reverificación más adelante.

Por qué falla la verificación cuando todo parece correcto

Has hecho el curl al archivo, devuelve 200 y Baidu sigue diciendo que no. Repasa esta lista:

  • Una comprobación anti-bot o una regla de WAF. El Bot Fight Mode de Cloudflare, las reglas gestionadas de AWS WAF y casi todos los ajustes de tipo «under attack» devuelven una página intermedia en JavaScript, con un 403 o un 503, a cualquier cliente que no ejecute scripts. El recuperador de Baidu no los ejecuta. Pon en la lista de permitidos la ruta de verificación, o el rastreador.
  • Bloqueo geográfico. Muchos sitios europeos bloquean o limitan el tráfico de China continental para frenar el scraping. La petición de verificación viene justo de ese rango. Confirma que nada en el borde la está descartando.
  • El user agent está filtrado. El rastreador se identifica como Baiduspider. Algunas capas de seguridad tratan las cadenas de rastreador desconocidas como scrapers. Si quieres confirmar que una petición es genuina antes de permitirla, el DNS inverso de la IP de origen resuelve a *.baidu.com o *.baidu.jp, y la resolución directa debe coincidir.
  • robots.txt lo bloquea. Un Disallow: / bajo un user-agent comodín, o un bloqueo explícito User-agent: Baiduspider que dejó ahí otra persona, detiene la petición antes de que empiece.
  • Un problema de TLS que los navegadores ocultan. Un certificado intermedio que falta lo reparan en silencio los navegadores de escritorio, pero no los clientes HTTP simples. Pasa tu dominio por un comprobador de TLS externo en lugar de fiarte del candado verde.
  • Verificar el origen equivocado. El archivo está en www.example.com y la propiedad en Baidu dice example.com. Nada en el mensaje de error te lo va a indicar.
  • Primer byte lento. Los servidores europeos sin presencia en China responden despacio a una petición desde Pekín, y un arranque en frío de serverless encima de eso puede superar el tiempo de espera. Reintentar a otra hora ayuda de verdad.

Qué método elegir

Despliega un archivo estático si tienes una pipeline de build: es lo que menos probabilidades tiene de estropearse por el camino y lo más fácil de probar. Quédate con la etiqueta meta si vives dentro de un CMS y tus páginas se renderizan en servidor. Quédate con el CNAME si no puedes tocar el sitio en absoluto, o si quieres la propiedad demostrada a nivel de dominio de una vez y para siempre.

Elijas lo que elijas, déjalo puesto de forma permanente y anótalo en la documentación de tu infraestructura, junto a tus demás registros DNS. La persona que dentro de dieciocho meses borre un archivo misterioso serás tú.

Lo que estos métodos no resuelven

Los tres métodos dan por hecho que ya has iniciado sesión en una cuenta de Baidu. El registro se confirma por SMS a un número de móvil de China continental y, para muchas propiedades, Baidu pide además una verificación de identidad real (实名认证) contra un documento de identidad chino o una licencia comercial china. Una empresa en Fráncfort o en Mánchester, con una zona DNS impecable, sigue sin poder llegar a la pantalla de verificación.

Ahí es donde entra nuestro servicio de alta en Baidu. Nos indicas el dominio, completas una única comprobación de propiedad por tu parte, y nosotros hacemos el envío y te informamos de lo que Baidu ha indexado realmente, a un precio fijo por dominio. Sin número de teléfono chino, sin entidad china, sin cuenta de Baidu propia.

Si prefieres la panorámica primero, la guía completa de alta en Baidu cubre los sitemaps, la API de push y qué premia de verdad el ranking de Baidu. Y si prefieres comentarlo en persona, reserva una llamada.

Servicio

Podemos encargarnos de todo esto

La prueba de propiedad del dominio, el envío del sitemap y de las URL, y un informe de indexación dos semanas después. Un dominio, un precio cerrado, sin número de teléfono chino, sin sociedad china y sin cuenta de Baidu propia.

Ver el servicio de registro en Baidu