Acerca de este problema HTML
El elemento <link> define una relación entre el documento actual y un recurso externo. Se usa más frecuentemente en el <head> para cargar hojas de estilo, declarar iconos, especificar URLs canónicas, o proporcionar metadatos. La especificación HTML requiere que al menos uno de href, itemprop, property, rel, o resource esté presente en cualquier elemento <link>. Una etiqueta <link> vacía sin ninguno de estos atributos no tiene propósito definido y por lo tanto es inválida.
Este error de validación ocurre típicamente en unos pocos escenarios:
-
Se añadió un elemento
<link>como marcador de posición y nunca se completó. - Los atributos fueron eliminados accidentalmente o mal escritos durante la edición.
-
Un motor de plantillas o herramienta de compilación generó una etiqueta
<link>incompleta. -
El atributo
relfue omitido cuando solohrefera técnicamente suficiente, pero el desarrollador tenía la intención de especificar una relación.
Aunque los navegadores pueden ignorar silenciosamente un elemento <link> vacío, dejarlo en tu marcado crea desorden, señala código incompleto, y viola el estándar HTML. Mantener tu HTML válido asegura un comportamiento predecible en navegadores y tecnologías de asistencia.
Cómo solucionarlo
Verifica cada elemento <link> en tu documento y asegúrate de que incluya al menos uno de los atributos requeridos. En la práctica, la mayoría de los elementos <link> deberían tener tanto rel como href:
-
rel— especifica la relación (ej.,stylesheet,icon,canonical,preconnect). -
href— proporciona la URL del recurso enlazado. -
itemprop— usado para marcado de microdata. -
property— usado para metadatos RDFa u Open Graph. -
resource— usado en RDFa para identificar un recurso por URI.
Si un elemento <link> no tiene propósito válido, elimínalo completamente.
Ejemplos
Inválido: <link> sin atributos requeridos
<link type="text/css">
El atributo type solo no satisface el requisito. El validador marcará este elemento.
Inválido: <link> con solo crossorigin
<link crossorigin="anonymous">
crossorigin no es uno de los atributos requeridos, así que esto sigue siendo inválido.
Válido: hoja de estilo con rel y href
<link rel="stylesheet" href="styles.css">
Válido: favicon con rel y href
<link rel="icon" href="/favicon.ico" type="image/x-icon">
Válido: sugerencia preconnect
<link rel="preconnect" href="https://fonts.googleapis.com">
Válido: URL canónica
<link rel="canonical" href="https://example.com/page">
Válido: metadatos Open Graph con property
<link property="og:image" href="https://example.com/image.png">
Válido: microdata con itemprop
<link itemprop="url" href="https://example.com">
Ejemplo de documento completo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>My Page</title>
<link rel="stylesheet" href="styles.css">
<link rel="icon" href="/favicon.ico">
<link rel="canonical" href="https://example.com/my-page">
</head>
<body>
<h1>Hello, world!</h1>
</body>
</html>
Cada elemento <link> en este documento tiene tanto un atributo rel como un href, haciéndolos válidos y comunicando claramente su propósito a navegadores y validadores.
Encuentra problemas como este automáticamente
Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.