🌐 Generador de etiquetas hreflang
Selecciona URL base e idiomas para generar etiquetas <link rel="alternate" hreflang="..."> en lote. x-default automático, validación ISO 639, CSV.
🔒 Sobre la privacidad
- ・Las URLs no se envían al servidor
- ・Todo en el navegador
- ・Sin registro, sin inicio de sesión, sin pago
Separados por coma. ISO 639-1 o + ISO 3166-1.
Se aplican las locales anteriores a cada URL.
📄 Etiquetas generadas
📖 Dónde se suele tropezar
Genera etiquetas <link rel="alternate" hreflang="…"> a partir de una URL base y un conjunto de idiomas, con patrones de URL por prefijo de ruta, subdominio o parámetro de consulta, x-default automático y generación masiva desde CSV. Todo se ejecuta en el navegador. hreflang no es un factor de posicionamiento: se limita a declarar que existe otra versión lingüística del mismo contenido y a ayudar al buscador a elegir cuál mostrar.
| Caso | Qué ocurre | Qué hacer |
|---|---|---|
| El conjunto se ignora porque las referencias no son mutuas | hreflang sólo funciona si cada página del grupo apunta a todas las demás: si la japonesa apunta a la inglesa pero la inglesa no devuelve el apunte, Google descarta el conjunto entero. Se pasa por alto con facilidad que cada página necesita además una etiqueta hreflang que apunte a sí misma: la japonesa lleva una entrada hreflang="ja" con su propia URL. El fallo más común en la práctica es actualizar una página y olvidar las demás lenguas: la carga operativa de que añadir un idioma nuevo obliga a actualizar las etiquetas de todas las páginas existentes es la dificultad esencial de este mecanismo. |
Pon el conjunto de etiquetas generado, sin cambios, en el <head> de todas las versiones lingüísticas: el contenido no varía de una página a otra. Como implementación, recorrer la lista de idiomas en la plantilla es el único enfoque sensato; escribirlas a mano siempre acaba desviándose en algún punto. En un sitio grande, plantéate declararlas en sitemap.xml en lugar de en el HTML: <xhtml:link> expresa la misma información y tener todas las páginas en un solo archivo hace estructuralmente imposible un olvido. Comprueba en el informe de Segmentación internacional de Search Console: un aviso de que faltan etiquetas de retorno es exactamente esa referencia mutua ausente. |
| El código de idioma está mal formado | El valor es un idioma, o un idioma más una región; una región sola no vale: hreflang="US" no significa nada. Entre los errores habituales están en-UK, cuando el código correcto es en-GB, usar zh a secas esperando que distinga simplificado de tradicional, y el guion bajo, como en ja_JP, cuando se exige guion. El chino merece especial cuidado: simplificado y tradicional se distinguen con códigos de escritura, zh-Hans y zh-Hant. zh-CN y zh-TW también funcionan, pero al ser regiones no cubren a los lectores de escritura simplificada de Singapur o Malasia. |
El código de idioma es ISO 639-1, el de región ISO 3166-1 alfa-2, y el separador es un guion. Y más importante: pregúntate si necesitas la región siquiera. hreflang="en" coincide con todos los hablantes de inglés, mientras que hreflang="en-US" sólo con los que están en Estados Unidos. Si tu contenido y tus precios no varían por país, omitir la región llega a más gente. Reserva las regiones para páginas donde la moneda, los portes o los requisitos legales difieran de verdad. Un verificador gratuito de hreflang es la vía fiable, pero empieza poniendo el HTML de dos versiones lado a lado y confirmando con tus ojos que se apuntan mutuamente: la mayoría de los errores se cazan ahí mismo. |
| Un canonical contradictorio deja la otra versión fuera del índice | hreflang y canonical cumplen funciones distintas y se confunden con facilidad. Cada versión lingüística debe llevar un canonical que apunte a sí misma. Pon el canonical de /en/about/ en /ja/about/ y habrás declarado que la página inglesa es un duplicado y que sólo debe indexarse la japonesa: la inglesa desaparece de los resultados. Además, el conjunto hreflang también se ignora, porque un grupo cuyos canonical apuntan a otro sitio no merece confianza. Es el caso clásico de un ajuste bienintencionado —un sitio multilingüe necesitará canonicalización, se piensa— que produce justo lo contrario de lo buscado. |
Cada versión lingüística debe llevar un canonical que se refiera a sí misma. hreflang dice que existe otra versión lingüística; canonical dice que esta página es la canónica: sólo funcionan bien juntos. Reserva el canonical para URLs duplicadas dentro del mismo idioma: con y sin barra final, URLs con parámetros de seguimiento, vistas de impresión. Una vez implementado, comprueba la URL canónica seleccionada por Google en la inspección de URL de Search Console: si difiere de tu intención, es prueba clara de que tu declaración no está llegando. |
Añadir hreflang no garantiza que se indexen todas las versiones lingüísticas. Una página con una traducción pobre, o con traducción automática sin revisar, suspende en calidad haya o no hreflang: este mismo sitio retiró sus versiones en portugués y alemán en julio de 2026 justo por eso, porque eran duplicados de las páginas en inglés sin valor propio, y consolidó 576 URLs con redirecciones 301. Antes de añadir un idioma, pregúntate si el contenido merece leerse en ese idioma; amontonar traducciones pobres es un pasivo para el sitio en conjunto. Hay tres lugares donde declararlo: el <link> del HTML, una cabecera de respuesta HTTP o sitemap.xml, y basta con uno; combinarlos está permitido, pero las contradicciones hacen que todo se ignore. Para archivos sin <head>, como los PDF, usa la cabecera HTTP Link:.
📖 Cómo usar
-
1
Introduce URL baseIntroduce la URL a localizar.
-
2
Especifica localesCódigos de idioma separados por coma.
-
3
Obtén etiquetasPega las etiquetas en <head>.
❓ Preguntas frecuentes
¿Es obligatorio x-default?
¿Dónde colocar hreflang?
¿Enlaces bidireccionales?
🔗 Herramientas relacionadas
🐛 ¿Encontró un problema con esta herramienta?
Gratis, sin registro. Incluso solo los pasos para reproducir ayudan. Los informes van directamente al operador y se usan para corregir.
¡Gracias por tu reporte!
Tu reporte llegó al operador y se usará para mejorar.