Un script desconocido aparece en portada, artículos, formularios y checkout. Al ser global, probablemente procede de una plantilla compartida, hook, plugin, opción de base, caché o sistema externo de etiquetas.
Desconocido no significa necesariamente malicioso: Analytics, consentimiento y accesibilidad también cargan globalmente. Determina propiedad y comportamiento antes de retirarlo.
Conserva el marcado público exacto
Guarda el HTML desconectado de una página afectada, con hora y cabeceras. Registra URL, contenido inline, atributos y posición del script.
Compara dos plantillas y la vista conectada. Si desaparece para administradores, aumenta la sospecha. No abras directamente la URL ni pegues el código en decodificadores online.
Anota el hash del contenido servido y si cambia entre visitas. Una URL estable puede entregar payloads distintos por país, hora o referrer. Conserva solo muestras controladas y metadatos necesarios, sin enviar formularios reales ni abrir destinos descargables.
Rastrea el iniciador
Si la etiqueta está en el HTML inicial, busca una URL o cadena distintiva en código y base. Si se crea después, usa la cadena de iniciadores de la red para localizar el script padre.
Comprueba si lo inserta un service worker o extensión del navegador repitiendo en un perfil limpio. Verifica los dominios contra integraciones documentadas, no solo por su nombre.
Inspecciona puntos de inserción global
Revisa header.php, footer.php, functions.php, tema hijo, mu-plugins y plugins de snippets. Busca callbacks en wp_head y wp_footer.
Consulta plugins que añaden scripts, analítica o anuncios y sus cambios recientes.
No edites un tema padre o plugin para borrar una línea. Preserva evidencia y corrige la capa de origen para que una actualización no la restaure o esconda.
Busca marcado controlado por la base
Los scripts pueden residir en widgets, bloques reutilizables, modificaciones del tema, plantillas de constructor o wp_options. Usa búsquedas de solo lectura que respeten datos serializados.
Busca el hostname exacto o un fragmento distintivo, no el término genérico script.
Antes de cambiar una opción, expórtala e identifica su propietario. Borrar un array completo puede romper mucho más que el campo inyectado.
Revisa Tag Manager y CDN
Un contenedor puede añadir JavaScript sin cambiar WordPress. Revisa versiones publicadas, HTML personalizado, usuarios y disparadores de consentimiento.
Algunas CDN añaden aplicaciones u optimizan scripts. Confirma apps, Workers y reglas de transformación.
Si se comprometió una cuenta externa, vuelve a una versión conocida, revoca sesiones y refuerza el acceso. Limpiar WordPress no evita la reinyección.
Determina qué hace el script
Analízalo en aislamiento. Registra dominios contactados, almacenamiento creado, cambios DOM, redirecciones y acceso a formularios o checkout.
Si lee campos de pago, descarga ejecutables, crea iframes ocultos o redirige, contiene inmediatamente. Una analítica legítima pero antigua puede retirarse de forma planificada.
No envíes datos reales de checkout mientras pueda observarlos.
Relaciona cada comportamiento con una finalidad aprobada. Una integración legítima debe tener propietario, documentación, dominio esperado, datos que recibe y mecanismo para retirarla. Si nadie puede asumirla, mantén cerrado el recorrido sensible mientras se investiga.
Una política CSP en modo informe puede aportar evidencia de dominios y bloqueos, pero no sustituye localizar la inserción. No publiques una lista permisiva amplia para hacer desaparecer errores de consola.
Limpia y verifica globalmente
Preserva evidencia, elimina el código malicioso en su origen, cierra la vía y rota credenciales. Purga cachés después de limpiar.
Prueba plantillas, idiomas y WooCommerce desde perfiles nuevos. Busca el hostname antiguo en HTML y red y monitoriza recurrencia.
Revisa también plantillas de correo si el mismo pie o integración puede insertarse allí.
Tras limpiar, captura una referencia de scripts por plantilla y alerta ante hostnames nuevos o cambios de hash en recursos propios. Los terceros pueden cambiar legítimamente, por lo que la revisión debe combinar comportamiento, propietario e historial de publicación.
Cuándo pedir ayuda
Solicita evaluación cuando no se conoce el propietario, el script solo aparece a visitantes o toca checkout. Envía URL pública y hostname como texto, sin credenciales ni payload ejecutable.
La reparación debe establecer autoría, eliminar todos los puntos de inserción, proteger recorridos sensibles y demostrar que el código desapareció de cada plantilla compartida.