Introduction
Dans notre article précédent nous avons vu comment Installer WordPress sous IIS 10.0 avec PHP 8.4 et MariaDB 12. Maintenant nous allons voir comment peaufiner cette configuration afin d’obtenir les meilleures performances possibles.
Sommaire
- Prérequis
- État de santé de WordPress
- Mettre à jour PHP
- Augmenter la taille des téléversements
- Installer et activer Imagick
- Activer la compression statique et dynamique
- Activer opcache
- Configurer la mise en cache de sortie
- Paramétrer le pool d’applications
- Activer le protocole https
- Installer et configurer le plugin WP Fastest Cache
- Conclusion
Prérequis :
- Un serveur Windows IIS avec PHP et WordPress
- Télécharger la dernière version de PHP 8.4
- Télécharger l’extension « PHP Imagick » pour Windows
État de santé de WordPress :
Pour commencer nous allons faire un tour d’horizon de notre site WordPress. Vous pouvez consulter une page de tests afin d’évaluer l’état de santé général du site (accessibilité, plugins activés, performances, etc…) :
1 – Depuis le menu sur la gauche cliquez sur « Outils » puis sur « Santé du site » :

2 – Ici nous voyons 3 recommandations d’améliorations (en passant rapidement sur les extensions et thèmes inutilisés à désinstaller) :
- Modules manquants à installer
- Le protocole HTTPS n’est pas activé
- La mise en cache n’est pas détectée

3 – En cliquant sur « Un ou plusieurs modules recommandés sont manquants » vous pourrez voir quels modules complémentaires sont manquants. En l’occurrence ici il ne manque que le module « imagick » que nous installerons plus tard :

4 – En cliquant sur « La mise en cache des pages n’est pas détectée mais le temps de réponse du serveur est OK » vous verrez la latence du site. C’est à dire le temps qu’il met pour répondre aux requêtes. Ici en l’occurrence nous avons 262 millisecondes. C’est cette valeur qui nous servira à évaluer les améliorations de performance du serveur :

Mettre à jour PHP :
1 – Extrayez l’archive « php-8.4.13-nts-Win32-vs17-x64.zip » dans le dossier « C:\php-8.4.13-nts » :


2 – Vous pouvez copier le fichier de configuration « php.ini » du dossier de la version précédente dans le nouveau. En l’occurrence ici de « C:\php-8.4.12 » vers « C:\php-8.4.13-nts » . Cela vous évitera d’avoir à réactiver les extensions :


3 – Dans la console de gestion IIS lancez PHP Manager puis cliquez sur « Enregistrer une nouvelle version de PHP » :

4 – Cliquez sur le bouton « … » puis sélectionnez le dossier « php-8.4.13-nts » et cliquez sur « Ouvrir« . Ensuite cliquez sur le fichier « php-cgi.exe » et sur « Ouvrir » . Terminez par « OK » :





5 (optionnel) – Vous pouvez basculer d’une version de PHP à l’autre à la volée via PHP Manager. Pour cela cliquez sur « Changer de version de PHP » puis sélectionnez la version souhaitée dans le menu déroulant. Enfin cliquez sur « OK » :


6 (optionnel) – Vous pouvez aussi désinscrire une version de PHP que vous n’utilisez plus. Il suffit de revenir à la page de base du site dans le gestionnaire IIS, puis double cliquer sur « Mappages de gestionnaires » , puis sélectionnez la version du module php FastCgi que vous souhaitez supprimer et enfin cliquez sur « Supprimer » en haut à droite :


Augmenter la taille des téléversements :
Sous WordPress il est possible de téléverser (upload) des fichiers média via l’interface web. Cependant la taille de ces fichiers est limitée par la configuration par défaut de PHP.
1 – Pour voir la taille autorisée des téléversements il suffit de cliquer sur « Médias » dans le menu de gauche et ensuite « Ajouter un fichier média » :

2 – Vous verrez la taille maximale pour le téléversement ici. En l’occurrence 2 Mo par défaut.

3 – Une première étape consiste à augmenter la taille limite par défaut des requêtes gérées par IIS afin de ne pas avoir d’erreur de transfert au delà de 30 Mo.
Limites des demandes <requestLimits> | Microsoft Learn
Pour cela il faut retourner dans la console de gestion IIS, puis de double cliquer sur « filtrage des demandes » :

4 – Cliquez sur « Modifier les paramètres de fonction » :

5 – Dans la fenêtre qui apparaît vous verrez un champ « Longueur maximale autorisée du contenu (octets) : » . Par défaut cette valeur est de 30000000 octets, c’est à dire 28,6 Mo environs. La valeur maximale de ce champ est 4294967295 octets, soit 4 Go. Définissez le champ sur cette valeur puis cliquez sur « OK » :


6 – Nous pouvons maintenant passer à la configuration côté PHP. Il faut donc retourner sur PHP Manager côté site et cliquer sur « Gérer tous les paramètres » :

7 – Sur la page Paramètres PHP vous verrez les paramètres « post_max_size » et « upload_max_filesize » . Cliquez sur le paramètre que vous voulez modifier puis sur « Editer… » en haut à droite. Définissez « post_max_size » et « upload_max_filesize » sur 4096M, c’est à dire 4 Go, puis cliquez sur « OK » :



8 – En retournant sur la page « Médias » > « Ajouter un fichier média » vous devriez constater que la taille maximale des téléversements est passée à 4 Go :

Installer et activer Imagick :
Basiquement l’installation de l’extension PHP Imagick consiste à extraire les fichiers .dll dans le répertoire d’installation de PHP du site WordPress, puis à l’activer via PHP manager. Mais seule la DLL « php_imagick.dll » ira dans le répertoire « ext » de PHP, les autres iront à la racine du répertoire.
1 – Ouvrez l’archive compressée « php_imagick_3.7.0-8.4-nts-vs17-x64.zip » puis copiez le fichier « php_imagick.dll » dans le répertoire « ext » de votre installation PHP. Ici en l’occurrence « C:\php-8.4.13-nts\ext » :

2 – Toujours dans l’archive « php_imagick_3.7.0-8.4-nts-vs17-x64.zip » , vous devez copier tous les autres fichiers .dll (à part php_imagick.dll que vous avez déjà copié dans « ext » ) dans le répertoire racine de votre installation PHP. Dans notre exemple il s’agit de « C:\php-8.4.13-nts » .
NB : L’archive contient aussi des fichier .pdb de débogage qui ne sont pas strictement nécessaires. A) Pour éviter de les copier vous pouvez faire une recherche en haut à droite sur « *.dll » pour n’afficher que les fichiers .dll, puis sélectionner le fichier « php_imagick.dll » (que vous ne voulez pas copier), ensuite cliquez sur le bouton « … » en haut de l’explorateur de fichiers, puis « Inverser la sélection » . B) Ainsi vous avez sélectionné uniquement les fichiers .dll sans php_imagick.dll et donc vous pouvez faire un glisser/déposer dans le répertoire « C:\php-8.4.13-nts » :


3 – Retournez dans la console de gestion IIS, puis PHP Manager, ensuite cliquez sur « Activer ou désactiver une extension » . Vous devriez voir « php_imagick.dll » dans la liste des extensions désactivées. Cliquez dessus puis sur « Activer » en haut à droite :


4 – Retournez sur votre site WordPress dans « Outils » > « Santé du site » et vous devriez voir que la recommandation concernant les extensions manquantes a disparu. En cliquant sur l’onglet « Informations » puis en déroulant « Traitement des médias » vous devriez constater que WordPress utilise bien « WP_Image_Editor_Imagick » (au lieu de GD par défaut) :


Activer la compression statique et dynamique :
1 – Dans la console de gestion IIS, dans la partie serveur, double-cliquez sur « Compression » . Vous devriez voir que la case « Activer la compression de contenu dynamique » est grisée :


2 – Ouvrez le gestionnaire de serveur, puis cliquez sur « Ajouter des rôles et des fonctionnalités » :

3 – Passez les étapes préliminaires en cliquant sur suivant, puis une fois dans la section « Rôles de serveurs » déroulez « Serveur Web (IIS) » > « Serveur Web » > « Performance » , puis cochez « Compression de contenu dynamique » et « Suivant » . Laissez le reste par défaut et confirmez l’installation :

4 – Une fois l’installation du rôle terminée vous pouvez retourner dans la console IIS, puis « Compression » comme précédemment. Vous devriez constater que la compression de contenu dynamique est activée :

5 – Vous pouvez également ajuster les paramètres de la compression de contenu statique en diminuant la taille minimale des fichiers à compresser à 256 octets et la limite d’espace disque à 1024 Mo (1 Go) :

Activer opcache :
Nous n’allons pas tourner autour du pot : l’activation de l’extension « opcache » est ce qui va sans doute vous apporter le plus gros gain de performances.
1 – Lancez PHP Manager puis cliquez sur « Activer ou désactiver une extension » , ensuite sélectionnez « php_opcache.dll » et cliquez sur « Activer » en haut à droite :


2 – En retournant dans l’état de santé du site vous devriez constater que le temps de réponse du site a considérablement diminué. Ici nous sommes passé de 262 à 53 millisecondes !

Configurer le cache de sortie :
1 – Sur la page d’accueil de votre site dans la console de gestion IIS, double cliquez sur « Mise en cache de sortie » puis sur « Ajouter » en haut à droite :


2 – Dans la fenêtre « Ajouter la règle de mise en cache » entrez « .php » dans le champ « Extension de nom de fichier » , puis cochez les cases « Mise en cache du mode utilisateur » ainsi que « Mise en cache du mode noyau » , ensuite cliquez sur « Avancé » , cochez la case « Variables de chaîne de requête : » et entrez le symbole « * » dans le champ et finissez en cliquant sur « OK » :




Paramétrer le pool d’applications :
1 – Dans le menu « Connexions » à gauche cliquez sur « Pools d’applications » , puis sélectionnez le pool de votre site. Ici « Mon WordPress » pour l’exemple, et enfin sur « Paramètres avancés… » dans le menu « Actions » à droite :

2 – Passez la valeur de « Nombre maximal de processus de travail » de « 1 » à « 0 » . Puis passez le paramètre « Affinité du processeur activée » de « False » à « True » et enfin cliquez sur « OK » :

Activer le protocole https :
A – Configuration https dans IIS :
1 – Tout d’abord nous allons créer un certificat auto-signé pour sécuriser notre protocole https. Pour cela dans la console de gestion IIS cliquez sur le serveur dans la liste « Connexions » en haut à gauche, puis double-cliquez sur « Certificats de serveur » et ensuite sur « Créer un certificat auto-signé… » en haut à droite :


2 – Indiquez un nom de votre choix (de préférence le nom d’hôte de votre serveur) dans le champ « Indiquer un nom convivial pour le certificat » , puis sélectionnez « Hébergement Web » dans le menu déroulant « Sélectionnez un magasin de certificats pour le nouveau certificat : » et enfin cliquez sur « OK » :


3 – Nous pouvons maintenant activer la liaison https du site. Pour cela, faites un clic droit sur votre site puis cliquez sur « Modifier les liaisons… » :

4 – Dans la fenêtre « Liaisons de sites » cliquez sur « Ajouter… » , puis dans le menu déroulant « Type : » sélectionnez « https » , ensuite dans menu déroulant « Certificat SSL : » apparu en bas, sélectionnez le certificat auto-signé que vous avez créé précédemment, puis cliquez sur « OK » et enfin « Fermer » :





5 – Vous devriez voir apparaître la nouvelle liaison https sur la droite de la page d’accueil du site :

6 – Pour activer la redirection permanente de http vers https cliquez sur « HSTS… » dans le menu « Actions » sur la droite :

7 – Dans la fenêtre « Modifier les paramètres HSTS du site web » cochez les cases « Activer » ainsi que « Rediriger Http vers Https » et enfin sur « OK » :


B – Configuration https de WordPress :
1 – Retournez sur le tableau de bord de votre site WordPress, puis cliquez sur « Réglages » > « Général » :

2 – Dans les champs « Adresse web de WordPress (URL) » et « Adresse web du site (URL) » mettez « https » à la place de « http » dans l’URL de votre serveur, puis cliquez sur « Enregistrer les modifications » tout en bas de la page :

3 – En retournant sur la page « Santé du site » vous devriez constater que la recommandation liée au protocole HTTPS a disparu. Si vous déroulez la recommandation « La mise en cache des pages n’est pas détectée mais le temps de réponse du serveur est OK » vous devriez à ce stade constater un temps de réponse de l’ordre de la milliseconde :

Installer et configurer le plugin WP Fastest Cache :
Pour satisfaire à la dernière recommandation de santé du site de WordPress il convient d’installer un plug-in de mise en cache. Parmi ceux qui sont accessibles gratuitement, le plug-in WP Fastest Cache m’a semblé le plus simple et efficace à mettre en œuvre.
A – Installation de WP Fastest Cache :
1 – Dans le tableau de bord de votre site WordPress cliquez sur « Extensions » > « Ajouter une extension » :

2 – Dans le champ « Rechercher des extensions » tapez « wp fastest cache » pour faire apparaitre « WP Fastest Cache » (par Emre Vona) , puis cliquez sur « Installer maintenant » :

3 – Une fois le plug-in installé cliquez sur « Activer » :

B – Configuration de WP Fastest Cache :
1 – Dans le menu « Extensions installées » cliquez sur « Réglages » au niveau du plug-in WP Fastest Cache :

2 – A) Allez dans le menu « Options de WP Fastest Cache » dans l’onglet « Réglages » . B) Cochez les cases « Système de cache » et « Préchargement » . À ce moment-là une fenêtre « Réglage des préchargements » apparaît. Sélectionnez « Default (Contents from Newest to Oldest) » puis cliquez sur « Next » . C) Cochez toutes les cases (Accueil, Publications, etc…) puis cliquez sur « Next » . D) Cliquez sur « Finish » . E) Cochez la case « Vide les fichiers de cache lors de la publication d’un article ou d’une page » et sélectionnez « Vider le cache de la page d’accueil… » puis cliquez sur « OK » . F) Pour finir, cochez toutes les autres cases non grisées à l’exception de la dernière « Désactiver les émojis » , sélectionnez la langue et enfin cliquez sur « Submit » :






3 – Vos pouvez redémarrer votre site depuis la console de gestion IIS en cliquant sur « Redémarrer » (cela ne prend qu’une fraction de seconde) :

4 – En retournant sur la page « Santé du site » vous devriez constater que toutes les recommandations sont satisfaites et que le message « Bon travail ! » apparaît :

5 – Avec les différentes stratégies mises en places au cours de cet article, vous devriez constater que le temps de réponse du site se situe entre 1 à 5 millisecondes pour les pages en cache et entre 20 et 30 millisecondes pour les pages dynamiques non cachées :

Conclusion
Félicitations si vous avez suivi les différentes étapes de cet article. Vous devriez avoir grandement optimisé les performances de votre serveur IIS pour WordPress.
En plus des outils intégrés de WordPress et des navigateurs Chrome ou Edge (touche F12), il existe également des outils pour tester les performances de votre site web, notamment wrk sous Linux ou Apache Jmeter sous Windows.


Ces tests ont été réalisés sur une configuration matérielle relativement modeste et « grand public » : une VM ESXi dotée de 8 cœurs CPU AMD Ryzen 7 – 3700X @ 3.6 GHz ainsi que de 8 Go de RAM DDR4 sur un réseau local 1 Gb/s.
Bien évidemment il ne s’agit pas d’une infrastructure en ferme multiserveur (possible à faire sous IIS) adossée à un CDN capable de gérer plusieurs millions de visites par jour, mais cela devrait être largement suffisant pour un blog personnel générant entre 100000 et 400000 visiteurs par jour suivant la richesse du contenu. Le facteur limitant sera très clairement la bande passante internet dont vous disposerez chez vous ou votre hébergeur.
On peut facilement louer un serveur dédié chez un hébergeur pour un prix abordable en tant que particulier (à partir de 11.99€ TTC par mois avec 300 à 500 Mb/s de bande passante chez OVH par exemple) et une licence Windows Server 2025 Standard définitive (jusqu’à 24 cœurs) peut facilement être trouvée pour moins de 50€ chez les revendeurs spécialisés comme G2A ou Destock Informatique.
