Tema 14 · Maquetación

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 Técnico: Estructura Semántica de una Página Web en HTML5

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:

index.html
Solo lectura
<!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 (&lt;main&gt;)</h3>
      
      <article>
        <h4 style="margin-top: 0; color: #0284c7;">Artículo Semántico (&lt;article&gt;)</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 (&lt;aside&gt;)</h4>
      <p style="font-size: 0.9rem;">
        💡 <strong>Dato clave:</strong> Usa <code>&lt;article&gt;</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>
    &copy; 2026 Kilopolis Academia · Construido con HTML5 Semántico Estándar.
  </footer>

</body>
</html>
Pruébalo tú mismo » Se abre en una nueva pestaña con ejecución en vivo
🧠
Mini-Quiz de Retención
Comprueba tu comprensión antes de pasar a la siguiente lección
1 Pregunta
Pregunta 1
¿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.