web-dev-qa-db-fra.com

Conseils WordPress pour la vitesse et la performance

J'ai quelques problèmes avec les performances, exactement la vitesse de chargement de la page sur mon site Web.

Voici les choses énumérées ci-dessous: WordPress est installé sur mon VPS avec la plate-forme Nginx.

AMD 8 cpu's 
2x SSD 250GB
32GB memory

WordPress est mis à jour.

Liste des plug-ins installés:

- Akismet
- BWP Minify
- Disqus Conditional Load
- Google XML Sitemaps
- iThemes Security
- W3 Total Cache
- WordFence
- WP Missed Schedule
- WP No Category Base - WPML Compatible

WordPress compte environ 46 000 publications au fil des ans et environ 11 000 commentaires publiés par des utilisateurs (environ 1 000 SPAM bloqués par Akismet) intégrés dans des commandes Disqus.

La charge du serveur est inférieure à 2,00 et la mémoire utilisée environ. ~ 30% (c'est ok).

Ce n'est pas tant que ça, le serveur est super, mais le problème pourrait être avec beaucoup de posts et commentaires, plug-ins ou annonces?

W3 Total cache uses APC. Code is minified itself (HTML, php, css, js) without W3 Minify.
BWP minify modified so it has "async" atributte while loading few .js files (around 10) combined into one (css files about 2 are alsoc comined into one).
Wordfence modified, so it does not scan every day, live traffic disabled.
Nginx directives for location / and files under location are modified - added headers, gzip, security, etc.

Le thème est modifié et optimisé, de sorte qu'il ne contient pas d'autres plug-ins tels que des curseurs, etc., les éléments nettoyés, etc.

Il n'y a pas de menus WordPress créés - tout en HTML (c'était une requête lente, nous l'avons donc plutôt fait avec HTML).

En outre, il y a un problème plus important à mon avis, le site Web dispose de 6 à 7 blocs réservés à l'affichage de publicités:

Google AdSense, 728x90, 970x250, 300x250, responsive

Si je supprime les publicités, le processus est beaucoup plus rapide. Mais les publicités sont destinées à des fins de marketing où nous pouvons gagner quelque chose.

Visites quotidiennes environ 10.000 (basé sur Google Analytics).

Je cherche sur Internet des choses, Github, Stackoverflow et des sites officiels comme Nginx, WordPress (forums inc.).

Qu'est-ce que vous en pensez? Avez-vous des conseils en matière de performances, des idées et d'autres informations utiles comme des liens, etc. qui pourraient m'aider à faire en sorte que cela fonctionne?

Je serais très reconnaissant pour toute information partagée!

Merci beaucoup!

3
Fritex

Je travaille avec plusieurs grands sites WordPress, en particulier des sites d'actualités, qui contiennent des milliers de messages et des milliers de visiteurs (300 000/jour). Avec les éléments ci-dessous et un thème bien codé, avec des requêtes bien rédigées, nous nous chargeons en versions 2.5 avec 7 blocs d'annonces de AdSense et RevContent.

  1. Avez-vous un CDN? Je recommande fortement un CDN si vous n'en avez pas. En fonction de votre budget, vous pouvez utiliser gratuitement CloudFlare (si vous utilisez uniquement AdSense et aucun DFP, vous pouvez activer RocketLoader, ce qui augmentera la vitesse), ou vous pouvez utiliser un service premium comme MaxCDN (ce que j'utilise) ou Amazon Cloudfront (j'ai utilisé).
  2. Je préfère vraiment ne pas utiliser les plugins minifying et préfère minifier et concaténer tous les CSS et JS manuellement. La raison en est que je me débarrasse d'un autre plug-in, ce qui peut accélérer le site, et je ne mets aucune pression sur le site pour réduire au minimum le nombre de fichiers. J'utilise CSSMinifier.com et JavaScript-Minifier.com et je crée généralement un fichier top.js et bottom.js.
  3. Pour charger des fichiers JS en mode asynchrone, vous pouvez utiliser la fonction suivante, ce qui est fantastique. Tout ce que vous avez à faire est d’ajouter les fichiers JS, comme je l’ai énuméré ci-dessous, avec le nom du fichier et l’ajoute async. Notez que cela ne fonctionne que pour le chargement de fichiers via wp_enqueue_script.

    function js_optimization($tag) {
      $asyncscripts = array('jquery.js', 'jquery-migrate.min.js');
      if(!empty($asyncscripts)) {
        foreach($asyncscripts as $asyncscript)) {
          if(true == @strpos($tag, $asyncscript)) {
            return str_replace(' src', ' async="async" src', $tag);
          }
          return $tag;
        }
     }
    add_filter('script_loader_tag', 'js_optimizer');
    
  4. Exécutez votre site via GTMetrix.com. Il vous donne des scores PageSpeed ​​et YSlow, avec des suggestions sur la façon d'accélérer le site.

  5. Le plugin BJ Lazy Load est idéal pour accélérer le chargement du front-end.

6
Tyler Johnson