¡Hola querido lector! Ya estoy de nuevo por aquí para enseñarte cómo corregir el contenido mixto en WordPress, ese problema que hace que tu web con HTTPS no muestre el candado o que algunas imágenes y scripts dejen de cargar.
Es muy habitual después de instalar un certificado SSL o de migrar una web, y casi siempre se soluciona en pocos minutos si sabes dónde mirar.
En este post verás qué es, cómo detectarlo y cómo corregirlo paso a paso. ¡Vamos con ello!
Resumen rápido
- El contenido mixto es una página HTTPS que carga recursos por HTTP: imágenes, scripts o estilos.
- Los navegadores bloquean los scripts y estilos inseguros, así que puede romper tu web.
- La solución de fondo es reemplazar las URLs antiguas en la base de datos con una herramienta segura.
- Un plugin o una cabecera pueden ayudar, pero conviene arreglar el origen.
¿Qué es el contenido mixto?
Ocurre cuando una página que se sirve por HTTPS carga algún recurso por HTTP. La página es segura, pero una parte de lo que carga no lo es, y el navegador lo detecta.
| Tipo | Recursos | Qué hace el navegador |
|---|---|---|
| Pasivo | Imágenes, audio y vídeo | Intenta cargarlos por HTTPS y, si no puede, los bloquea |
| Activo | Scripts, hojas de estilo, iframes y fuentes | Los bloquea directamente |
El activo es el peligroso: si se bloquea un script o una hoja de estilos, parte de tu web puede dejar de funcionar o verse descolocada.
¿Por qué aparece?
- Pasaste la web de HTTP a HTTPS y en la base de datos quedaron URLs con http://.
- Migraste de dominio o de servidor sin reemplazar todas las URLs.
- La plantilla o un plugin tienen URLs escritas a mano con http://.
- Hay recursos externos que se enlazan por HTTP, como fuentes, iframes o scripts de terceros.
- El maquetador guarda URLs absolutas en sus propios datos.
Si todavía no has pasado tu web a HTTPS, empieza por cómo implementar HTTPS.
Cómo detectar el contenido mixto
- Mira el candado de la barra de direcciones: si falta o aparece un aviso, hay algo que revisar.
- Abre la consola de las herramientas de desarrollo del navegador: los avisos de contenido mixto aparecen con la URL exacta del recurso.
- Revisa la pestaña de red, filtrando por recursos bloqueados.
- Rastrea la web con Screaming Frog, que detecta enlaces y recursos por HTTP en todas las páginas.
- Pasa una herramienta online de comprobación de SSL, que lista los recursos inseguros de una URL.
Cómo corregirlo paso a paso
PD. Antes de nada, haz una copia de seguridad completa, incluida la base de datos. Vas a modificar miles de registros de golpe, y un error aquí se arregla mucho mejor con una copia a mano.
1. Revisa la dirección de WordPress
En Ajustes > Generales, comprueba que la dirección de WordPress y la dirección del sitio empiezan por https://. Si no, cámbialas.
2. Reemplaza las URLs en la base de datos
Es la solución de fondo. Hay que sustituir http://tudominio.com por https://tudominio.com en toda la base de datos.
- Con un plugin como Better Search Replace: indicas qué buscar y por qué reemplazarlo, lo pruebas primero en modo simulación y después lo ejecutas.
- Con WP-CLI, si tienes acceso por terminal:
wp search-replace 'http://tudominio.com' 'https://tudominio.com' --all-tables --dry-run Quita --dry-run cuando hayas comprobado que el resultado es el esperado.
PD. No hagas el reemplazo con una consulta SQL directa. WordPress guarda muchos datos serializados, y cambiar la longitud de un texto dentro de ellos los corrompe: puedes perder ajustes de widgets, del tema o de plugins. Las herramientas anteriores tienen esto en cuenta.
3. Usa la herramienta de tu maquetador
Elementor y otros maquetadores guardan URLs en sus propios datos. Elementor tiene una opción específica para reemplazar URLs en sus herramientas. Después, regenera sus archivos CSS.
4. Revisa la plantilla y los plugins
- Busca «http://» en los archivos de tu tema hijo si la consola apunta a recursos del tema.
- Revisa los ajustes de plugins que guardan URLs: sliders, formularios, píxeles o códigos de seguimiento.
- Revisa los widgets y el personalizador, donde suele haber logotipos o fondos con URL antigua.
5. Corrige los recursos externos
Si un recurso externo se carga por HTTP, cambia su URL a HTTPS. Casi todos los servicios actuales lo admiten. Si alguno no lo hace, busca una alternativa o aloja el recurso en tu servidor.
6. Vacía todas las cachés
Plugin de caché, caché del servidor, CDN y navegador. Si no, seguirás viendo la versión antigua y pensarás que no ha funcionado.
Soluciones de apoyo
| Solución | Qué hace | Valoración |
|---|---|---|
| Plugin de SSL | Corrige las URLs al vuelo al cargar la página | Útil como parche, mejor arreglar el origen |
Cabecera upgrade-insecure-requests | Pide al navegador que cargue todo por HTTPS | Buen complemento si todos los recursos existen en HTTPS |
| Opción de la CDN | Reescribe las URLs automáticamente | Útil si ya utilizas una CDN |
La cabecera se puede añadir desde el servidor, por ejemplo en el .htaccess:
Header always set Content-Security-Policy "upgrade-insecure-requests" Estas soluciones corrigen el síntoma, no la causa. Si desactivas el plugin o cambias de servidor, el problema vuelve. Por eso conviene hacer el reemplazo en la base de datos.
Después de corregirlo
- Comprueba que todo el HTTP redirige a HTTPS con una redirección 301. Te lo explico en redirecciones 301.
- Revisa las páginas principales en la consola del navegador.
- Actualiza el sitemap y comprueba que las URLs usan HTTPS.
- Revisa los enlaces internos con un rastreo completo.
- Verifica la propiedad en Search Console con HTTPS si aún no lo está.
Errores habituales
- Reemplazar URLs con SQL directo y corromper datos serializados.
- No hacer copia de seguridad antes del reemplazo.
- Depender solo de un plugin que parchea al vuelo.
- Olvidar los datos del maquetador o regenerar su CSS.
- No vaciar la caché y creer que no ha funcionado.
- Reemplazar solo una variante del dominio, con www o sin www.
Conclusiones
El contenido mixto casi siempre se debe a URLs antiguas que quedaron en la base de datos. Con un reemplazo bien hecho y una buena limpieza de cachés, se resuelve en minutos.
Mi recomendación: arregla el origen en la base de datos y usa los plugins o las cabeceras solo como complemento. Es la única forma de que no vuelva a aparecer.
Si prefieres que me encargue yo, puedo hacerlo en mi servicio de mantenimiento web WordPress. Y si estás preparando una migración, te ayudo con mi servicio de diseño web WordPress.
Ahora te toca a ti, querido lector. ¿Te apareció contenido mixto al pasar a HTTPS? ¡Te leo en los comentarios!
Preguntas frecuentes sobre el contenido mixto
¿Qué es el contenido mixto?
Es la situación en la que una página servida por HTTPS carga algún recurso, como imágenes, scripts u hojas de estilo, por HTTP, lo que el navegador considera inseguro.
¿Por qué mi web con SSL no muestra el candado?
Normalmente porque carga algún recurso por HTTP. La consola del navegador muestra la URL exacta de los recursos que provocan el aviso.
¿Cómo se corrige el contenido mixto en WordPress?
Revisando que las direcciones de WordPress usen HTTPS, reemplazando las URLs antiguas en la base de datos con una herramienta como Better Search Replace o WP-CLI, revisando plantilla, plugins y maquetador, y vaciando las cachés.
¿Puedo reemplazar las URLs con una consulta SQL?
No es recomendable. WordPress guarda muchos datos serializados que se corrompen si cambia la longitud del texto. Conviene usar herramientas que gestionan este tipo de datos.
¿Basta con instalar un plugin de SSL?
Puede ocultar el problema, porque corrige las URLs al cargar la página, pero no resuelve la causa. Si se desactiva el plugin, el contenido mixto vuelve a aparecer.
¿Afecta el contenido mixto al SEO?
De forma indirecta: los avisos de seguridad restan confianza a los usuarios y, si se bloquean scripts o estilos, la página puede verse o funcionar mal, empeorando la experiencia.
¿Qué hace la cabecera upgrade-insecure-requests?
Indica al navegador que intente cargar por HTTPS todos los recursos solicitados por HTTP. Funciona bien como complemento siempre que esos recursos estén disponibles en HTTPS.