El Generador de Hreflang de Screpy crea etiquetas HTML, fragmentos de sitemap XML o declaraciones HTTP Link para un grupo de páginas equivalentes en distintos idiomas. Introduce entre 2 y 50 códigos compatibles con sus URL, elige un formato y copia o descarga el resultado de cada página. El generador prepara las anotaciones a partir de tus valores; no visita las URL, instala el código ni confirma que las páginas publicadas enlacen entre sí.
Prepara un grupo de páginas equivalentes
Usa cada generación para versiones de una misma página: el mismo producto, artículo o servicio en distintos idiomas o mercados. Una página de inicio en francés y una página de producto en inglés no son equivalentes por compartir dominio. Repite el proceso para el siguiente contenido, en lugar de reunir todas las URL traducidas del sitio en un solo grupo.
Para un producto ilustrativo con versiones en inglés y turco, prepara estos valores:
| Campo | Valor | Finalidad |
|---|---|---|
| Idioma y URL | en — https://example.com/en/blue-shirt/ |
Página de producto en inglés |
| Idioma y URL | tr — https://example.com/tr/mavi-gomlek/ |
Página equivalente en turco |
| URL x-default opcional | https://example.com/choose-language/ |
Destino adecuado para elegir idioma |
Las rutas traducidas pueden ser distintas. Copia cada URL pública prevista en vez de construirla cambiando la carpeta de idioma. Incluye la dirección HTTP o HTTPS completa y mantén el dominio, la ruta y la barra final coherentes con el destino que quieres publicar. No se aceptan credenciales en las URL. El formulario elimina fragmentos como #details, así que usa direcciones de páginas y no enlaces a secciones.
Elige códigos de idioma compatibles
Este generador acepta idiomas de dos letras como en, tr o de, seguidos opcionalmente de una región compatible de dos letras, como en-GB o pt-BR. Usa en si la página sirve a lectores de inglés en general; utiliza un código regional cuando mantengas una versión regional específica. Un país solo, como GB, no designa un idioma.
Cada fila normal necesita un código distinto. en-US y en-us cuentan como la misma entrada; cambiar las mayúsculas no crea otra versión. Los códigos generados usan minúsculas para el idioma y mayúsculas para la región. Revisa los valores antes de copiarlos, especialmente la diferencia entre el idioma uk y la región GB para el Reino Unido.
El formulario solo admite códigos de idioma e idioma-región. No acepta combinaciones de escritura como zh-Hant, aunque Google admite anotaciones de escritura en los casos adecuados. Si tu implementación las necesita, prepáralas fuera de este generador. Que se acepte un código tampoco confirma que el texto de la página corresponda a ese idioma.
Decide si quieres añadir x-default
Una URL x-default identifica un destino para usuarios cuyo idioma o región no estén cubiertos por las otras opciones. Puede ser un selector de idioma o una página existente elegida como predeterminada. La explicación de Google sobre x-default describe ambas opciones. Elige un destino útil para este grupo de páginas; no envíes a los visitantes de cada producto a una página sin relación solo por rellenar el campo.
El campo es opcional. Dejarlo vacío no añade ninguna anotación predeterminada. Introducir una URL añade hreflang="x-default" a cada conjunto generado; no crea una redirección del navegador ni una interfaz de selección de idioma.
Al añadir el selector a las dos filas del ejemplo, obtienes dos bloques de salida con tres alternativas cada uno: en, tr y x-default. No aparece un tercer bloque para el selector. Si el destino predeterminado es una página independiente, configura tú sus anotaciones correspondientes. Si ya es una de las URL de las filas normales, esa página ya tiene un bloque generado. Comprueba esta diferencia antes de suponer que existe código de instalación para todos los destinos.
Selecciona HTML o HTTP Link
Elige el formato que puedas mantener donde se sirven las páginas del grupo. No necesitas generar los tres por el hecho de que estén disponibles.
| Formato | Lugar de instalación | Resultado |
|---|---|---|
| HTML | El <head> de cada página |
Un conjunto de elementos <link> |
| HTTP Link | La respuesta HTTP de cada página | Una declaración de cabecera Link: |
| XML | Un sitemap con alternativas de idioma | Un fragmento <url> por página normal |
Para HTML, el grupo ilustrativo produce este conjunto, que debe ir en el head de ambas páginas de producto:
<link rel="alternate" hreflang="en" href="https://example.com/en/blue-shirt/" />
<link rel="alternate" hreflang="tr" href="https://example.com/tr/mavi-gomlek/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/choose-language/" />
La página inglesa incluye su propia URL y la turca; la página turca recibe el mismo conjunto. En un CMS, usa la plantilla o el campo que controla el head. Pegar las etiquetas en el cuerpo visible de un artículo no es la instalación prevista.
El resultado HTTP Link se instala en las cabeceras de respuesta, mediante tu sistema de publicación o servidor. Resulta útil para documentos como PDF sin head HTML. Copia toda la declaración, no solo una URL, e inspecciona la respuesta real después de instalarla. Descargar un archivo de texto no cambia una respuesta por sí solo. Conserva las declaraciones de cabecera existentes que no tengan relación con estas alternativas.
Convierte los fragmentos XML en un sitemap
La descarga XML es un fragmento de página, no un sitemap completo listo para enviar. Cada bloque proporciona un <loc> para su página de entrada normal y repite las alternativas como elementos <xhtml:link>. Añade los bloques a un sitemap con los espacios de nombres de sitemap y XHTML.
Para el ejemplo alojado en el mismo dominio, un archivo completo de dos páginas sería así:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://example.com/en/blue-shirt/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/blue-shirt/" />
<xhtml:link rel="alternate" hreflang="tr" href="https://example.com/tr/mavi-gomlek/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/choose-language/" />
</url>
<url>
<loc>https://example.com/tr/mavi-gomlek/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/blue-shirt/" />
<xhtml:link rel="alternate" hreflang="tr" href="https://example.com/tr/mavi-gomlek/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/choose-language/" />
</url>
</urlset>
Los dos valores <loc> son distintos; sus conjuntos de alternativas coinciden. Al añadir fragmentos a un archivo existente, conserva un único <urlset> exterior en vez de anidar documentos completos. Sustituye las URL del ejemplo por las tuyas y conserva los escapes XML como & en los parámetros de consulta. Publica el archivo en una ubicación que abarque las páginas enumeradas; este ejemplo sirve para un sitemap en la raíz de example.com.
Consulta las instrucciones de Google sobre hreflang en sitemaps para los requisitos de espacios de nombres y alojamiento. Las descargas separadas del generador no ensamblan, alojan ni envían el sitemap por ti.
Verifica las anotaciones instaladas
El resultado generado muestra lo que producen tus valores, no lo que reciben visitantes o rastreadores. Después de instalarlo, compara las páginas publicadas con el grupo previsto:
- Comprueba que cada dirección alternativa abra la página del idioma adecuado, no un error, una URL antigua o un destino sin relación.
- Para HTML o cabeceras, inspecciona las anotaciones reales de cada página normal, incluida la autorreferencia y los enlaces de vuelta a las otras versiones.
- Para XML, inspecciona el sitemap publicado: la estructura exterior, cada
<loc>y su conjunto completo de alternativas. - Revisa las etiquetas canonical junto con las alternativas. Las directrices de Google sobre canonical recomiendan una página canónica en el mismo idioma cuando exista. No apuntes automáticamente el canonical de todas las traducciones a la página inglesa.
Usa Hreflang Tags Tester para inspeccionar las declaraciones HTML y HTTP publicadas. Ese comprobador no valida anotaciones de sitemap ni etiquetas renderizadas con JavaScript. Si las URL preferidas no coinciden con el grupo, examínalas con Canonical Tag Checker.
Cuando una traducción cambie de ubicación o desaparezca, actualiza el grupo en todos los lugares donde lo instalaste. Generar un conjunto nuevo sin sustituir las anotaciones publicadas mantiene la relación anterior. Hreflang ayuda a describir versiones equivalentes; no traduce contenido ni garantiza indexación, posiciones o que Google siempre muestre una URL determinada.