El error de contenido mixto (mixed content) se produce cuando una página web servida a través de HTTPS carga recursos (imágenes, scripts, hojas de estilo, iframes) a través de HTTP no seguro. Los navegadores modernos bloquean o advierten sobre estos recursos porque representan una vulnerabilidad de seguridad.
Este error es especialmente frecuente tras migrar una web de HTTP a HTTPS. Aunque el certificado SSL está correctamente instalado, si quedan referencias a recursos con URL http:// en el código, el navegador detectará el contenido mixto y mostrará advertencias que ahuyentan a los visitantes y perjudican el SEO.
Tipos de contenido mixto
No todo el contenido mixto se trata igual. Los navegadores distinguen entre contenido mixto pasivo y activo, y los tratan de forma diferente según el nivel de riesgo que representan.
- Contenido mixto pasivo: imágenes, vídeos, audio cargados por HTTP. Los navegadores los cargan pero muestran una advertencia en la barra de dirección
- Contenido mixto activo: scripts JavaScript, hojas de estilo CSS, iframes, XMLHttpRequest cargados por HTTP. Los navegadores los BLOQUEAN completamente porque un atacante podría modificarlos para robar datos
- El contenido mixto activo es el más peligroso y urgente de corregir
- Desde 2020, Chrome bloquea automáticamente todo contenido mixto, tanto activo como pasivo
Cómo detectar contenido mixto en tu web
Existen varias herramientas para detectar contenido mixto. La forma más rápida es abrir las DevTools del navegador (F12) y buscar advertencias en la pestaña Console. Chrome muestra mensajes específicos indicando qué recursos se están cargando por HTTP.
Para un escaneo completo de toda tu web, puedes usar herramientas online que rastrean todas las páginas y detectan automáticamente cualquier recurso cargado por HTTP.
- Chrome DevTools > Console: muestra los recursos mixtos con su URL exacta
- Chrome DevTools > Security: panel dedicado que resume el estado de seguridad
- Why No Padlock (whynopadlock.com): escanea una URL y lista todos los recursos inseguros
- SSL Labs (ssllabs.com): análisis completo del certificado y configuración SSL
- Screaming Frog: rastrea todo el sitio y detecta URLs HTTP en un sitio HTTPS
Solucionar contenido mixto en WordPress
En WordPress, el contenido mixto suele provenir de URLs hardcodeadas en el contenido (entradas y páginas), opciones del tema, widgets y plugins. La solución más efectiva es reemplazar todas las referencias http:// por https:// en la base de datos.
El plugin "Better Search Replace" permite hacer búsquedas y reemplazos en toda la base de datos de WordPress de forma segura. Busca "http://tudominio.com" y reemplázalo por "https://tudominio.com".
- Actualiza la URL del sitio en Ajustes > Generales a https://
- Instala "Better Search Replace" y reemplaza http:// por https:// en toda la base de datos
- Revisa el tema y los plugins por URLs hardcodeadas en su código
- Verifica que los archivos subidos (media library) se sirven por HTTPS
- Añade una redirección 301 de HTTP a HTTPS en .htaccess o en el servidor
- Instala el plugin "Really Simple SSL" como solución rápida si el problema persiste
Solucionar contenido mixto en cualquier web
Para webs que no usan WordPress, la solución pasa por localizar y actualizar todas las referencias a recursos HTTP en el código fuente, hojas de estilo, scripts y contenido.
Una solución rápida (pero no ideal como solución permanente) es usar URLs relativas al protocolo: en lugar de http://ejemplo.com/imagen.jpg o https://ejemplo.com/imagen.jpg, usa //ejemplo.com/imagen.jpg. Esto hace que el recurso se cargue con el mismo protocolo que la página.
- Buscar y reemplazar todas las URL http:// por https:// en el código fuente
- Verificar que los recursos externos (CDN, fuentes, analytics) usen HTTPS
- Añadir la cabecera Content-Security-Policy: upgrade-insecure-requests para forzar HTTPS
- Configurar la redirección HTTP → HTTPS en el servidor
- Actualizar los enlaces en embeds, iframes y widgets de terceros
Prevenir futuros problemas de contenido mixto
Una vez resuelto el contenido mixto, es importante establecer medidas para que no vuelva a ocurrir. Un cambio inocente como añadir una imagen copiando la URL de otro sitio puede reintroducir el problema.
- Configurar HSTS (HTTP Strict Transport Security) para forzar siempre HTTPS
- Usar la directiva CSP upgrade-insecure-requests como red de seguridad
- Configurar redirecciones 301 permanentes de HTTP a HTTPS en el servidor
- Monitorizar periódicamente con herramientas como Why No Padlock
- Formar al equipo para que siempre use URLs HTTPS al añadir contenido
Puntos clave
- El contenido mixto ocurre cuando una página HTTPS carga recursos por HTTP inseguro
- Los navegadores bloquean contenido mixto activo (scripts, CSS) y advierten sobre el pasivo (imágenes)
- Chrome DevTools y Why No Padlock son las herramientas más rápidas para detectar el problema
- En WordPress, un search-replace de http:// a https:// en la base de datos resuelve la mayoría de casos
- La cabecera upgrade-insecure-requests fuerza la carga HTTPS de todos los recursos automáticamente
- Configurar HSTS previene que el problema se repita en el futuro
¿Tu web muestra advertencias de seguridad en el navegador?
Resolvemos los problemas de contenido mixto de tu web y configuramos las medidas de seguridad necesarias para que tu sitio sea 100% seguro. Rápido, limpio y sin riesgo.
Solicitar presupuesto