# Cómo saber si tu web está hackeada o tiene virus

> Cómo saber si tu web está hackeada o tiene malware, sea cual sea el CMS: señales para el visitante, en Google y en el correo, y comprobaciones gratis.

URL: https://webintacta.com/guias/como-saber-si-mi-web-esta-hackeada
Última actualización: 2026-10-17

**En resumen:** Una web hackeada se nota en lo que ven los visitantes (redirecciones, avisos del navegador), en Google (páginas de spam o «puede haber sido pirateado») y en el correo (mensajes que rebotan o acaban en spam). Hay comprobaciones gratis desde fuera, como Search Console o el análisis externo de WebIntacta, pero lo escondido en el servidor solo se ve por dentro. Vale para WordPress, PrestaShop, Joomla, Drupal o PHP a medida.


Por Jose Soriano (WebIntacta) · publicada el 2026-10-08

No hace falta saber programar para sospechar que algo va mal, pero sí saber dónde mirar, porque el malware de hoy está hecho para que el dueño no lo vea. Esta guía vale para cualquier web: WordPress, PrestaShop, Joomla, Drupal o PHP a medida. Empieza por lo que puede ver cualquiera y termina en lo que necesita acceso al servidor.

Si tu web es WordPress, tienes además una guía específica con [10 señales de WordPress hackeado](https://webintacta.com/guias/como-saber-si-mi-wordpress-esta-hackeado).

## Señales que ve el visitante

Son las que te cuentan los clientes. Tómalas en serio aunque tú no consigas reproducirlas:

- **Te lleva a otra web**: apuestas, farmacia, falsos sorteos, «tu móvil tiene un virus». A menudo solo en móvil y solo entrando desde Google. Lo explico en [mi web redirige a otra página](https://webintacta.com/guias/mi-web-redirige-a-otra-pagina).
- **Ventanas emergentes o peticiones de notificaciones** que tú no has puesto.
- **Texto o enlaces que no son tuyos**, a veces invisibles para la vista pero presentes en el código (pulsa `Ctrl+U` y busca palabras como `casino` o `viagra`).
- **Un formulario de pago distinto** al habitual, o un paso de pago que falla la primera vez y funciona la segunda.
- **La web va muy lenta o se cae** sin que haya más visitas: puede estar enviando spam o atacando a otros.
- **El antivirus del visitante bloquea la web.**

Para reproducirlas, usa el móvil con datos (no tu wifi), en incógnito y entrando desde un resultado de Google, nunca con la sesión de administrador abierta. Mucho malware se desactiva justo cuando detecta al dueño.

## Señales en Google

- **«Este sitio puede haber sido pirateado»** bajo tu resultado, o la pantalla roja de Chrome con **«Sitio engañoso»** o **«contiene malware»**. Cómo quitarlo, en [esta guía](https://webintacta.com/guias/google-dice-que-mi-sitio-es-peligroso).
- **Páginas que no son tuyas en Google.** Busca `site:tudominio.com`: si salen títulos en japonés, productos que no vendes o páginas de casino, alguien está creando contenido en tu web.
- **Un correo de Search Console** sobre problemas de seguridad, o aviso en el informe **Problemas de seguridad**.
- **Caída brusca de visitas** desde Google sin cambios por tu parte.
- **Palabras clave raras** en el informe de Rendimiento de Search Console: búsquedas de productos o temas que no tienen nada que ver contigo.

Si todavía no tienes la web en [Google Search Console](https://search.google.com/search-console), verifícala aunque no sospeches nada: es gratis y es la única vía por la que Google te avisa directamente por correo cuando detecta un problema de seguridad. Si la verificas después de un hackeo, revisa también la lista de propietarios: a veces el atacante se ha añadido a sí mismo.

## Señales en el correo

El correo es donde más tarda en notarse y donde más daño hace a un negocio:

- **Tus correos llegan a spam o rebotan** con mensajes que mencionan listas negras (`blacklisted`, `listed in`).
- **Rebotes de correos que no has enviado**: tu servidor o tu dominio se está usando para mandar spam.
- **Clientes que reciben correos falsos en tu nombre**, por ejemplo facturas o avisos de pago con un enlace.
- **El hosting te limita o bloquea el envío** por volumen.

Parte de esto no es un hackeo de la web sino una configuración débil del dominio: sin SPF, DKIM y DMARC, cualquiera puede suplantar tu dirección. El [análisis gratuito](https://webintacta.com/analisis-seguridad-web-gratis) revisa esos tres registros y las listas negras.

## Comprobación externa gratis

Sin acceso a nada, desde cualquier navegador:

1. **[Informe de transparencia de Navegación segura](https://transparencyreport.google.com/safe-browsing/search?hl=es)** de Google: dice si Google considera peligrosa tu web ahora mismo.
2. **[VirusTotal](https://www.virustotal.com/gui/home/url)**: pasa tu dirección por decenas de motores antivirus y listas de bloqueo. Un aviso aislado de un motor poco conocido puede ser un falso positivo; varios a la vez, no.
3. **`site:tudominio.com`** en Google, revisando varias páginas de resultados.
4. **Las cabeceras de la portada** simulando un móvil que llega desde Google, para ver redirecciones de servidor:

```
curl -sI -A "Mozilla/5.0 (Linux; Android 14) Mobile" -e "https://www.google.com/" https://tu-web.com/
```

Si aparece `Location:` hacia un dominio que no es el tuyo, hay redirección. Mi [análisis gratuito](https://webintacta.com/analisis-seguridad-web-gratis) hace estas pruebas y más (versiones de plugins o módulos con fallos publicados, archivos expuestos como copias o `.git`, certificado, cabeceras de seguridad, correo del dominio) y te da una nota con lo que encuentra.

> Un análisis externo solo ve lo que la web enseña. Puede decirte que algo va mal, pero no que todo va bien: una puerta trasera en el servidor no se ve desde fuera.

## Comprobación interna

Para descartar de verdad hace falta mirar dentro. Con acceso al hosting (gestor de archivos, phpMyAdmin) o por SSH:

### 1. Archivos que no coinciden con el original

Es la prueba más fiable. Compara el núcleo del CMS con el paquete oficial de **tu versión exacta**: WordPress tiene `wp core verify-checksums`; en PrestaShop, Joomla o Drupal se compara contra el paquete descargado de la web oficial. Si la web está en un repositorio Git, `git status` y `git diff` en el servidor dicen qué ha cambiado.

### 2. Archivos recientes o fuera de sitio

```
# PHP modificados en los últimos 10 días
find . -name "*.php" -mtime -10 -printf "%TY-%Tm-%Td %TH:%TM  %p\n" | sort -r | head -40

# PHP en carpetas de subidas o imágenes
find . -path "*upload*" -name "*.php" -o -path "*/img/*" -name "*.php"

# Código ofuscado típico
grep -rlE "eval\(base64_decode|gzinflate\(base64_decode|str_rot13\(" --include=*.php .
```

Revisa el resultado con calma: algunas librerías legítimas usan esas funciones y los `index.php` vacíos de protección son normales. Lo sospechoso es lo que no encaja con el resto.

### 3. Usuarios y accesos

Administradores que no reconoces en el CMS, cuentas FTP de más en el hosting, claves en `~/.ssh/authorized_keys` que nadie sabe de quién son.

### 4. Tareas programadas

`crontab -l` por SSH o la sección **Cron** del panel del hosting. Una tarea que descarga algo de un dominio desconocido o ejecuta un PHP con nombre raro es la forma típica de que la infección vuelva después de limpiarla.

### 5. Base de datos

Busca `<script`, `eval(`, `atob(` y `String.fromCharCode` en las tablas de configuración y de contenidos. Un script en la configuración del sitio o en el pie de página que nadie recuerda haber añadido es mala señal.

### 6. Logs del servidor

Peticiones `POST` a archivos PHP que no conoces, o miles de peticiones a la página de acceso del administrador, cuentan qué está pasando. Pide al hosting los logs de acceso si no los ves en el panel.

### 7. Configuración del servidor

El malware también se esconde en archivos de configuración que casi nadie abre. Revisa el `.htaccess` de la raíz y de cada subcarpeta (reglas que redirigen según el navegador o la procedencia) y busca archivos `.user.ini` o `php.ini` en la web: una línea `auto_prepend_file` que apunta a un PHP desconocido hace que ese archivo se ejecute antes que cualquier página, sin tocar el código de la web.

```
find . -name ".user.ini" -o -name "php.ini" | xargs grep -l "auto_prepend_file" 2>/dev/null
find . -name ".htaccess" -newer index.php
```

El segundo comando lista los `.htaccess` modificados después que el `index.php` de la raíz, que suele ser de los archivos que menos cambian. No es una prueba, pero es un buen sitio por el que empezar.

Si no quieres dar FTP a nadie, el [conector de solo lectura](https://webintacta.com/conector) hace la comparación de integridad, la búsqueda de malware y el inventario de versiones desde el propio panel del CMS, sin poder modificar nada.

## Si encuentras algo

1. **No borres a ciegas.** Haz antes una copia completa del estado actual: es tu prueba y te dirá por dónde entraron.
2. **Cambia las contraseñas** del hosting, base de datos y administradores desde un ordenador limpio.
3. **Sigue un orden**: limpiar, cerrar la entrada y solo después pedir la revisión a Google. Lo tienes en [cómo recuperar una web hackeada](https://webintacta.com/guias/recuperar-web-hackeada).
4. **Si hay datos de clientes**, el reloj del RGPD (72 horas para notificar a la AEPD si hay riesgo) empieza cuando lo sabes: [brecha de datos en tu tienda online](https://webintacta.com/guias/brecha-datos-tienda-online-rgpd).

Si prefieres un diagnóstico completo antes de decidir, la [auditoría de seguridad web](https://webintacta.com/auditoria-seguridad-web) (el informe por dentro, con el conector) cuesta 129 € (IVA no incluido) para una web corporativa y 169 € para una tienda, y se descuenta entero si después contratas la limpieza o el mantenimiento en 30 días. Si ya sabes que está hackeada, el paso siguiente es la limpieza: [limpieza de WordPress hackeado](https://webintacta.com/limpieza-malware-wordpress), [limpieza de PrestaShop hackeado](https://webintacta.com/prestashop-hackeado) o, para cualquier otro gestor, [web hackeada](https://webintacta.com/web-hackeada).

## Fuentes

- [Google Search Central: políticas sobre spam](https://developers.google.com/search/docs/essentials/spam-policies) (redirecciones de webs hackeadas que dependen de la procedencia, el navegador o el dispositivo).
- [Ayuda de Search Console: informe Problemas de seguridad](https://support.google.com/webmasters/answer/9044101?hl=es) (dónde ve el propietario los problemas de seguridad que detecta Google).
- [Informe de transparencia de Navegación segura](https://transparencyreport.google.com/safe-browsing/search?hl=es) (estado actual del dominio para Google).
- [WP-CLI: wp core verify-checksums](https://developer.wordpress.org/cli/commands/core/verify-checksums/) (compara el núcleo de WordPress con las sumas de comprobación oficiales).
- [PHP: auto_prepend_file](https://www.php.net/manual/en/ini.core.php#ini.auto-prepend-file) y [archivos .user.ini](https://www.php.net/manual/en/configuration.file.per-user.php) (un archivo que se ejecuta antes de cada script, configurable por carpeta).
- [Ayuda de Gmail: directrices para remitentes](https://support.google.com/a/answer/81126?hl=es) (SPF, DKIM y DMARC para autenticar el correo y protegerse de la suplantación).

## Preguntas frecuentes

### ¿Cómo saber si mi web tiene virus gratis?

Empieza por el informe de transparencia de Navegación segura de Google, VirusTotal y una búsqueda site:tudominio.com. Mi análisis gratuito junta esas pruebas con la revisión de versiones, archivos expuestos y correo. Desde fuera no se ve todo, pero sí lo más visible.

### ¿Cómo saber si mi web es segura?

Que no esté hackeada hoy no significa que sea segura. Lo que más pesa es tener el CMS, plugins y módulos actualizados, pocos administradores con contraseñas largas, copias fuera del servidor y alguien revisando qué archivos cambian.

### ¿Mi web puede tener malware aunque se vea normal?

Sí, y es lo habitual. Muchas infecciones solo actúan con ciertas visitas (móvil, procedencia de Google, primera visita) o no tocan la parte visible: envían spam, guardan una puerta trasera o copian datos.

### ¿Un antivirus en mi ordenador detecta si mi web está infectada?

No. El antivirus revisa tu ordenador y, como mucho, bloquea una web que ya está en sus listas. El malware de la web vive en el servidor y hay que buscarlo allí.

### ¿Cada cuánto debería comprobarlo?

Lo externo, cada semana o tras cualquier cambio. Una revisión por dentro, al menos una vez al año, y siempre que cambies de proveedor o de hosting.

## Sobre el autor

[Jose Soriano](https://webintacta.com/quien-soy): Desarrollador fullstack especializado en PrestaShop, WordPress y WooCommerce, con el curso y el examen oficiales de PrestaShop aprobados. Desarrolla tiendas online y módulos desde 2023 y es el fundador de WebIntacta, el servicio de seguridad web con el que analiza, limpia y mantiene él mismo webs de pymes y tiendas online, en remoto desde Ibi (Alicante). Datos de WebIntacta: https://webintacta.com/quien-soy#datos