{"id":4702,"date":"2026-01-20T21:23:51","date_gmt":"2026-01-20T21:23:51","guid":{"rendered":"https:\/\/sheafmediagroup.com\/?p=4702"},"modified":"2026-03-18T12:24:05","modified_gmt":"2026-03-18T12:24:05","slug":"arreglar-un-sitio-wordpress-hackeado","status":"publish","type":"post","link":"https:\/\/sheafmediagroup.com\/es\/arreglar-un-sitio-wordpress-hackeado\/","title":{"rendered":"Arreglar un Sitio WordPress Hackeado: gu\u00eda de recuperaci\u00f3n de emergencia en 9 pasos"},"content":{"rendered":" \n\n<p>Si est\u00e1s buscando en Google \u201carreglar un sitio WordPress hackeado\u201d, probablemente est\u00e9s viendo algo preocupante: redirecciones raras, nuevos usuarios administradores, p\u00e1ginas de spam apareciendo en Google o una advertencia del navegador que destruye la confianza en segundos. Y s\u00ed, puedes solucionarlo. Respira: la mayor\u00eda de los <a href=\"https:\/\/sheafmediagroup.com\/wordpress-hacked-11-proven-fixes\/\" data-type=\"link\" data-id=\"https:\/\/sheafmediagroup.com\/wordpress-hacked-11-proven-fixes\/\">hackeos de WordPress<\/a> se pueden recuperar, pero el orden de los pasos importa. El mayor error es pasar directo a borrar archivos o restaurar un respaldo al azar sin antes detener al atacante y conservar lo necesario para diagnosticar por d\u00f3nde entr\u00f3.<\/p>\n\n\n\n\n<p>Esta gu\u00eda usa un enfoque simple de tres fases: contener \u2192 limpiar \u2192 reforzar. Primero, vas a contener el da\u00f1o (modo mantenimiento, bloqueo de accesos y una captura completa) para que el hack no siga propag\u00e1ndose mientras trabajas. Luego, vas a limpiar la infecci\u00f3n (eliminar puertas traseras, reemplazar archivos comprometidos, purgar basura inyectada en la base de datos y auditar usuarios) hasta que los escaneos y las revisiones puntuales confirmen que realmente est\u00e1 limpio. Por \u00faltimo, vas a reforzar el sitio (actualizaciones, autenticaci\u00f3n fuerte, m\u00ednimo privilegio, copias de seguridad y monitoreo) para que la misma vulnerabilidad no te vuelva a pegar la pr\u00f3xima semana y recibas alertas antes que tus clientes.<\/p>\n\n\n\n\n<p>Antes de empezar, intenta reunir acceso de administrador de WordPress, credenciales de hosting\/SFTP, acceso a la base de datos y cualquier respaldo reciente. La mayor\u00eda de las limpiezas toman 30\u2013120 minutos, seg\u00fan el alcance. Si te falta alg\u00fan acceso, no entres en p\u00e1nico: vamos a indicar alternativas y el punto exacto en el que es m\u00e1s inteligente escalar con tu hosting o un profesional de seguridad. Si tu objetivo es arreglar un sitio WordPress hackeado de forma r\u00e1pida y segura, comienza por la contenci\u00f3n y sigue los pasos en orden.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Se\u00f1ales de que tu sitio WordPress est\u00e1 hackeado<\/h2>\n\n\n\n\n<h3 class=\"wp-block-heading\">Checklist r\u00e1pido de s\u00edntomas<\/h3>\n\n\n\n\n<p>Si algo se siente \u201craro\u201d, conf\u00eda en ese instinto. La mayor\u00eda de los compromisos no son dram\u00e1ticos: son sigilosos. Estas son las se\u00f1ales de alerta m\u00e1s comunes:<\/p>\n\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Redirecciones inesperadas<\/strong> (especialmente solo en m\u00f3vil) a p\u00e1ginas de apuestas, \u201cpharma\u201d, cripto o \u201cpremios\u201d<\/li>\n\n\n\n\n<li><strong>Un nuevo usuario administrador<\/strong> que no creaste, o tu email\/contrase\u00f1a de admin cambi\u00f3 de repente<\/li>\n\n\n\n\n<li><strong>P\u00e1ginas de spam<\/strong> o URLs extra\u00f1as indexadas en Google (a menudo con slugs aleatorios o palabras clave en otros idiomas)<\/li>\n\n\n\n\n<li><strong>Advertencias del sitio<\/strong> en Chrome\/Safari (\u201cSitio enga\u00f1oso,\u201d advertencia de malware)<\/li>\n\n\n\n\n<li><strong>Alertas del hosting<\/strong> sobre malware, abuso de recursos o scripts sospechosos<\/li>\n\n\n\n\n<li><strong>Ca\u00edda repentina de SEO<\/strong> o desplome de tr\u00e1fico que no coincide con la estacionalidad<\/li>\n\n\n\n\n<li><strong>Popups\/anuncios<\/strong> apareciendo cuando no instalaste un plugin de anuncios<\/li>\n\n\n\n\n<li><strong>Sitio lento \/ picos de CPU<\/strong> (puede ser miner\u00eda inyectada, tr\u00e1fico de bots o generaci\u00f3n de spam)<\/li>\n\n\n\n\n<li><strong>Archivos desconocidos<\/strong> de plugins\/temas o archivos core modificados (cambios en wp-includes\/wp-admin)<\/li>\n\n\n\n\n<li><strong>Correos enviados<\/strong> desde tu dominio (restablecimientos de contrase\u00f1a que no pediste, quejas por spam)<\/li>\n<\/ul>\n\n\n\n\n<p>Una pista grande: el sitio se ve normal para ti, pero los visitantes ven algo distinto. Eso suele significar malware condicional (por dispositivo, ubicaci\u00f3n o referidor).<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Confirma con Search Console + logs<\/h3>\n\n\n\n\n<p>Ahora valida con evidencia, no con suposiciones.<\/p>\n\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Google Search Console:<\/strong> revisa <strong>Problemas de seguridad<\/strong> y <strong>Acciones manuales<\/strong>. Tambi\u00e9n mira <strong>P\u00e1ginas\/Indexaci\u00f3n<\/strong> por un salto de URLs \u201cIndexadas\u201d que no reconoces y revisa en Resultados de b\u00fasqueda si aparecen palabras clave de spam asociadas a tu dominio.<\/li>\n\n\n\n\n<li><strong>Logs de acceso del servidor:<\/strong> busca hits repetidos a <code>wp-login.php<\/code>, <code>xmlrpc.php<\/code>, <code>wp-admin\/admin-ajax.php<\/code> o r\u00e1fagas raras de POST a endpoints desconocidos.<\/li>\n\n\n\n\n<li><strong>Logs de errores:<\/strong> escanea advertencias PHP sospechosas ligadas a archivos desconocidos en <code>\/wp-content\/uploads\/<\/code>, <code>\/mu-plugins\/<\/code> o directorios nuevos aleatorios.<\/li>\n\n\n\n\n<li><strong>Cambios en archivos:<\/strong> si tu hosting entrega listas de \u201carchivos modificados\u201d, revisa qu\u00e9 cambi\u00f3 recientemente\u2014especialmente archivos core y <code>.htaccess<\/code>.<\/li>\n<\/ul>\n\n\n\n\n<p>Si aparecen dos o m\u00e1s se\u00f1ales, tr\u00e1talo como un compromiso real y pasa a contenci\u00f3n de inmediato.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Cont\u00e9n el da\u00f1o antes de limpiar<\/h2>\n\n\n\n\n<h3 class=\"wp-block-heading\">Modo mantenimiento \/ modo seguro<\/h3>\n\n\n\n\n<p>Antes de tocar archivos o ejecutar herramientas de \u201climpieza\u201d, <strong>det\u00e9n el sangrado<\/strong>. Tu objetivo es evitar que los visitantes (y Googlebot) sean redirigidos o reciban malware mientras trabajas. Pon el sitio en <strong>modo mantenimiento<\/strong> o una p\u00e1gina simple de \u201cVolvemos pronto\u201d. Si tu hosting lo permite, habilita temporalmente reglas de <strong>WAF \/ cortafuegos<\/strong> o el modo \u201cbajo ataque\u201d para reducir tr\u00e1fico de bots. Evita cambiar demasiadas cosas a la vez: la contenci\u00f3n debe ser r\u00e1pida, reversible y enfocada en limitar la exposici\u00f3n.<\/p>\n\n\n\n\n<p>Si el hack est\u00e1 redirigiendo activamente a usuarios, considera restringir el acceso temporalmente por IP (permitir solo tu IP) o proteger el sitio con contrase\u00f1a a nivel servidor mientras limpias. Esto no es la soluci\u00f3n final: es una barrera de seguridad.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Congela el acceso (contrase\u00f1as\/keys)<\/h3>\n\n\n\n\n<p>Asume que las credenciales est\u00e1n comprometidas. Rota de inmediato lo esencial:<\/p>\n\n\n\n\n<ul class=\"wp-block-list\">\n<li>Contrase\u00f1as de <strong>admin<\/strong> en WordPress (y fuerza el reset para todos los admins si es posible)<\/li>\n\n\n\n\n<li>Panel de control del hosting, <strong>SFTP\/SSH<\/strong> y contrase\u00f1as de la base de datos<\/li>\n\n\n\n\n<li>Cualquier credencial de <strong>SMTP<\/strong> \/ email transaccional vinculada a WordPress<\/li>\n\n\n\n\n<li>API keys guardadas en plugins (formularios, pagos, anal\u00edtica, integraciones)<\/li>\n<\/ul>\n\n\n\n\n<p>Adem\u00e1s, cierra sesi\u00f3n en todas las sesiones, elimina usuarios admin desconocidos y habilita <strong>2FA<\/strong> si est\u00e1 disponible. Si reutilizas contrase\u00f1as en alg\u00fan lado, c\u00e1mbialas tambi\u00e9n.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Snapshot\/backup para recuperaci\u00f3n + evidencia<\/h3>\n\n\n\n\n<p>Ahora toma una <strong>captura completa<\/strong> <em>antes<\/em> de la limpieza: archivos del sitio + base de datos. Esto te protege si un paso rompe el sitio y conserva evidencia para identificar el punto de entrada (para que no te reinfecten). Etiqu\u00e9talo claramente con fecha\/hora. Si puedes, exporta logs alrededor de la ventana sospechosa del compromiso. Esa captura es tu \u201cbot\u00f3n de deshacer\u201d y tu referencia forense: no te la saltes.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3mo arreglar un sitio WordPress hackeado r\u00e1pido: el plan de emergencia en 9 pasos<\/h2>\n\n\n\n\n<h3 class=\"wp-block-heading\">Paso 1 \u2014 Det\u00e9n el sangrado (modo mantenimiento + bloquea tr\u00e1fico malo obvio)<\/h3>\n\n\n\n\n<p>Saca a los usuarios del peligro de inmediato. Activa modo mantenimiento\/seguro y agrega un bloqueo temporal a nivel servidor si hay redirecciones activas (protege con contrase\u00f1a o permite solo tu IP). Si tienes un WAF\/cortafuegos, act\u00edvalo ya para reducir el ruido de bots mientras trabajas.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Paso 2 \u2014 Asegura el acceso (hosting, WP admin, DB, SFTP\/SSH, email)<\/h3>\n\n\n\n\n<p>Rota credenciales en este orden: panel del hosting \u2192 SFTP\/SSH \u2192 usuario de base de datos \u2192 admins de WordPress \u2192 email\/SMTP\/API keys. Cierra todas las sesiones y elimina accesos desconocidos. Si puedes, habilita 2FA para cuentas admin antes de seguir.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Paso 3 \u2014 Toma una captura limpia (backup completo + anota timestamps)<\/h3>\n\n\n\n\n<p>Crea un backup completo de <strong>archivos + base de datos<\/strong> y etiqu\u00e9talo con la hora exacta. Este es tu punto de retorno si la limpieza rompe algo. Tambi\u00e9n anota cu\u00e1ndo notaste los s\u00edntomas por primera vez y cualquier actualizaci\u00f3n\/instalaci\u00f3n reciente (esos timestamps importan para el an\u00e1lisis de causa ra\u00edz).<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Paso 4 \u2014 Escanea + identifica el alcance (archivos vs DB vs usuarios)<\/h3>\n\n\n\n\n<p><a href=\"https:\/\/sitecheck.sucuri.net\/\" data-type=\"link\" data-id=\"https:\/\/sitecheck.sucuri.net\/\" target=\"_blank\" rel=\"noopener\">Ejecuta un escaneo confiable<\/a> (plugin de seguridad + esc\u00e1ner del hosting si est\u00e1 disponible). No solo busques \u201cmalware encontrado\u201d: mapea d\u00f3nde vive el problema\u2014archivos infectados, contenido inyectado en la base de datos, usuarios sospechosos o redirecciones maliciosas en <code>.htaccess<\/code>\/reglas del servidor.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Paso 5 \u2014 Elimina admins\/usuarios sospechosos + restablece roles<\/h3>\n\n\n\n\n<p>Audita todos los usuarios buscando nuevos admins, emails cambiados o nombres de usuario raros. Elimina cuentas sospechosas, restablece contrase\u00f1as para roles privilegiados y confirma asignaciones de roles (que ning\u00fan \u201cEditor\u201d haya sido elevado a \u201cAdministrador\u201d en silencio). Revisa tambi\u00e9n \u201capplication passwords\u201d o tokens API ocultos.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Paso 6 \u2014 Limpia\/reemplaza archivos comprometidos (integridad de core\/tema\/plugins)<\/h3>\n\n\n\n\n<p>No \u201cedites a mano\u201d archivos core a menos que sea imprescindible: <strong>reemplaza<\/strong> el core de WordPress con copias nuevas desde WordPress.org. Reinstala temas\/plugins desde fuentes confiables. Elimina cualquier cosa nulled, abandonada o desconocida. Pon atenci\u00f3n especial a <code>\/wp-content\/uploads\/<\/code>, <code>mu-plugins<\/code> y archivos PHP nuevos raros.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Paso 7 \u2014 Limpia inyecciones en base de datos (options, posts, redirecciones)<\/h3>\n\n\n\n\n<p>Busca scripts\/links inyectados en <code>wp_options<\/code> (siteurl\/home, opciones autoload), posts\/p\u00e1ginas de spam y contenido de widgets. Elimina redirecciones maliciosas, blobs base64 e iframes ocultos. Si se crearon URLs de spam, planea noindex\/eliminaci\u00f3n y limpiar sitemaps despu\u00e9s.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Paso 8 \u2014 Cierra puntos de entrada (actualiza, elimina nulled, permisos, keys)<\/h3>\n\n\n\n\n<p>Actualiza WordPress, plugins y temas. Regenera salts\/keys en <code>wp-config.php<\/code>. Arregla permisos (nada con escritura para todos), deshabilita la edici\u00f3n de archivos en wp-admin y bloquea endpoints de alto riesgo si hace falta (por ejemplo, XML-RPC). El objetivo: detener la reinfecci\u00f3n.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Paso 9 \u2014 Verifica que est\u00e1 limpio + monitorea (reescaneo, logs, uptime, WAF)<\/h3>\n\n\n\n\n<p>Reescanea despu\u00e9s de limpiar y confirma que los s\u00edntomas desaparecieron (sin redirecciones, sin usuarios sospechosos, sin archivos nuevos apareciendo). Revisa logs de acceso por patrones repetidos, activa monitoreo de uptime + cambios y mant\u00e9n una l\u00ednea base de WAF\/seguridad corriendo. Si algo reaparece en 24\u201348 horas, escala a causa ra\u00edz (a menudo el hosting o una puerta trasera persistente).<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Eliminaci\u00f3n de malware (pr\u00e1ctico): archivos, base de datos, usuarios y backdoors<\/h2>\n\n\n\n\n<h3 class=\"wp-block-heading\">Hotspots de limpieza de archivos (uploads, mu-plugins, wp-config, carpetas temporales)<\/h3>\n\n\n\n\n<p>La mayor\u00eda del malware en WordPress se esconde donde la gente no mira\u2014o donde se camufla. Empieza por <strong>\/wp-content\/uploads\/<\/strong>. Uploads deber\u00eda contener principalmente im\u00e1genes y medios, no PHP. Si encuentras <code>.php<\/code>, <code>.phtml<\/code>, archivos <code>.ico<\/code> raros o carpetas con nombres aleatorios, tr\u00e1talos como sospechosos. Luego revisa <strong>\/wp-content\/mu-plugins\/<\/strong> (plugins obligatorios). Muchos due\u00f1os olvidan que esta carpeta existe, y por eso es un lugar favorito para c\u00f3digo persistente.<\/p>\n\n\n\n\n<p>Despu\u00e9s inspecciona <code>wp-config.php<\/code> y <code>.htaccess<\/code> (o tu configuraci\u00f3n de Nginx). Se\u00f1ales comunes incluyen llamadas <code>include()<\/code> desconocidas, cadenas largas ofuscadas, reglas de rewrite raras o redirecciones que solo se activan para tr\u00e1fico m\u00f3vil o por referidor. Tambi\u00e9n busca archivos nuevos en la ra\u00edz de WordPress que no deber\u00edan estar ah\u00ed (archivos <code>.php<\/code> aleatorios junto a <code>wp-login.php<\/code>). Por \u00faltimo, revisa <strong>directorios temporales\/de cach\u00e9<\/strong> creados por plugins y el hosting: a veces el malware suelta payloads ah\u00ed porque reciben menos atenci\u00f3n.<\/p>\n\n\n\n\n<p>Mejor pr\u00e1ctica: <strong>reemplaza, no parchees<\/strong>. Reinstala el core de WordPress desde una fuente confiable. Reinstala temas\/plugins desde fuentes oficiales o del proveedor. Elimina cualquier cosa \u201cnulled\u201d, abandonada o desconocida. Si un archivo se ve ofuscado y t\u00fa no lo pusiste ah\u00ed, elim\u00ednalo y verifica que nada dependa de \u00e9l.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Patrones de limpieza en DB (blobs base64, scripts inyectados, opciones sospechosas)<\/h3>\n\n\n\n\n<p>Un sistema de archivos \u201climpio\u201d puede seguir dejando tu sitio comprometido si la base de datos est\u00e1 inyectada. Enf\u00f3cate en tres \u00e1reas:<\/p>\n\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>wp_options<\/strong>: busca valores sospechosos en <code>home<\/code>, <code>siteurl<\/code>, <code>active_plugins<\/code> y entradas grandes con \u201cautoload\u201d. El malware suele guardar payloads en opciones autoload para que se ejecuten en cada carga.<\/li>\n\n\n\n\n<li><strong>wp_posts \/ wp_postmeta<\/strong>: busca etiquetas <code>&lt;script><\/code> inyectadas, iframes ocultos, links salientes de spam o shortcodes raros. Algunas campa\u00f1as crean cientos de p\u00e1ginas en borrador\/privadas.<\/li>\n\n\n\n\n<li><strong>widgets + men\u00fas<\/strong>: algunas inyecciones terminan en texto de widgets, bloques de header\/footer o elementos de men\u00fa.<\/li>\n<\/ol>\n\n\n\n\n<p>Se\u00f1ales rojas: <strong>blobs codificados en base64<\/strong>, <code>eval()<\/code>, <code>gzinflate()<\/code>, <code>str_rot13()<\/code> o cadenas largas que no coinciden con configuraciones normales. Si tienes duda, compara con un respaldo conocido como limpio o un entorno de pruebas (staging) y elimina las entradas maliciosas.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Detecci\u00f3n de backdoors + checks de integridad<\/h3>\n\n\n\n\n<p>Las puertas traseras son la raz\u00f3n por la que los sitios se reinfectan. Despu\u00e9s de la limpieza inicial, ejecuta checks de integridad:<\/p>\n\n\n\n\n<ul class=\"wp-block-list\">\n<li>Compara archivos core contra checksums oficiales (o simplemente reemplaza el core completo).<\/li>\n\n\n\n\n<li>Usa un esc\u00e1ner de seguridad que detecte <strong>archivos core modificados<\/strong> y funciones sospechosas.<\/li>\n\n\n\n\n<li>Revisa archivos modificados recientemente por timestamp (que algo cambie despu\u00e9s de limpiar es una pista enorme).<\/li>\n\n\n\n\n<li>Busca patrones comunes de backdoor en el c\u00f3digo: <code>eval<\/code>, <code>base64_decode<\/code>, <code>preg_replace<\/code> con <code>\/e<\/code>, <code>assert<\/code>, <code>system<\/code>, <code>shell_exec<\/code>, <code>passthru<\/code>.<\/li>\n<\/ul>\n\n\n\n\n<p>Si los mismos archivos siguen reapareciendo, detente e investiga el punto de entrada (usuario del hosting comprometido, credenciales robadas, plugin vulnerable o una puerta trasera en mu-plugins). Aqu\u00ed \u201climpiar m\u00e1s fuerte\u201d no sirve: necesitas eliminar la fuente de reinfecci\u00f3n.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Checklist para arreglar un sitio WordPress hackeado: restaurar + verificar que est\u00e1s limpio<\/h2>\n\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"640\" height=\"413\" src=\"https:\/\/sheafmediagroup.com\/wp-content\/uploads\/2026\/01\/fix-hacked-wordpress-site1.jpg\" alt=\"arreglar un sitio WordPress hackeado\" class=\"wp-image-4697\" srcset=\"https:\/\/sheafmediagroup.com\/wp-content\/uploads\/2026\/01\/fix-hacked-wordpress-site1.jpg 640w, https:\/\/sheafmediagroup.com\/wp-content\/uploads\/2026\/01\/fix-hacked-wordpress-site1-300x194.jpg 300w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n\n<h3 class=\"wp-block-heading\">Restaurar desde un backup conocido como limpio (cu\u00e1ndo es la mejor opci\u00f3n)<\/h3>\n\n\n\n\n<p>Restaurar un respaldo suele ser la v\u00eda m\u00e1s r\u00e1pida\u2014<strong>si<\/strong> puedes confirmar que el backup es anterior al compromiso. \u201cConocido como limpio\u201d significa: sin redirecciones raras en ese momento, sin URLs de spam indexadas, sin cambios sospechosos en admins y, idealmente, con un escaneo limpio de esa captura. Si tu backup es de la semana pasada pero la infecci\u00f3n lleva un mes corriendo silenciosamente, restaurar solo trae el malware de vuelta.<\/p>\n\n\n\n\n<p>Usa restauraci\u00f3n cuando:<\/p>\n\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tienes un backup reciente de <strong>antes<\/strong> de que empezaran los s\u00edntomas<\/li>\n\n\n\n\n<li>El hack afect\u00f3 muchos archivos y la limpieza manual ser\u00eda un caos<\/li>\n\n\n\n\n<li>Puedes parchear de inmediato la vulnerabilidad despu\u00e9s de restaurar (actualizaciones, reset de contrase\u00f1as, eliminar el plugin\/tema vulnerable)<\/li>\n<\/ul>\n\n\n\n\n<p>Despu\u00e9s de restaurar, <strong>igual haz los pasos de refuerzo<\/strong> (credenciales, actualizaciones, keys, WAF). Restaurar sin reforzar es la receta para que te rehackeen el mismo d\u00eda.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Enfoque de reinstalaci\u00f3n limpia (core\/temas\/plugins desde fuentes confiables)<\/h3>\n\n\n\n\n<p>Si no tienes un backup seguro\u2014o no conf\u00edas en lo que se modific\u00f3\u2014usa un enfoque de reinstalaci\u00f3n limpia:<\/p>\n\n\n\n\n<ol class=\"wp-block-list\">\n<li>Reemplaza el <strong>core<\/strong> de WordPress con archivos nuevos desde WordPress.org (no sobrescribas <code>wp-config.php<\/code> hasta haberlo auditado).<\/li>\n\n\n\n\n<li>Reinstala tu <strong>tema<\/strong> desde la fuente oficial o descarga del proveedor (nada de zips \u201cbundled\u201d de sitios raros).<\/li>\n\n\n\n\n<li>Reinstala <strong>plugins<\/strong> solo desde el repositorio de WordPress o cuentas del proveedor. Elimina cualquier plugin nulled, abandonado o innecesario.<\/li>\n\n\n\n\n<li>Conserva el media de <code>uploads\/<\/code>, pero elimina cualquier PHP o archivo sospechoso dentro.<\/li>\n\n\n\n\n<li>Resetea salts\/keys en <code>wp-config.php<\/code> y aseg\u00farate de que los permisos de archivos est\u00e9n correctos.<\/li>\n<\/ol>\n\n\n\n\n<p>Este enfoque reduce la posibilidad de que se te escape una puerta trasera, porque est\u00e1s reconstruyendo con componentes conocidos como limpios en lugar de intentar editar quir\u00fargicamente cada archivo infectado.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Checklist de verificaci\u00f3n (tests de redirecci\u00f3n, auditor\u00eda de usuarios, diff de archivos, reescaneo)<\/h3>\n\n\n\n\n<p>Antes de sacar el sitio de modo mantenimiento, verifica que realmente est\u00e1 limpio:<\/p>\n\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tests de redirecci\u00f3n:<\/strong> revisa home + p\u00e1ginas principales en desktop y m\u00f3vil, en inc\u00f3gnito y desde otra red. Confirma que no haya redirecciones condicionales.<\/li>\n\n\n\n\n<li><strong>Auditor\u00eda de usuarios:<\/strong> confirma que solo existan los admins esperados; verifica emails; resetea contrase\u00f1as; cierra todas las sesiones.<\/li>\n\n\n\n\n<li><strong>File diff \/ archivos modificados:<\/strong> revisa archivos modificados despu\u00e9s de la limpieza\u2014nada deber\u00eda seguir cambiando sin que t\u00fa lo toques.<\/li>\n\n\n\n\n<li><strong>Reescaneo:<\/strong> ejecuta tu escaneo de seguridad de nuevo y confirma que no queden alertas cr\u00edticas.<\/li>\n\n\n\n\n<li><strong>Chequeo r\u00e1pido en Search Console:<\/strong> busca nuevas p\u00e1ginas de spam, acciones manuales o advertencias de seguridad.<\/li>\n\n\n\n\n<li><strong>Uptime + monitoreo de cambios:<\/strong> activa monitoreo para enterarte r\u00e1pido si algo vuelve.<\/li>\n<\/ul>\n\n\n\n\n<p>Si alg\u00fan paso falla (vuelven las redirecciones, reaparecen archivos, aparecen nuevos admins), pausa y pasa al an\u00e1lisis de causa ra\u00edz: la reinfecci\u00f3n sigue activa.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Recuperaci\u00f3n SEO + listas negras (Google, navegadores, hosting)<\/h2>\n\n\n\n\n<h3 class=\"wp-block-heading\">Elimina URLs de spam + corrige cadenas de redirecci\u00f3n<\/h3>\n\n\n\n\n<p>Despu\u00e9s de un hack, \u201cestar limpio\u201d no es lo mismo que \u201cvolver a ser confiable\u201d. Primero, identifica cualquier <strong>URL de spam<\/strong> que el atacante haya creado (a veces cientos). En Google, busca <code>site:yourdomain.com<\/code> m\u00e1s palabras clave de spam que hayas notado. En WordPress, revisa P\u00e1ginas\/Entradas por contenido basura y escanea tu base de datos por URLs inyectadas. Elimina esas p\u00e1ginas y aseg\u00farate de que devuelvan <strong>410 (Gone)<\/strong> o <strong>404<\/strong> (mejor que redirigir todo al home). Si usas un plugin SEO, regenera sitemaps despu\u00e9s de limpiar para que esas URLs no sigan \u201cpublic\u00e1ndose\u201d.<\/p>\n\n\n\n\n<p>Luego, corrige <strong>cadenas de redirecci\u00f3n<\/strong> y reglas maliciosas. Revisa <code>.htaccess<\/code> (o reglas de Nginx) por rewrites raros, especialmente los que redirigen solo en m\u00f3vil, solo por ciertos referidores o solo cuando visita Googlebot. Tambi\u00e9n revisa JavaScript inyectado que haga redirecciones del lado del cliente. Tu objetivo: cero 301\/302 inesperadas, cero cloaking y cero redirecciones \u201csombra\u201d.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Pasos en Search Console para problemas de seguridad<\/h3>\n\n\n\n\n<p>En Google Search Console, revisa <strong>Problemas de seguridad<\/strong> y <strong>Acciones manuales<\/strong>. Si hay Problemas de seguridad, Google suele indicar la categor\u00eda (malware, p\u00e1ginas enga\u00f1osas, contenido hackeado). Despu\u00e9s de limpiar el sitio y eliminar el contenido hackeado, usa el flujo de <strong>solicitar revisi\u00f3n<\/strong> (donde est\u00e9 disponible) y s\u00e9 espec\u00edfico: qu\u00e9 limpiaste, qu\u00e9 reemplazaste y qu\u00e9 cambiaste para evitar reinfecci\u00f3n (actualizaciones, reset de contrase\u00f1as, eliminaci\u00f3n del plugin vulnerable, WAF).<\/p>\n\n\n\n\n<p>Si los navegadores a\u00fan advierten a los usuarios (advertencias estilo Chrome\/Safe Browsing), confirma que eliminaste el payload exacto que lo dispar\u00f3 y luego sigue el proceso de revisi\u00f3n correspondiente v\u00eda Search Console o tu proveedor de hosting\/seguridad.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Reindexa + monitorea errores de rastreo<\/h3>\n\n\n\n\n<p>Cuando ya est\u00e9s limpio y las URLs de spam est\u00e9n fuera, env\u00eda tu <strong>sitemap<\/strong> actualizado en Search Console y usa <strong>Inspecci\u00f3n de URL<\/strong> en p\u00e1ginas clave para solicitar reindexaci\u00f3n. Luego monitorea:<\/p>\n\n\n\n\n<ul class=\"wp-block-list\">\n<li>Reportes de Cobertura\/Indexaci\u00f3n por URLs de spam persistentes<\/li>\n\n\n\n\n<li>Errores de rastreo (picos repentinos pueden indicar enlaces malos o recursos bloqueados)<\/li>\n\n\n\n\n<li>Consultas en resultados de b\u00fasqueda por palabras clave de spam asociadas a tu dominio<\/li>\n\n\n\n\n<li>Tendencias de rendimiento (la recuperaci\u00f3n puede tardar d\u00edas o semanas seg\u00fan la gravedad)<\/li>\n<\/ul>\n\n\n\n\n<p>Monitorea esto al menos 2\u20134 semanas: la recuperaci\u00f3n SEO suele ser la parte m\u00e1s lenta, pero la meta es ver mejora constante.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Refuerzo + monitoreo para que no vuelva a pasar<\/h2>\n\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" width=\"640\" height=\"427\" src=\"https:\/\/sheafmediagroup.com\/wp-content\/uploads\/2026\/01\/fix-hacked-wordpress-site2.jpg\" alt=\"arreglar un sitio WordPress hackeado\" class=\"wp-image-4695\" srcset=\"https:\/\/sheafmediagroup.com\/wp-content\/uploads\/2026\/01\/fix-hacked-wordpress-site2.jpg 640w, https:\/\/sheafmediagroup.com\/wp-content\/uploads\/2026\/01\/fix-hacked-wordpress-site2-300x200.jpg 300w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n\n<h3 class=\"wp-block-heading\">2FA + m\u00ednimo privilegio<\/h3>\n\n\n\n\n<p>La mayor\u00eda de los rehacks ocurren porque el punto de entrada original sigue abierto\u2014normalmente credenciales d\u00e9biles, demasiados admins o un plugin con m\u00e1s permisos de los necesarios. Empieza habilitando <strong>2FA<\/strong> para cada cuenta administradora (y cualquier cuenta que pueda instalar plugins). Luego reduce el \u201cradio de explosi\u00f3n\u201d:<\/p>\n\n\n\n\n<ul class=\"wp-block-list\">\n<li>Deja <strong>cuentas admin<\/strong> al m\u00ednimo posible (1\u20132 admins reales).<\/li>\n\n\n\n\n<li>Asigna a todos los dem\u00e1s el <strong>rol m\u00e1s bajo<\/strong> que les permita trabajar (Editor \u2260 Admin).<\/li>\n\n\n\n\n<li>Usa contrase\u00f1as \u00fanicas y largas con un gestor y evita reutilizarlas entre hosting\/WP\/email.<\/li>\n\n\n\n\n<li>Elimina cuentas sin uso, contratistas antiguos y accesos \u201cpor si acaso\u201d.<\/li>\n\n\n\n\n<li>Si permites instalaciones de plugins a clientes o staff, det\u00e9n eso. Haz las instalaciones como un proceso controlado.<\/li>\n<\/ul>\n\n\n\n\n<p>Tambi\u00e9n refuerza ajustes que los atacantes abusan: deshabilita edici\u00f3n de archivos en wp-admin (<code>DISALLOW_FILE_EDIT<\/code>), considera limitar wp-admin por IP (si tu flujo lo permite) y aseg\u00farate de que el usuario de base de datos tenga solo los privilegios necesarios.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">L\u00ednea base de WAF\/plugin de seguridad<\/h3>\n\n\n\n\n<p>Un plugin de seguridad por s\u00ed solo no salva un sitio, pero una buena l\u00ednea base reduce el ruido y detecta ataques comunes. Elige un plugin de seguridad confiable y configura lo esencial:<\/p>\n\n\n\n\n<ul class=\"wp-block-list\">\n<li>Protecci\u00f3n de login (limitaci\u00f3n de intentos, bloqueos por fuerza bruta, CAPTCHA si aplica)<\/li>\n\n\n\n\n<li>Detecci\u00f3n de cambios en archivos y monitoreo de integridad del core<\/li>\n\n\n\n\n<li>Bloquear ejecuci\u00f3n de PHP en uploads (cuando sea posible)<\/li>\n\n\n\n\n<li>Escaneos programados + alertas inmediatas ante hallazgos cr\u00edticos<\/li>\n<\/ul>\n\n\n\n\n<p>Comb\u00ednalo con un <strong>WAF (Web Application Firewall)<\/strong> si puedes\u2014ya sea a nivel DNS\/CDN o a trav\u00e9s del hosting. Un WAF filtra bots, intentos de explotaci\u00f3n y patrones maliciosos antes de que lleguen a WordPress. Si operas e-commerce o generaci\u00f3n de leads, el WAF suele valer la pena solo por reducci\u00f3n de riesgo.<\/p>\n\n\n\n\n<p>No olvides lo b\u00e1sico a nivel servidor: permisos correctos (nada con escritura para todos), PHP actualizado y eliminar software\/cuentas sin uso en el entorno de hosting.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Backups + alertas + disciplina de actualizaciones<\/h3>\n\n\n\n\n<p>Tu mejor defensa es poder recuperarte r\u00e1pido\u2014y enterarte temprano cuando algo va mal. Configura:<\/p>\n\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Backups autom\u00e1ticos<\/strong> (DB diaria + backup completo diario\/semanal, retenci\u00f3n 30\u201390 d\u00edas)<\/li>\n\n\n\n\n<li>Almacenamiento off-site (no solo en el mismo servidor)<\/li>\n\n\n\n\n<li>Un proceso de restauraci\u00f3n probado (pract\u00edcalo una vez\u2014en serio)<\/li>\n<\/ul>\n\n\n\n\n<p>Luego agrega alertas que detecten problemas antes que tus clientes:<\/p>\n\n\n\n\n<ul class=\"wp-block-list\">\n<li>Monitoreo de uptime (hace ping al sitio y alerta si cae)<\/li>\n\n\n\n\n<li>Alertas de seguridad (nuevo admin creado, cambios en archivos, malware detectado)<\/li>\n\n\n\n\n<li>Monitoreo de rendimiento (picos repentinos de CPU pueden indicar abuso)<\/li>\n<\/ul>\n\n\n\n\n<p>Por \u00faltimo, adopta disciplina de actualizaciones: mant\u00e9n WordPress core, plugins, temas y PHP al d\u00eda. Elimina plugins que no necesitas. Evita descargas \u201cfree premium\u201d\/nulled por completo. Si tratas actualizaciones y monitoreo como mantenimiento rutinario\u2014y no como reacci\u00f3n de p\u00e1nico\u2014reduces much\u00edsimo la probabilidad de volver a estar aqu\u00ed.<\/p>\n\n\n\n\n<h2 class=\"wp-block-heading\">Si vuelve a aparecer: an\u00e1lisis de causa ra\u00edz<\/h2>\n\n\n\n\n<h3 class=\"wp-block-heading\">Backdoors persistentes<\/h3>\n\n\n\n\n<p>Si el malware vuelve despu\u00e9s de que \u201climpiaste todo\u201d, asume que todav\u00eda existe una <strong>puerta trasera<\/strong> o que tus credenciales siguen comprometidas. Los culpables m\u00e1s comunes son archivos PHP ocultos en <code>uploads\/<\/code>, c\u00f3digo malicioso en <code>mu-plugins<\/code> o payloads guardados en la base de datos (a menudo en opciones autoload). Observa este patr\u00f3n: limpias, todo est\u00e1 bien unas horas, luego vuelven redirecciones o spam\u2014y los timestamps de \u201carchivos modificados\u201d se actualizan sin que t\u00fa toques nada. Eso no es mala suerte: es persistencia.<\/p>\n\n\n\n\n<p>En este punto, deja de hacer ediciones aleatorias. Revisa de nuevo patrones de c\u00f3digo ofuscado (<code>eval<\/code>, <code>base64_decode<\/code>, <code>gzinflate<\/code>, <code>preg_replace<\/code> sospechoso) y rastrea qu\u00e9 archivos cambian <em>despu\u00e9s<\/em> de la limpieza. El archivo que reaparece normalmente est\u00e1 siendo regenerado por otro script oculto.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Se\u00f1ales de compromiso en el hosting<\/h3>\n\n\n\n\n<p>A veces WordPress no es el problema principal: lo es tu usuario de servidor o el entorno de hosting. Se\u00f1ales rojas: varios sitios en la misma cuenta infect\u00e1ndose, cron jobs desconocidos, logins SSH\/SFTP no autorizados, nuevos usuarios del sistema o malware que regresa inmediatamente despu\u00e9s de una reinstalaci\u00f3n limpia. Si est\u00e1s en hosting compartido, puede haber contaminaci\u00f3n cruzada. P\u00eddele al hosting: historial reciente de logins, reportes de escaneo, procesos sospechosos y si pueden aislar\/cuarentenar la cuenta.<\/p>\n\n\n\n\n<h3 class=\"wp-block-heading\">Cu\u00e1ndo reconstruir vs reparar<\/h3>\n\n\n\n\n<p>Reparar tiene sentido cuando el alcance es limitado y puedes identificar el punto de entrada. Reconstruir es m\u00e1s inteligente cuando: no puedes confiar en el c\u00f3digo, la reinfecci\u00f3n persiste, el hosting no puede aislar de forma limpia o el sitio ha sido hackeado varias veces. Una reconstrucci\u00f3n limpia suele ser WordPress nuevo + tema\/plugins desde fuentes confiables, migrando solo contenido\/media verificado, rotando todas las credenciales y, si hace falta, movi\u00e9ndote a un hosting m\u00e1s seguro. Cuando el tiempo y la confianza est\u00e1n en juego, reconstruir suele ser la forma m\u00e1s r\u00e1pida de lograr un \u201carreglo real\u201d.<\/p>\n\n\n\n\n<p>Puedes recuperarte de un WordPress hackeado sin adivinar: sigue el mismo modelo de tres fases siempre: <strong>contener \u2192 limpiar \u2192 reforzar<\/strong>. La contenci\u00f3n detiene el da\u00f1o y protege a los visitantes. La limpieza elimina malware, usuarios sospechosos y basura inyectada en la base de datos. El refuerzo cierra la puerta para que la misma vulnerabilidad no te golpee ma\u00f1ana.<\/p>\n\n\n\n\n<p>Tu siguiente paso es simple: completa el checklist de verificaci\u00f3n y mant\u00e9n el monitoreo activo al menos algunas semanas. Si quieres ayuda pr\u00e1ctica, enlaza a tu p\u00e1gina interna de soporte (agrega aqu\u00ed tu enlace interno de \u201cSoporte y troubleshooting de WordPress\u201d) para que un experto revise el sitio r\u00e1pidamente.<\/p>\n\n\n\n\n<p>Si est\u00e1s atascado, ves reinfecci\u00f3n o est\u00e1s lidiando con problemas a nivel hosting, escala: contacta a tu hosting para aislamiento\/logs o trae a un <a href=\"https:\/\/sheafmediagroup.com\/wordpress-help-support-troubleshooting\/\" data-type=\"link\" data-id=\"https:\/\/sheafmediagroup.com\/wordpress-help-support-troubleshooting\/\">especialista en seguridad WordPress<\/a> para terminar la limpieza de forma segura.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Si est\u00e1s buscando en Google \u201carreglar un sitio WordPress hackeado\u201d, probablemente est\u00e9s viendo algo preocupante: redirecciones raras, nuevos usuarios administradores, p\u00e1ginas de spam apareciendo en Google o una advertencia del navegador que destruye la confianza en segundos. Y s\u00ed, puedes solucionarlo. Respira: la mayor\u00eda de los hackeos de WordPress se pueden recuperar, pero el orden [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4700,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[43],"tags":[],"class_list":["post-4702","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-publicidad"],"_links":{"self":[{"href":"https:\/\/sheafmediagroup.com\/es\/wp-json\/wp\/v2\/posts\/4702","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sheafmediagroup.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sheafmediagroup.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sheafmediagroup.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sheafmediagroup.com\/es\/wp-json\/wp\/v2\/comments?post=4702"}],"version-history":[{"count":1,"href":"https:\/\/sheafmediagroup.com\/es\/wp-json\/wp\/v2\/posts\/4702\/revisions"}],"predecessor-version":[{"id":6482,"href":"https:\/\/sheafmediagroup.com\/es\/wp-json\/wp\/v2\/posts\/4702\/revisions\/6482"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sheafmediagroup.com\/es\/wp-json\/wp\/v2\/media\/4700"}],"wp:attachment":[{"href":"https:\/\/sheafmediagroup.com\/es\/wp-json\/wp\/v2\/media?parent=4702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sheafmediagroup.com\/es\/wp-json\/wp\/v2\/categories?post=4702"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sheafmediagroup.com\/es\/wp-json\/wp\/v2\/tags?post=4702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}