Las cabeceras de seguridad son instrucciones que tu servidor entrega a cada navegador: «carga esta página solo por HTTPS», «no me incrustes en marcos ajenos», «no ejecutes scripts de dominios desconocidos». No cuestan nada, no necesitan código en la página y cierran clases enteras de ataques. Aun así, la mayoría de las webs solo tienen una o dos.
Comprobar
Escribe la URL en el comprobador de cabeceras HTTP: lista todas las cabeceras de respuesta, explica cada cabecera de seguridad y da una nota de A a F. En el navegador también: herramientas de desarrollo → Red → documento → cabeceras de respuesta.
Las seis que importan
| Cabecera | Protege de | Valor recomendado |
|---|---|---|
| Strict-Transport-Security | Degradación a HTTP, robo de cookies | max-age=31536000; includeSubDomains |
| Content-Security-Policy | XSS, scripts ajenos | Lista blanca de tus fuentes; empezar con -Report-Only |
| X-Frame-Options | Clickjacking | SAMEORIGIN (o CSP frame-ancestors) |
| X-Content-Type-Options | MIME sniffing | nosniff |
| Referrer-Policy | Fuga de URL a terceros | strict-origin-when-cross-origin |
| Permissions-Policy | Accesos no deseados a cámara, micro, ubicación | camera=(), microphone=(), geolocation=() |
Configurar las cabeceras de seguridad
Apache (.htaccess)
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()" Nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always; WordPress sin acceso al servidor
add_action( 'send_headers', function () {
header( 'X-Frame-Options: SAMEORIGIN' );
header( 'X-Content-Type-Options: nosniff' );
header( 'Referrer-Policy: strict-origin-when-cross-origin' );
} ); CSP: la cabecera que rompe webs
Una Content-Security-Policy demasiado estricta bloquea Analytics, fuentes y widgets de pago. Por eso: primero Content-Security-Policy-Report-Only, una semana recogiendo infracciones en la consola del navegador, añadir fuentes y después activarla. Para WordPress con Elementor y GTM es realista una política con dominios explícitos para scripts y estilos; unsafe-inline para estilos suele ser inevitable.
Preguntas frecuentes
¿Las cabeceras de seguridad mejoran el SEO?
No directamente. HSTS y HTTPS sí son requisito para el candado y la confianza.
¿HSTS puede bloquear mi web?
Si HTTPS falla, sí: los navegadores rechazan HTTP. Prueba primero con un max-age corto (300) y luego súbelo.
¿Basta con un plugin?
Sí, si pone las seis. Comprueba el resultado igualmente con el comprobador; los plugins de caché a veces eliminan cabeceras.
Gratis, funciona en tu navegador, no se sube nada, sin registro.
Sigue leyendo
Más de Herramientas para desarrolladores.


