{"id":3302,"date":"2026-07-07T23:00:00","date_gmt":"2026-07-07T23:00:00","guid":{"rendered":"https:\/\/smartcoding.com.au\/los-archivos-ocultos-que-saturan-tu-servidor-wordpress-y-por-que-importa\/"},"modified":"2026-07-07T23:00:00","modified_gmt":"2026-07-07T23:00:00","slug":"los-archivos-ocultos-que-saturan-tu-servidor-wordpress-y-por-que-importa","status":"publish","type":"post","link":"https:\/\/smartcoding.com.au\/es\/los-archivos-ocultos-que-saturan-tu-servidor-wordpress-y-por-que-importa\/","title":{"rendered":"Los archivos ocultos que saturan tu servidor WordPress y por qu\u00e9 importa"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Abre el directorio ra\u00edz de cualquier sitio WordPress de larga vida por SFTP y encontrar\u00e1s archivos que no deber\u00edan estar ah\u00ed. Viejas copias de seguridad de desarrolladores con nombres como functions24-02-2026.php. Archivos de prueba olvidados como info.php. Archivos comprimidos de instalaciones anteriores. Hojas de c\u00e1lculo exportadas por plugins. Volcados SQL que quedaron de una migraci\u00f3n del a\u00f1o pasado. El sitio sigue funcionando, as\u00ed que nadie los elimina, y se van acumulando.<\/p><p class=\"wp-block-paragraph\">La mayor\u00eda son basura inofensiva. Algunos son graves riesgos de seguridad y SEO. El problema es que muy pocos propietarios de sitios miran alguna vez, as\u00ed que la l\u00ednea entre unos y otros es invisible. Este art\u00edculo describe las categor\u00edas m\u00e1s comunes, por qu\u00e9 algunas importan y c\u00f3mo auditar el directorio ra\u00edz con regularidad.<\/p><h2 class=\"wp-block-heading\">Copias de seguridad fechadas de archivos del tema<\/h2><p class=\"wp-block-paragraph\">Una auditor\u00eda reciente en el sitio de una agencia de S\u00eddney con la que trabajamos revel\u00f3 decenas de estas. La carpeta del tema activo conten\u00eda functions24-02-2026.php, header31-01-2026.php, footer19-01-2026.php, 404-04-08-2025.php y una larga lista de archivos hermanos fechados de forma similar. Cada uno era una copia de seguridad del desarrollador creada antes de un cambio, pensada como opci\u00f3n de reversi\u00f3n local, y nunca eliminada.<\/p><p class=\"wp-block-paragraph\">WordPress no carga estos archivos, as\u00ed que no afectan al comportamiento del sitio. Pero son accesibles p\u00fablicamente por su URL. Cualquiera que adivine el nombre del archivo puede leer el c\u00f3digo fuente de versiones pasadas, que puede incluir credenciales, rutas escritas a mano o firmas de funciones vulnerables. Adem\u00e1s, dificultan cada auditor\u00eda futura porque saturan el c\u00f3digo con archivos que parecen reales pero no lo son.<\/p><p class=\"wp-block-paragraph\">El lugar correcto para las copias de c\u00f3digo es el control de versiones, no el servidor en producci\u00f3n. Mu\u00e9velas a git y elimina las copias fechadas.<\/p><h2 class=\"wp-block-heading\">Volcados SQL y archivos de copia de seguridad<\/h2><p class=\"wp-block-paragraph\">Un archivo SQL con la exportaci\u00f3n de la base de datos en el directorio ra\u00edz es uno de los artefactos m\u00e1s peligrosos de un sitio WordPress. Si un atacante lo descarga, tiene tu tabla de usuarios, tus contrase\u00f1as cifradas, tus claves secretas a trav\u00e9s de wp_options y todo el contenido. Lo mismo aplica a los archivos comprimidos con la copia completa del sitio.<\/p><p class=\"wp-block-paragraph\">Los archivos de copia de seguridad nunca deber\u00edan vivir en el directorio ra\u00edz. Deben estar fuera del sitio, en una ubicaci\u00f3n de almacenamiento que la web p\u00fablica no pueda alcanzar. Si encuentras cualquier archivo de copia en el directorio ra\u00edz, elim\u00ednalo de inmediato y revisa los registros de acceso de tu hosting por si hubo descargas previas.<\/p><h2 class=\"wp-block-heading\">Copias de configuraci\u00f3n como wp-config.bak<\/h2><p class=\"wp-block-paragraph\">El error cl\u00e1sico. Un desarrollador va a hacer un cambio de configuraci\u00f3n. Copia wp-config.php a wp-config.bak como red de seguridad. Hace el cambio. Deja la copia atr\u00e1s. La extensi\u00f3n .bak no la ejecuta PHP, as\u00ed que el archivo se sirve como texto plano. Cualquier atacante que pruebe el nombre obvio tiene tu configuraci\u00f3n completa, incluidas las credenciales de la base de datos y los salts.<\/p><p class=\"wp-block-paragraph\">Nunca dejes una copia de wp-config de ninguna forma en el servidor en producci\u00f3n. Usa control de versiones. Si tienes que copiar, copia a una ruta fuera del directorio ra\u00edz y elim\u00ednala en cuanto termine el trabajo.<\/p><h2 class=\"wp-block-heading\">Archivos de prueba e info.php<\/h2><p class=\"wp-block-paragraph\">Muchos desarrolladores crean un peque\u00f1o archivo info.php con phpinfo para confirmar la versi\u00f3n de PHP en un servidor nuevo, y luego olvidan borrarlo. El archivo queda accesible, y phpinfo vuelca una enorme cantidad de detalles del servidor que los atacantes pueden usar para planear un ataque. Versi\u00f3n de PHP, extensiones cargadas, rutas del servidor, variables de entorno, a veces m\u00e1s.<\/p><p class=\"wp-block-paragraph\">Cualquier archivo de prueba, por inocente que parezca, deber\u00eda eliminarse una vez cumplida su funci\u00f3n. info.php, test.php, hello.html, cualquier cosa que no necesites en el sitio p\u00fablico no pinta nada ah\u00ed.<\/p><h2 class=\"wp-block-heading\">P\u00e1ginas y carpetas que ensombrecen URLs de WordPress<\/h2><p class=\"wp-block-paragraph\">Este es el peligroso. Si en el disco existe una carpeta con el mismo nombre que una p\u00e1gina de WordPress, el servidor web resuelve primero la carpeta. El enrutamiento de URLs de WordPress nunca tiene ocasi\u00f3n de gestionar la petici\u00f3n. El visitante ve el contenido de la carpeta, no la p\u00e1gina de WordPress.<\/p><p class=\"wp-block-paragraph\">El caso de la agencia de S\u00eddney que hemos mencionado era exactamente este patr\u00f3n. El atacante cre\u00f3 cinco carpetas en la ra\u00edz, nombradas para imitar p\u00e1ginas reales de WordPress. Los archivos dentro de esas carpetas interceptaban cada petici\u00f3n a esas URLs y serv\u00edan spam SEO encubierto. El propietario no ten\u00eda ni idea, porque el panel de WordPress segu\u00eda mostrando las p\u00e1ginas originales, y una visita casual a la portada parec\u00eda normal.<\/p><p class=\"wp-block-paragraph\">Audita el directorio ra\u00edz espec\u00edficamente en busca de carpetas que coincidan con los slugs de p\u00e1ginas de WordPress. Todo lo que no puedas justificar es sospechoso.<\/p><h2 class=\"wp-block-heading\">Archivos de intercambio del editor y directorios de control de versiones<\/h2><p class=\"wp-block-paragraph\">Algunos editores de texto crean archivos de intercambio temporales cuando editas un archivo: sufijos .swp, ~, .orig y similares. Si un desarrollador edita un archivo directamente en el servidor, estos pueden quedar atr\u00e1s. A menudo contienen el mismo contenido que el archivo original, pero PHP no los ejecuta, as\u00ed que se sirven como texto plano si se accede a ellos por URL.<\/p><p class=\"wp-block-paragraph\">Peor a\u00fan, un directorio .git dejado en el directorio ra\u00edz puede exponer todo el repositorio, incluidos commits pasados, ramas y secretos hist\u00f3ricos. Esto ha sido la causa de varias brechas de gran repercusi\u00f3n a lo largo de los a\u00f1os. La carpeta .git nunca deber\u00eda estar en un servidor en producci\u00f3n, o si lo est\u00e1, debe bloquearse a nivel de servidor.<\/p><h2 class=\"wp-block-heading\">C\u00f3mo auditar<\/h2><p class=\"wp-block-paragraph\">La auditor\u00eda es sencilla. Con\u00e9ctate por SFTP o mediante el gestor de archivos de tu hosting. Explora el directorio ra\u00edz. Todo lo que est\u00e9 fuera de los archivos est\u00e1ndar del n\u00facleo de WordPress en la ra\u00edz, m\u00e1s las carpetas wp-admin, wp-includes y wp-content, deber\u00eda investigarse. Todo lo que haya dentro de wp-content que no sea themes, plugins, uploads, mu-plugins o una carpeta de cach\u00e9 conocida merece una mirada m\u00e1s de cerca.<\/p><p class=\"wp-block-paragraph\">Dentro de la carpeta del tema activo, busca copias fechadas, archivos de prueba y restos del editor. Dentro de la carpeta de plugins, busca plugins que no est\u00e9n activos y plant\u00e9ate eliminarlos por completo. Dentro de uploads, busca archivos PHP. No deber\u00eda haber casi ninguno.<\/p><h2 class=\"wp-block-heading\">Con qu\u00e9 frecuencia<\/h2><p class=\"wp-block-paragraph\">Mensual es razonable para un sitio de empresa. Trimestral es el m\u00ednimo. Despu\u00e9s de cualquier trabajo de desarrollo que implicara cambios de archivos directamente en el servidor en producci\u00f3n. Despu\u00e9s de cualquier incidente, por peque\u00f1o que sea.<\/p><h2 class=\"wp-block-heading\">\u00bfNecesitas ayuda?<\/h2><p class=\"wp-block-paragraph\">Si quieres que se audite el directorio ra\u00edz de tu sitio WordPress y se limpie todo lo que sobra, <a href=\"https:\/\/defyn.com.au\" rel=\"noopener\">Defyn<\/a> puede encargarse. Es una tarea silenciosa que a menudo saca a la luz problemas que nadie m\u00e1s hab\u00eda notado.<\/p>","protected":false},"excerpt":{"rendered":"<p>La mayor\u00eda de los servidores WordPress acumulan archivos que no deber\u00edan estar ah\u00ed. Algunos son basura inofensiva. Otros son graves riesgos de seguridad. Aqu\u00ed te explicamos c\u00f3mo distinguirlos.<\/p>\n","protected":false},"author":2,"featured_media":2028,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"{title}\n\n{excerpt}\n\n{url}","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[1071],"tags":[],"class_list":["post-3302","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-website-support-maintenance"],"jetpack_publicize_connections":[],"featured_image_src":"https:\/\/smartcoding.com.au\/wp-content\/uploads\/2026\/06\/wordpress-hidden-server-files-600x400.jpg?crop=1","featured_image_src_square":"https:\/\/smartcoding.com.au\/wp-content\/uploads\/2026\/06\/wordpress-hidden-server-files-600x600.jpg?crop=1","author_info":{"display_name":"Claire Smith","author_link":"https:\/\/smartcoding.com.au\/es\/author\/claire\/"},"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/phbW1n-Rg","jetpack_featured_media_url":"https:\/\/smartcoding.com.au\/wp-content\/uploads\/2026\/06\/wordpress-hidden-server-files.jpg","_links":{"self":[{"href":"https:\/\/smartcoding.com.au\/es\/wp-json\/wp\/v2\/posts\/3302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/smartcoding.com.au\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/smartcoding.com.au\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/smartcoding.com.au\/es\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/smartcoding.com.au\/es\/wp-json\/wp\/v2\/comments?post=3302"}],"version-history":[{"count":0,"href":"https:\/\/smartcoding.com.au\/es\/wp-json\/wp\/v2\/posts\/3302\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/smartcoding.com.au\/es\/wp-json\/wp\/v2\/media\/2028"}],"wp:attachment":[{"href":"https:\/\/smartcoding.com.au\/es\/wp-json\/wp\/v2\/media?parent=3302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/smartcoding.com.au\/es\/wp-json\/wp\/v2\/categories?post=3302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/smartcoding.com.au\/es\/wp-json\/wp\/v2\/tags?post=3302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}