rel, target, download y referrerpolicy en enlaces HTML | Nicolás Garzón
Los atributos de enlace configuran la relación entre recursos, el contexto de navegación, la descarga y la información enviada al destino.
HTML
Copiar < a
href = " https://example.com/report.pdf"
target = " _blank"
rel = " noopener noreferrer"
>
Abrir informe
</ a> HTML
Copiar < a href = " /portfolio" target = " _self" > ...</ a>
_self: contexto actual.
_blank: nuevo contexto de navegación.
_parent: parent context.
_top: contexto superior.
También puede usarse un nombre para reutilizar un contexto específico.
HTML
Copiar < a href = " /services" target = " _blank" > Servicios</ a> Quita control al usuario y puede desorientar. Utiliza _blank cuando existe una necesidad clara y comunica el comportamiento si es inesperado.
El usuario ya puede decidir abrir un enlace mediante su navegador.
Una página abierta puede obtener referencia a quien la abrió en ciertos escenarios.
HTML
Copiar < a
href = " https://external.example"
target = " _blank"
rel = " noopener"
>
Sitio externo
</ a> Navegadores modernos tratan muchos links _blank como noopener por defecto, pero expresarlo mantiene intención y compatibilidad.
HTML
Copiar rel="noreferrer"Evita enviar información de referrer y también implica protección de opener en navegadores modernos.
No lo añadas automáticamente si analytics o atribución legítima necesitan el origen reducido por otra política.
HTML
Copiar < a
href = " https://external.example"
referrerpolicy = " strict-origin-when-cross-origin"
>
Recurso
</ a> Controla qué información de la URL actual se envía al destino.
Valores incluyen políticas como:
no-referrer.
origin.
same-origin.
strict-origin.
strict-origin-when-cross-origin.
La política efectiva puede venir de headers, meta y atributos; el atributo es específico del elemento.
rel es una lista de tokens que describe la relación.
HTML
Copiar < a href = " /author/nicolas" rel = " author" > Nicolás Garzón</ a> HTML
Copiar < a href = " https://external.example" rel = " external" > Sitio externo</ a> HTML
Copiar < a href = " /terms" rel = " license" > Licencia</ a> No todos los tokens cambian comportamiento visible; algunos son metadata para herramientas.
HTML
Copiar < a href = " ..." rel = " nofollow" > ...</ a>
< a href = " ..." rel = " sponsored" > ...</ a>
< a href = " ..." rel = " ugc" > ...</ a> Comunican naturaleza del enlace a motores que deciden interpretarlos:
sponsored: publicidad o compensación.
ugc: contenido generado por usuarios.
nofollow: no respaldar o no seguir mediante señales normales.
No son controles de seguridad ni impiden que alguien visite la URL.
HTML
Copiar < a href = " /files/cv.pdf" download >
Descargar CV
</ a> Sugiere descargar en lugar de navegar.
HTML
Copiar < a href = " /files/cv.pdf" download = " nicolas-garzon-cv.pdf" > El navegador puede ignorarlo por políticas, headers, origen o configuración. No garantiza descarga de cualquier recurso cross-origin.
El servidor puede responder:
JavaScript
Copiar Content- Disposition: attachment; filename= "report.pdf" Los headers pueden tener prioridad sobre la sugerencia del atributo y son más apropiados para controlar descargas reales.
HTML
Copiar < a href = " /en/services" hreflang = " en" > English version</ a> Indica el idioma del recurso enlazado; no cambia el idioma del texto del enlace.
HTML
Copiar < a href = " /report.pdf" type = " application/pdf" > Informe PDF</ a> Da una pista sobre el media type del destino. No sustituye el header real ni garantiza que el recurso coincida.
HTML
Copiar < a href = " /product" ping = " /analytics/click" > Producto</ a> Permite notificaciones de hyperlink auditing a URLs especificadas. Tiene implicaciones de privacidad, bloqueo y políticas; no lo utilices sin una decisión explícita y transparente.
HTML
Copiar < a href = " https://example.com" >
Documentación externa
< span class = " visually-hidden" > (sitio externo)</ span>
</ a> No es obligatorio anunciar cada dominio externo, pero puede ayudar cuando cambia el contexto de forma significativa.
HTML
Copiar < a href = " /cv.pdf" download >
Descargar CV < span> (PDF, 180 KB)</ span>
</ a> Mostrar formato y tamaño ayuda a tomar una decisión, especialmente en conexiones limitadas.
HTML
Copiar < a
href = " https://github.com/example/project"
target = " _blank"
rel = " external noopener noreferrer"
>
Ver repositorio en GitHub
</ a>
Añadir _blank a todos los enlaces.
No comunicar cambios de contexto inesperados.
Confiar únicamente en defaults de opener.
Añadir noreferrer sin entender referrer.
Creer que nofollow bloquea navegación.
Usar download para recursos cross-origin y asumir que siempre funciona.
Confundir hreflang con lang del link.
Confiar en type en vez del Content-Type real.
Usar ping sin revisar privacidad.
Ocultar formato y tamaño de archivos grandes.
Target elige contexto de navegación.
Noopener evita acceso al opener.
Noreferrer controla referrer y también protege opener.
Referrerpolicy permite políticas más precisas.
Rel describe relaciones y puede afectar seguridad o descubrimiento.
Download es una sugerencia; el servidor conserva control importante.
Hreflang y type aportan metadata del destino.
Abrir contextos nuevos debe ser una decisión consciente.
¿Por qué rel="nofollow" no protege al usuario de una página maliciosa?
Respuesta Porque es una señal de relación para crawlers; no impide la navegación ni restringe el código del destino.
Imágenes y texto alternativo inicia el bloque de medios y recursos.