Generador de hreflang

La mayoría de generadores escupen lo que escribas en ellos. Este comprueba los códigos primero —contra las listas completas de la ISO 639-1 y la ISO 3166-1— y te avisa cuando un código perfectamente válido no es el que querías poner.

Gratis, sin emailHead · cabecera HTTP · sitemapNo se envía nada

Tus URL

Una fila por cada versión de idioma o país. Las etiquetas autorreferenciales se añaden solas: son justo la parte que la gente se deja.

hreflangURL

Comprobaciones

Contra la ISO 639-1 y la ISO 3166-1 enteras, no contra una lista corta con los veinte códigos de siempre.

    Resultado

    Elige un método. Dos es peor que uno, porque los dos acaban separándose.

    La regla que lo rompe todo

    Conviene leerla antes de pegar el resultado en ningún sitio.

    Si la página A declara la B como alternativa y la B no declara la A de vuelta, los buscadores tiran el par a la basura. No una etiqueta: el par. No hay error, ni aviso, ni nada en ningún informe que lo delate.

    Por eso esta herramienta genera un único bloque idéntico para todas las URL del conjunto, en lugar de un bloque distinto por página. Si pegas lo mismo en todas partes, las etiquetas de retorno no pueden estar mal.

    Qué hace realmente hreflang

    Una anotación hreflang le dice al buscador que varias URL son la misma página escrita para idiomas o países distintos, para que cada persona reciba la versión que le corresponde. Conviene ser preciso con los límites, porque casi toda la decepción alrededor de hreflang viene de esperar más de lo que da:

    • Es una indicación sobre qué versión mostrar, no una instrucción sobre qué indexar. Cada página sigue teniendo que ganarse su sitio por sí misma.
    • No mejora el posicionamiento. Lo que arregla es que posicione la versión equivocada, o que dos versiones tuyas compitan por la misma consulta.
    • No sustituye a la canónica, y no puede contradecirla. Si la página en inglés canonicaliza hacia la española y a la vez la declara alternativa, has dado dos instrucciones opuestas y la anotación se ignora.

    Dónde poner las etiquetas

    Hay tres sitios válidos, y deberías usar exactamente uno:

    • Head del HTML. Lo habitual. Cada página lleva el conjunto completo, incluida la etiqueta que apunta a sí misma.
    • Cabecera HTTP Link. Para archivos sin head donde poner etiquetas: PDF, imágenes, feeds. El mismo contenido, servido como cabecera de respuesta.
    • Sitemap XML. Una entrada por URL, cada una con el conjunto entero. Es verboso, pero mantiene las anotaciones en un solo archivo en vez de repartidas por miles de plantillas, y eso es lo que lo convierte en la opción cómoda a partir de una veintena larga de versiones.

    Hacer dos a la vez es un lío frecuente y evitable. Las etiquetas del head se actualizan en un rediseño, el sitemap no, y de pronto la misma URL está declarada de dos maneras distintas por dos equipos que nunca han hablado entre ellos.

    Códigos que validan y aun así pierden el mercado

    Todos estos pasan cualquier comprobador de sintaxis. Están mal igualmente, y son la razón de que esta herramienta lleve dentro la lista ISO completa en lugar de una expresión regular:

    EscritoLo que significa de verdadLo que se quería decir
    en-UKNo válido: UK solo está reservado en la ISO 3166-1en-GB
    ukUcranianoen-GB
    euEuskeraEuropa, que hreflang no puede segmentar
    es-LAEspañol en LaosLatinoamérica: usa es, o los países uno a uno
    es-419No válido: 419 es un código M.49 de la ONU, no ISO 3166-1lo mismo que arriba
    ar-MEÁrabe en MontenegroOriente Medio, que tampoco existe en hreflang
    es_ESNo válido: el separador es un guiones-ES
    ESNo válido: un país no puede ir soloes-ES
    iwCódigo retirado del hebreohe

    El patrón es que hreflang no tiene ningún concepto de continente, de región ni de bloque comercial. Hay un idioma y, opcionalmente, un país. Todo lo de esa lista es alguien intentando expresar algo que el formato sencillamente no tiene, y quedándose con un código válido que significa otro sitio.

    Para quien vende a Latinoamérica esto importa especialmente. No existe una etiqueta para la región. O usas es a secas y dejas que el idioma haga el trabajo, o segmentas país por país con es-MX, es-AR, es-CO — y entonces te toca justificar por qué esas páginas son distintas entre sí, porque si no lo son acabarán compitiendo.

    El orden en el que yo trabajaría

    1. Primero la lista de URL, después los códigos. Al revés es como acabas con versiones para las que nadie tiene páginas.
    2. Usa códigos de solo idioma salvo que el país cambie algo de verdad. es sirviendo a toda Latinoamérica gana a es-MX, es-AR y es-CO apuntando a tres páginas casi idénticas que luego compiten entre ellas.
    3. Revisa la canónica de cada página. Cada versión se canonicaliza a sí misma. Esta es la forma más habitual de que un conjunto de etiquetas correcto se ignore.
    4. Despliega en todas las URL del conjunto a la vez. Un despliegue parcial es un conjunto de etiquetas de retorno rotas, y los pares siguen descartados hasta que sale la última página.
    5. Verifica cuando esté en producción, descargando las páginas y comparando las dos direcciones. No mirando la plantilla.

    Lo que esta herramienta no hace

    Genera y valida códigos. No rastrea tu sitio, así que no puede ver si las etiquetas que pegues acabaron de verdad en todas las páginas ni si las de retorno se corresponden en producción. Ese es otro trabajo, y es el que merece la pena hacer después de desplegar: en la guía práctica de hreflang explico el fallo de las etiquetas de retorno con detalle, y en la checklist de auditoría SEO internacional (en inglés) está el orden completo de revisión.

    Preguntas

    Una anotación que le dice a los buscadores que varias URL son la misma página en idiomas distintos o para países distintos, para que cada persona vea la que le toca. Es una indicación sobre qué versión servir, no sobre qué indexar, y por sí sola no mueve el posicionamiento.
    En uno de tres sitios, y solo en uno: elementos link en el head, una cabecera de respuesta Link, o elementos xhtml:link en un sitemap XML. El head es lo normal; la cabecera existe para archivos sin head, como los PDF; el sitemap es más cómodo con muchas versiones. Usar dos a la vez es como aparecen las declaraciones contradictorias.
    No. El código ISO 3166-1 del Reino Unido es GB, así que es en-GB. UK solo está reservado en la norma y la anotación se ignora. Es el error más frecuente en hreflang, y ni el navegador ni el gestor de contenidos te avisan.
    Casi siempre las etiquetas de retorno: A declara a B, B no declara a A, y el par se descarta sin error y sin rastro en ningún informe. Después de eso, lo habitual es un código no válido, una URL relativa en lugar de absoluta, o un hreflang que contradice la canónica de la propia página.
    No es obligatorio, pero conviene. Indica a qué página recurrir cuando nada de tu conjunto coincide con el visitante: un lector neerlandés en un conjunto EN/ES/DE, por ejemplo. Suele apuntar a la versión internacional o en inglés, o a una página selectora. Si esa página no es una de las alternativas, también tiene que llevar el mismo conjunto de etiquetas.