Optimisation du thème WordPress : 30 requêtes SQL gagnées

speedy_gonzales

Je viens d’effectuer une jolie petite optimisation qui devrait bien alléger le serveur sur lequel nous tournons. Vous vous souvenez de l’article WordPress : réduire le nombre de requêtes SQL des thèmes, écrit il y a quelques mois ?

Et bien il se trouve que j’avais tout optimisé tous les fichiers de mon thème – sauf le menu du site qui se trouve dans le fichier header.php !

Ce dernier contenait quasiment une trentaine de requêtes SQL destinées à obtenir les permalinks des pages statiques…

Je m’étais dit à l’époque que si je changeais le permalink d’une page, cela se reflèterait immédiatement dans le menu. Quand j’y pense aujourd’hui, c’est vraiment ridicule.

En plus, cela fait des années que je n’ai pas touché à ce menu. J’ai donc tout remplacé par une copie statique, ce qui m’a fait gagner entre 20 et 30 requêtes SQL à chaque chargement d’une page du site.

C’est vraiment énorme et mon serveur SQL devrait enfin pouvoir respirer. Sur une journée avec 4 000 visites, cela fait quand même 120 000 requêtes économisées… je n’ose même pas calculer l’économie sur une année !

J’ai également re-compressé puis gzippé le code javascript et CSS de plusieurs plugins, ce qui devrait aussi améliorer le temps de chargement global.

Vous avez un projet WordPress ou WooCommerce en tête? Transformez votre vision en réalité avec mon expertise reconnue.

Parlons de votre projet dès aujourd'hui »

Articles conseillés :

9 pensées sur “Optimisation du thème WordPress : 30 requêtes SQL gagnées”

  1. roh la la gzippé le code javascript et css ! c’est du truc de pointe ça ! Et on apprend où à le faire ? ça pourrait m’intéresser ! ^^

    Reply
  2. @Logales : é oué :-p

    @piechdibi : c’est très simple, tu peux compresser ta feuille CSS avec CSS Compressor et compresser ton code javascript avec The JavaScript CompressorRater, qui te permet d’obtenir la meilleure compression possible, avec plusieurs encodeurs différents.

    Une fois que le javascript est compressé, je le gzippe avec 7-Zip de manière à obtenir des fichiers .js.gz, lisibles par défaut avec tous les navigateurs. Je vous ferai un petit tuto un de ces quatre.

    Reply
  3. Ah ben je viens de tomber sur ton article du 13 mai en cliquant de lien en lien sur les différents posts =D
    Petites questions subsidiaires : combien de requêtes as-tu aujourd’hui sur ton site, et quel outil utilises-tu pour les mesurer ?
    Merci Matt !

    Reply
  4. Alors, j’ai 21 requêtes pour la page d’accueil (contre 50 avant) et 47 pour les articles seuls (l’augmentation des requêtes est due au plugin qui montre les articles en rapport avec l’article courant).

    Pour connaître le nombre de requêtes sur WordPress, il suffit d’ajouter :

    < ! --
     queries.
     seconds.
    -- >

    dans le fichier du thème que tu veux analyser (footer.php le plus souvent).

    Reply
  5. Merci beaucoup ! Bon je viens de suivre tes conseils et de modifier mon thème pour mettre les url en dur et non en allant chercher les infos sur ma base sql, et j’ai gagné… 0 requête !!! C’est dingue, non ?

    Reply
  6. @piechdibi : oui, c’est plutôt étrange ! Tu utilises un plugin de cache ? Est-ce que tu as vidé le cache de ton navigateur ? Combien de requêtes as-tu sur ta page d’accueil ? Et sur un article ?

    Reply
  7. J’utilise Super-Cache, mais je l’ai vidé, j’ai vidé le cache de Firefox (et testé sous IE également)… J’ai actuellement 36 requêtes (0.247 secondes) sur ma page d’accueil et 44 sur un article (0.2448 secondes) J’ai également testé ta technique pour les menus, bon ça m’a fait gagné 3 requêtes ! lol Du coup je suis revenu au menu en php, car c’est quand même plus souple en dynamique…

    Reply
  8. 36 requêtes ça va, tout dépend des plugins que tu utilises. Lorsque des plugins tente d’ajouter du code CSS, je le copie dans la CSS du thème et enlève la ligne du plugin qui l’injecte dans le header. Cela allège aussi les appels à différents fichiers.

    Je crois que par défaut, sans plugins, WordPress exécute une quinzaine de requêtes. Pour le menu, le mien ne va pas changer donc le laisser en dynamique n’apporte rien du tout. Plus c’est rapide et plus je suis content ^_^

    Reply

Opinions