Bonjour
J'ai passé pas mal d'heures à essayer d'optimiser un site pour qu'il s'approche des 90.
J'oscille entre 68 et 72 pour l'indice des performances
Plus en détail:
J'ai essayé plein de paramétrage différent (un par un) des extensions de cache, gzip de joomla, htaccess en applicaquant principalement les recommandations reçues sur ce forum, GG et sur l'article suivant:
Les recommandations du magazine https://magazine.joomla.org/all-issu...basic-settings étant :
Les conseils de GG:
Des ressources bloquent la première visualisation (first paint) de votre page. Envisagez de diffuser des feuilles JS/CSS essentielles en ligne et de différer la diffusion de toutes les feuilles JS/de style non essentielles.
Joomla
Divers plug-ins Joomla peuvent vous aider à aligner des éléments critiques ou à différer le chargement des ressources moins importantes.
==> c'est là ou je me demande l'amélioration par configuration d'Helix ou ajout de nouvelles extensions?
Réduire le temps de réponse initial du serveur
Le temps de réponse du serveur pour le document principal doit rester court, car toutes les autres requêtes en dépendent.
==> bon là c'est mal barré, je viens de passé des jours à faire ce site que je ne vais pas remettre en question, d'autres paramètres du cahier des charges devant être pris en compte
J'ai demandé des conseils à PH qui me renvoit vers ... moi ou ce forum
Comme il y a des dizaines de combinaisons possibles, j'aimerai savoir ce que vous recommanderiez pour améliorer le score de performance (>80 ?) dans les paramètres suivants
=== ACTUELLEMENT
PH
Par default mod_deflate, mod_expires, Mod_redirect sont actif.
PHP: 7.4 ou 8.0 n'améliore pas vraiment !
Acteullement hébergement Cpanel mais je ne sais pas si c'est mieux ou ce qu'il faudrait changer avec NOC ?
Joomla
Compression GZIP= Oui (mais je n'ai pas constaté d'amélioration majeur à l'activation, est-ce parce que le module est activé chez PH ?)
Cache: désactivé: j'ajoutterai à la fin peut-être plutôt le plugin de page cache car si très peu mis à jour (1fois/mois) sinon sur d'autres sites avec la même configuration mais avec mise à jour régulière, ce sera remplacé par le cache conservateur!
Helix Ultimate et SPPB
Aucun paramétrage actif
Htaccess
J'ai enlevé dans le htaccess initial car comportement étrange !!
A la fin du htaccess, j'ai rajoutté selon la recommandation de l'article
J'ai passé pas mal d'heures à essayer d'optimiser un site pour qu'il s'approche des 90.
J'oscille entre 68 et 72 pour l'indice des performances
Plus en détail:
- First Contentful Paint :3.6 s
- Time to Interactive : 5.0 s
- Speed Index: 5.2 s
- Largest Contentful Paint :4.3 s
J'ai essayé plein de paramétrage différent (un par un) des extensions de cache, gzip de joomla, htaccess en applicaquant principalement les recommandations reçues sur ce forum, GG et sur l'article suivant:
Les recommandations du magazine https://magazine.joomla.org/all-issu...basic-settings étant :
- Combinaison de fichiers, minification de fichiers, GZipping de fichiers et déplacement du chargement JS/CSS vers le bas du document HTML. Ne faites rien de tout cela. N'utilisez aucun plugin qui ne le fasse pas
- ne pas compresser vos fichiers statiques (JavaScript et CSS) à la volée. Réduire les fichiers JavaScript et CSS à l'aide de code PHP est complètement contre-productif.
- Déplacer les fichiers JavaScript de l'en-tête vers le bas de la page peut poser problème.
Les conseils de GG:
Des ressources bloquent la première visualisation (first paint) de votre page. Envisagez de diffuser des feuilles JS/CSS essentielles en ligne et de différer la diffusion de toutes les feuilles JS/de style non essentielles.
Joomla
Divers plug-ins Joomla peuvent vous aider à aligner des éléments critiques ou à différer le chargement des ressources moins importantes.
==> c'est là ou je me demande l'amélioration par configuration d'Helix ou ajout de nouvelles extensions?
Réduire le temps de réponse initial du serveur
Le temps de réponse du serveur pour le document principal doit rester court, car toutes les autres requêtes en dépendent.
==> bon là c'est mal barré, je viens de passé des jours à faire ce site que je ne vais pas remettre en question, d'autres paramètres du cahier des charges devant être pris en compte
J'ai demandé des conseils à PH qui me renvoit vers ... moi ou ce forum
Comme il y a des dizaines de combinaisons possibles, j'aimerai savoir ce que vous recommanderiez pour améliorer le score de performance (>80 ?) dans les paramètres suivants
=== ACTUELLEMENT
PH
Par default mod_deflate, mod_expires, Mod_redirect sont actif.
PHP: 7.4 ou 8.0 n'améliore pas vraiment !
Acteullement hébergement Cpanel mais je ne sais pas si c'est mieux ou ce qu'il faudrait changer avec NOC ?
Joomla
Compression GZIP= Oui (mais je n'ai pas constaté d'amélioration majeur à l'activation, est-ce parce que le module est activé chez PH ?)
Cache: désactivé: j'ajoutterai à la fin peut-être plutôt le plugin de page cache car si très peu mis à jour (1fois/mois) sinon sur d'autres sites avec la même configuration mais avec mise à jour régulière, ce sera remplacé par le cache conservateur!
Helix Ultimate et SPPB
Aucun paramétrage actif
Htaccess
J'ai enlevé dans le htaccess initial car comportement étrange !!
Code:
## These directives are only enabled if the Apache mod_headers module is enabled. ## This section will check if a .gz file exists and if so will stream it ## directly or fallback to gzip any asset on the fly ## If your site starts to look strange after enabling this, and you see ## ERR_CONTENT_DECODING_FAILED in your browser console network tab, ## then your server is already gzipping css and js files and you don't need this ## block enabled in your .htaccess <IfModule mod_headers.c> # Serve gzip compressed CSS files if they exist # and the client accepts gzip. RewriteCond "%{HTTP:Accept-encoding}" "gzip" RewriteCond "%{REQUEST_FILENAME}\.gz" -s RewriteRule "^(.*)\.css" "$1\.css\.gz" [QSA] # Serve gzip compressed JS files if they exist # and the client accepts gzip. RewriteCond "%{HTTP:Accept-encoding}" "gzip" RewriteCond "%{REQUEST_FILENAME}\.gz" -s RewriteRule "^(.*)\.js" "$1\.js\.gz" [QSA] # Serve correct content types, and prevent mod_deflate double gzip. RewriteRule "\.css\.gz$" "-" [T=text/css,E=no-gzip:1] RewriteRule "\.js\.gz$" "-" [T=text/javascript,E=no-gzip:1] <FilesMatch "(\.js\.gz|\.css\.gz)$"> # Serve correct encoding type. Header append Content-Encoding gzip # Force proxies to cache gzipped & # non-gzipped css/js files separately. Header append Vary Accept-Encoding </FilesMatch> </IfModule>
Code:
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/plain text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript image/svg+xml </IfModule> <IfModule mod_gzip.c> mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_keep_workfiles No mod_gzip_can_negotiate Yes mod_gzip_add_header_count Yes mod_gzip_send_vary Yes mod_gzip_min_http 1000 mod_gzip_minimum_file_size 300 mod_gzip_maximum_file_size 512000 mod_gzip_maximum_inmem_size 60000 mod_gzip_handle_methods GET mod_gzip_item_include file \.(html?|txt|css|js|php|pl|xml|rb|py|svg|scgz)$ mod_gzip_item_include mime ^text/plain$ mod_gzip_item_include mime ^text/xml$ mod_gzip_item_include mime ^text/css$ mod_gzip_item_include mime ^application/xml$ mod_gzip_item_include mime ^application/xhtml+xml$ mod_gzip_item_include mime ^application/rss+xml$ mod_gzip_item_include mime ^application/javascript$ mod_gzip_item_include mime ^application/x-javascript$ mod_gzip_item_include mime ^image/svg+xml$ mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include handler ^server-status$ mod_gzip_item_include handler ^server-info$ mod_gzip_item_include handler ^application/x-httpd-php mod_gzip_item_exclude mime ^image/.* </IfModule> <IfModule mod_expires.c> # Enable expiration control ExpiresActive On # CSS and JS expiration: ExpiresByType text/css "now plus 1 year" ExpiresByType application/javascript "now plus 1 year" ExpiresByType application/x-javascript "now plus 1 year" # Image files expiration: 1 month after request ExpiresByType image/bmp "now plus 1 year" ExpiresByType image/gif "now plus 1 year" ExpiresByType image/jpeg "now plus 1 month" ExpiresByType image/jp2 "now plus 1 month" ExpiresByType image/pipeg "now plus 1 month" ExpiresByType image/png "now plus 1 month" ExpiresByType image/svg+xml "now plus 1 month" ExpiresByType image/tiff "now plus 1 month" ExpiresByType image/vnd.microsoft.icon "now plus 1 month" ExpiresByType image/x-icon "now plus 1 month" ExpiresByType image/ico "now plus 1 month" ExpiresByType image/icon "now plus 1 month" ExpiresByType image/webp "now plus 1 month" ExpiresByType text/ico "now plus 1 month" ExpiresByType application/ico "now plus 1 month" ExpiresByType image/vnd.wap.wbmp "now plus 1 month" ExpiresByType application/vnd.wap.wbxml "now plus 1 month" ExpiresByType application/smil "now plus 1 month" # Font files expiration: 1 week after request ExpiresByType application/vnd.ms-fontobject "now plus 1 week" ExpiresByType application/x-font-ttf "now plus 1 week" ExpiresByType application/x-font-opentype "now plus 1 week" ExpiresByType application/x-font-woff "now plus 1 week" ExpiresByType font/woff2 "now plus 1 week" ExpiresByType image/svg+xml "now plus 1 week" # Audio files expiration: 1 month after request ExpiresByType audio/ogg "now plus 1 month" ExpiresByType application/ogg "now plus 1 month" ExpiresByType audio/basic "now plus 1 month" ExpiresByType audio/mid "now plus 1 month" ExpiresByType audio/midi "now plus 1 month" ExpiresByType audio/mpeg "now plus 1 month" ExpiresByType audio/mp3 "now plus 1 month" ExpiresByType audio/x-aiff "now plus 1 month" ExpiresByType audio/x-mpegurl "now plus 1 month" ExpiresByType audio/x-pn-realaudio "now plus 1 month" ExpiresByType audio/x-wav "now plus 1 month" # Movie files expiration: 1 month after request ExpiresByType application/x-shockwave-flash "now plus 1 month" ExpiresByType x-world/x-vrml "now plus 1 month" ExpiresByType video/x-msvideo "now plus 1 month" ExpiresByType video/mpeg "now plus 1 month" ExpiresByType video/mp4 "now plus 1 month" ExpiresByType video/quicktime "now plus 1 month" ExpiresByType video/x-la-asf "now plus 1 month" ExpiresByType video/x-ms-asf "now plus 1 month" </IfModule> <IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=31536000" env=HTTPS </IfModule>
Commentaire