Je construis un site Drupal 7. Voici quelques-uns des modules que j'utilise: Adaptivetheme (thème), Vues et panneaux de contenu, Panneaux, Mini panneaux, Panneaux partout, Gestionnaire de pages, Superfish pour les menus , Addthis, Chosen (liste déroulante).
Pour améliorer les performances de mon site et le traitement des fichiers CSS et JS, j'utilise le module Advagg .
Lors de l'exécution du test Pagespeed de Google J'obtiens l'erreur suivante en tant que "À corriger":
Élimine le JavaScript et le CSS bloquant le rendu dans le dessus
contenu Votre page contient 6 ressources de script et 8 ressources CSS qui bloquent. Cela entraîne un retard dans le rendu de votre page.
Aucun contenu au-dessus de la ligne de flottaison de votre page n'a pu être affiché sans attendre le chargement des ressources suivantes. Essayez de différer ou de charger de manière asynchrone les ressources de blocage, ou insérez les parties critiques de ces ressources directement dans le code HTML.
Voici les informations fournies par Google:
Existe-t-il un moyen de modifier les paramètres du module Advagg ou Drupal core, et résoudre ce problème?
Existe-t-il un autre moyen d'atteindre cet objectif?
Mise à jour - après avoir implémenté les changements selon mikeytown2 réponse J'ai reçu le message suivant lors du test Pagespeed de Google:
Éliminez le JavaScript et le CSS bloquant le rendu dans le contenu au-dessus de la ligne de flottaison
Votre page contient 6 ressources de script et 4 ressources CSS qui bloquent. Cela entraîne un retard dans le rendu de votre page.
Aucun contenu au-dessus de la ligne de flottaison de votre page n'a pu être affiché sans attendre le chargement des ressources suivantes. Essayez de différer ou de charger de manière asynchrone les ressources de blocage, ou insérez les parties critiques de ces ressources directement dans le code HTML.
Le README contient un guide sur la façon de procéder en utilisant la version actuelle 7.x-2.31 + d'AdvAgg . Voir aussi cette page wiki sur le groupe Haute performance . La plupart des sites peuvent atteindre un score parfait de 100/100 sur https://developers.google.com/speed/pagespeed/insights/ . Instructions sur la façon de le réaliser pour une nouvelle installation d'AdvAgg ci-dessous.
Assurez-vous de vérifier le site après chaque section pour vous assurer que le changement n'a pas gâché votre site. Les modifications apportées au modificateur AdvAgg sont généralement les plus problématiques, mais elles offrent les améliorations les plus importantes.
Aller à admin/config/development/performance/advagg
Installez AdvAgg Compress Javascript s'il n'est pas activé et accédez à admin/config/development/performance/advagg/js-compress
Installez AdvAgg Async Font Loader s'il n'est pas activé et accédez à admin/config/development/performance/advagg/font
Installez AdvAgg Bundler s'il n'est pas activé et accédez à admin/config/development/performance/advagg/bundler
Paramètres HTTP/2.0
Paramètres HTTP/1.1 (par défaut)
25 bundles vs 2 et 5 ont à voir avec la mise en cache du navigateur. Plus de fichiers équivaut à une meilleure chance pour le navigateur d'avoir ce combo dans son cache, mais plus de fichiers signifie que plus de connexions sont établies et ouvertes dans HTTP 1.1. Utilisez 2 pour CSS car ce numéro n'attend pas de nouvelles connexions; JS est 5 car la plupart des navigateurs ont une limite de connexions simultanées de 6. Ce nombre de bundles a été choisi après de nombreux tests. Dans HTTP 2.0, il y a une connexion de streaming et la pénalité pour plusieurs fichiers CSS et JS est presque inexistante; l'optimisation du cache du navigateur est donc le meilleur choix; ainsi 25 devrait être utilisé pour CSS et JS lors du service HTTP/2.0.
Installez AdvAgg Relocate s'il n'est pas activé et accédez à admin/config/development/performance/advagg/relocate
Installez AdvAgg Modifier s'il n'est pas activé et accédez à admin/config/development/performance/advagg/mod
Accédez à https://www.sitelocity.com/critical-path-css-generator et entrez autant de pages de destination que nécessaire pour les css critiques; le top 10 est généralement un bon début. Si vous avez Google Analytics, cela vous montrera comment trouver vos principales pages de destination https://developers.google.com/analytics/devguides/reporting/core/v3/common-queries#top-landing-pages ou pour Piwik https://piwik.org/faq/how-to/faq_160/ . Si vous ne savez pas par quelle page commencer, faites la page d'accueil de votre site. Vous pouvez également l'utiliser pour générer des css https://chrome.google.com/webstore/detail/critical-style-snapshot/gkoeffcejdhhojognlonafnijfkcepob?hl=en
Les exemples de noms de fichiers et de chemins ci-dessous concernent le thème "bootstrap"; ils commencent tous par sites/all/themes/bootstrap/critical-css/
; dans votre thème, créez le critical-css/
répertoire. Le répertoire suivant est basé sur l'utilisateur; anonymous/
, all/
, ou authenticated/
peut être utilisé.
Le répertoire suivant peut être urls/
ou type/
. Regarder urls/
; front est un cas particulier pour la première page, tous les autres chemins utilisent current_path () comme répertoire et nom de fichier avec .css
ajouté à la fin; Voir https://api.drupal.org/api/drupal/includes%21path.inc/function/current_path/7.x
Regarder type/
c'est un cas particulier pour les types de nœuds. Utilisez le nom de la machine et ajoutez .css
jusqu'à la fin. Tout nœud de ce type verra alors ce fichier css critique appliqué et intégré. Voici quelques exemples montrant comment cela fonctionne.
emplacements de fichiers d'exemple valides pour la page "avant": sites/all/themes/bootstrap/critical-css/anonymous/urls/front.css
emplacements de fichiers d'exemple valides pour la page "node/1" current_path (): sites/all/themes/bootstrap/critical-css/anonymous/urls/node/1.css
exemples d'emplacements de fichiers valides pour le type de noeud "page": sites/all/themes/bootstrap/critical-css/anonymous/type/page.css
Si vous voulez une sorte de moyen automatisé pour générer ces fichiers css, fourkitchens a un excellent article sur la façon de le configurer: https://fourword.fourkitchens.com/article/use-grunt-and-advagg-inline -critique-css-drupal-7-theme
Vous n'obtiendrez jamais de scores vraiment élevés avec les modules pré-intégrés drupal, la seule façon d'y parvenir est d'assister et d'analyser soigneusement chacune des suggestions faites par outil de vitesse google , adressant chacun de ceux-ci indépendamment.
Certaines choses que j'ai faites pour atteindre 95 dans un site d'actualités très actif , qui au moment où j'ai écrit ceci, ont obtenu un meilleur score que nytimes (Maintenant ce n'est pas le cas):