Ficheros de WordPress: cómo comprobarlos y detectar cambios

Panel de administración de archivos de WordPress

La lista de ficheros que incluye WordPress no es fija. Cambia con cada versión, el idioma de la instalación y algunos componentes opcionales. Por eso una relación basada en WordPress 3.3.2, como la que acompañaba a este artículo, ya no sirve para comprobar si una instalación actual está intacta.

Para detectar archivos modificados o añadidos conviene comparar la instalación con la versión exacta descargada desde WordPress.org. La forma más fiable es usar checksums, es decir, huellas digitales de los archivos. Esta guía mantiene la idea original, pero la adapta al funcionamiento actual de WordPress y añade un procedimiento útil si sospechas que alguien ha tocado tu web.

Qué carpetas forman una instalación de WordPress

Una instalación normal tiene tres zonas principales:

  • /wp-admin/ contiene la interfaz de administración y sus archivos de soporte.
  • /wp-includes/ reúne gran parte del núcleo que carga WordPress en cada petición.
  • /wp-content/ guarda los temas, los plugins, las traducciones y normalmente los archivos subidos a la biblioteca multimedia.

En la raíz también encontrarás archivos como index.php, wp-login.php, wp-settings.php, wp-load.php y varios scripts que gestionan el cron, los comentarios, el correo o el registro de usuarios. El archivo wp-config.php se crea durante la instalación y contiene datos sensibles, por lo que no forma parte de la copia estándar que se descarga desde WordPress.org.

El directorio /wp-content/ es distinto. Ahí viven tus plugins, tus temas y tus medios, así que su contenido depende de cada sitio. Una instalación puede tener un tema hijo, plugins premium, un sistema de caché o carpetas creadas por el hosting. Que un archivo no aparezca en la descarga oficial no significa por sí solo que sea malicioso.

Por qué ya no tiene sentido publicar una lista cerrada

WordPress elimina archivos antiguos, incorpora nuevas librerías y reorganiza partes del núcleo con el paso de las versiones. Además, no todas las instalaciones incluyen exactamente lo mismo: el idioma, el modo multisitio y la versión instalada influyen en el resultado.

También hay archivos legítimos que no pertenecen al núcleo. Un plugin puede crear su propia carpeta dentro de /wp-content/, un tema puede añadir plantillas y el servidor puede usar .htaccess o web.config para las reglas de reescritura. Una lista copiada de Internet puede servir como referencia histórica, pero no como prueba de seguridad.

Cómo comprobar los ficheros del núcleo

La herramienta más práctica para una comprobación técnica es WP-CLI. El comando oficial compara los archivos del núcleo con los checksums publicados para la versión y el idioma indicados:

wp core verify-checksums

Si todo coincide, WP-CLI muestra un mensaje de éxito. Si encuentra un archivo modificado, ausente o que no debería estar ahí, lo identifica en la salida. Para revisar también elementos de la raíz que no están dentro de las carpetas habituales puedes usar:

wp core verify-checksums --include-rootLenguaje del código: PHP (php)

La documentación de wp core verify-checksums permite indicar una versión concreta con --version y el idioma con --locale. Es importante que ambos datos correspondan a la instalación real. De lo contrario, pueden aparecer avisos aunque los archivos sean correctos.

El núcleo no cubre /wp-content/. Para los plugins alojados en WordPress.org puedes hacer una comprobación parecida:

wp plugin verify-checksums --all

Los plugins premium, los desarrollos propios y algunos temas no tendrán necesariamente checksums públicos. En esos casos necesitas comparar con el paquete original del proveedor o con una copia limpia de confianza.

Qué hacer si aparece un archivo sospechoso

  1. No lo borres inmediatamente. Guarda una copia para poder analizarlo y documentar lo ocurrido.
  2. Haz una copia completa. Incluye la base de datos y todos los archivos, aunque sospeches que alguno está alterado.
  3. Comprueba la versión y el idioma. Repite la verificación con los parámetros correctos antes de sacar conclusiones.
  4. Revisa usuarios, plugins y temas. Busca cuentas desconocidas, extensiones que no reconozcas y archivos PHP recientes en /uploads/.
  5. Restaura el núcleo desde una fuente oficial. No descargues WordPress desde páginas de terceros. Si el problema afecta a contenido propio, restaura solo los archivos del núcleo y conserva el material que hayas revisado.
  6. Cambia las credenciales. Renueva las contraseñas de WordPress, hosting, base de datos, FTP o SFTP y cualquier clave que pudiera haberse expuesto.

Un checksum incorrecto no demuestra por sí solo que haya habido un ataque. Puede deberse a una actualización interrumpida, una modificación legítima del proveedor o una versión distinta de la que has indicado. La señal merece investigación, sobre todo si aparece junto a archivos PHP desconocidos, usuarios nuevos o redirecciones extrañas.

Medidas sencillas para proteger los archivos

La guía oficial de endurecimiento de WordPress recomienda mantener copias de seguridad, usar las versiones oficiales y limitar las vías de modificación innecesarias. Una medida habitual es desactivar el editor de archivos del panel:

define( 'DISALLOW_FILE_EDIT', true );Lenguaje del código: JavaScript (javascript)

Esta constante evita editar plugins y temas desde el escritorio, pero no bloquea cambios realizados por FTP, SFTP, el hosting o un proceso comprometido. Tampoco sustituye a los permisos correctos, las actualizaciones y las copias verificadas.

Conviene revisar de vez en cuando que /wp-content/uploads/ no permita ejecutar scripts PHP. La configuración depende del servidor, así que es mejor aplicar la regla recomendada por tu proveedor y probarla en staging. Un bloqueo demasiado amplio puede impedir que funcionen plugins que necesitan servir archivos dinámicos.

Ficheros que no debes tocar sin saber por qué

  • wp-config.php: contiene las credenciales de la base de datos y otras constantes de configuración.
  • .htaccess y web.config: controlan reglas del servidor y pueden dejar la web inaccesible si se editan mal.
  • /wp-admin/ y /wp-includes/: no son lugares para añadir código propio.
  • /wp-content/uploads/: debería contener principalmente medios y no convertirse en un almacén de scripts PHP desconocidos.

Si necesitas personalizar WordPress, usa un plugin propio o un tema hijo cuando corresponda. Así las actualizaciones del núcleo no pisan tus cambios y resulta más sencillo saber qué archivos pertenecen realmente al proyecto.

La lista antigua sigue teniendo algún valor

La relación original de este artículo se generó a partir de WordPress 3.3.2. Puede resultar útil para entender cómo estaba organizado el núcleo en 2012, pero no debe usarse para auditar una instalación actual. Hoy es mejor identificar la versión instalada, verificar sus checksums y revisar por separado los componentes de /wp-content/.

Si ya has sufrido una intrusión, combina esta comprobación con una revisión de la base de datos y del spam. En WPdirecto también tienes una guía para reducir el spam en WordPress y otra sobre limpiar la base de datos. Para una migración, Better Search Replace puede ayudarte a corregir URL almacenadas en ella, pero no sustituye la revisión de los archivos.

Fuentes oficiales

La información se ha contrastado con la documentación de WP-CLI para verificar checksums, la guía de seguridad y endurecimiento de WordPress y la documentación de versiones de WordPress.

David Carrero Fernández-Baillo

Experimentando con un sitio web sobre WordPress, este popular gestor de contenidos, entre otros muchos proyectos.

Te puede interesar...

    Comments are closed

    WordPress Directo
    WPDirecto.com es una revista especializada en WordPress y WooCommerce que ofrece una amplia gama de recursos, incluyendo tutoriales, análisis de plugins y plantillas, consejos de optimización y estrategias de SEO, para ayudar a los usuarios a mejorar y personalizar sus sitios web, manteniéndolos informados sobre las últimas novedades y tendencias en el mundo de WordPress.

    © 1995-2025 Color Vivo Internet, SLU (Medios y Redes Online).. Otros contenidos se cita fuente. Infraestructura cloud servidores dedicados de Stackscale.