¿Por qué mi sitio WordPress redirige a sitios de spam?

¿Su sitio WordPress envía a los visitantes a páginas de spam o de estafas? Descubra por qué ocurre, por qué puede que usted no lo vea y qué comprobaciones son seguras para empezar.

Abrir un ticket de soporte

Si los visitantes le cuentan que su sitio web les envía a otro sitio, como una página de premios falsos, un sitio de apuestas o de farmacia, un aviso de "su dispositivo está infectado" o una página que les pide permitir notificaciones, es muy probable que su sitio WordPress esté redirigiendo el tráfico sin su permiso.

La redirección puede afectar a:

  • todos los visitantes
  • solo a los visitantes que usan el móvil
  • solo a quienes llegan desde Google o desde las redes sociales
  • solo a quienes visitan el sitio por primera vez
  • solo a algunas páginas
  • a los visitantes que no han iniciado sesión en WordPress

Este último punto es importante. Muchas redirecciones maliciosas están pensadas para ocultarse al propietario del sitio. Puede abrir el sitio web, ver que todo parece normal y concluir que el cliente se equivocó. A menudo no es así.

Una redirección de este tipo suele indicar que se ha añadido algo al sitio web: un script, una regla, una entrada en la base de datos o un archivo. No significa necesariamente que se hayan perdido su contenido, sus pedidos o los datos de sus clientes. Sin embargo, debe tratarse como un incidente de seguridad hasta encontrar la causa.

Esta guía explica por qué la redirección puede resultarle invisible, dónde suele estar escondida, qué causas legítimas conviene descartar primero, qué puede comprobar con seguridad y cuándo es mejor pedir soporte técnico.

¿Qué significa que WordPress redirija a spam?

Una redirección indica al navegador que abandone la página solicitada y abra una dirección diferente. Las redirecciones son normales cuando una página cambia de ubicación, un sitio pasa a HTTPS o cambia un dominio.

El problema empieza cuando la redirección:

  • envía a los visitantes a un dominio que no es suyo
  • no la ha creado usted ni su equipo
  • aparece solo en determinadas condiciones
  • cambia de destino con el tiempo
  • vuelve a aparecer después de que crea haberla eliminado

En la mayoría de los casos, es la parte visible de un compromiso del sitio. Alguien ha encontrado la forma de añadir código al sitio web y utiliza su tráfico para enviar a las personas a páginas con las que gana dinero o con las que intenta engañar a los visitantes.

¿Por qué a mí me funciona y a mis clientes no?

Es la causa de confusión más habitual.

Las redirecciones maliciosas suelen programarse para activarse solo con determinados visitantes. Esta técnica se conoce como cloaking. El objetivo es pasar desapercibidas para el propietario del sitio, el desarrollador y, a veces, los escáneres de seguridad, para que la redirección siga activa más tiempo.

El código puede comprobar:

  • si el visitante ha iniciado sesión en WordPress
  • si el visitante utiliza un teléfono o un ordenador
  • si el visitante ha llegado desde un buscador o una red social
  • si el visitante ya había estado en el sitio, a menudo mediante una cookie
  • el país o la dirección IP del visitante
  • la hora del día, o una probabilidad aleatoria

Así, la persona que más probablemente pruebe el sitio web, un administrador con la sesión iniciada que lo visita a menudo y escribe la dirección directamente, es justo la que menos probabilidades tiene de ver la redirección.

"A mí me funciona" no demuestra que el sitio web esté limpio.

Tómese en serio los avisos de los clientes y pídales detalles: qué dispositivo, qué navegador, cómo llegaron al sitio web y adónde acabaron.

Descarte primero las causas legítimas

No toda redirección inesperada es malware. Antes de pensar lo peor, compruebe si se da alguno de estos casos.

Un plugin o una regla de redirección mal configurados

Muchos sitios web utilizan un plugin para gestionar las redirecciones, por ejemplo después de un rediseño. Una regla con una errata, un comodín que coincide con demasiadas páginas o una regla antigua que apunta a un dominio ya caducado pueden enviar a los visitantes a un lugar inesperado.

Conviene prestar atención a los dominios caducados: si una redirección apunta a un dominio que nadie ha renovado, puede que otra persona lo haya registrado y lo haya llenado de spam.

La dirección del sitio es incorrecta después de una migración

WordPress guarda dos direcciones: la Dirección de WordPress y la Dirección del sitio. Si una migración o un cambio de dominio no se completó correctamente, el sitio web puede seguir enviando a los visitantes a un dominio antiguo, a una dirección de staging o a una URL temporal del hosting.

Esto suele afectar a todos los visitantes, incluido usted, lo que facilita distinguirlo de una redirección maliciosa.

Una red publicitaria o un script de terceros

Si su sitio web muestra anuncios, a veces un anuncio puede abrir otra página o redirigir a los visitantes. Los widgets incrustados, las herramientas de chat, los scripts de seguimiento y otros códigos externos pueden hacer lo mismo si el servicio que hay detrás está comprometido.

En este caso, sus archivos de WordPress pueden estar totalmente limpios, pero el problema sigue estando en sus páginas y hay que resolverlo.

Una regla de la CDN, del hosting o del DNS

Las redirecciones también pueden configurarse fuera de WordPress: en el panel del hosting, en una CDN como Cloudflare o en el registrador del dominio. Una regla añadida ahí, por error o por alguien con acceso a esa cuenta, se aplica incluso antes de que intervenga WordPress.

Si nada de esto explica lo que describen los visitantes, trate la redirección como maliciosa.

¿Dónde suele esconderse una redirección maliciosa?

No necesita encontrar el código usted mismo, pero conviene saber que una redirección puede estar en varios lugares. Por eso, eliminar una sola pieza a menudo no basta.

Ubicaciones habituales:

  • JavaScript inyectado en páginas, entradas, widgets o ajustes del tema, a menudo cargado desde un dominio externo
  • reglas del servidor en el archivo .htaccess, que pueden redirigir a los visitantes según su dispositivo o el sitio del que proceden
  • ajustes de la base de datos, como la Dirección de WordPress y la Dirección del sitio, u opciones del tema y de los plugins que almacenan scripts
  • un plugin malicioso, a veces con un nombre convincente y a veces oculto en la lista de plugins
  • archivos del tema modificados, como la cabecera o el archivo functions.php
  • archivos del núcleo de WordPress modificados o archivos adicionales colocados entre ellos
  • tareas programadas que vuelven a colocar la redirección después de eliminarla
  • cuentas de administrador desconocidas que permiten al atacante volver

Un mismo incidente suele utilizar más de una de estas vías. Por ejemplo, un script en la base de datos puede hacer la redirección mientras un archivo oculto en otro lugar vuelve a colocar el script cada vez que se elimina.

¿Qué puede comprobar cualquiera con seguridad?

Estas comprobaciones no requieren conocimientos técnicos y no cambian nada en el sitio web.

Intente reproducir la redirección como un visitante

Haga la prueba en condiciones parecidas a las de un visitante real:

  • cierre la sesión de WordPress o utilice una ventana privada o de incógnito
  • utilice un teléfono móvil, idealmente con datos móviles en lugar de la Wi-Fi de la oficina
  • busque su empresa en Google y haga clic en su propio resultado en lugar de escribir la dirección
  • pruebe varias páginas distintas, no solo la página de inicio
  • pida a un compañero o a un amigo que lo pruebe desde su propio dispositivo

Si aparece la redirección, no interactúe con la página de destino. No permita notificaciones, no descargue nada ni introduzca ningún dato. Cierre la pestaña y, si puede, anote la dirección que mostraba.

Anote qué la provocó: dispositivo, navegador, cómo llegó y en qué página.

Revise Google Search Console

Si su sitio web está conectado a Google Search Console, abra:

Security & Manual Actions → Security Issues

(Seguridad y acciones manuales → Problemas de seguridad). Google puede informar de contenido hackeado, malware o páginas engañosas, con URL de ejemplo. Son muestras, no una lista completa.

La herramienta de inspección de URLs también puede ser útil. Probar la URL publicada muestra cómo obtiene Google la página, lo que puede ser distinto de lo que usted ve en su navegador.

Si no tiene acceso a Search Console, pregunte a quien gestione el sitio web o su marketing.

Busque señales evidentes en el escritorio de WordPress

Si puede acceder, busque:

  • plugins que no reconozca en Plugins → Installed Plugins (Plugins → Plugins instalados)
  • administradores que no reconozca en Users → All Users (Usuarios → Todos los usuarios)
  • reglas de redirección añadidas recientemente en el plugin de redirecciones que utilice
  • la Dirección de WordPress y la Dirección del sitio en Settings → General (Ajustes → Generales)

Anote lo que encuentre, pero no elimine nada todavía. Los usuarios y plugins desconocidos son pruebas, y eliminarlos puede hacer más difícil entender lo que ha ocurrido.

¿Qué puede probar con seguridad?

El enfoque adecuado depende de lo que haya encontrado y de la importancia del sitio web para su negocio.

Opción 1: corregir una redirección legítima

Si la causa es claramente una regla de redirección creada por usted o por su equipo, una dirección del sitio incorrecta después de una migración o una regla en la CDN o en el panel del hosting, puede que baste con corregirla.

Haga un solo cambio y vuelva a probar desde una ventana privada y desde un dispositivo móvil.

Si no está completamente seguro de que la redirección sea legítima, no se quede aquí: trátela como maliciosa mientras no se demuestre lo contrario.

Opción 2: contactar con su proveedor de hosting

Su proveedor de hosting puede decirle si:

  • su escáner ha detectado archivos sospechosos en su cuenta
  • se han puesto en cuarentena archivos sospechosos
  • otros sitios web de la misma cuenta están afectados
  • existe un backup anterior al problema

El soporte del hosting puede ayudar a contener el incidente, pero puede que no limpie WordPress por completo ni averigüe cómo entró el atacante.

Opción 3: limitar los daños mientras se investiga la causa

Si hay muchos visitantes afectados, plantéese pausar los anuncios de pago y las campañas de correo que envían tráfico al sitio web, y avise a su equipo para que pueda tranquilizar a los clientes. Son precauciones, no una solución.

Opción 4: valorar un backup, con cuidado

Restaurar un backup anterior al inicio de la redirección puede eliminar el código malicioso. Sin embargo, también puede:

  • volver a introducir la misma vulnerabilidad que permitió entrar al atacante
  • contener código que ya estaba presente pero aún no se había activado
  • sobrescribir pedidos, envíos de formularios o contenido recientes
  • eliminar pruebas de lo ocurrido

No restaure un backup hasta saber aproximadamente cuándo empezó el problema y qué datos se perderían. Después de cualquier restauración, sigue siendo necesario encontrar y cerrar el punto de entrada original.

¿Qué debe evitar?

Evite:

  • dar por hecho que los avisos son erróneos porque usted no ve la redirección
  • entrar en el sitio de spam para "ver qué es"
  • borrar archivos o plugins al azar
  • eliminar solo el script que ha encontrado y quedarse ahí
  • instalar varios plugins de seguridad a la vez
  • cambiar muchos ajustes al mismo tiempo
  • publicar logs, capturas de ajustes o credenciales en foros públicos
  • enviar contraseñas por correo electrónico normal

Cambie una sola cosa cada vez, lleve un registro de lo que ha hecho y pruebe después de cada paso.

Si tiene dudas, detenerse es más seguro que seguir. D4Hub puede tomar el relevo en cualquier momento, incluso después de un intento de limpieza que no ha funcionado.

¿Cuándo conviene pedir soporte técnico?

Se recomienda pedir soporte técnico cuando:

  • no encuentra una explicación legítima para la redirección
  • los clientes siguen comunicándola después de que usted haya hecho cambios
  • Google Search Console informa de un problema de seguridad
  • ha encontrado administradores, plugins o archivos desconocidos
  • la redirección vuelve a aparecer después de eliminarla
  • el sitio web gestiona pagos, suscripciones o datos personales
  • varios sitios web comparten la misma cuenta de hosting
  • no dispone de un backup limpio y reciente
  • no se siente cómodo trabajando con archivos o con la base de datos

No necesita reproducir la redirección ni identificar el código antes de pedir ayuda. Basta con una descripción clara de lo que experimentan los visitantes.

¿Qué información conviene reunir?

Algunos datos útiles:

  • la URL del sitio web
  • adónde se envía a los visitantes, si lo sabe
  • qué dispositivos y navegadores se ven afectados
  • cómo llegaron los visitantes al sitio web, por ejemplo desde Google
  • si ha podido reproducirla
  • cuándo llegó el primer aviso
  • cualquier notificación de Search Console
  • los cambios recientes en el sitio web, el hosting o el DNS
  • si WordPress es accesible y si existe un backup reciente
  • los pasos que ya se han dado

No envíe contraseñas, claves privadas ni credenciales completas por canales no seguros. D4Hub puede explicarle cómo compartir el acceso de forma segura.

Cómo puede ayudarle D4Hub

El objetivo no es solo detener hoy la redirección, sino asegurarse de que no vuelva la semana que viene.

Según la situación, D4Hub puede ayudarle a:

  • reproducir la redirección en las condiciones que describen los visitantes
  • descartar causas legítimas como reglas de redirección, migraciones, ajustes de la CDN o anuncios
  • revisar los archivos de WordPress, la base de datos, los usuarios y las tareas programadas
  • revisar las reglas del servidor, incluido el archivo .htaccess
  • identificar plugins maliciosos, cambios en el tema y scripts inyectados
  • eliminar la redirección y todo lo que la vuelve a instalar
  • encontrar y cerrar el punto de entrada original
  • actualizar los componentes vulnerables y proteger las cuentas
  • evaluar los backups y planificar una restauración sin perder los datos recientes
  • coordinarse con su proveedor de hosting
  • acompañarle en la revisión de seguridad de Google si se ha emitido una advertencia

Puede pedir ayuda en cualquier momento: cuando llega el primer aviso de un cliente, después de que su proveedor de hosting haya analizado el sitio o después de una limpieza que no ha resistido.

Abrir un ticket de soporte

Para usuarios con perfil técnico: localizar la redirección

Las comprobaciones siguientes están pensadas para personas que se manejan con la línea de comandos, WP-CLI, los gestores de archivos del hosting y SFTP.

Antes de empezar, haga un backup completo de los archivos y de la base de datos, y guárdelo separado del sitio en producción. Conserva las pruebas y le da una vía para volver atrás. La mayoría de las comprobaciones siguientes solo leen información, pero trate con cuidado cualquier cambio en los archivos y en la base de datos, y cambie una sola cosa cada vez.

Compruebe los ajustes de la dirección del sitio

Compare las dos direcciones guardadas en la base de datos:

wp option get siteurl
wp option get home

Ambas deben mostrar su propio dominio, con el protocolo que espera. Un dominio desconocido aquí es una señal clara de problema.

Revise también si wp-config.php contiene estas constantes, que prevalecen sobre los valores de la base de datos cuando existen:

define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );

Si existen y apuntan a un lugar inesperado, anótelo antes de cambiar nada.

Revise el archivo .htaccess

En los servidores Apache y LiteSpeed, abra el archivo .htaccess de la carpeta raíz de WordPress. Un bloque estándar de WordPress tiene este aspecto:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Las versiones recientes pueden incluir una línea adicional para HTTP_AUTHORIZATION, y los plugins de caché o de seguridad suelen añadir sus propias secciones claramente identificadas.

Desconfíe de las reglas que comprueban HTTP_REFERER o HTTP_USER_AGENT y luego redirigen a un dominio externo. Busque también archivos .htaccess en las subcarpetas, como wp-content/uploads/.

Los sitios en Nginx no utilizan .htaccess. Allí, las reglas de redirección están en la configuración del servidor, que normalmente requiere a su proveedor de hosting.

Reproduzca las redirecciones con cloaking mediante curl

Puede solicitar una página haciéndose pasar por un visitante móvil que llega desde Google:

curl -sI -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1" -e "https://www.google.com/" https://example.com/

Fíjese en la línea de estado y en cualquier cabecera Location:. Un 301 o 302 que apunta a un dominio que no es suyo confirma una redirección en el servidor. Compárelo con el mismo comando sin -A ni -e.

Algunos códigos maliciosos solo reaccionan a una solicitud completa, no a la solicitud de solo cabeceras que envía -I. Para guardar la página completa:

curl -s -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1" -e "https://www.google.com/" https://example.com/ -o page.html

Muchas redirecciones se producen mediante JavaScript después de cargar la página, y curl no lo ejecuta. Abra page.html en un editor de texto, no en un navegador, y busque scripts cargados desde dominios desconocidos o bloques largos de código ilegible.

Busque scripts inyectados en la base de datos

WP-CLI puede buscar en la base de datos sin modificarla:

wp db search '<script' --all-tables

Es normal que aparezcan muchos resultados legítimos, por ejemplo de herramientas de analítica, maquetadores visuales o formularios incrustados. Busque etiquetas script que apunten a dominios que no reconozca, o código muy ofuscado. También puede buscar un dominio al que se haya enviado a los visitantes:

wp db search 'suspicious-domain.example' --all-tables

No ejecute wp search-replace ni elimine filas a partir de estos resultados a menos que esté seguro de lo que hace cada entrada. Los datos serializados de las opciones de los plugins pueden romperse si se editan a mano.

Verifique los archivos del núcleo y de los plugins

Estos comandos comparan sus archivos con las versiones oficiales:

wp core verify-checksums
wp plugin verify-checksums --all

La comprobación de plugins solo funciona con los plugins del directorio de WordPress.org. Los plugins premium y a medida aparecerán como no verificables, lo que por sí solo no es una señal de infección.

Revise también wp-content/mu-plugins/. Los plugins colocados ahí se cargan automáticamente y no aparecen en la lista normal de plugins.

Revise los administradores y las tareas programadas

wp user list --role=administrator
wp cron event list

Anote cualquier cuenta desconocida o evento programado que no reconozca, junto con las fechas, antes de eliminar nada. Una tarea programada puede ser lo que vuelve a colocar la redirección después de borrarla.

Si encuentra algo que no entiende, deténgase y pregunte. D4Hub puede revisar los resultados con usted o hacerse cargo de la investigación.

Preguntas frecuentes

¿Por qué no veo la redirección cuando visito mi propio sitio web?

Las redirecciones maliciosas suelen omitir a los administradores con la sesión iniciada, a los visitantes recurrentes o a quienes escriben la dirección directamente. Pruebe desde una ventana privada, en un dispositivo móvil con datos móviles y haciendo clic en su sitio en los resultados de búsqueda de Google.

¿Está hackeado mi sitio web si redirige a spam?

Si ha descartado los plugins de redirección, las migraciones, las reglas de la CDN y los scripts publicitarios, un compromiso del sitio es la explicación más probable. Debe investigarse como un incidente de seguridad.

He eliminado el script y la redirección ha vuelto. ¿Por qué?

Hay otra cosa en el sitio web que la vuelve a colocar. Es habitual: un archivo oculto, una tarea programada, un plugin malicioso o una cuenta de administrador desconocida pueden reinstalar la redirección. Hay que revisar todo el sitio web, no solo el script visible.

¿Podría Google marcar mi sitio web como peligroso?

Sí. Las redirecciones a páginas engañosas o dañinas son un motivo habitual de las advertencias de seguridad de Google. Revise Search Console y resuelva la causa antes de solicitar una revisión.

¿Debo desconectar el sitio web?

No siempre. Si se está redirigiendo a muchos visitantes y la causa no puede detenerse rápidamente, el modo de mantenimiento puede reducir los daños mientras se investiga el sitio. En una tienda o un sitio de membresía, valórelo frente a la pérdida de pedidos y de accesos.

¿Puede ayudarme D4Hub si no consigo reproducir la redirección?

Sí. Comparta lo que han comunicado los clientes, incluidos los dispositivos y cómo llegaron al sitio. D4Hub puede intentar reproducirla en esas condiciones y revisar el sitio web en busca del código que la provoca.