¿Qué es la cabecera HTTP Link con rel=alternate?
El header Link rel=alternate, o cabecera Link con rel=alternate, es una línea de la respuesta HTTP que anuncia que ese mismo contenido existe en otra versión, en otra dirección: en otro idioma, si lleva hreflang, o en otro formato, si lleva type, como un PDF o una versión en Markdown. Dice lo mismo que el elemento link del HTML, pero sirve también para archivos que no son HTML.
Lo esencial
- Link es una cabecera estándar de HTTP (RFC 8288) que declara relaciones entre URL; rel=alternate es la que dice «esto mismo, en otra versión».
- Con hreflang anuncia una traducción; con type, el mismo contenido en otro formato.
- Google acepta hreflang en la cabecera Link y lo trata igual que en el HTML o en el sitemap: es la vía para los PDF y otros archivos sin HTML.
- La propuesta de llms.txt recomienda anunciar así la versión en Markdown de cada página, aunque Google dice que no necesita Markdown para su Búsqueda.
- alternate no dice qué versión manda: eso es trabajo de la relación canonical.
La cabecera Link no es un enlace que se vea en la página ni el elemento <link> del <head>, aunque dice lo mismo que él: es una línea entre las cabeceras de la respuesta, invisible en el navegador si no abres sus herramientas de desarrollo. A una tienda le sirve en tres casos. Cuando tiene archivos que no son HTML, como la ficha técnica en PDF, y no puede ponerles un <head>. Cuando publica versiones en varios idiomas. Y cuando quiere ofrecer a los agentes de IA una versión en Markdown de cada página sin tocar las plantillas del tema. Es la forma de declarar relaciones entre URL desde el servidor o la CDN, no desde el HTML.
Cómo funciona
La cabecera Link la define el RFC 8288, Web Linking, que M. Nottingham publicó en octubre de 2017 y que sustituyó al RFC 5988. El estándar describe un enlace con cuatro piezas: el contexto (la URL que responde), el tipo de relación, el destino y, si hacen falta, unos atributos del destino. En la cabecera se escribe la URL de destino entre ángulos, después rel con el tipo de relación y, separados por punto y coma, los atributos. Caben varios enlaces en una sola cabecera, separados por comas, o en varias cabeceras Link seguidas.[1]IETF (M. Nottingham). RFC 8288: Web Linking
Los atributos que el estándar define para el destino son hreflang, una pista del idioma; type, una pista del tipo de archivo; media; title; y anchor, que cambia el contexto del enlace. Sobre este último, el RFC avisa de que una cabecera con anchor es una afirmación de terceros y no es de fiar sin comprobarla.[1]IETF (M. Nottingham). RFC 8288: Web Linking
alternate es uno de los tipos de relación registrados en la IANA, con una descripción de una línea: se refiere a un sustituto de este contexto. Para el detalle, el registro remite al estándar de HTML.[2]IANA. Link Relations Y ahí el significado depende de lo que acompañe a la relación:[3]WHATWG. HTML Standard: Link type "alternate"
- Con
hreflangen un idioma distinto del de la página, el destino es una traducción. - Con
type, el destino es una reformulación de la misma página en otro formato. Con los tipos de RSS o Atom, es un canal de sindicación. - Los dos atributos se pueden combinar, para una versión en otro idioma y otro formato a la vez.
Lo que alternate no dice es cuál de las versiones manda. Para eso existe otra relación, canonical, que la IANA describe como la que designa la versión preferida de un recurso.[2]IANA. Link Relations
Tres usos en una tienda
Idiomas, con hreflang. Google admite tres maneras de indicarle las versiones localizadas de una página: elementos en el HTML, el sitemap y cabeceras HTTP, y dice que para él las tres son equivalentes. La cabecera es la que sirve para archivos que no son HTML, como los PDF. Las reglas son las mismas en los tres métodos: cada versión se lista a sí misma y a todas las demás, las URL van completas, con su https://, y si dos páginas no se apuntan la una a la otra, Google ignora las indicaciones. Para quien no encaje en ningún idioma está el valor x-default.[4]Google Search Central. Tell Google about localized versions of your page
Formatos, con type. La propuesta de llms.txt, en su versión del 10 de agosto de 2026, pide que las páginas útiles para los agentes tengan una versión limpia en Markdown en la misma URL con .md añadido, y recomienda anunciarla con relaciones estándar: rel="alternate" type="text/markdown" hacia la versión en Markdown y rel="describedby" hacia el llms.txt que la cubre. Lo propone en el HTML o en la cabecera, y señala la ventaja de la segunda: se configura en el servidor o en la CDN sin modificar ninguna página.[5]llmstxt.org (Jeremy Howard). The /llms.txt file Es una de las formas de servir Markdown para agentes. Google, por su parte, dice que no hace falta crear archivos legibles por máquinas, archivos de texto para IA, marcado ni Markdown para aparecer en su Búsqueda.[6]Google Search Central. Optimizing your website for generative AI features on Google Search La versión en Markdown es una oferta para los agentes que quieran pedirla, no un requisito de Google.
La canonical de lo que no es HTML. La misma cabecera lleva otras relaciones. Google acepta rel="canonical" en la respuesta para los archivos que no son HTML, por ejemplo para indicar que la versión en PDF de un documento es la canónica frente a su .docx, y solo para los resultados de búsqueda web. Recomienda elegir un método y no mezclarlo con la etiqueta del HTML, porque es fácil acabar declarando una URL en la cabecera y otra en el <link>.[7]Google Search Central. How to specify a canonical URL with rel="canonical" and other methods
En una tienda
Un ejemplo ficticio: una tienda de fotografía publica la ficha técnica de un trípode en PDF, en español y en inglés. Así responde el PDF en español:
HTTP/2 200
content-type: application/pdf
link: <https://tienda.example/docs/t20-ficha-es.pdf>; rel="alternate"; hreflang="es", <https://tienda.example/docs/t20-ficha-en.pdf>; rel="alternate"; hreflang="en"
La cabecera se lista a sí misma y a la versión inglesa, con las URL completas, y el PDF en inglés tiene que responder con los mismos dos enlaces. Si uno de los dos no devuelve el par, Google ignora los dos.[4]Google Search Central. Tell Google about localized versions of your page
La ficha del mismo trípode, en HTML, anuncia su versión en Markdown y el llms.txt del sitio:
HTTP/2 200
content-type: text/html; charset=utf-8
link: </products/tripode-viaje-t20.md>; rel="alternate"; type="text/markdown", </llms.txt>; rel="describedby"
Es la misma forma que el ejemplo de la propuesta de llms.txt, con rutas relativas al dominio.[5]llmstxt.org (Jeremy Howard). The /llms.txt file El requisito de URL completas es de Google para hreflang;[4]Google Search Central. Tell Google about localized versions of your page para quien lea esta segunda cabecera, la ruta se resuelve contra la URL que respondió. Ninguna de las dos líneas se ve en la página: quien compra no nota nada, y quien lee las cabeceras sabe que hay otra versión y dónde está.
Lo que se suele confundir
alternate y canonical no son intercambiables. La primera se refiere a un sustituto; la segunda designa la versión preferida.[2]IANA. Link Relations Anunciar la versión en Markdown con alternate no la convierte en la principal, y apuntar a ella la canonical de la ficha diría justo eso: que la versión que quieres en los resultados es el .md. La cabecera de la ficha lleva alternate hacia el Markdown y, si declaras la canonical en cabecera, la canonical hacia la propia ficha.
Cómo comprobarlo
- Pide la URL con
curl -Iy busca las líneas que empiezan porlink:. Puede haber varias, o varios enlaces separados por comas en una sola.[1]IETF (M. Nottingham). RFC 8288: Web Linking - Mira la misma respuesta en el navegador: en las herramientas de desarrollo, pestaña Red, elige el documento y abre sus cabeceras de respuesta.
- Abre cada URL que anuncia la cabecera. Tienen que responder con un 200, y en el caso de hreflang, cada versión tiene que devolver el mismo grupo de enlaces, con URL completas y con ella misma incluida.[4]Google Search Central. Tell Google about localized versions of your page
- Comprueba que Google recibe la cabecera. En la inspección de URLs de Search Console, «Probar URL publicada» y después «Ver página probada» muestran las cabeceras HTTP de la respuesta.[8]Ayuda de Search Console. Herramienta de inspección de URLs
- Si declaras la canonical en cabecera, que no choque con la del HTML. Mejor un solo método que dos con URL distintas.[7]Google Search Central. How to specify a canonical URL with rel="canonical" and other methods
Concepto cercano: negociación de contenido
La negociación de contenido resuelve lo mismo desde el otro lado. Con alternate, cada versión tiene su propia URL y el servidor la anuncia; con la negociación, la URL es una sola y es el cliente quien pide el formato en la cabecera Accept de su petición. Cloudflare lo aplica en su función Markdown for Agents: cuando un agente pide una página con Accept: text/markdown, convierte el HTML en Markdown en el borde, responde con Content-Type: text/markdown y añade Accept a la cabecera Vary, para que las cachés guarden las dos versiones por separado.[9]Cloudflare Docs. Markdown for Agents Las dos cosas se pueden combinar: una versión .md con su URL, anunciada con alternate, y la URL de siempre sirviendo Markdown a quien lo pida.
Para seguir, la comparativa de los archivos que se ofrecen a buscadores y agentes pone a cada uno en su sitio, y la ruta de lectura de este tema ordena el resto de términos.
Sinónimos
- English
- Link header, HTTP Link header
- Español
- cabecera Link, encabezado Link
Fuentes
- [1] IETF (M. Nottingham). RFC 8288: Web Linking. Consultado el . ↑ ↑ ↑
- [2] IANA. Link Relations. Consultado el . ↑ ↑ ↑
- [3] WHATWG. HTML Standard: Link type "alternate". Consultado el . ↑
- [4] Google Search Central. Tell Google about localized versions of your page. Consultado el . ↑ ↑ ↑ ↑
- [5] llmstxt.org (Jeremy Howard). The /llms.txt file. Consultado el . ↑ ↑
- [6] Google Search Central. Optimizing your website for generative AI features on Google Search. Consultado el . ↑
- [7] Google Search Central. How to specify a canonical URL with rel="canonical" and other methods. Consultado el . ↑ ↑
- [8] Ayuda de Search Console. Herramienta de inspección de URLs. Consultado el . ↑
- [9] Cloudflare Docs. Markdown for Agents. Consultado el . ↑
Historial de cambios
- Primera versión.
Esta definición se publica bajo licencia CC BY 4.0. Puedes reutilizar esta definición citando a Clione con un enlace a esta página.
Términos relacionados
hreflang
Qué es hreflang, cómo se declara en el HTML, en una cabecera o en el sitemap, qué hace Shopify por ti y cómo comprobar que tus versiones se enlazan bien.
Canonical
Qué es la etiqueta canonical, cómo la usa Google para elegir la URL de una ficha con varias direcciones y cómo comprobar cuál ha elegido en tu tienda.
llms.txt
Qué es el archivo llms.txt, qué propone llmstxt.org, qué dijo Google en junio de 2026 sobre su efecto en la Búsqueda y cómo comprobar el de tu tienda.
Markdown para agentes
Qué es servir una versión en Markdown de tus páginas a los agentes de IA: URL .md, negociación de contenido, la función de Cloudflare y lo que dice Google.
Negociación de contenido
Qué es la negociación de contenido en HTTP, cómo elige el servidor entre HTML, Markdown o idiomas con Accept y Vary, y qué cambia para los bots.
Caché y CDN para bots
Cómo la caché HTTP y la CDN deciden qué ven Googlebot y los bots de IA en tu tienda: ETag, 304, max-age y los bloqueos que sacan páginas del índice.
Haz que los bots entiendan tu catálogo
Clione completa cada ficha de producto con lo que los bots leen mejor: el grafo JSON-LD con sus datos estructurados, la meta description y las preguntas frecuentes. Tú revisas y pulsas Push; después comprobamos tu tienda en vivo para que todo siga publicado.