Quels sont les 18 fichiers à la racine de WordPress lors de l’installation ?

Par Xavier Deloffre

Lorsque vous explorez les fichiers à la racine d’une installation WordPress, vous découvrez dix-huit fichiers PHP, HTML, TXT et .htaccess en plus des trois dossiers que sont wp-admin, wp-includes et wp-content. Chacun de ces fichiers a un rôle bien défini dans l’infrastructure du CMS. Que vous soyez développeur, intégrateur ou administrateur, connaître leur fonction est essentiel pour bien gérer votre site.

La structure générale : Que contient la racine de WordPress sur le plan des fichiers ?

La racine de WordPress (aussi appelée « répertoire racine ») est le dossier principal à partir duquel le CMS est exécuté. Sur la plupart des hébergements, ce répertoire se nomme /public_html, /www ou simplement /. Il contient des fichiers critiques nécessaires au bon fonctionnement du site, que WordPress soit utilisé comme blog, boutique ou site institutionnel. Dans une installation WordPress classique et complète, on trouve à la racine au moins 18 fichiers principaux. Voici une classification détaillée de ces fichiers par type et par fonction :

  • Fichiers de configuration :
    • wp-config.php – fichier essentiel contenant les paramètres de connexion à la base de données, les constantes système, et les réglages personnalisés.
    • wp-config-sample.php – modèle de configuration livré par défaut, à copier et adapter pour créer wp-config.php.
    • .htaccess – fichier serveur Apache servant à la réécriture d’URL, à la gestion des droits d’accès, des redirections et des performances (cache, compression…).
  • Fichiers d’initialisation et de chargement :
    • index.php – point d’entrée principal du site public. Il charge wp-blog-header.php.
    • wp-blog-header.php – initialise WordPress côté visiteur et lance le moteur de rendu.
    • wp-load.php – prépare l’environnement de WordPress pour les scripts externes.
    • wp-settings.php – exécute l’initialisation complète du cœur WordPress (objets globaux, plugins, hooks, thèmes…).
  • Fichiers liés à l’accès utilisateur :
    • wp-login.php – gère l’authentification, la déconnexion, la réinitialisation du mot de passe.
    • wp-signup.php – formulaire d’inscription sur un réseau multisite.
    • wp-activate.php – active un compte utilisateur ou un site via une clé reçue par email (multisite).
  • Fichiers système pour traitements automatiques :
    • wp-cron.php – déclenche les tâches planifiées (nettoyage, ping, envoi de mails…), simulant un système de cron.
    • wp-mail.php – permet de publier des articles par email (fonction peu utilisée aujourd’hui).
  • Fichiers liés aux commentaires et au contenu éditorial :
    • wp-comments-post.php – réceptionne les soumissions de commentaires depuis les formulaires HTML des articles.
    • wp-trackback.php – ancien système de rétroliens entre blogs (obsolète aujourd’hui).
    • wp-links-opml.php – exporte les blogrolls (liens partenaires) au format OPML XML.
  • Fichier de connectivité externe :
    • xmlrpc.php – interface de communication à distance, utilisée par les apps mobiles ou plugins comme Jetpack (souvent désactivée aujourd’hui pour raisons de sécurité).
  • Fichiers de documentation :
    • readme.html – fichier d’introduction à WordPress, à supprimer pour éviter de divulguer la version du CMS.
    • license.txt – mentionne que WordPress est distribué sous licence GPL v2.

À noter que certains de ces fichiers (comme wp-signup.php, wp-activate.php ou wp-links-opml.php) ne sont réellement utilisés que dans des cas précis : sites multisites, configurations avancées ou besoins techniques particuliers. Toutefois, ils restent inclus dans toutes les installations WordPress pour assurer la compatibilité maximale.

fichiers racine WordPress

Le détail des fichiers racine WordPress

La racine de WordPress contient un ensemble de fichiers PHP, HTML et TXT qui participent à la configuration, au routage, à l’affichage, à la sécurité et à l’interfaçage avec l’extérieur. Voici un tableau explicatif de chacun d’eux :

Fichier Fonction détaillée
index.php Point d’entrée du site côté public. Il charge wp-blog-header.php et ne contient que quelques lignes. C’est ce fichier que le serveur appelle lorsqu’un visiteur accède à une page du site.
wp-blog-header.php Initialise l’environnement WordPress et lance le moteur de rendu de la page. Il appelle wp-load.php et template-loader.php.
wp-load.php Point de démarrage universel. Localise et charge wp-config.php quel que soit le répertoire depuis lequel il est appelé. Utilisé par les scripts WordPress internes ou personnalisés.
wp-settings.php Initialise les variables globales, charge les plugins, le cœur WordPress, les thèmes et toutes les fonctionnalités essentielles. Appelé depuis wp-config.php.
wp-config.php Fichier de configuration principal du site. Il contient les informations de connexion à la base de données, les clés de sécurité, le préfixe des tables, et d’autres constantes personnalisées comme WP_DEBUG ou DISABLE_WP_CRON.
wp-config-sample.php Modèle commenté de fichier wp-config.php. Il sert de base à la création manuelle de la configuration, notamment sur des serveurs sans interface automatique.
.htaccess Fichier de configuration serveur pour Apache. Il permet de gérer les permaliens, les redirections, les règles de sécurité (blocage IP, protection des fichiers sensibles) et la mise en cache.
wp-cron.php Simule un système de planification (cron) interne à WordPress. Déclenche automatiquement les tâches programmées (backups, notifications, mises à jour) lors de chaque visite.
wp-login.php Gère l’ensemble du processus d’authentification : connexion, déconnexion, récupération de mot de passe, et inscription (si activée).
wp-comments-post.php Intermédiaire technique pour traiter les soumissions de commentaires via les formulaires. Il valide et insère les commentaires dans la base, puis redirige l’utilisateur.
wp-activate.php Gère l’activation de compte ou de site dans un réseau multisite. Il valide les liens envoyés par email lors de l’inscription et active les comptes en attente.
wp-signup.php Page d’inscription multisite. Permet aux utilisateurs de créer un compte ou un nouveau site sur un réseau WordPress si cette fonctionnalité est activée.
wp-trackback.php Ancienne interface de rétroliens entre blogs. Largement obsolète aujourd’hui, elle reste présente pour compatibilité, mais souvent désactivée pour éviter le spam massif.
wp-links-opml.php Permet l’export au format OPML des liens présents dans la blogroll (table wp_links). Fonction héritée des débuts de WordPress, peu utilisée aujourd’hui.
xmlrpc.php Fournit une API XML-RPC pour interagir avec WordPress à distance (ex : apps mobiles, clients de publication). Cible fréquente de spam et attaques bruteforce, il est souvent bloqué.
wp-mail.php Utilisé pour publier des articles via l’envoi d’emails. Fonctionnalité aujourd’hui désactivée ou non utilisée dans la majorité des installations.
license.txt Contient le texte complet de la licence GNU GPL v2, sous laquelle WordPress est distribué. Ce fichier est purement informatif.
readme.html Page d’introduction livrée avec WordPress. Affiche la version installée et des liens vers la documentation. Il est recommandé de le supprimer après installation pour des raisons de sécurité.

Cette organisation modulaire permet à WordPress de rester extensible, évolutif et maintenable. Certains fichiers sont actifs uniquement dans des contextes particuliers (ex. multisite), mais doivent toujours être conservés pour assurer la compatibilité du CMS.

Les fichiers critiques à surveiller ou protéger pour sécuriser WordPress

La racine d’un site WordPress contient plusieurs fichiers sensibles qui peuvent devenir des vecteurs d’attaque s’ils sont mal protégés. Certains ne sont pas destinés à être consultés directement, mais peuvent pourtant être accessibles publiquement si le serveur est mal configuré. Voici les fichiers les plus critiques, les risques associés et les mesures de protection à mettre en place.

Fichier Pourquoi est-il sensible ? Que faire pour le sécuriser ?
wp-config.php Contient toutes les informations de connexion à la base de données, les clés de sécurité, et la configuration avancée du site. Une fuite de ce fichier met en danger l’ensemble du site.
  • Protégez-le via .htaccess :
    <Files wp-config.php>
      Order allow,deny
      Deny from all
    </Files>
    
  • Sur un VPS, définissez les permissions à 600.
  • Vous pouvez aussi le déplacer un niveau au-dessus de la racine web.
xmlrpc.php Fichier utilisé pour l’API XML-RPC (publication à distance, apps mobiles, Jetpack…). Mais il est souvent ciblé pour les attaques par brute force ou par pingback DDoS.
    • Si vous n’utilisez pas l’app mobile ou Jetpack, désactivez-le :
<Files xmlrpc.php>
  Order deny,allow
  Deny from all
</Files>
  • Sur Nginx :
    location = /xmlrpc.php {
      deny all;
    }
  • Vous pouvez aussi utiliser des plugins comme Wordfence ou Disable XML-RPC.
readme.html Ce fichier statique affiche publiquement la version exacte de WordPress installée. Cela peut aider un pirate à cibler des failles connues dans cette version.
  • Supprimez-le après chaque mise à jour, car il est régénéré.
  • Ou bloquez-le via Apache :
    <Files readme.html>
      Order allow,deny
      Deny from all
    </Files>
  • Ajoutez aussi dans robots.txt :
    User-agent: *
    Disallow: /readme.html
.htaccess Fichier de configuration pour Apache : il définit les règles d’URL, les redirections, les protections d’accès, etc. Une erreur ou une suppression peut rendre le site inaccessible.
  • Restreignez son accès :
    <Files .htaccess>
      Order allow,deny
      Deny from all
    </Files>
  • Ne donnez pas les droits d’écriture à tout plugin (évitez 777).
  • Sauvegardez ce fichier avant toute modification manuelle ou automatique.
wp-login.php Cible fréquente des attaques bruteforce. Même si ce n’est pas un fichier « secret », il est crucial de surveiller son accès.
  • Limiter l’accès à certaines IP :
    <Files wp-login.php>
      Order deny,allow
      Deny from all
      Allow from 192.168.1.100
    </Files>
  • Ajoutez un reCAPTCHA ou une 2FA avec un plugin comme iThemes Security ou Wordfence.

Quelques conseils généraux pour durcir la racine WordPress

  • Supprimez ou masquez via .htaccess les fichiers inutiles : des fichiers comme readme.html ou license.txt ne sont pas indispensables au fonctionnement de WordPress. Ils peuvent révéler des informations sensibles, comme la version exacte du CMS, ce qui facilite les attaques ciblées. Si vous tenez à les garder, bloquez-en l’accès depuis le navigateur avec :
    <FilesMatch "^(readme\.html|license\.txt)$">
      Order allow,deny
      Deny from all
    </FilesMatch>
    
  • Évitez de déposer des fichiers PHP personnalisés à la racine : tout fichier placé ici est accessible en direct s’il n’est pas protégé. Il est préférable de créer un répertoire dédié (ex. /includes/, /tools/, etc.) et d’y restreindre l’accès. Cela réduit les risques d’injection ou d’exécution de code malveillant.
  • Utilisez un pare-feu applicatif (WAF) : une solution comme Cloudflare (côté DNS) ou Wordfence (plugin WordPress) permet de bloquer automatiquement les tentatives d’intrusion, les requêtes malveillantes ou les scans de fichiers vulnérables. Ces outils offrent aussi une surveillance en temps réel des accès aux fichiers sensibles.
  • Limitez les permissions en écriture : une erreur courante est d’attribuer des droits trop permissifs (comme chmod 777) à toute la racine. À la place, assurez-vous que :
    • les fichiers ont les droits 644
    • les dossiers ont les droits 755
    • wp-config.php peut aller jusqu’à 600 sur les serveurs dédiés ou VPS

Ces pratiques sont simples à mettre en œuvre, mais particulièrement efficaces contre les attaques automatisées, les bots malveillants ou les scanners de vulnérabilités.

Rappel important : la majorité des fichiers situés à la racine appartiennent au noyau de WordPress. À l’exception de wp-config.php (fichier de configuration) et .htaccess (fichier serveur), aucun autre fichier ne devrait être modifié manuellement.

En effet, WordPress est conçu pour que les personnalisations passent par les thèmes, les plugins ou les hooks d’API. Toute modification directe sur un fichier natif risque d’être écrasée lors de la prochaine mise à jour, ou pire, de provoquer des erreurs fatales (white screen of death, redirections en boucle, erreurs 500, etc.).

Si vous devez personnaliser WordPress, faites-le via :

  • le fichier functions.php de votre thème,
  • la création d’un plugin spécifique,
  • ou via les hooks et filtres offerts par le CMS.

En connaissant bien les fichiers présents à la racine de votre installation, vous améliorez non seulement la sécurité de votre site, mais aussi sa performance et sa maintenabilité. Vous découvrez aussi le chargement de WordPress :

Comment WordPress se charge-t-il au démarrage via les fichiers à la racine ?

Quand un visiteur arrive sur votre site WordPress, un ensemble de fichiers s’enchaînent automatiquement pour charger l’environnement, interroger la base de données et afficher le bon contenu. Ce processus s’appelle le bootstrap WordPress. Il repose sur une logique simple mais puissante qui commence dès l’appel à la page demandée. Voici les principales étapes du chargement de WordPress à l’aide de ces fichiers à la racine du site Internet, dans l’ordre :

Fichier Rôle dans le chargement
index.php (à la racine) Point d’entrée frontal du site. Il contient une seule instruction PHP : require __DIR__ . '/wp-blog-header.php';.
wp-blog-header.php Charge l’environnement WordPress via wp-load.php, puis déclenche la fonction wp() et enfin le système de templates via template-loader.php.
wp-load.php Localise le fichier wp-config.php pour initialiser la configuration. Ce fichier agit comme point d’entrée universel pour tous les scripts personnalisés.
wp-config.php Contient les identifiants de base de données, les constantes d’environnement, les clés de sécurité, le mode debug, etc.
wp-settings.php Ce fichier est appelé depuis wp-config.php. Il initialise les constantes, charge les fichiers système, les plugins, le thème actif et les hooks principaux.
template-loader.php Ce fichier qui se trouve dans le dossier wp-includes finalise le processus en chargeant le bon fichier de template du thème selon la requête : page.php, single.php, index.php du thème, etc.

Petit résumé du processus de chargement pour conclure

Voici les cinq premières étapes du chargement de WordPress :

  1. Un internaute visite votresite.com/actualites/.
  2. Le serveur n’ayant pas trouvé de fichier statique, exécute index.php.
  3. Celui-ci appelle wp-blog-header.php, qui initialise tout l’environnement WordPress.
  4. La base de données est interrogée, les plugins sont chargés, le thème actif est déterminé.
  5. Le bon fichier de template est exécuté pour afficher dynamiquement le contenu.

Ce mécanisme permet une très grande flexibilité : Vous pouvez personnaliser entièrement l’affichage tout en gardant la logique centrale de WordPress intacte. Il est également utile de comprendre cette chaîne de chargement pour mieux sécuriser ou optimiser les performances de votre site.

Xavier Deloffre

Xavier Deloffre

Fondateur de Facem Web, agence implantée à Arras et à Lille (Hauts-de-France), je suis spécialiste du Web Marketing, formateur expérimenté, et blogueur reconnu dans le domaine du Growth Hacking. Passionné par le référencement naturel (SEO) que j'ai découvert en 2009, j'imagine et développe des outils web innovants afin d'optimiser la visibilité de mes clients dans les SERPs. Mon objectif principal : renforcer leur notoriété en ligne par des stratégies digitales efficaces et créatives.

0 commentaires

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Besoin de visibilité ?

☑️ Experts du référencement

☑️ + de 12 ans d’éxpérience

☑️ + 500 clients satisfaits

☑️ Création de sites

☑️ Audit SEO

☑️ Conseil SEO

☑️ Référencement de sites

☑️ Devis gratuit