Mejores prácticas de HTML moderno
En este artículo encontrarás una guía exhaustiva para escribir HTML limpio, semántico, accesible y optimizado para SEO y rendimiento, acompañada de ejemplos y comparativas visuales.
1. Usa la semántica de HTML5
Reemplaza <div> genéricos por elementos con significado propio: <header>, <nav>, <main>, <section>, <article>, <aside> y <footer>. Los motores de búsqueda y los lectores de pantalla utilizan esta información para comprender la estructura del documento.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Ejemplo semántico</title>
</head>
<body>
<header>
<h1>Mi sitio web</h1>
<nav aria-label="Navegación principal">
<ul>
<li><a href="#">Inicio</a></li>
<li><a href="#">Servicios</a></li>
<li><a href="#">Contacto</a></li>
</ul>
</nav>
</header>
<main>
<article>
<h2>Título del artículo</h2>
<p>Contenido del artículo...</p>
</article>
</main>
<footer>
<p>© 2025 Mi Empresa</p>
</footer>
</body>
</html>
2. Accesibilidad (ARIA y atributos)
Incluye atributos ARIA cuando la semántica nativa no cubre el caso de uso. Usa role, aria-label, aria-describedby, etc. Además, asegura contraste suficiente y evita usar sólo color para transmitir información.
<button aria-label="Abrir menú">
<svg aria-hidden="true">...</svg>
</button>
3. Optimiza el rendimiento
- Defer y async en scripts externos.
- Lazy‑load de imágenes y iframes con
loading="lazy". - Minimiza y concatena CSS/JS.
- Usa formatos modernos de imagen (WebP, AVIF).
<script src="app.js" defer></script>
<img src="foto.jpg" alt="Foto descriptiva" loading="lazy">
4. Buenas prácticas SEO
Apóyate en la estructura semántica y en los atributos title, meta description, h1‑h6 bien jerarquizados, alt descriptivo en imágenes y datos estructurados cuando sea necesario.
<head>
<title>Guía de HTML moderno – Mejores prácticas</title>
<meta name="description" content="Aprende a escribir HTML semántico, accesible y optimizado para SEO y rendimiento.">
<link rel="canonical" href="https://ejemplo.com/mejores-practicas-html">
</head>
5. Comparativa: HTML tradicional vs HTML moderno
HTML tradicional
- ● Uso excesivo de
<div>y<span>. - ● Falta de atributos
altytitle. - ● Scripts al inicio del
<head>que bloquean renderizado. - ● No se emplea
langnimeta charsetcorrectamente. - ● Ausencia de ARIA y roles accesibles.
HTML moderno
- ● Estructura semántica con
header,nav,main, etc. - ● Imágenes con
altdescriptivo yloading="lazy". - ● Scripts con
deferoasyncal final delbody. - ● Declaración explícita de
langycharset. - ● Uso de ARIA donde la semántica nativa no es suficiente.
6. Seguridad en el markup
Evita la inserción directa de contenido no sanitizado. Utiliza Content‑Security‑Policy (CSP) y escapa siempre los valores que provengan del usuario.
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' https://cdn.jsdelivr.net; object-src 'none';">
7. Herramientas de validación y pruebas
- W3C Markup Validation Service
- Lighthouse (accesibilidad, SEO, performance)
Conclusión
Aplicar las mejores prácticas de HTML moderno no solo mejora la experiencia del usuario, sino que también favorece el SEO, la accesibilidad y el rendimiento de la página. Adoptar una arquitectura semántica, optimizar recursos y garantizar la seguridad son pilares esenciales para cualquier proyecto web actual.
Mejores prácticas de HTML moderno: guía completa con ejemplos