// HERRAMIENTA GRATUITA · GENERADOR HREFLANG

generador hreflang

Escribe un patrón de URL y la lista de códigos de idioma: obtienes el juego completo de etiquetas hreflang — todas las versiones, x-default incluido — y el bloque xhtml:link equivalente para el sitemap. Gratis y dentro de tu navegador.

GratisAl instanteSin registroCorre en tu navegador

También enEnglishDeutschEspañolFrançais日本語한국어Português (Brasil)繁體中文

hreflang · generador

Donde pones {locale} va el segmento de idioma. Se sustituye por el código en minúscula (es-mx); si el segmento queda vacío, la URL cae en la raíz del sitio.

Códigos ISO 639-1, con -Script o -REGIÓN si hace falta (es-MX, es-419, zh-Hant). Después del código puedes escribir una ruta (es /precios/ deja el español en la raíz), una URL completa o un segmento propio (es-419 latam).

La versión que ve quien busca en un idioma que no está en tu lista. Suele ser la inglesa, la raíz o un selector de idioma.

Errores y avisos
    Bloque para el head — pégalo en todas las versiones
    
                
    Bloque para el sitemap — un <url> por versión
    
              

    Cómo generar las etiquetas hreflang

    Un patrón, una lista y dos botones de copiar. El generador deriva todas las URL del mismo patrón, así que el juego sale completo y recíproco por construcción: no queda nada que cotejar a mano.

    1. Escribe el patrón de URL. Toma la URL de una versión y pon {locale} donde va el segmento de idioma: https://ejemplo.com/{locale}/precios/. El código se inserta en minúscula y un segmento vacío deja la URL en la raíz del sitio.
    2. Lista los códigos de idioma. Uno por línea: es, es-MX, es-419, en, pt-BR. Si alguna versión no sigue el patrón —el español está en la raíz, por ejemplo— escribe su ruta detrás del código: es /precios/. Una URL completa o un segmento propio funcionan igual.
    3. Elige el x-default. Decide qué versión ve quien busca en un idioma que no está en tu lista. Suele ser la raíz, la versión en inglés o un selector de idioma. Puedes omitirlo, pero el generador avisa: un juego sin x-default le deja esa decisión al buscador.
    4. Copia los dos bloques. Pega el bloque del head, sin tocarlo, en el head de todas las versiones: cada página tiene que nombrar a todas, incluida ella misma. Pega el bloque del sitemap dentro de un urlset que declare el espacio de nombres xhtml. Con un solo canal basta; si mantienes los dos, tienen que coincidir.

    Qué hace el hreflang y por qué el juego tiene que ser recíproco

    hreflang es un atributo del elemento link que le dice a los buscadores para qué idioma y, si hace falta, para qué región está escrita cada versión de una página. Sin él, alguien que busca en español puede aterrizar en tu página en inglés mientras la española se queda sin indexar por parecer un duplicado. Con él, Google cambia la versión por la que corresponde y consolida las señales del grupo en lugar de repartirlas entre varias URL.

    La regla con la que tropieza casi todo el mundo es la reciprocidad. Cada versión tiene que nombrar a todas las demás y a sí misma. Si la página A apunta a la B pero la B no devuelve el enlace a la A, Google considera que la anotación no es fiable y la descarta: para ese par, no solo para un lado. Los juegos mantenidos a mano se desalinean en cuanto añades un idioma, y por eso este generador escribe el juego entero a partir de un solo patrón y te entrega un bloque para pegar en todas partes, en vez de un fragmento por página que tendrías que ir cuadrando.

    Esa misma derivación construye el hreflang del propio clize.ai: el sitemap y cada página de idioma salen de un único inventario de prefijos, así que ninguna página puede declarar una versión que el sitemap desconozca.

    es-ES, es-MX, es-419: los códigos del español

    El español es la lengua donde la parte de región más se complica, porque un idioma se reparte entre veinte países con precios, medios de pago y vocabulario distintos. es a secas vale para cualquier hispanohablante. es-ES, es-MX, es-AR o es-CO lo acotan a un país, con códigos ISO 3166-1 alfa-2. Y es-419 es el caso especial que casi nadie conoce: 419 es el área numérica de la UN M.49 para América Latina y el Caribe, hreflang la acepta y sirve para una versión latinoamericana única que no distingue país. Ojo: es-419 no incluye España.

    El error que más se repite en esta lengua es es-LA. Parece «español para Latinoamérica», pero LA es el código de país de Laos: le estás diciendo a Google que esa página es para los hispanohablantes de Laos. Si quieres una versión regional, la forma correcta es es-419; si quieres un solo español para todos, es es a secas. Lo mismo vale al revés: mx o ar sueltos no son códigos de idioma y la anotación se descarta entera.

    Antes de partir el sitio en cinco versiones, comprueba que el contenido cambie de verdad: precios en pesos o en euros, medios de pago (SPEI y OXXO en México, Bizum en España, Mercado Pago en el Cono Sur), envíos y devoluciones, y el vocabulario —coche o carro, móvil o celular, ordenador o computadora, vosotros o ustedes—. Si nada de eso cambia, una sola página es rinde más: una URL, un juego de señales y nada que mantener. Mezclar precisiones también es válido y suele ser lo más limpio: es como versión de reserva, es-MX para el mercado que sí tiene precios propios y es-US si atiendes al público hispanohablante de Estados Unidos.

    Un apunte honesto sobre la validación: el generador coteja la parte de idioma contra ISO 639-1 y corrige mayúsculas y guiones, pero no comprueba la región. es-LA pasa por aquí sin protestar y es Google quien luego lo interpreta como Laos. La lista de países la tienes que repasar tú.

    El canonical y el hreflang, juntos

    Cada versión necesita un canonical que se apunte a sí misma: en la página mexicana, <link rel="canonical" href="https://ejemplo.com/es-mx/precios/">, es decir, ella misma. El canonical es la única etiqueta del head que cambia en cada versión, y por eso no forma parte del bloque compartido de arriba: escríbelo página por página y no lo apuntes nunca a otro idioma. Si el canonical de la versión mexicana señala la española, le estás pidiendo a Google que indexe la española en su lugar, y la mexicana sale del grupo hreflang.

    Los otros dos requisitos son mecánicos: todas las URL del juego tienen que devolver 200 y ser indexables —sin redirecciones y sin noindex— y tienen que ser absolutas, con esquema y host. El generador no emite otra cosa. El estado real lo ves con un rastreo o, gratis para tu propio dominio, con clize seo check, que lista cada página con su estado HTTP y su situación en el índice de Google.

    Errores frecuentes con hreflang

    • es-LA para Latinoamérica. LA es Laos. Usa es-419 o simplemente es.
    • Código de país en lugar de idioma. mx, ar o es mal escrito. Y recuerda que uk significa ucraniano, no Reino Unido.
    • Faltan los enlaces de vuelta. A nombra a B y B no nombra a A: el par se descarta. Pega el mismo bloque completo en todas las versiones.
    • No hay autorreferencia. Cada página tiene que incluirse a sí misma. El bloque generado ya lo hace.
    • El canonical apunta a otro idioma. Esa página se cae del juego. Canonical autorreferencial en todas.
    • URL relativas. hreflang exige URL absolutas con esquema y host. El generador no produce otra cosa.
    • Versiones redirigidas o con noindex. Todas las URL del juego tienen que ser un 200 vivo e indexable.
    • El head dice una cosa y el sitemap otra. Quédate con un canal o genera los dos desde la misma fuente, como aquí.

    Las demás caras legibles por máquina de la misma página siguen la misma regla de fuente única: el generador de FAQ schema escribe el JSON-LD y el HTML visible desde una sola lista, y si publicas un llms.txt para agentes, pásalo por el validador de llms.txt (ambos en inglés): un enlace relativo allí es el mismo tipo de fallo que un hreflang relativo aquí.

    // Preguntas frecuentes

    ¿Qué es el hreflang?

    hreflang es un atributo del elemento link que le dice a los buscadores para qué idioma y, si hace falta, para qué región está escrita cada versión de una página. Google lo usa para mostrar la versión que encaja con el idioma y la ubicación de quien busca, y para tratar todas las versiones como un grupo en vez de como duplicados.

    ¿Existe es-LA para Latinoamérica?

    No. LA es el código de país de Laos, así que es-LA significa español de Laos. Para una versión latinoamericana única el código correcto es es-419, el área numérica de la UN M.49 para América Latina y el Caribe, que hreflang acepta y que no incluye España. Si tienes un solo español para todos los mercados, usa es a secas.

    ¿Uso es-ES y es-MX o me basta con es?

    Con es basta mientras tengas una sola página en español. Separar por país compensa cuando el contenido cambia de verdad: precios en pesos o euros, medios de pago como SPEI, OXXO o Bizum, envíos y devoluciones, y el vocabulario. Mezclar también vale: es como versión de reserva y es-MX solo para el mercado que tiene precios propios.

    ¿Qué es el x-default y hace falta ponerlo?

    x-default indica qué versión se muestra cuando ninguno de los idiomas de la lista encaja con quien busca: un selector de idioma, la raíz o la versión en inglés. No es obligatorio, pero sí recomendable, porque sin él decide el buscador.

    ¿El hreflang va en el head o en el sitemap?

    Cualquiera de los dos canales basta por sí solo: elementos link en el head, una cabecera HTTP Link para archivos que no son HTML, o entradas xhtml:link en el sitemap.xml. Con muchas versiones, el sitemap mantiene el head ligero. Si usas los dos, tienen que decir lo mismo, así que genéralos desde la misma fuente.

    ¿El hreflang y el canonical se contradicen?

    No, siempre que cada versión lleve un canonical que se apunte a sí misma. Un canonical que señala a otra versión de idioma le pide al buscador que indexe aquella, y entonces esa página sale del grupo hreflang.

    ¿Esta herramienta revisa las etiquetas hreflang que ya tengo?

    No: genera un juego completo y recíproco a partir de tu patrón de URL. Sustituye tus etiquetas actuales por el bloque generado en todas las versiones en lugar de mezclarlos, para que ninguna página conserve un juego antiguo o incompleto.

    clize seo check — gratis para tu propio dominio

    ¿Etiquetas puestas? Mira qué está viendo Google de verdad.

    Revisar tu propio sitio no cuesta nada: cada página con su estado HTTP y su situación en el índice de Google, las posiciones e impresiones de Search Console comparadas con el periodo anterior, y el tráfico por origen con los motores de IA contados aparte. Un comando desde dentro de tu agente.

    $ npm i -g @clize/clize && clize install
    $ clize seo check --domain tudominio.com
    [ Agent SEO by Clize → ]