Quelles sont les meilleures pratiques pour utiliser un plug-in de mise en cache sur un hôte partagé?

29

J'ai lancé un grand site l'autre jour et j'aimerais incorporer un plugin de mise en cache. La configuration est à site unique avec certaines fonctionnalités de Buddypress mélangées (pour l'enregistrement des utilisateurs, les cartes avec gpress, ayant un profil) fonctionnant sur un hôte partagé.

Mes questions sont:
1. Quel plugin vous considérez le mieux pour la mise en cache compte tenu de cette configuration et pourquoi (si possible)?
2. Quelles sont les meilleures pratiques et les étapes à suivre / prendre en compte lors de l'installation pour vous assurer que tout fonctionne?
3. Les éléments transientsque j'ai ajoutés peuvent-ils encore être utilisés ou dois-je les supprimer et laisser le plugin faire sa chose? vont-ils s'affronter s'ils ne sont pas supprimés?

Merci!

ADDITION: plan 'Power' sur http://www.inmotionhosting.com/hostingplans.html

Amit
la source
Pouvez-vous fournir des informations sur le serveur ou l'hébergement?
Chris_O

Réponses:

24

Sur les plans d'hébergement partagé, vos options de mise en cache sont limitées.

Vous ne pourrez mettre en cache statique la sortie html de vos pages. C'est le moyen le plus rapide de servir des pages, mais vous perdez les aspects dynamiques de WordPress comme faire des commentaires et voir les derniers commentaires sur les publications.

Il existe des options de mise en cache de disque disponibles pour les objets et la base de données, mais à moins que votre hôte exécute des disques rapides, vous n'obtiendrez pas beaucoup de gain et cela pourrait également entraîner une baisse des performances.

Tous les plugins de mise en cache ont une option pour ne pas diffuser les pages mises en cache aux utilisateurs connectés ou à tout utilisateur avec un cookie de commentaire.

Utilisateurs connectés + utilisateurs connus = pas de cache

Les utilisateurs inconnus reçoivent une page mise en cache.

Transitoires

Les transitoires sont de petites données qui doivent expirer à un moment donné. WordPress stocke les transitoires sous forme de cache dans la base de données. Si vous aviez la possibilité d'utiliser Memcache WordPress garderait les données transitoires en mémoire. Les transitoires sont bons car ils réduisent les recherches de base de données. Ils sont également bons à utiliser pour les réseaux sociaux comme l'affichage de vos derniers tweets. Cela empêche de passer un appel à l'API Twitter à chaque chargement de page.

Le plugin qui utilise les meilleures pratiques des sites Web les plus performants est W3 Total Cache.

W3 Total Cache fait plus que simplement mettre en cache

W3 Total:

  • mise en cache des pages
  • mise en cache d'objets
  • mise en cache de la base de données
  • minifier
  • mise en cache du navigateur
  • Intégration CDN

Pour votre ensemble d'hébergement partagé, vous devez activer le cache de page, la minification, le cache du navigateur et l'option CDN auto-hébergée.

Paramètres de cache de page

Vérifiez toutes les options pour le cache de pages

texte alternatif

Préchargement du cache

Activez cette option et définissez l'intervalle de mise à jour à ce qui est approprié pour votre site. Cela reconstruira le cache de pages à l'intervalle donné.

texte alternatif

Réduire les paramètres

Sélectionnez Réécrire la structure de l'URL et si vous allez utiliser le CDN, vérifiez le téléchargement automatique afin que les fichiers nouvellement minifiés soient automatiquement téléchargés sur le CDN.

texte alternatif

Réduire le HTML

Activez et vérifiez la suppression des sauts de ligne, la js en ligne et la minification css. Si vous utilisez adsense ou un autre service qui utilise des tiges de commentaires, entrez-les ici pour éviter de les avoir minifiés.

texte alternatif

Paramètres CSS et JS Minify

Dans la gestion des fichiers, choisissez votre thème et ajoutez tous les fichiers css que vous souhaitez combiner et minifier. Il existe également un assistant d'aide qui recherchera tous vos modèles et ajoutera les fichiers suggérés pour vous.

Utilisation de l'assistant d'aide

W3 Total comprend un outil qui parcourt vos modèles de thème et trouve les fichiers Javascript et CSS qui sont utilisés et fournit les paramètres recommandés. Essayez d'abord ces paramètres et les problèmes rencontrés. Revenez en arrière et modifiez-les si nécessaire. Tous les fichiers surlignés en rouge sont des fichiers que vous avez déjà inclus pour être minifiés.

La même section d'options est disponible pour les fichiers js et vous avez la possibilité de placer les fichiers après <head>, après <body>et avant </body>. Il est préférable d'en mettre autant que possible avant <body>. Si des plugins ajoutent des js en ligne, vous ne pourrez pas utiliser auparavant </body>pour jquery ou les plugins js car il devra être chargé avant toutes les <script>balises en ligne . Vous pouvez inclure toutes les combinaisons de fichiers dans chaque emplacement et pour chaque modèle. Par exemple, vous pouvez définir votre commentaire-réponse.js pour qu'il ne se charge que sur single.php

texte alternatif

Paramètres de cache du navigateur

C'est le plus important pour réussir. Si vous mettez correctement en cache votre contenu statique dans les navigateurs de vos utilisateurs, vous pouvez réduire considérablement les temps de chargement des pages. "Ne pas traiter les erreurs 404 pour les objets statiques" Les paramètres de cache du navigateur sont une grande victoire pour l'hébergement partagé, car invoquer PHP et renvoyer 404 pages aux bots, etc. est un gros fardeau sur les ressources et cette fonctionnalité empêche que

Général

Vérifiez tout

texte alternatif

Fichiers CSS et JS

Vérifiez tout et définissez notre durée de vie d'en-tête expirée dans un avenir lointain. 31536000 secondes est de 1 an et ce que yslow recommande. Si vous apportez des modifications à votre css ou javascript, vous devez modifier les noms de fichiers pour empêcher les utilisateurs d'utiliser l'ancienne version. Si vous utilisez minify, vous n'aurez pas à vous soucier de servir du contenu obsolète car chaque fois que le cache minify est reconstruit, il génère un nouveau nom de fichier.

Définissez votre stratégie de contrôle du cache pour mettre en cache avec l'âge maximum

texte alternatif

Il existe deux autres sections de configuration du cache du navigateur. HTMl et Images. Pour les images, utilisez les mêmes paramètres que CSS et JS. Vous pouvez augmenter le délai d'expiration des images si vous le souhaitez.

Pour HTML, ne définissez pas expire sauf si votre site est principalement statique. Vous pouvez utiliser des durées de vie courtes si vous le souhaitez (180 secondes) mais je n'irais pas plus haut. Activez gzip et vous pouvez vérifier les en-têtes W3 définis afin de pouvoir vérifier les en-têtes de réponse pour vous assurer qu'ils fonctionnent.

texte alternatif

Paramètres CDN

W3 Total a intégré la prise en charge des CDN d'origine pull et origin push et une option robuste auto-hébergée qui vous oblige à configurer des sous-domaines et des noms de domaine.

Le CDN auto-hébergé vous permettra de profiter du pipelining. Le navigateur ne peut télécharger que quelques fichiers à la fois, seulement 4 dans certains cas. Le pipelining est une technique par laquelle des alias (sous-domaines par exemple) de votre serveur sont utilisés pour permettre à votre navigateur d'augmenter la limite pratique de fichiers téléchargeables en parallèle. Cela maximise le débit de votre connexion Internet et permet au navigateur de rendre une page plus rapidement. Le W3TC prend soin de gérer ces fichiers de manière transparente une fois que les CNAME DNS (alias) et les sous-domaines sont correctement configurés.

Cochez toutes les options, puis cliquez sur les boutons de téléchargement pour télécharger tout le contenu sur le CDN. Si vous utilisez l'auto-hébergé, il existe une autre page de configuration pour mettre les informations ftp. Pour le CDN push d'origine, il est configuré en fonction du fournisseur que vous utilisez. Pour l'origine pull, vous ne téléchargez aucun fichier et ne définissez que votre nom de domaine sur l'URL que le fournisseur vous donne. Remarque: Ne sélectionnez pas forcer le remplacement sauf si de nouveaux fichiers ne fonctionnent pas. Le remplacement forcé télécharge constamment des fichiers sur le CDN même s'ils existent déjà et cela gaspille de la bande passante et des ressources.

texte alternatif

Essai

Vous devez toujours tester vos résultats et modifier vos paramètres en conséquence. J'aime utiliser WebPageTest.org . Comparer mes résultats et identifier les problèmes potentiels.

Combien pouvez-vous augmenter vos performances en utilisant W3 Total Cache sur WordPress avec hébergement partagé?

Ce sont les résultats avant et après pour un blog WordPress auquel nous avons ajouté W3 Total.

Avant:

texte alternatif

Après

texte alternatif

J'espère que ça aide.

Chris_O
la source
1
merci, réponse très détaillée et approfondie! recommandez-vous absolument ce plugin? en as-tu essayé un autre?
Amit
1
@Amit J'ai essayé WP Super Cache, hyber db cache, apc object cache backend et batcache. Aucun autre plugin de mise en cache ne possède toutes ces fonctionnalités.
Chris_O
Merci encore! je vais certainement essayer. btw, recommandez-vous de supprimer tout mon code transitoire et tout ce que j'ai ajouté à mon htaccess comme gzip, etc.?
Amit
La meilleure chose à faire est de tester et de comparer différents paramètres pour trouver ce qui fonctionne le mieux pour votre environnement.
Chris_O
0

Utilisez .htaccess pour mettre en cache des éléments comme le CSS, les images et le javascript côté client. Le téléchargement le plus rapide est celui qui n'a jamais eu lieu.

J'ai posté une collection de liens et d'articles de référence à ce sujet: http://icanhazdot.net/2010/03/23/speeding-up-self-hosted-wordpress/

CAD bloke
la source
0

N'utilisez pas W3 Total Cache, cela ralentira et cassera vos pages. Je suggère de mieux utiliser Super Cache et Page Speed ​​Ninja. Ou LiteSpeed ​​Cache pour la mise en cache d'objets et l'optimisation css et js, Cache Enabler pour la création de fichiers html statiques. Parce que le cache statique ne sera pas créé par litespeed car il doit avoir un module lscache dans le serveur http et qui n'est pris en charge que par le serveur http litespeed ou openlitespeed.

juslintek
la source