Solución: Contenido mixto en WordPress

Si activas un certificado SSL en tu sitio web, esperas que el navegador lo indique como seguro; sin embargo, ¡Qué sorpresa! Se sigue mostrando una advertencia de seguridad que indica que su WordPress contiene contenido mixto.

Sin embargo, ¿qué es lo que se conoce como contenido mixto en WordPress? ¿Por qué se produce este error si mi sitio web ya está habilitado con HTTPS? ¿Es responsabilidad del certificado?

Si esto te sucede por primera vez, es normal que te surjan muchas preguntas, pero no te preocupes. En esta guía, explicaré detalladamente qué es el contenido mixto, cómo identificarlo y, por supuesto, cómo corregirlo para que tu sitio web de WordPress se muestre como seguro.

¿Qué es el contenido mixto en WordPress?

Cuando una web con HTTPS carga parcialmente contenido con HTTP, se produce contenido mixto. La página no es completamente segura porque sólo está parcialmente encriptada. De hecho, tus clientes recibirán una advertencia que indica que la conexión no está cifrada, dependiendo del navegador que usen.

En otras palabras, es una página web que, aunque tiene un certificado SSL, no cifra todo su contenido con HTTPS. Aunque parece una web segura, no lo es.

Aunque no estoy seguro de si es necesario recordar que todas las conexiones de una página web deben estar cifradas con SSL, lo haré por si acaso.

Cualquier usuario malintencionado puede interceptar la transmisión de datos entre el navegador web y el servidor si todavía funciona con HTTP. Por lo tanto, los datos no se envían cifrados y la información no está protegida.

Por el contrario, toda la transmisión de datos está protegida cuando se activa un SSL y la web funciona con HTTPS. ¿Cuál es el resultado? Más seguridad para tu empresa y tus clientes. Recomendaría que leas esta guía, en donde se explica con mayor detalles su funcionamiento.

Por lo tanto, podríamos decir que una página web con contenido mixto es una página web intermedia. A pesar de que la solicitud inicial se realiza a través de HTTPS, una parte del contenido se carga a través de HTTP.

Eso sí, es crucial diferenciar entre los dos tipos de contenido mixto en WordPress: contenido mixto activo y pasivo. Vamos a ver en qué consiste cada uno.

Contenido mixto activo

El término «contenido mixto activo» se refiere al contenido que interactúa con la página porque tiene acceso al modelo de documentos de la página HTTPS en su totalidad o parte. Esto permite a los atacantes alterar el comportamiento de la web, crear código malicioso, robar información confidencial (como contraseñas, datos de pago, etc.) o tomar el control total del sitio web.

Algunas solicitudes HTTP que se consideran contenido mixto activo son las siguientes:

  • <script> (src attribute)
  • <link> (href attribute) (this includes CSS stylesheets)
  • <iframe> (src attribute)
  • XMLHttpRequest requests
  • etch() requests
  • Todos los casos en CSS cuando una url() utiliza el valor (@font-face, cursor, background-image, etc.).
  • <object> (data attribute)
  • Navigator.sendBeacon (url attribute)

Para proteger a los usuarios de la presencia de contenido mixto activo en una web, todos los navegadores suelen bloquearlo.

Contenido mixto pasivo

El contenido mixto pasivo se refiere al contenido web que se carga en una página web HTTPS mediante HTTP. Este tipo de contenido es mucho menos problemático que el contenido mixto activo porque no interactúa con el resto de la página.

Estos son los tipos de solicitudes HTTP clasificadas como contenido pasivo:

  • <img> (attribute src).
  • <audio> (attribute src).
  • <video> (attribute src).
  • <objeto> subrecursos (cuando un <objeto> realiza solicitudes HTTP).

En este tipo de situaciones, un atacante puede bloquear solicitudes HTTP como un video y reemplazarlas con contenido inapropiado o malintencionado, pero no puede modificar otras partes de la página web.

Ante la presencia de contenido mixto pasivo en una página web, no todos los navegadores actúan de la misma manera. Google Chrome actualiza automáticamente este contenido para el mismo dominio para que cargue bajo HTTPS. Si no puede hacerlo, no muestra el archivo. Firefox, muestra todo el contenido, pero advierte que algunas partes son inseguras. Finalmente, Microsoft Edge carga todo tipo de contenido, la página se muestra como no segura y explica por qué.

Contenido mixto en WordPress

Aunque no es uno de los errores más frecuentes de WordPress, a veces la web muestra un mensaje de advertencia indicando que parte del contenido no es seguro después de activar el SSL.

Sin embargo, ¿cuál es la razón detrás de esto? Hay muchas razones por las que puedes experimentar un problema de contenido mixto en WordPress, pero estas son algunas de las más comunes que encontramos en el soporte:

  • La redirección 301 de HTTP a HTTPS no está establecida correctamente y algunos elementos no cargan bajo el protocolo seguro.
  • Acabas de instalar un plugin en WordPress que utiliza rutas absolutas del tipo http://misitioweb.com/style.css en vez de rutas relativas como /style.css.
  • Estás utilizando un recurso o herramienta externa que carga con una ruta http://, en lugar de https://.
  • Las imágenes que subes a WordPress o las que muestran los widgets cargan a través de una URL del tipo http://misitioweb.com/wp-content/uploads/imagen.jpg, en vez de https://misitioweb.com/wp-content/uploads/imagen.jpg.

Ahora llega el momento de la parte práctica, donde veremos cómo corregir el contenido mixto en WordPress.

Cómo solucionar el problema de contenido mixto en WordPress

Para corregir el contenido mixto en WordPress, puedes usar el plugin Really Simple SSL, que puede obligar a todas las URLs HTTP a cargar con HTTPS en tu sitio web.

¡Muy importante!

Asegúrate de realizar una copia de seguridad completa de tu sitio web siempre que realices cualquier modificación.

Ten en cuenta que desde WordPress 5.7, la transición de HTTP an HTTPS ya se puede realizar con unos pocos clics. Por lo tanto, puedes evitar problemas de contenido mixto en WordPress u otros errores relacionados con la seguridad SSL de tu sitio web.

1. Instala el plugin Really Simple SSL en WordPress.

Primero, debes ingresar a WordPress y buscar la sección «Plugins» en el menú lateral y seleccionar «Añadir nuevo plugin».

En el buscador, escribe «Really Simple SSL» y luego haz clic en «Instalar» y «Activar».

Solución: Contenido mixto en WordPress - 1
Solución: Contenido mixto en WordPress

2. Configura la seguridad SSL

Pulsa sobre «SSL & Security» en la sección «Ajustes» del backend de tu web. Verás un aviso extenso que te permite activar el SSL y resolver los problemas de contenido mixto en WordPress.

Solución: Contenido mixto en WordPress - 2
Solución: Contenido mixto en WordPress

3. Utiliza .htaccess para activar la redirección 301.

El plugin Really Simple SSL redirecciona las URL de http:// a https:// a través de PHP, pero tienes la opción de activarlo a través de .htaccess para que sea más rápido y efectivo.

Solución: Contenido mixto en WordPress - 3
Solución: Contenido mixto en WordPress

¡Está listo! Después de activar Really Simple SSL, ya deberías tener arreglado el contenido mixto en WordPress. Si no es así, o si ya tenías instalado este plugin en WordPress, es posible que el contenido mixto proviene de URLs externas a tu sitio web.

Conclusiones

¿Se muestra un aviso de contenido mixto en WordPress después de activar el SSL en WordPress? No hay razón para preocuparse; la solución es muy simple.

El problema generalmente se resuelve completamente instalando y activando el plugin Really Simple SSL. Si no es así, puedes encontrar el recurso que está cargando con http:// a través del inspector de elementos de tu navegador y reemplazarlo con https://, o puedes cambiar el fichero .htaccess. Puede usar cualquier método, pero siempre debes tener una copia de seguridad de tu sitio.

¡Descubre la velocidad y el rendimiento excepcionales con nuestros planes de WordPress Hosting optimizados con LiteSpeed!

Franco Silvetti
Franco Silvetti

Freelancer especializado en WordPress, con más de 4 años de experiencia.