webleads-tracker

WordPress & Référencement naturel
Mes servicesWordPress - Référencement
Hébergement WordPress
Vous êtes ici : SeoMix » WordPress » WordPress en général » WP-Config.php : optimisez la vitesse de WordPress n°2

WP-Config.php : optimisez la vitesse de WordPress n°2

Chose promise, chose due, voici le second article visant à optimiser les temps de chargement de WordPress.

Dans le 1er volet, nous avons vu comme améliorer grandement le thème que vous utilisez pour le rendre plus rapide : "Optimisez la vitesse d'un thème WordPress". Mais cette optimisation seule est insuffisante puisque qu'il va falloir également optimiser le cache, la base de données ou encore vos plugins si vous voulez un réel gain de rapidité.

Dans ce second volet, nous allons voir comment paramétrer le fichier wp-config.php.

Celui-ci est situé à la racine de votre installation, et voici les paramètres que vous devez configurer.

WP-Config.php

Un exemple de fichier WP-Config.php

Activer le cache par défaut

Auparavant, WordPress avait un système de cache natif qui était activé avec la ligne suivante :

define('ENABLE_CACHE', true);

Malheureusement, celui-ci ne fonctionne plus depuis la version 2.5. Ajoutez cependant cette ligne car elle permettra de faire fonctionner les différents plugins de cache.

define('WP_CACHE', true);

Réduire le nombre de révisions

La ligne suivante permet de réduire le nombre de sauvegardes d'un article : ce qu'on appelle communément une révision. C'est utile pour le travail collaboratif ou pour garder l'historique d'un contenu un peu comme le fait Wikipédia, mais cela occupe une place important sur la base de données, et peut donc ralentir le site.

Avec la ligne suivante, on limite à deux le nombre de ces révisions pour chaque contenu du site :

define('WP_POST_REVISIONS', 2);

Vous avez aussi une méthode plus brutale qui consiste tout simplement à désactiver cette fonctionnalité :

define('WP_POST_REVISIONS',false);
Vous pouvez aussi réduire le temps entre chaque sauvegarde automatique avec la ligne suivante, en changeant le chiffre par la durée souhaitée (en secondes) :
define('AUTOSAVE_INTERVAL', 300);
Et si vous avez un nombre considérables de révisions dans WordPress, et que vous voulez faire le ménage, il vous faudra utiliser une requête SQL dans l'interface de votre hébergement :
DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'

Vider automatiquement la corbeille

Cette fois-ci, la ligne va forcer le vidage de la corbeille pour les contenus ayant plus de X jours : cela inclut les articles, les pages, les commentaires et les médias.

En mettant cette valeur à trois, je m'assure de ne pas surcharger inutilement la base de données de WordPress :

define('EMPTY_TRASH_DAYS', 3 );

Ne pas envoyer de cookies aux sous-domaines

Cette dernière ligne est moins connue et sera pourtant utile pour mettre en place un CDN (Content Delivery Network). Il s'agit de placer sur un sous-domaine (youpi.monsite.com) ou sur un autre nom de domaine vos contenus statiques comme vos images et vos vidéos.

En utilisant d'autres noms de domaine, vous permettez d’accélérer le temps de chargement de ces données. Seul hic, WordPress transmet un cookie inutile pour chacune de ces requêtes. Pour évitez cela, utiliser ces deux lignes de code dans le fichier wp-config.php :

define('COOKIE_DOMAIN', 'www.monsite.com');
define("WP_CONTENT_URL", "http://static.yourdomain.com");

La première est l'URL de votre site. La seconde celle de l'emplacement de vos fichiers statiques. Dans l'exemple ci-dessus, il s'agit d'un sous-domaine mais cela peut être un autre domaine à part entière.

Sécuriser WordPress

Tant que vous êtes dans le fichier wp-config.php, vérifier que ces 4 lignes suivantes sont bien présentes et remplies :

define('AUTH_KEY',        '');
define('SECURE_AUTH_KEY', '');
define('LOGGED_IN_KEY',   '');
define('NONCE_KEY',       '');

Si vous ne voyez pas de clé comme dans l'exemple ci-dessus, rendez-vous à l'adresse suivante pour en générer : https://api.wordpress.org/secret-key/1.1/

MISE A JOUR : utilisez plutôt cette URL https://api.wordpress.org/secret-key/1.1/salt/ (merci à Martin).

Cela permettra de mieux sécuriser votre site Internet (et en plus, cela ne coûte rien).

Augmenter la mémoire allouée

Pour exécuter n'importe quelle action, WordPress fait appel à la mémoire allouée par votre hébergement. Parfois, celle-ci est trop faible et provoque le message d'erreur suivant :

Allowed memory size of xxx bytes exhausted

Pour éviter cela, vous pouvez ajouter cette ligne dans le fichier wp-config.php pour augmenter cette valeur

define('WP_MEMORY_LIMIT', '128M');

Attention cependant :

  • WordPress fixe à 32Mo par défaut la mémoire.
  • WordPress ne pourra pas dépasser la limite imposée par votre hébergeur. Si celui-ci fixe la mémoire allouée à 32Mo, la ligne de code ne permettra jamais de dépasser cette valeur.
  • WordPress testera toujours s'il doit ou non utiliser la fonction. Par exemple si PHP alloue déjà 64Mb, le fait de définir la même valeur dans le fichier wp-config.php ne servira à rien.
Installation de WordPress et fichier wp-config.php

Pour rappel, le fichier wp-config est créé lors de l'installation de WordPress

Et voilà, le tour est joué. Vous n'avez plus qu'à optimiser votre fichier au plus vite.
Les thèmes relatifs

Voici les thématiques abordées par WP-Config.php : optimisez la vitesse de WordPress n°2:

26 commentaires
  1. Arnaud
    15 messages

    Arnaud - Le 15 novembre 2012, 09:15

    Bonjour Daniel,

    Je vais suivre tes conseils pour optimiser mes sites sous WordPress avec attention !

    Il y a des paramètres que je n’avais pas pensé comme vider automatiquement la corbeille.

    Encore de quoi optimiser WordPress, merci :)

  2. Julio Potier (BoiteAWeb)
    53 messages

    Julio Potier (BoiteAWeb) - Le 15 novembre 2012, 09:18

    Hello

    Je vais peut-être paraitre bizarre mais les clés de sécurité je préfère les laisser vides car WordPress étant bien fait, si c’est vide ou que ça vaut « put your unique phrase here » alors il va entrer en BDD des valeurs à votre place.
    Résultat, ces valeurs seront lues de la BDD (sans requête en plus car elle sont dans les options déjà chargées) et non plus du fichier.
    Alors vous me direz « oui bon c’est pareil »
    Oui ou presque, j’ai recontré plus de plugin vulnérables permettant de lire le contenu des fichiers que des injections SQL, et lire le wp-config, ne pas pouvoir se connecter à la BDD car mon IP n’est pas autorisée, mais garder les clés pour créer une faille CSRF géante sur le site cible, c’est possible. Une affaire de chacun, c’est mon choix comme dirait Jean-Luc.
    Qui a dit que je suis parano ? non, j’imagine juste le scénario qui est possible pour pirater un site, c’est mon métier aussi donc bon ^^ …
    Enfin, je ne vous dit pas de le faire, mais sachez que pour info, WordPress gère bien ces clés, vides ou pas la sécurité est la même pour vous.

    Merci pour ces infos d’optimisation !

  3. Christophe
    1 message

    Christophe - Le 15 novembre 2012, 10:05

    Bonjour,
    Un grand merci pour cet article.
    J’ai cependant une question: si on change le nombre de révisions à 2 par exemple et que l’on modifie ensuite un article qui en avait 5. Trois d’entre elles ne s’affichent plus, mais sont-elles effacées ou simplement masquées?

  4. Aurélien Denis
    15 messages

    Aurélien Denis - Le 15 novembre 2012, 10:07

    Je ne connaissais pas l’astuce pour activer le cache sous WordPress… mais si ce dernier a été désactivé depuis la 2.5 – j’ai connu si si :), n’y a-t-il pas une raison explicative ?

    Je ne pense pas que les développeurs de WordPress ait fait cela par hasard, non ?

    Sinon, good job !

  5. Christian@Référencement SEO
    11 messages

    Christian@Référencement SEO - Le 15 novembre 2012, 11:46

    On va essayer tout cela assurément.
    merci pour le partage

  6. Marian DENYS
    1 message

    Marian DENYS - Le 15 novembre 2012, 12:01

    Merci Daniel pour ce second article sur l’optimisation de WordPress.

    Je ne connaissais pas toutes les astuces comme le vidage de la corbeille au bout de x jours notamment.

  7. Outdoor
    1 message

    Outdoor - Le 15 novembre 2012, 13:42

    Merci pour toutes ces informations vraiment pertinentes. Je pense que ça va bien me servir pour mettre à niveau mes blogs sous wordpress. j’aime beaucoup la config pour le nombre de révisions (à noter qu’il y a un plugin qui permet de supprimer d’un coup toutes les révisions quand la base commence à prendre trop de place)

  8. Anthony
    1 message

    Anthony - Le 15 novembre 2012, 14:07

    Merci pour cette nouvelle mine d’information !

    Avant de laisser ce commentaire je me suis permis de tester et je n’ai rencontré aucun problème au contraire, un réel gain au chargement de mon blog.

    0,128s avant intervention 0,118s après.

    Je passe à l’étape 1, l’optimisation du thème.

  9. Haydee
    1 message

    Haydee - Le 15 novembre 2012, 14:24

    Bonjour,

    Je viens de faire les 3 premières manips et pour la première fois mon site ne marche plus puis remarche, ça peut être du à mes changements de config.php ?

    Autre question : Lorsque je met
    /** Réduire le nombre de révisions
    define(‘WP_POST_REVISIONS’, 2);
    Vider automatiquement la corbeille
    define(‘EMPTY_TRASH_DAYS’, 3 );
    /**Activer le cache par défaut
    define(‘WP_CACHE’, true);

    Dois-je changer mes WP par 2 autres lettres que j’ai défini ainsi dans config.php comme suit: $table_prefix = ‘xxx_’;
    Merci !

  10. Fabrice
    13 messages

    Fabrice - Le 15 novembre 2012, 15:00

    Bonjour Daniel, excellent article comme d’hab ;)

    Les plugins de cache (w3 total cache par exemple)n’ajoutent-ils pas, par défaut: « define(‘WP_CACHE’, true); » ?

    Pour le vidage et les révisions, j’avoue que j’utilise plutôt le plugin wp-optimize

  11. Daniel Roch
    725 messages

    Daniel Roch - Le 16 novembre 2012, 08:49

    @Haydee : pas besoin de changer les préfixes ;)

    @Fabrice : certains plugins l’ajoutent automatiquement, mais uniquement s’ils ont les droits d’écriture sur le fichier wp-config ;)

  12. cocole
    1 message

    cocole - Le 16 novembre 2012, 11:04

    Attention, effacer les révisions d’un article dont on a modifié l’url peut provoquer des erreurs 404.
    En effet, c’est la révision qui porte l’ancienne url et la version courante de l’article porte la nouvelle.
    Si on efface la révision, on perd par la même l’ancienne version de l’url.

    Il faut donc penser à vérifier sur google webmaster tools les 404 et rediriger de l’ancienne vers la nouvelle avec des 301 (il existe des plugins pour ça ou via .htaccess si on a envie de mettre les mains dans le camboui).

  13. Martin
    4 messages

    Martin - Le 18 novembre 2012, 21:41

    Tant qu’à sécuriser WordPress pour empêcher les éventuelles failles XSS, autant préférer api.wordpress.org/secret-key/1.1/salt/ à api.wordpress.org/secret-key/1.1/ !

  14. Daniel Roch
    725 messages

    Daniel Roch - Le 19 novembre 2012, 09:55

    @Martin : tout à fait d’accord. J’ai mis à jour l’article. Merci à toi.

  15. Julio Potier (BoiteAWeb)
    53 messages

    Julio Potier (BoiteAWeb) - Le 19 novembre 2012, 09:55

    Hello @martin, ces clés ne servent pas à boucher les failles XSS, et tu peux ne pas les remplir que ton site est tout autant protégé en fait, légende urbaine ;)
    Ces clés servent dans les hash des pass, des cookies, création des nonces (jetons de sécurité) etc Elles renforcent leur chiffrage. Si le clés sont vides ou valent « put your unique phrase here », WordPress utilise l’url que tu as donné pour en générer et les stocker en BDD. Ensuite lorsqu’il va vouloir lire ces define venant de wp-config, si il les trouve vides ou valent « put your … » alors il va chercher en BDD (si il ne les a pas, c’est là ou il les génère)
    Voilà pour l’info sécu du matin :)

  16. David @Ressources pour Webmaster
    3 messages

    David @Ressources pour Webmaster - Le 19 novembre 2012, 13:18

    Encore un article efficace (comme toujours), des commentaires constructifs et bien utiles.

    Merci Daniel, je m’en vais optimiser tout ça de ce pas et merci aussi à Julio pour le complément d’info sécurité ;-)

  17. 4h18
    7 messages

    4h18 - Le 20 novembre 2012, 08:55

    Question sécurité, on peut aussi changer les droits du fichier wp-config.php.
    Sur l’un de mes sites, j’ai passé le truc en chmod 440.
    My2cents.

  18. Lionel POINTET
    3 messages

    Lionel POINTET - Le 20 novembre 2012, 11:29

    Merci Daniel pour la synthétisation de ces différents points de config.

    @Aurélien : la constante ENABLE_CACHE servait à activer un cache statique de pages (dans le même genre que ce que fait W3-Total-Cache par exemple), mais celui-ci a été retiré car c’était une fonctionnalité un peu en marge de ce que doit fournir le coeur de WordPress.
    Il valait mieux laisser les plugins s’en charger et proposer différentes implémentations (grâce à memcache ou APC par exemple).

    La nouvelle constante WP_CACHE sert du coup à activer l’inclusion du drop-in « advanced-cache.php », utilisé par les plugins de cache pour gérer ce cache statique.

    Par contre, WordPress n’a pas abandonné le cache pour autant ! Ils sont passé à un cache « objet » non persistant à la place du cache statique : par défaut, tous les appels à « wp_cache_add » sont stockés dans des variables PHP. Ceci évite de faire des centaines de requêtes en base pour les mêmes données (typiquement, les options).

    Il est néanmoins possible de rendre ce cache « objet » persistant grâce à un autre drop-in : object-cache.php.
    Ce fichier n’a qu’à réimplémenter la classe de WordPress pour se connecter à une couche de persistance (système de fichier, APC, Memcache, Redis…).

  19. Aurélien Denis
    15 messages

    Aurélien Denis - Le 20 novembre 2012, 15:03

    Merci Lionel de tes explications !!

  20. SamSoul
    3 messages

    SamSoul - Le 29 novembre 2012, 23:32

    Mouhais…
    Rien de neuf en fait…
    De bons conseils mais c’est du réchauffé.
    Dommage…

    Pour ceux que ça intéresse un petit complément à cet article:

    http://dev.mathiasphilippe.com/optimiser-le-fichier-wp-config-de-wordpress

    http://lashon.fr/configurer-wp-config-options/

    http://digwp.com/2009/06/wordpress-configuration-tricks/

    Merci tout de même pour ces rappels.
    Certains des commentaires précédents sont tout de même instructifs.

  21. Julio Potier
    53 messages

    Julio Potier - Le 30 novembre 2012, 10:27

    @SamSoul Le net est ainsi fait. L’avantage ici, c’est que Seomix fait parti pour moi de la sphère francophone et touche un autre panel d’utilisateurs. Les sites US sont très peus lu et compris et commentés par les utilisateurs français, les 2 autres liens FR, 4 et 2 commentaires, c’est dire la « portée » des articles. Ici ça ouvre un nouveau débat, on donne d’autres conseils et tu le soulignes. Le but n’est pas juste de faire un rappel ou se faire son post du jour, il est là aussi pour faire venir parler, et c’est que qu’a réussi Daniel avec cet article et ses 22 commentaires.

    A+ ;)

  22. Niko
    5 messages

    Niko - Le 09 décembre 2012, 11:52

    Hello,
    je reviens sur cet article et me demande si il n’y aurait pas un moyen de bidouiller le vidage auto de la corbeille pour supprimer automatiquement les posts
    rappel :
    tu proposes : define(‘EMPTY_TRASH_DAYS’, 3 );

    dans le cas où je souhaite supprimer les posts qui ont 3 jours, cette fonction est elle modifiable ?

    Merci d’avance :)

  23. Daniel Roch
    725 messages

    Daniel Roch - Le 10 décembre 2012, 08:45

    Malheureusement non : pour faire cela, il faut lancer un CRON tous les jours pour supprimer tous les articles dont la date de publication date de plus de 3 jours. Et en faisant cela, cela provoquera forcément des dizaines et des dizaines d’erreurs 404.

  24. Niko
    5 messages

    Niko - Le 10 décembre 2012, 08:47

    Merci Daniel pour la réponse

    dommage, parce que les plugins existants ne me conviennent pas non plus, je vais continuer à le faire via BDD alors

    Bon lundi :)

  25. SamSoul
    3 messages

    SamSoul - Le 11 décembre 2012, 01:01

    @Julio Potier:
    Tout à fait d’accord avec toi.
    Toutefois, cet article aurait pût être l’occasion de distiller des astuces et infos complémentaires à ce que l’on trouve déjà ailleurs. Un « plus » à la sauce SeoMix.
    C’est ce que j’aurais souhaité. Mais comme tu le souligne, ce post en aura certainement contenté beaucoup. Et c’est tant mieux.
    Je te rejoins sur ta remarque concernant les commentaires qui apportent une réelle valeur ajoutée à cette article.

    En tous cas merci pour ton boulot sur BAW ainsi qu’à l’équipe SeoMix pour ses articles.

    Bonne semaine

  26. Marc.D
    3 messages

    Marc.D - Le 12 mars 2013, 08:30

    Pour ceux qui ont la possibilité de paramétrer leurs taches cron sur leur serveur

    j’ai désactivé le fichier wp-cron.php avec la commande suivante (dans wp-config.php):

    define('DISABLE_WP_CRON', true);

    puis créée une tache cron qui s’exécute toute les 15 min selon la fréquence de vos publications, commentaires ce temps peu varier.

    commande à ajouter en cron :

    wget -q -O - http://www.domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

    ce qui évite d’avoir des appels vers wp-cron.php a chaque utilisateur connectés sur le site

» Commentez cet article !
(Merci de donner un vrai prénom)
(Ne sera jamais publié)
(Modèration subjective)
Html accepté <a> <i> <b> [codesyntax]CODE[/codesyntax]
» Prévisualisez votre message

© 2010-2012 SeoMix : WordPress & Référencement
Propulsé par WordPress et Daniel Roch. Logo créé par Willy-Bahuaud

Indispensable
WordPress
A propos de SeoMix
Mes servicesWordPress - Référencement
Suivez-nous !
  • 8811 abonnés
  • 197 articles
  • 4605 messages
Vous devriez lire
Seo et emarketing
Les amis
9569c1a5ebb43a316d738f8e2175f4d0SSSSSSSSSSSSSSSSSSSSS