Un redirect, aviso del navegador o página rota puede venir de malware, pero también de caché, DNS, certificado o plugin. Desconectar una tienda tiene coste, así que confirma la señal mientras proteges visitantes.
Usa evidencias independientes y contiene de inmediato si existe riesgo creíble para clientes o pagos.
Conserva el informe original
Solicita URL exacta, hora, dispositivo, origen, captura y acción que causó el síntoma. Guarda el informe antes de pedir repetir.
No solicites contraseñas, datos de pago o el archivo descargado por email normal. Anota si alertó navegador, buscador, host, pasarela o scanner. Construye la cronología en una zona horaria.
Reproduce en un contexto limpio
Usa navegador aislado o petición externa segura desde un equipo limpio. No visites autenticado a WordPress, hosting, email o pagos.
Compara navegación directa, desde buscador, móvil y escritorio si el comportamiento es condicional. Registra status y cadena de redirects sin ejecutar descargas.
No poder reproducir una vez no descarta malware que filtra por user agent, referencia, cookie, IP u hora.
Repite solo de manera controlada y limita el número de peticiones. Compara el HTML o cabeceras sin cargar recursos de terceros cuando sea posible. Si el síntoma aparece únicamente desde buscadores, conserva la referencia y la cadena completa: los redirects condicionales buscan precisamente evitar que el propietario los vea.
Compara DNS y origen
Confirma nameservers autoritativos, A/AAAA, CDN/proxy y certificado. Una cuenta DNS/Cloudflare comprometida puede redirigir sin tocar WordPress.
Cuando sea seguro y autorizado, compara proxy y origen con Host controlado, sin ejecutar en navegador. No publiques la IP de origen. Registra cambios inesperados de nameserver o redirect.
Inspecciona logs
Busca en access, error, PHP y seguridad alrededor de la hora: POST inesperados, acciones administrativas, archivos modificados, spam saliente o tareas extrañas.
Preserva copias antes de rotación. Redacta datos de visitantes y no trates un scanner o login fallido aislado como prueba. Correlaciona por tiempo, ruta, cuenta y cambios; usa IP solo donde sea legal.
Comprueba también procesos cron del sistema, tareas del panel y logs de correo saliente. Spam o peticiones externas desde PHP pueden ser la única señal visible. Anota zona horaria y desfase de cada fuente antes de concluir que dos eventos están relacionados.
Revisa usuarios y sesiones
Audita administradores, application passwords, sesiones y cambios. Comprueba usuarios del hosting, SSH, FTP y panel.
Una cuenta privilegiada desconocida es evidencia fuerte aunque el frontal parezca normal. Contén después de guardar identificadores. Usa una cuenta de control limpia; no cambies contraseña desde un navegador posiblemente infectado.
Comprueba integridad de archivos
Compara core con la versión oficial exacta y plugins/temas con paquetes confiables. El código propio necesita su repositorio o copia conocida.
Busca PHP ejecutable en uploads/caché, cambios de bootstrap y persistencia fuera del tema visible. La fecha de modificación no basta. No ejecutes archivos para ver qué hacen.
Calcula hashes y conserva ruta, propietario y permisos. Compara con el mismo archivo en un paquete confiable, no con otra web que podría compartir el compromiso. Revisa .htaccess, configuración del servidor y archivos previos al document root, dentro del alcance autorizado.
Revisa la base
Busca administradores inyectados, JavaScript en options/widgets, URLs alteradas, eventos programados y contenido de redirect.
Consulta en lectura o sobre backup. No hagas replace masivo ni borres filas sin conocer relaciones. Conserva snapshot, prefijo y contexto multisite.
Elige contención proporcional
Código malicioso en checkout, robo de credenciales, descargas o redirects activos justifican contención pública inmediata. Un archivo aislado sin ejecución puede permitir bloquear solo la ruta mientras se investiga.
Sirve mantenimiento fuera de WordPress y protege acceso de respuesta. Notifica host/pasarela según el proceso. No reabras tras quitar solo el primer indicador.
Define quién puede autorizar la desconexión y cómo se comunicará a clientes. Si el riesgo es incierto pero afecta checkout, deshabilitar solo pagos puede proteger mejor que mantener una tienda completa abierta. Registra la decisión y la evidencia que la justificó.
Define prueba de recuperación
Un scanner sin detecciones no basta. Sustituye código no confiable, revisa cuentas/base, cierra vector, rota secretos y verifica logs, formularios, checkout y tareas.
Conserva indicadores para monitorización. Solicita evaluación urgente si abarca DNS, hosting y WordPress o puede implicar datos del cliente. Comparte acceso gestionado y material redactado.