HTML Semántico: Qué Es y Cómo Usar Etiquetas Semánticas en HTML5

Descubre qué es HTML semántico y cómo usar etiquetas como <header>, <main> y <footer> para dar estructura y significado a tus páginas web con HTML5.
¿Qué es el HTML semántico?
El HTML semántico se refiere al uso de etiquetas HTML que describen claramente el propósito y el significado del contenido que contienen. A diferencia de las etiquetas genéricas como <div> y <span>, las etiquetas semánticas proporcionan información adicional sobre la estructura y el tipo de contenido, lo que mejora la accesibilidad, la optimización para motores de búsqueda (SEO) y la mantenibilidad del código.
Beneficios del HTML semántico
- 
Mejora la accesibilidad: Las etiquetas semánticas facilitan a los lectores de pantalla y otros dispositivos de asistencia la interpretación del contenido, lo que mejora la experiencia para usuarios con discapacidades.
 - 
Optimización para motores de búsqueda (SEO): Los motores de búsqueda utilizan la estructura semántica para comprender mejor el contenido de una página, lo que puede mejorar su clasificación en los resultados de búsqueda.
 - 
Código más limpio y mantenible: El uso de etiquetas semánticas hace que el código sea más legible y fácil de mantener, ya que los desarrolladores pueden entender rápidamente la estructura y el propósito del contenido.
 - 
Mejora la estructura lógica de las páginas.: El HTML semántico ayuda a organizar el contenido de manera lógica, facilitando la navegación y comprensión tanto para los usuarios como para los desarrolladores.
 
Etiquetas <header>, <nav>, <section> y <article>.
Las etiquetas semánticas en HTML5 ayudan a estructurar mejor el contenido de una página web, haciendo que sea más comprensible tanto para los desarrolladores como para los navegadores y motores de búsqueda. A continuación, exploraremos algunas de las etiquetas semánticas más importantes: <header>, <nav>, <section>, <article>, y <footer>.
<header>
La etiqueta <header> se utiliza para definir el encabezado de una sección o de un documento. Este encabezado puede contener elementos como logotipos, títulos, menús de navegación, etc.
<!DOCTYPE html>
<html>
  <head>
    <title>Página de Ejemplo</title>
  </head>
  <body>
    <header>
      <h1>Bienvenido a Mi Sitio Web</h1>
      <nav>
        <ul>
          <li><a href="#inicio">Inicio</a></li>
          <li><a href="#sobre">Sobre Nosotros</a></li>
          <li><a href="#contacto">Contacto</a></li>
        </ul>
      </nav>
    </header>
  </body>
</html>
En este ejemplo, el <header> contiene un título y un menú de navegación.
<nav>
La etiqueta <nav> se usa para definir un bloque de enlaces de navegación. Normalmente, contiene un menú principal del sitio web o un conjunto de enlaces a otras páginas o secciones del sitio.
<!DOCTYPE html>
<html>
  <head>
    <title>Página de Ejemplo</title>
  </head>
  <body>
    <header>
      <h1>Bienvenido a Mi Sitio Web</h1>
      <nav>
        <ul>
          <li><a href="#inicio">Inicio</a></li>
          <li><a href="#sobre">Sobre Nosotros</a></li>
          <li><a href="#contacto">Contacto</a></li>
        </ul>
      </nav>
    </header>
    <section id="inicio">
      <h2>Inicio</h2>
      <p>Bienvenidos a nuestro sitio web.</p>
    </section>
    <section id="sobre">
      <h2>Sobre Nosotros</h2>
      <p>Somos una empresa dedicada a ...</p>
    </section>
    <section id="contacto">
      <h2>Contacto</h2>
      <p>Puede contactarnos a través de ...</p>
    </section>
  </body>
</html>
Aquí, <nav> contiene una lista de enlaces de navegación que llevan a diferentes secciones del documento.
<section>
<section>
La etiqueta <section> se utiliza para definir una sección de un documento. Puede contener uno o más encabezados y está destinada a agrupar contenido relacionado.
<!DOCTYPE html>
<html>
  <head>
    <title>Página de Ejemplo</title>
  </head>
  <body>
    <header>
      <h1>Bienvenido a Mi Sitio Web</h1>
      <nav>
        <ul>
          <li><a href="#inicio">Inicio</a></li>
          <li><a href="#sobre">Sobre Nosotros</a></li>
          <li><a href="#contacto">Contacto</a></li>
        </ul>
      </nav>
    </header>
    <section id="inicio">
      <h2>Inicio</h2>
      <p>Bienvenidos a nuestro sitio web.</p>
    </section>
    <section id="sobre">
      <h2>Sobre Nosotros</h2>
      <p>Somos una empresa dedicada a ...</p>
    </section>
    <section id="contacto">
      <h2>Contacto</h2>
      <p>Puede contactarnos a través de ...</p>
    </section>
  </body>
</html>
En este ejemplo, cada <section> agrupa contenido que pertenece a diferentes partes de la página: Inicio, Sobre Nosotros, y Contacto.
<article>
La etiqueta <article> se utiliza para contener contenido independiente y autónomo, como artículos, entradas de blog, comentarios, etc. Cada <article> debe tener sentido por sí mismo, incluso si se extrajera del documento.
<!DOCTYPE html>
<html>
  <head>
    <title>Página de Ejemplo</title>
  </head>
  <body>
    <header>
      <h1>Bienvenido a Mi Blog</h1>
      <nav>
        <ul>
          <li><a href="#articulo1">Artículo 1</a></li>
          <li><a href="#articulo2">Artículo 2</a></li>
        </ul>
      </nav>
    </header>
    <section>
      <article id="articulo1">
        <h2>Primer Artículo</h2>
        <p>Este es el contenido del primer artículo.</p>
        <footer>Publicado por Juan el 1 de enero de 2024</footer>
      </article>
      <article id="articulo2">
        <h2>Segundo Artículo</h2>
        <p>Este es el contenido del segundo artículo.</p>
        <footer>Publicado por María el 2 de enero de 2024</footer>
      </article>
    </section>
  </body>
</html>
Aquí, cada <article> representa un artículo independiente con su propio contenido y pie de página.
<footer>
La etiqueta <footer> se utiliza para definir el pie de página de un documento o una sección. Suele contener información como el autor del documento, enlaces a términos de uso, contacto, y más.
<!DOCTYPE html>
<html>
  <head>
    <title>Página de Ejemplo</title>
  </head>
  <body>
    <header>
      <h1>Bienvenido a Mi Sitio Web</h1>
      <nav>
        <ul>
          <li><a href="#inicio">Inicio</a></li>
          <li><a href="#sobre">Sobre Nosotros</a></li>
          <li><a href="#contacto">Contacto</a></li>
        </ul>
      </nav>
    </header>
    <section id="inicio">
      <h2>Inicio</h2>
      <p>Bienvenidos a nuestro sitio web.</p>
    </section>
    <section id="sobre">
      <h2>Sobre Nosotros</h2>
      <p>Somos una empresa dedicada a ...</p>
    </section>
    <section id="contacto">
      <h2>Contacto</h2>
      <p>Puede contactarnos a través de ...</p>
    </section>
    <footer>
      <p>© 2024 Mi Sitio Web. Todos los derechos reservados.</p>
      <nav>
        <ul>
          <li><a href="#privacidad">Política de Privacidad</a></li>
          <li><a href="#terminos">Términos de Uso</a></li>
        </ul>
      </nav>
    </footer>
  </body>
</html>
En este ejemplo, el <footer> contiene un mensaje de derechos de autor y un menú de navegación con enlaces a la política de privacidad y los términos de uso.
En resumen, uso de etiquetas semánticas como <header>, <nav>, <section>, <article>, y <footer> en HTML5 mejora la accesibilidad y la comprensión del contenido tanto para los usuarios como para los motores de búsqueda. Estas etiquetas proporcionan una estructura clara y significativa al documento, permitiendo a los desarrolladores y navegadores interpretar mejor el contenido y su propósito.
Etiquetas semánticas adicionales
Además de las etiquetas mencionadas anteriormente, HTML5 introduce varias otras etiquetas semánticas que ayudan a estructurar el contenido de manera más efectiva. Aquí hay algunas de las más comunes:
<aside>
La etiqueta <aside> se utiliza para contener contenido que está relacionado de manera tangencial con el contenido principal. Esto puede incluir barras laterales, citas, anuncios, o cualquier otro contenido que no sea parte del flujo principal del documento.
<aside>
  <h2>Noticias Relacionadas</h2>
  <p>Lee más sobre temas relacionados en nuestro blog.</p>
  <ul>
    <li><a href="#noticia1">Noticia 1</a></li>
    <li><a href="#noticia2">Noticia 2</a></li>
    <li><a href="#noticia3">Noticia 3</a></li>
  </ul>
</aside>
<figure> y <figcaption>
La etiqueta <figure> se utiliza para encapsular contenido ilustrativo, como imágenes, diagramas, fotos, etc. La etiqueta <figcaption> se usa para proporcionar una leyenda o descripción para el contenido dentro de <figure>.
<figure>
  <img src="imagen-ejemplo.jpg" alt="Descripción de la imagen" />
  <figcaption>Esta es una leyenda que describe la imagen.</figcaption>
</figure>
<main>
La etiqueta <main> se utiliza para encapsular el contenido principal de un documento. Solo debe haber un <main> por página, y este debe contener el contenido que es único y relevante para esa página.
<main>
  <h1>Contenido Principal de la Página</h1>
  <p>Este es el contenido más importante de la página.</p>
</main>
<mark>
La etiqueta <mark> se utiliza para resaltar texto que es relevante o importante dentro de un contexto específico.
<p>Este es un <mark>texto resaltado</mark> que llama la atención del lector.</p>
Conclusión
El uso de etiquetas semánticas en HTML5 no solo mejora la estructura y la claridad del código, sino que también contribuye a una mejor accesibilidad y optimización para motores de búsqueda. Al utilizar etiquetas como <header>, <nav>, <section>, <article>, <footer>, <aside>, <figure>, <figcaption>, <main>, y <mark>, los desarrolladores pueden crear páginas web más organizadas y fáciles de entender tanto para los usuarios como para los motores de búsqueda.
Al estructurar correctamente tu HTML con estas etiquetas, no solo haces que tu código sea más legible y mantenible, sino que también mejoras la experiencia del usuario y la optimización para motores de búsqueda (SEO). Recuerda que la semántica importa, y el uso adecuado de estas etiquetas puede hacer una gran diferencia en la calidad y efectividad de tu sitio web.
- 
Elementos y etiquetas comunes: Elementos y etiquetas en HTML.
 - 
Formularios: Creación de formularios con HTML.
 - 
Más sobre HTML semántico: Wikipedia HTML semántico.
 
🚧 Aprende haciendo. Trabaja con estos ejercicios básicos: