web-dev-qa-db-fra.com

Comment puis-je améliorer les performances des sites/pages WordPress?

Pour améliorer les performances du site/de la page, j'ai ajouté le code suivant pour accepter les en-têtes:

<php flush(); ?>

Cela fonctionne, mais peut-être pas aussi bien que possible. Aucun conseil?

J'ai également essayé de tirer parti de la mise en cache du navigateur en utilisant le code suivant:

# Begin Expires Caching
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>
# End Expires Caching

Encore une fois, tout conseil pour optimiser les résultats sera apprécié.

4
Emma

La chose la plus courante à essayer est un plugin de cache de contenu tel que W3 Total Cache ou WP Super Cache . Les deux vont mettre en cache des pages entières sur le disque et permettront au serveur Web Apache de contourner complètement le traitement de PHP pour de nombreuses pages vues. Avec W3 Total Cache, vous pouvez également mettre en cache des objets système et les résultats des requêtes de base de données, ainsi que d'utiliser un CDN (Content Distribution Network) ou un serveur de cache de mémoire local tel que memcached, APC ou XCache. De plus, il peut combiner et minimiser vos CSS et JS, ce qui peut être un gain de performance (en réduisant le nombre de requêtes qu'un navigateur doit faire).

D'autres stratégies incluent la combinaison d'images dans une seule image Sprite , et l'utilisation de CSS pour afficher uniquement la partie appropriée. Cela réduit le nombre d'images séparées que le navigateur doit télécharger.

Autres possibilités, qui nécessitent beaucoup plus de travail/connaissances/ressources: Basculer d’Apache vers Nginx ou un autre serveur Web hautes performances. Passez de mod_php à mod_fastcgi + php-fpm. Implémentez plusieurs serveurs pour votre serveur Web, avec un serveur proxy de mise en cache hautes performances. Plusieurs serveurs MySQL .

6
Dougal Campbell

La meilleure option consiste à utiliser un plugin de cache. Je recommande également W3 Total Cache, mais avant de l'installer, assurez-vous de sauvegarder votre base de données et vos fichiers et de mettre à jour WordPress à la dernière version.

Wordpress provoque la plus grande charge sur la base de données. Le processeur devra travailler dur pour récupérer les données s'il y a plusieurs requêtes en même temps. Le plugin Caching essayera de fournir le contenu déjà extrait s'il remarque que rien d'autre n'a changé.

La mise en cache des images, des scripts et des documents ne vous fera économiser que votre bande passante, ce qui n’est pas le problème principal de wordpress. Il est correct d'optimiser les images et les scripts pour économiser la bande passante, mais ce ne sont que des fichiers qui sont donnés en l'état. Le problème apparaît lorsque le moteur wordpress récupère les données de la base de données.

Si vous effectuez un test de vitesse de chargement détaillé sur votre site Web, vous remarquerez qu'au moins la moitié de la vitesse de chargement est provoquée par "En attente". Votre navigateur attend que le serveur récupère les données et les traite. Si vous effectuez le même test sur une page statique, ce temps est presque égal à 0. L'autre moitié du temps est réellement consacré au téléchargement d'images, qui dépend de la bande passante de votre serveur. SI vous cachez et optimisez toutes les images et tous les scripts, vous pourrez également économiser 20 à 50% de ce temps, mais vous devez savoir que les navigateurs ont déjà un système de mise en cache par défaut qui stockera les scripts et les images.

2
Lucian

L’approche habituelle pour optimiser un site Web Wordpress utilise un plugin tel que W3 Total Cache, mais ce que beaucoup de gens ne réalisent pas et que vous avez découvert, c’est que de tels plugins posent de nombreux problèmes de compatibilité avec d’autres plugins ainsi que divers hôtes. Le plugin W3 Total Cache fait du bon travail avec beaucoup de configurations de serveurs différentes, mais généralement au prix de l’utilisation de paramètres optimaux.

Certaines choses que vous pouvez essayer lors de l'optimisation d'un site Wordpress qui ne nécessite pas de plugins sont les suivantes:

  1. Utilisez un réseau de diffusion de contenu (CDN) - Amazon propose une offre intéressante appelée Cloudfront qui, si vous êtes familiariser avec les CDN réduira les requêtes HTTP du site, car un navigateur ne peut généralement avoir que 2 connexions HTTP simultanées sur un serveur. Cloudfront servira également vos fichiers à partir de serveurs proches de ceux du visiteur, afin d’obtenir les vitesses de transfert optimales et moins de sauts de connexion, ce qui signifie un chargement de page plus rapide.

    Si vous ne voulez pas payer pour un CDN, vous pouvez faire croire à un navigateur qu'il se charge hors d'un CDN en ajoutant à des sous-domaines correspondant à votre domaine actuel. Un sous-domaine est considéré comme un domaine distinct et libère donc une requête sur votre domaine habituel. Par exemple, votre site habituel est: http://www.somesite.com, un faux CDN serait http://images1.somesite.com/imagefile.jpg, http://images2.somesite.com/imagefile2.jpg et ainsi de suite. J'ajoute habituellement environ 4 ou 6, puis j'utilise javascript ou PHP pour ajouter de manière aléatoire les sous-domaines aux URL de l'image.

  2. Combinez et réduisez au minimum vos feuilles de style et vos scripts - Il existe des plugins pour Wordpress qui peuvent combiner tous les fichiers JS et CSS sur votre site, mais pour un contrôle ultime, faites-le vous-même si vous le pouvez.

  3. Utiliser des sprites d'image CSS - Pour chaque image chargée par votre site, il en fait la demande. Pour les images d'arrière-plan, vous pouvez les combiner en une seule image plus grande et utiliser la propriété background-position pour la parcourir. . Lisez à propos des sprites ici .

  4. Ajouter un en-tête Expires ou Cache-Control - Cela indique essentiellement au navigateur des visiteurs quand extraire les nouveaux fichiers de votre serveur et quand les charger à partir de votre cache. Lisez à propos de mod_expires ici .

  5. Configurez ETags - Répétez plutôt ce qui a déjà été dit ailleurs, ceci Yahoo! article expliquera ce que sont les ETags et comment les configurer correctement.

  6. Utiliser Flush () - L’utilisation de la fonction PHP flush vous permet d’envoyer votre réponse HTML partiellement prête au navigateur afin que celui-ci puisse commencer à extraire des composants Le moteur est occupé avec le reste de la page HTML. Mettez-le juste après votre étiquette de tête de fermeture comme suit: </head><?php flush(); ?>

2

Pour que je ne répète pas la même information. Il y a quelques mois, j'ai écrit un tutoriel sur: 14 conseils pour optimiser les performances et la vitesse de WordPress

J'espère que cela t'aides.

Boutros.

0