Estructura Semántica de HTML5
Aprende a estructurar sitios profesionales con <header>, <nav>, <main>, <section>, <article>, <aside> y <footer> para maximizar la accesibilidad y el SEO.
¿Qué es la Semántica Web y por qué importa?
Un elemento semántico describe claramente su significado tanto para el desarrollador como para el navegador, los motores de búsqueda (Google, Bing) y las tecnologías de asistencia (lectores de pantalla para personas con discapacidad visual).
En versiones antiguas de HTML (HTML 4.01), todo se construía con divisiones genéricas tipo <div class="header">, <div id="nav"> o <div class="footer"> (lo que se conoce en la industria como "div soup"). HTML5 resolvió esto introduciendo etiquetas semánticas con significado estructural intrínseco.
Diagrama 14.1: Maquetación semántica moderna con header, nav, main, article, aside y footer vs "div soup" obsoleta.
Catálogo de Etiquetas Semánticas de Estructura
| Etiqueta | Propósito Semántico |
|---|---|
<header> |
Encabezado introductorio de una página completa o de un artículo (logotipos, títulos, barra de bienvenida). |
<nav> |
Bloque de enlaces principales de navegación del sitio. No todos los enlaces deben ir en <nav>, solo los menús clave. |
<main> |
El contenido central, dominante y único de la página. Solo debe existir un <main> por documento y no debe contener cabeceras ni pies repetitivos. |
<section> |
Sección temática genérica dentro de un documento. Debe contener normalmente su propio encabezado (<h2>-<h6>). |
<article> |
Un bloque de contenido independiente, autocontenido y redistribuible (un artículo de blog, una noticia, una reseña o tarjeta de producto). |
<aside> |
Contenido complementario, secundario o relacionado tangencialmente (barras laterales, enlaces de interés, widgets de autor). |
<footer> |
Pie de página con información sobre el autor, enlaces legales, derechos de autor y datos de contacto. |
⚡ Layout Semántico Completo en Acción
Observa cómo se organiza una interfaz completa con header, nav, main, article, aside y footer:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Maquetación Semántica HTML5</title>
<style>
body { font-family: Arial, Helvetica, sans-serif; margin: 0; padding: 20px; background: #f1f5f9; }
header, nav, main, aside, footer { border-radius: 8px; padding: 15px; margin-bottom: 12px; }
header { background: #0f172a; color: white; }
nav { background: #1e293b; display: flex; gap: 15px; }
nav a { color: #38bdf8; text-decoration: none; font-weight: 600; font-size: 0.95rem; }
nav a:hover { text-decoration: underline; }
.layout-grid { display: flex; gap: 15px; }
main { flex: 3; background: white; border: 1px solid #cbd5e1; }
article { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px; padding: 15px; margin-top: 10px; }
aside { flex: 1; background: #e0f2fe; border: 1px solid #bae6fd; }
footer { background: #334155; color: white; text-align: center; font-size: 0.85rem; }
</style>
</head>
<body>
<!-- Cabecera del Sitio -->
<header>
<h2 style="margin: 0;">Kilopolis Academia</h2>
<small>Campus Virtual de Desarrollo Web y Software</small>
</header>
<!-- Navegación Principal -->
<nav>
<a href="#cursos">Cursos</a>
<a href="#manuales">Manuales</a>
<a href="#sandbox">Sandbox</a>
<a href="#soporte">Soporte</a>
</nav>
<!-- Contenido Central y Barra Lateral -->
<div class="layout-grid">
<main>
<h3 style="margin-top: 0; color: #0f172a;">Área Principal (<main>)</h3>
<article>
<h4 style="margin-top: 0; color: #0284c7;">Artículo Semántico (<article>)</h4>
<p>
Los elementos semánticos permiten que Google y los lectores de pantalla entiendan de inmediato qué parte es el menú, qué parte es el contenido relevante y qué parte es la barra lateral.
</p>
</article>
</main>
<aside>
<h4 style="margin-top: 0; color: #0369a1;">Barra Lateral (<aside>)</h4>
<p style="font-size: 0.9rem;">
💡 <strong>Dato clave:</strong> Usa <code><article></code> cuando el contenido tenga sentido por sí solo si se publicara en un lector de RSS.
</p>
</aside>
</div>
<!-- Pie de Página -->
<footer>
© 2026 Kilopolis Academia · Construido con HTML5 Semántico Estándar.
</footer>
</body>
</html>
Mini-Quiz de Retención
Comprueba tu comprensión antes de pasar a la siguiente lección¿Cuántas veces debe aparecer la etiqueta <main> en un documento HTML5 estándar?
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.🚀 ¿Quieres dominar Manual Completo de HTML5 y crear proyectos reales?
Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.
🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.