Info SEO

Falta la declaración charset — Evita problemas de codificación de caracteres

Declarar el charset UTF-8 previene problemas de codificación de caracteres.

¿Qué es la declaración charset?

La meta etiqueta charset indica al navegador qué codificación de caracteres debe usar al renderizar tu página. Sin ella, el navegador tiene que adivinarlo, lo que puede provocar texto ilegible, especialmente con caracteres no ASCII.

¿Por qué es importante?

Problemas de codificación

Sin una declaración charset:

  • Los caracteres acentuados pueden aparecer como basura: “café” → “café”
  • Los emojis pueden no mostrarse correctamente
  • Los alfabetos no latinos (chino, árabe, japonés, etc.) pueden ser completamente ilegibles
  • Los caracteres especiales como guiones largos, comillas tipográficas y símbolos pueden romperse

Seguridad

  • La ausencia de la declaración charset puede facilitar ataques XSS con UTF-7 en navegadores antiguos
  • La especificación HTML5 requiere una declaración charset por razones de seguridad

Rendimiento

  • Cuando el navegador tiene que adivinar la codificación, puede necesitar volver a analizar la página una vez que la identifica
  • Esto provoca un parpadeo o re-renderizado breve

Cómo solucionarlo

Añade esto como el primer elemento dentro de tu <head>:

<meta charset="UTF-8" />

¿Por qué UTF-8?

UTF-8 es el estándar universal para contenido web:

  • Soporta todos los caracteres de todos los idiomas
  • Es compatible con ASCII
  • Lo utilizan más del 98% de los sitios web en todo el mundo
  • Es requerido por la especificación HTML5
  • Es la codificación predeterminada para JSON, JavaScript y muchas APIs

Buenas prácticas

  1. Usa siempre UTF-8 — No hay razón para usar otra codificación en la web moderna
  2. Colócalo primero en el <head> — El navegador necesita conocer la codificación antes de analizar cualquier otro contenido
  3. Mantenlo dentro de los primeros 1024 bytes — Es un requisito de la especificación HTML para la detección de codificación
  4. Que coincida con las cabeceras del servidor — Asegúrate de que tu servidor envíe Content-Type: text/html; charset=UTF-8
  5. Guarda tus archivos como UTF-8 — Verifica que tu editor de texto y herramientas de compilación generen archivos con codificación UTF-8

La sintaxis alternativa

También puedes encontrar esta sintaxis más antigua y equivalente:

<!-- HTML5 (recomendado) -->
<meta charset="UTF-8" />

<!-- HTML4/XHTML (más antiguo, aún funciona) -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

La sintaxis HTML5 (<meta charset="UTF-8" />) es la preferida por su simplicidad.

Artículos relacionados