En pocas palabras: Para forzar HTTPS en WordPress actualizás las URLs en Ajustes > General, agregás define('FORCE_SSL_ADMIN', true); en wp-config.php y corregís el contenido mixto con WP-CLI. Usá HSTS con max-age=31536000 para prevenir downgrades y mantené todos los plugins SSL actualizados: en noviembre de 2024, Really Simple Security (CVE-2024-10924) dejó expuestos 4 millones de sitios.
SSL en WordPress cifra la conexión entre el servidor y el navegador mediante HTTPS, protegiendo credenciales de administrador, datos de formularios y cookies de sesión. Para forzarlo: actualizás las URLs en Ajustes > General, agregás reglas en .htaccess o wp-config.php, y resolvés el contenido mixto con WP-CLI o con un plugin.
En 30 segundos
- Actualizá WordPress Address y Site Address a https:// en Ajustes > General antes de tocar cualquier otro archivo
- Agregá
define('FORCE_SSL_ADMIN', true);en wp-config.php para forzar el panel de administración sobre HTTPS - El contenido mixto (recursos que cargan por HTTP en una página HTTPS) es el error más frecuente tras migrar y se resuelve con WP-CLI o con Really Simple SSL
- En noviembre de 2024, el plugin Really Simple Security tuvo la vulnerabilidad CVE-2024-10924 que dejó expuestos más de 4 millones de sitios con acceso de administrador sin contraseña; el parche llegó en menos de 24 horas
- HSTS con
max-age=31536000previene ataques de downgrade y es la configuración que Google reconoce como señal de seguridad sólida
¿Qué es SSL en WordPress y por qué es crítico para el SEO y la seguridad?
SSL (Secure Sockets Layer) es el protocolo que transforma http:// en https:// y muestra el candado en la barra del navegador. Sin SSL, todo lo que viaja entre el servidor y el browser del visitante viaja en texto plano, legible para cualquiera que esté escuchando en la red.
SSL en WordPress es el protocolo que cifra el tráfico entre el servidor y el navegador, protegiendo contraseñas, datos de formularios y cookies de sesión de posibles interceptaciones. En WordPress específicamente, la ausencia de HTTPS crea dos problemas: Google lo penaliza como señal de ranking negativa desde 2014, y Chrome marca como «No seguro» cualquier sitio en HTTP (sin importar qué tan bueno sea el contenido), lo que incrementa el bounce rate de los visitantes que ven la advertencia de seguridad antes de cargar el sitio.
Ponele que tenés un sitio de WordPress con formularios de contacto y área de miembros. Sin SSL, alguien conectado a la misma red Wi-Fi que un visitante puede capturar sus credenciales con herramientas disponibles en cualquier repositorio público. Con SSL activo, captura basura cifrada. La diferencia es exactamente esa.
Si además usás WooCommerce, SSL pasa de recomendable a obligatorio: los estándares PCI-DSS exigen cifrado para cualquier sitio que procese datos de tarjetas, y sin HTTPS ningún procesador de pagos serio te deja integrar su gateway.
Cómo cambiar la URL de WordPress a HTTPS desde Ajustes
Antes de tocar .htaccess o wp-config.php, actualizá las URLs base del sitio desde el dashboard. Si saltás este paso, WordPress sigue generando links internos con http:// aunque el certificado ya esté instalado y funcionando.
- Ir a Ajustes > General en el panel de administración
- Cambiar «WordPress Address (URL)» de http://tudominio.com a https://tudominio.com
- Cambiar «Site Address (URL)» con el mismo reemplazo
- Guardar cambios: WordPress te desloguea y te pide volver a entrar, esta vez por HTTPS
Ojo antes de hacer esto: verificá que https://tudominio.com ya responde sin error de certificado. Si cambiás las URLs antes de que el certificado esté instalado, el sitio queda inaccesible y necesitás editar wp-config.php directamente para revertir el cambio.
Cómo forzar HTTPS en el login y en el admin de WordPress con wp-config.php
WordPress tiene dos constantes específicas para proteger el acceso administrativo. Agregadas en wp-config.php, garantizan que el panel de administración y el formulario de login siempre se sirvan por HTTPS, incluso si el servidor todavía no tiene redireccionamiento activo. Más contexto en activar autenticación de dos factores.
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
FORCE_SSL_LOGIN fuerza el formulario de /wp-login.php a cargar sobre HTTPS. FORCE_SSL_ADMIN va más lejos: todas las páginas del panel usan HTTPS sin excepciones.
¿Por qué importa específicamente el admin? Porque una sesión de administrador transmitida por HTTP puede interceptarse con un ataque man-in-the-middle y en cuestión de minutos el atacante tiene acceso completo al sitio. Con estas constantes activas, ese vector desaparece.
Si ya forzaste HTTPS para todo el sitio vía .htaccess, estas constantes son redundantes. Donde realmente valen es en entornos donde el certificado cubre solo parte del dominio o cuando el hosting todavía no tiene las reglas de redirección configuradas del lado del servidor.
Cómo forzar HTTPS en WordPress con .htaccess
La regla de .htaccess redirige todo el tráfico HTTP al equivalente HTTPS con un 301 permanente, transfiriendo el equity de los links a la URL segura para efectos de SEO.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Esto funciona bien en servidores Apache directos. El problema aparece cuando WordPress corre detrás de un proxy o CDN: el servidor ve la petición como HTTP aunque el visitante llegó por HTTPS, y la condición %{HTTPS} off siempre es verdadera generando un loop de redirección infinita. En ese caso, la solución es verificar el header X-Forwarded-Proto:
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Cualquiera que haya migrado un WordPress a HTTPS y visto ese loop de redirección probablemente se topó con este problema (spoiler: el hosting tenía Nginx adelante y el .htaccess nunca se ejecutaba como se esperaba). La segunda regla resuelve exactamente ese escenario.
Contenido mixto en WordPress: qué es y cómo resolverlo con métodos probados
Contenido mixto es cuando una página se sirve por HTTPS pero carga recursos (imágenes, scripts, hojas de estilo) desde URLs con http://. El browser los bloquea o los marca como inseguros, el candado desaparece de la barra del navegador y el visitante ve una advertencia de seguridad que no sabe cómo interpretar.
Es el problema más frecuente después de migrar un sitio con años de contenido. Configurás HTTPS, actualizás las URLs base, pensás que terminaste, abrís el sitio y te encontrás con el candado roto porque hay decenas de imágenes cargando desde http:// en posts del año anterior, el plugin de caché guardó versiones viejas de las páginas, y el CDN todavía apunta a URLs originales. Así es exactamente como sucede. Sobre eso hablamos en configurar cabeceras HTTP de seguridad.
| Método | Cómo funciona | Ideal para | Precaución |
|---|---|---|---|
| WP-CLI search-replace | Reemplaza http://dominio.com por https://dominio.com en todas las tablas de la base de datos | Migraciones limpias, sitios con mucho contenido histórico | Irreversible sin backup; los datos serializados se corrompen si no usás la herramienta correcta |
| Really Simple SSL | Intercepta el buffer de salida y reemplaza URLs http:// en tiempo real antes de enviarlas al browser | Cuando no querés tocar la base de datos directamente o administrás varios sitios | Tuvo CVE-2024-10924 crítico; mantenerlo actualizado es obligatorio |
| Edición manual en base de datos (phpMyAdmin) | Query SQL directa sobre las tablas wp_posts y wp_options | Sitios pequeños, control total del proceso | Riesgo alto de corromper datos serializados; usar solo con conocimiento técnico |

El comando WP-CLI es el más limpio para sitios grandes:
wp search-replace 'http://tudominio.com' 'https://tudominio.com' --all-tables
Reemplaza todas las ocurrencias en toda la base de datos, incluyendo contenido de posts, opciones de tema y metadatos. Backup antes. Siempre.
Vulnerabilidades comunes de SSL y certificados en sitios WordPress
El SSL bien configurado protege. Sostenido por plugins sin actualizar o con misconfiguraciones, abre puertas que preferirías no abrir.
La vulnerabilidad más documentada fue CVE-2024-10924, un bypass de autenticación crítico en el plugin Really Simple Security (antes Really Simple SSL). En noviembre de 2024, la falla dejó expuestos más de 4 millones de sitios con acceso de administrador sin necesidad de contraseña, según informó Infobae. El parche llegó en la versión 9.1.2 dentro de las 24 horas de la divulgación pública y el equipo de WordPress forzó la actualización automática (sí, en serio, 24 horas para parchear una vulnerabilidad que afectaba millones de sitios).
Eso no significa abandonar el plugin. Significa que los plugins de seguridad también necesitan actualizarse, igual que cualquier otro componente del sitio.
- Certificados expirados: Chrome y Firefox bloquean el acceso con pantalla de advertencia. Google demota sitios con SSL caído. Let’s Encrypt emite certificados de 90 días con renovación automática disponible en la mayoría de los hosting.
- TLS versiones viejas: TLS 1.0 y 1.1 tienen vulnerabilidades conocidas como POODLE y BEAST. Están deprecados en todos los browsers modernos desde 2020. El hosting debe aceptar solo TLS 1.2 o 1.3.
- Certificados autofirmados en producción: Cifran el tráfico pero los browsers los rechazan como no confiables mostrando advertencias que alejan visitantes. Solo sirven en entornos de desarrollo local.
- Mismatch de dominio: El certificado emitido para www.dominio.com no cubre dominio.com sin www, a menos que sea un certificado SAN o wildcard.
Cómo configurar HSTS en WordPress para máxima protección SSL
HSTS (HTTP Strict Transport Security) es un header de respuesta que le indica al browser que este dominio solo acepta HTTPS. Una vez que el browser lo recibe, guarda esa instrucción en caché durante el tiempo especificado en max-age y bloquea cualquier conexión HTTP sin siquiera hacer la petición al servidor, lo que previene ataques de downgrade como SSL Stripping.
Según la guía técnica de MalCare sobre HSTS en WordPress, el header recomendado para producción es:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
- max-age=31536000: El browser recuerda la política HSTS por 12 meses (31.536.000 segundos)
- includeSubDomains: Aplica la política a todos los subdominios del dominio principal
- preload: Habilita el registro en la lista HSTS preload de Chrome y Firefox, que viene hardcodeada en el código del browser
Podés configurarlo en .htaccess:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
O via PHP en functions.php si preferís no tocar el servidor:
add_action('send_headers', function() {
header('Strict-Transport-Security: max-age=31536000; includeSubDomains; preload');
});
Antes de activar preload, verificá que todos los subdominios ya respondan en HTTPS. Si tenés staging.tudominio.com o mail.tudominio.com todavía en HTTP y activás includeSubDomains con preload, esos subdominios quedan inaccesibles para usuarios con browsers modernos. La lista preload de Chrome tarda semanas en actualizarse, así que revertir el error no es inmediato.
Cómo renovar un certificado SSL expirado en WordPress
Un certificado SSL expirado convierte tu sitio en inaccesible. Chrome y Firefox muestran una pantalla de advertencia que el usuario promedio no sabe cómo sortear, y Google demota el sitio mientras el SSL está caído.
Let’s Encrypt, el proveedor gratuito que usa la mayoría de los hosting compartidos, emite certificados con validez de 90 días. La renovación es automática en teoría (en la práctica, hay más historias de expiración inesperada que de renovación silenciosa perfecta). Falla cuando el hosting no configuró el proceso correctamente, el dominio tiene problemas de DNS o el certificado se emitió de forma manual sin configurar la renovación automática.
Para verificar la fecha de expiración de tu certificado, podés usar SSL Labs (ssllabs.com/ssltest) que muestra todos los detalles del certificado. O desde la línea de comandos: Relacionado: endurecer tu instalación WordPress.
openssl s_client -connect tudominio.com:443 -servername tudominio.com 2>/dev/null | openssl x509 -noout -dates
Para renovar: en la mayoría de los paneles de hosting, buscás la sección de certificados SSL y hay un botón de renovación manual. En un VPS con Certbot es sudo certbot renew --force-renewal. Si usás hosting administrado como el de donweb.com, la renovación automática viene configurada por defecto sin que tengas que intervenir.
Lo que podés implementar ya mismo: una alerta en tu calendario para revisar la fecha de expiración 30 días antes. No es automatizado, pero evita el incendio cuando la renovación automática falla silenciosamente.
Plugins para gestionar SSL y HTTPS en WordPress: cuáles usar y cuándo
Really Simple SSL es el plugin más instalado para gestionar SSL en WordPress, con más de 5 millones de instalaciones activas. Automatiza la detección del certificado, la actualización de URLs y la corrección de contenido mixto en tiempo real. La versión gratuita cubre la mayoría de los casos.
Después del CVE-2024-10924, el equipo del plugin reforzó su proceso de auditoría interna y aceleró los ciclos de parche. El incidente también dejó claro algo que aplica a cualquier plugin de seguridad: la «protección» que ofrece un plugin sin actualizar es peor que no tenerlo, porque genera una falsa sensación de seguridad.
Para security headers específicamente (HSTS, X-Frame-Options, Content-Security-Policy), el plugin Headers Security Advanced & HSTS WP es una alternativa más liviana si no necesitás todo el stack de Really Simple SSL.
La configuración manual vía .htaccess o wp-config.php es más rápida, más estable y no agrega dependencias. Si te manejás con código y administrás uno o dos sitios, preferila. Si administrás varios sitios con operadores sin perfil técnico, el plugin tiene sentido.
¿Qué está confirmado y qué no sobre SSL en WordPress en 2026?
Confirmado:
- CVE-2024-10924 en Really Simple Security afectó más de 4 millones de sitios con bypass de autenticación completo, según reportó Infobea en noviembre de 2024
- Google usa HTTPS como señal de ranking desde 2014; Chrome marca como «No seguro» los sitios en HTTP activos
- TLS 1.3 es el protocolo recomendado en 2026; TLS 1.0 y 1.1 están deprecados en todos los browsers modernos desde 2020
- Let’s Encrypt emite certificados gratuitos de 90 días con renovación automática disponible en la mayoría de los hosting compartidos
- FORCE_SSL_ADMIN y FORCE_SSL_LOGIN son constantes oficiales de WordPress documentadas en el Codex
Tomalo con pinzas:
- El peso exacto de HTTPS como señal de ranking en el algoritmo de Google en 2026: Google no publicó valores actualizados desde la confirmación inicial de 2014, y el efecto real depende de la competencia en cada nicho
- Que HSTS con preload mejore el ranking de forma directa y medible: es una práctica de seguridad sólida, pero Google no la confirma como señal de ranking independiente del HTTPS en sí
Errores comunes al configurar SSL en WordPress
Activar HTTPS antes de instalar el certificado. Si actualizás las URLs en Ajustes > General antes de que el certificado esté activo, el sitio queda inaccesible. Verificá primero que https://tudominio.com responde sin error; después actualizás las URLs. El orden importa.
No hacer backup antes del search-replace en la base de datos. Un wp search-replace con la URL equivocada o sobre tablas incorrectas puede dejar el sitio roto de formas creativas (los datos serializados se corrompen si los reemplazás con herramientas que no los manejan correctamente). Backup antes de cada migración, sin excepciones.
Confundir HTTPS en el frontend con HTTPS en el admin. Muchos sitios tienen el frontend en HTTPS pero el panel de administración todavía en HTTP porque nadie agregó FORCE_SSL_ADMIN a wp-config.php. Las credenciales del admin viajan sin cifrar. No es un escenario hipotético. Lo explicamos a fondo en implementar passkeys en WordPress.
Activar includeSubDomains en HSTS con subdominios en HTTP. Si tenés staging.dominio.com todavía en HTTP y activás HSTS con includeSubDomains, ese subdominio queda inaccesible para browsers modernos. Verificá todos los subdominios antes de activar la directiva.
Asumir que la renovación automática funciona sin verificarla. Certbot y las herramientas de Let’s Encrypt renuevan solos en teoría. Los problemas de DNS, los cambios de IP o los errores de configuración del servidor hacen fallar la renovación sin ningún aviso visible. Revisá la fecha de expiración del certificado cada 60 días como mínimo.
Preguntas Frecuentes
¿Cómo forzar HTTPS en WordPress?
Para forzar HTTPS en WordPress necesitás tres pasos en orden: primero actualizá WordPress Address y Site Address a https:// en Ajustes > General; segundo, agregá una regla de redirección 301 en .htaccess con RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]; tercero, resolvé el contenido mixto con WP-CLI (wp search-replace 'http://dominio.com' 'https://dominio.com' --all-tables) o con el plugin Really Simple SSL. Si el sitio corre detrás de un proxy o CDN, reemplazá la condición %{HTTPS} off por %{HTTP:X-Forwarded-Proto} !https para evitar loops de redirección.
¿Qué es el contenido mixto y cómo se soluciona en WordPress?
Contenido mixto es cuando una página HTTPS carga recursos (imágenes, scripts, CSS) desde URLs http://. El browser bloquea esos recursos, el candado de HTTPS desaparece y el visitante ve una advertencia de seguridad. Para resolverlo, el método más completo es WP-CLI: wp search-replace 'http://tudominio.com' 'https://tudominio.com' --all-tables reemplaza todas las URLs en la base de datos incluyendo contenido de posts y configuraciones de temas. Hacé backup antes de ejecutarlo; el cambio es irreversible sin respaldo.
¿Cómo renovar un certificado SSL expirado en WordPress?
Si tu hosting usa Let’s Encrypt con renovación automática configurada, el certificado se renueva solo unos días antes de expirar. Si falló la renovación automática, podés renovarlo manualmente desde el panel de control del hosting en la sección de SSL/TLS, o con Certbot en un VPS usando sudo certbot renew --force-renewal. Para prevenir expiración inesperada, verificá la fecha de expiración del certificado en SSL Labs (ssllabs.com/ssltest) cada 60 días y configurá una alerta en tu calendario 30 días antes de la fecha de vencimiento.
¿Qué es HSTS y cómo se configura en WordPress?
HSTS (HTTP Strict Transport Security) es un header de respuesta que le indica al browser que solo se conecte por HTTPS a este dominio durante el período especificado, previniendo ataques de downgrade. En WordPress se activa agregando en .htaccess: Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload". El valor max-age=31536000 equivale a 1 año. Antes de activar includeSubDomains, verificá que todos los subdominios ya respondan en HTTPS; si alguno todavía está en HTTP quedará inaccesible para browsers modernos.
¿Cuáles son las vulnerabilidades de SSL más comunes en WordPress?
Las vulnerabilidades de SSL más frecuentes en WordPress son: certificados expirados que generan advertencia en browsers y bajan el ranking en Google; plugins de SSL con fallas sin parchear como CVE-2024-10924 en Really Simple Security que en 2024 dejó expuestos más de 4 millones de sitios con acceso de administrador sin contraseña; versiones viejas de TLS (1.0 y 1.1 tienen vulnerabilidades conocidas como POODLE y BEAST); y certificados que no cubren todas las variantes del dominio (con y sin www). Verificar el certificado en SSL Labs cada 60 días detecta la mayoría de estos problemas antes de que se conviertan en incidente.
Conclusión
SSL en WordPress en 2026 no es una mejora opcional. Un sitio activo en HTTP le dice a Google que puede ignorarlo y le dice a Chrome que avise a los visitantes que el sitio es inseguro antes de que cargue el primer párrafo de contenido.
El proceso tiene un orden que importa: certificado instalado, URLs actualizadas en Ajustes > General, redirección HTTPS en .htaccess, contenido mixto resuelto con WP-CLI, y FORCE_SSL_ADMIN en wp-config.php para el panel. HSTS viene al final, cuando todo lo anterior ya funciona, porque activarlo con subdominios en HTTP genera problemas difíciles de revertir rápidamente.
El CVE-2024-10924 en Really Simple Security vale como recordatorio de que el plugin que no actualizás es peor que no tenerlo. La renovación automática de Let’s Encrypt tiene el mismo principio: configurarla no es suficiente, hay que verificar periódicamente que sigue funcionando.
Fuentes
- Infobae – Vulnerabilidad CVE-2024-10924 en Really Simple Security expone más de 4 millones de sitios WordPress
- MalCare – Guía técnica de HSTS en WordPress: configuración y mejores prácticas
- WordPress.org – Really Simple SSL: página oficial del plugin con historial de versiones
- Loading.es – Cómo habilitar SSL y forzar la redirección de HTTP a HTTPS en WordPress
- INCIBE-CERT – Múltiples vulnerabilidades en WordPress: alertas y avisos técnicos