5 astuces rapides pour accélérer wordpress sans plugin

Pas besoin d'expliquer l'intérêt d'avoir un site rapide. La rapidité d'un site est essentielle pour apparaitre en tête des résultats de google/bing

Un site a entre 8 et 10 secondes (grand grand maximum) pour convaincre l'internaute de rester ou non sur la page, et d'avoir une impression positive ou négative.

Bien sûr, cela varie en fonction de beaucoup de paramètres : de l'hébergement, du poids des images, du nombre de plugins activés, si le thème utilisé est correctement développé ou non, ect.

Pour tester la rapidité de votre site, vous pouvez utilisez des outils gratuits en ligne comme le Google PageSpeed Insights, Pingdom et Gtmetrix

Pour les plugins wordpress à avoir, il y un plugin pour le SEO (comme WordPress SEO by Yoast), un plugin de cache (comme W3 Total Cache), un plugin pour gérer la sécurity (comme Wordfence), un plugin pour aléger les images importés (comme WP Smush.it de Yahoo), un plugin pour optimiser sa base de données (comme WP-Optimize), un plugin qui analyse les autres plugins (comme P3 Profiler). Bref, voici quelques plugins à installer (du moins, je vous conseille de le faire)

Aussi, si vous ne l'avez pas déjà fait, voici 5 astuces rapides qui peuvent (et qui vont surement) accélerer votre blog wordpres. 

1.Vider la corbeille.

Avec les dernières versions de WordPress, le CMS garde les pages, les articles, les médias, et les commentaires dans la poubelle. Utile si vous avez supprimé quelque chose sans faire expres, mais cela surchage votre base de données car la poubelle est purgée que toutes les 30 jours. Vous pouvez réduire à 7 jours en ajoutant cette ligne de code dans le fichier wp-config.php

define (‘EMPTY_TRASH_DAYS’, 7);

Vous pouvez aller jusqu'à désactiver complétement cette fonction avec cette ligne : define (‘EMPTY_TRASH_DAYS’, 0);

2.Déactiver WP_CRON

WordPress intégre sa propre solution WP_CRON permettant le lancement de tâches planifiées (appelées aussi CRON). 
A première vue, cela semble bien, mais sachez que ce processus est lancé à chaque fois qu'une de vos pages est chargée.
En gros, un visiteur accéde à une des pages de votre site -> le processus WP_CRON est executée. Donc si vous avez 5.000 pages affichées par jour, cela exécutera 5.000 fois le script lors de la même journée ! alors qu'il a peut-etre même pas besoin d'être exécuté. 
Ainsi, supprimer ce processus vous permettra de ne pas ralentir le temps de chargement d'une page de votre blog 

Comment améliorer ca ?
Rien de plus simple :
1) Supprimer ce process d'automatisme
2) Paramétrer manuellement le fichier wp-cron.php via votre interface de contrôle d'hébergement

Pour supprimer ce process, ouvrez le fichier wp-config.php, et rajouter les lignes suivantes 

//Disable internal Wp-Cron function
define('DISABLE_WP_CRON', true);

Pour paramétrer le nouveau cron job, vous devez créer un nouveau CRON à exécuter toutes les 5 minutes (vous pouvez le paramétrer pour être exécuté toutes les 15 minutes ou plus)

wget http://www.server.com/wp-cron.php?doing_wp_cron=1 > /dev/null 2>&1

Si vous avez CPANEL, toute la démarche est bien expliquée (avec photo) sur cette page

Si vous avez un hébergement mutualisé OVH, voici un lien utile
Si vous avez un autre outil, ou si vous souhaitez utiliser un plugin wordpress pour cela (par exemple WP-CRON control), une recherche google vous aidera :p

Modifier le fichier .htacess

Pour les astuces suivantes, faites une backup de votre fichier htaccess original, juste au cas où… Car certaines modifications suivantes peuvent ne pas fonctionner selon la configuration d'Apache. Vérifier que votre site fonctionne après ces modifications

3.Activer et réduire le cache du navigateur

Beaucoup de navigateur mettent en cache automatiquement les sites visités pour améliorer le temps de chargement de ces mêmes sites plus tard. Si vous souhaitez reduire le nombre de requêtes HTTP et ainsi améliorer la rapididité de chargement des pages, vous devez ajouter ces lignes dans le fichier .htaccess (ce fichier est souvent à la racine du blog, au même niveau que le fichier wp-config.php)

Réduire le cache en spécifiant combien de temps le navigateur doit mettre en cache les images, les fichiers CSS, javacript, et autres fichiers. Là encore, vous pouvez ajouter ces lignes dans le fichier .htaccess

Il faut mettre une date future très loin (1 an par exemple). Par contre, en phase de développement, réduire cette durée pour voir l'impact direct de vos modifications techniques

<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault      "access plus 1 month"
# cache.appcache needs re-requests
ExpiresByType text/cache-manifest "access plus 0 seconds"
# Your document html
ExpiresByType text/html "access plus 0 seconds"
# Data
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType application/json "access plus 0 seconds"
# RSS feed
ExpiresByType application/rss+xml "access plus 1 hour"
# Favicon (cannot be renamed)
ExpiresByType image/x-icon "access plus 1 week"
# Media: images, video, audio
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"
# HTC files  (css3pie)
ExpiresByType text/x-component "access plus 1 month"
# Webfonts
ExpiresByType font/truetype "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/x-font-woff   "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
# CSS and JavaScript
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
<IfModule mod_headers.c>
Header append Cache-Control "public"
</IfModule>
</IfModule>

 

4.Désactivé le hotlinking

Pour plus d'info, voir le précédent article 2 astuces pour savoir si vos photos sont utilisées par d'autres site web (hotlinking)

Rajoutez les lignes suivantes dans le fichier .htaccess

   #disable hotlinking of images with forbidden or custom image option
    RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?sparringmind.com [NC]
    RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google.com [NC]
    RewriteRule .(jpg|jpeg|png|gif)$ – [NC,F,L]

5.Compressé le contenu statique avec gZip

Rajoutez les lignes suivantes dans le fichier .htaccess

<IfModule mod_deflate.c>
    # force deflate for mangled headers
    <IfModule mod_setenvif.c>
    <IfModule mod_headers.c>
    SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)s*,?s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
    RequestHeader append Accept-Encoding “gzip,deflate” env=HAVE_Accept-Encoding
    </IfModule>
    </IfModule>
    # HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
    <IfModule filter_module>
    FilterDeclare COMPRESS
    FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html
    FilterProvider COMPRESS DEFLATE resp=Content-Type $text/css
    FilterProvider COMPRESS DEFLATE resp=Content-Type $text/plain
    FilterProvider COMPRESS DEFLATE resp=Content-Type $text/xml
    FilterProvider COMPRESS DEFLATE resp=Content-Type $text/x-component
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/javascript
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/json
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xml
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xhtml+xml
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/rss+xml
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/atom+xml
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/vnd.ms-fontobject
    FilterProvider COMPRESS DEFLATE resp=Content-Type $image/svg+xml
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/x-font-ttf
    FilterProvider COMPRESS DEFLATE resp=Content-Type $font/opentype
    FilterChain COMPRESS
    FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no
    </IfModule>
    <IfModule !mod_filter.c>
    # Legacy versions of Apache
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
    AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
    AddOutputFilterByType DEFLATE image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
    </IfModule>
    </IfModule>

PARTAGER