Guía · Internacionalización
hreflang: el clúster completo, en cada página
hreflang sirve para una sola cosa: decirle a un motor que varias direcciones tratan el mismo contenido en idiomas diferentes, y cuál mostrar a quién. Es una declaración colectiva: pertenece al grupo entero, página tras página. Solo vale plenamente cuando cada página del grupo lleva la lista completa. Lo aprendimos en nuestro propio sitio.
Cuatro reglas, y son suficientes
hreflang se lee con claridad, regla por regla. Las cuatro reglas siguientes se verifican desde la página servida, basándose únicamente en lo que esta devuelve, y la cuarta es casi siempre la que queda por aplicar.
01
La reciprocidad
Si la página A declara la página B, la página B debe declarar la página A. El motor retiene una declaración cuando ambos lados la devuelven: la confirmación mutua es lo que le da fuerza, y es en ella en la que se apoya.
Verlo: Tome dos versiones de una misma página y lea sus declaraciones una junto a otra. Cada una debe citar a la otra, con la dirección exacta servida por la otra: mismo protocolo, mismo dominio, misma barra final.
Cómo aplicarla: Generar las declaraciones a partir de una única lista de versiones, de una sola vez para todas las páginas en lugar de hacerlo a mano. Una lista única hace que la reciprocidad sea automática.
02
Cada página se declara a sí misma
El grupo se lee desde el punto de vista de cualquiera de sus páginas. Una página que se cita a sí misma además de sus traducciones deja el grupo completo, visto desde todas las demás.
Verlo: En la versión francesa, busque la declaración hreflang="fr". Debe estar presente y apuntar a la página que está leyendo en este momento.
Cómo aplicarla: El idioma de la página forma parte del clúster igual que los demás. Es la declaración que más a menudo se olvida, porque parece redundante, y sin embargo pesa exactamente lo mismo que las otras.
03
x-default
x-default designa la versión servida al visitante cuyo idioma queda fuera de los idiomas declarados. Es la reserva del grupo: ocupa una declaración por derecho propio y apunta a una de las versiones existentes.
Verlo: Cuente: una declaración por idioma servido, más una para x-default. En nuestro sitio, ocho idiomas más x-default suman nueve declaraciones por página.
Cómo aplicarla: Elegir una versión de reserva y designarla en todas partes de la misma manera. x-default se coloca en cada página del grupo, exactamente igual que las demás.
04
El clúster parcial: el error más frecuente
Es nuestro propio incidente, detectado el 1 de septiembre de 2026 en nuestra Search Console: páginas «rastreadas, actualmente sin indexar», en un sitio por lo demás técnicamente sano. Cada página declaraba solo una parte de las versiones del grupo. La página neerlandesa anunciaba fr y nl; la página francesa, fr y en. Seis idiomas de ocho quedaban por enganchar a la malla.
Verlo: Los motores guardan silencio al respecto: es el recuento el que habla. Cuente las etiquetas de una página traducida y luego compare esa lista con la de otra página del grupo: ambas listas deben ser idénticas.
Cómo aplicarla: El clúster COMPLETO en CADA página, francés incluido: el francés, los otros siete idiomas y luego x-default. La operación es idempotente: las declaraciones antiguas se retiran antes de colocar las nuevas, de modo que una republicación siempre deja una sola generación de etiquetas en su lugar.
Lo que declara una página de este sitio
El sitio se sirve en ocho idiomas. Por tanto, cada una de sus páginas lleva la misma lista, en el mismo orden, sea cual sea el idioma que se esté leyendo, más x-default, que designa la versión mostrada al visitante cuyo idioma queda fuera de los ocho declarados.
- fr Español
- en Inglés
- es Español
- de Alemán
- it Italiano
- pt Portugués
- nl Neerlandés
- pl Polaco
- x-default Alternativa
Nueve declaraciones por página, idénticas de una versión a otra. La página en francés está en igualdad con todas las demás: lleva la misma lista que la polaca.
Dónde colocar las declaraciones
Hay tres ubicaciones válidas, y con una sola basta:
- En el <head> de la página. Un elemento por versión, cada uno con su idioma y su dirección absoluta. Es la ubicación más sencilla de verificar: la declaración se lee en la respuesta HTML.
- En la cabecera HTTP. La única ubicación disponible para un documento servido fuera de HTML —un PDF, por ejemplo.
- En el mapa del sitio. Cada entrada de URL lleva las versiones del grupo en xhtml:link. La ventaja es el volumen: el grupo entero se declara una sola vez, en un archivo que usted controla.
Las colocamos en el <head> Y en el mapa del sitio. Ambas ubicaciones se leen de forma independiente: si una se lee antes que la otra, el grupo ya es conocido.
Cómo verificar
La verificación se resume en tres gestos, y el primero es un recuento. Solicite la página servida, cuente sus declaraciones hreflang y compare ese número con el número de idiomas que usted sirve, más uno para x-default. Una diferencia de una sola unidad indica un clúster parcial.
Repita el recuento en una segunda versión de la misma página: ambas listas deben ser idénticas, dirección por dirección. Por último, siga una dirección declarada y compruebe que devuelve la declaración inversa. Estos tres gestos caben en la sola respuesta HTML: le basta con su navegador, tal como ya está instalado.
Desde nuestro incidente, nuestro control de publicación solo deja salir una página cuando declara exactamente tantas etiquetas hreflang como idiomas servidos, más x-default. La comprobación se realiza en el momento de publicar: lo que sale en línea lleva el clúster completo.
Contar sus declaraciones desde su navegador
El Verificador lee su dirección y le devuelve el estado de sus señales, gratis, en unos diez segundos. Su sitio sigue siendo exactamente suyo: todo ocurre durante la lectura, en nuestro lado. El Audit SEO Records va más lejos: lee su mapa del sitio completo, página por página, y le entrega el informe fechado. Y si desea que las señales se corrijan en el momento en que se sirve la página, SEO Records lo hace desde 199 € al año.