Ich baue eine Drupal 7-Site. Dies sind einige der Module, die ich verwende: Adaptivetheme (Thema), Ansichten und Inhaltsfenster, Fenster, Mini-Fenster, Fenster überall, Seitenmanager, Superfish für Menüs, Addthis, Ausgewählt (Dropdown).
Zur Verbesserung der Leistung meiner Website und zum Umgang mit CSS- und JS-Dateien verwende ich das Advagg-Modul .
Beim Ausführen des Pagespeed-Tests von Google erhalte ich die Fehlermeldung "Should Fix":
Beseitigen Sie JavaScript und CSS, die das Rendering blockieren, in
Inhalten, die über dem Falz angezeigt werden. Ihre Seite enthält 6 blockierende Skript-Ressourcen und 8 blockierende CSS-Ressourcen. Dies führt zu einer Verzögerung beim Rendern Ihrer Seite.
Keiner der übergeordneten Inhalte auf Ihrer Seite konnte gerendert werden, ohne darauf zu warten, dass die folgenden Ressourcen geladen werden. Versuchen Sie, blockierende Ressourcen aufzuschieben oder asynchron zu laden oder die kritischen Teile dieser Ressourcen direkt in den HTML-Code einzufügen.
Dies ist die Information, die Google liefert:
Gibt es eine Möglichkeit, die Einstellungen des Advagg-Moduls oder des Drupal-Kerns zu ändern und dieses Problem zu beheben?
Gibt es einen anderen Weg, um dieses Ziel zu erreichen?
Update - nach der Umsetzung von Änderungen gemäß mikeytown2 Antwort habe ich folgende Meldung zum Pagespeed Test von Google erhalten:
Beseitigen Sie JavaScript und CSS, die das Rendering blockieren, in Inhalten, die über dem Falz angezeigt werden.
Ihre Seite enthält 6 blockierende Skript-Ressourcen und 4 blockierende CSS-Ressourcen. Dies führt zu einer Verzögerung beim Rendern Ihrer Seite.
Keiner der übergeordneten Inhalte auf Ihrer Seite konnte gerendert werden, ohne darauf zu warten, dass die folgenden Ressourcen geladen werden. Versuchen Sie, blockierende Ressourcen aufzuschieben oder asynchron zu laden oder die kritischen Teile dieser Ressourcen direkt in den HTML-Code einzufügen.
quelle
async
von alten Browsern nicht unterstützt. ZB enthält die Standard-Drupal-Aggregation<link>
Tags für alle Ihre CSS. Wenn Ihr Site-CSS oder JS zu komplex ist, tritt dieses Problem immer auf. Wenn Sie Ihre Site korrekt erstellen, können Sie Dateien sicher aggregieren. Da es keine Informationen zu den Dateiabhängigkeiten gibt, sind die Fragendetails zu umfangreich - ein Modul kann sein Problem niemals beheben . Es geht nur darum, wie CSS und JS geschrieben sind und in welcher Reihenfolge und Komplexität sie enthalten sind. Er hat nie gesagt, dass er nicht blocken will, wenn Sie davon ausgehen, dass es das ist, was er will.Antworten:
Die README-Datei enthält eine Anleitung, wie dies mit der aktuellen Version 7.x-2.31 + von AdvAgg durchgeführt werden kann . Siehe auch diese Wiki-Seite über die Hochleistungsgruppe . Die meisten Websites können unter https://developers.google.com/speed/pagespeed/insights/ eine 100/100 Bewertung erzielen . Anweisungen, wie Sie AdvAgg installieren können, finden Sie weiter unten.
Überprüfen Sie die Site nach jedem Abschnitt, um sicherzustellen, dass die Änderung Ihre Site nicht durcheinander gebracht hat. Die Änderungen unter AdvAgg Modifier sind normalerweise am problematischsten, bieten aber die größten Verbesserungen.
Erweiterte CSS / JS-AggregationGehe zu
admin/config/development/performance/advagg
Installieren Sie AdvAgg Compress Javascript, falls nicht aktiviert, und gehen Sie zu
admin/config/development/performance/advagg/js-compress
Installieren Sie AdvAgg Async Font Loader, falls nicht aktiviert, und gehen Sie zu
admin/config/development/performance/advagg/font
Installieren Sie AdvAgg Bundler, falls nicht aktiviert, und gehen Sie zu
admin/config/development/performance/advagg/bundler
HTTP / 2.0-Einstellungen
HTTP / 1.1-Einstellungen (Standard)
25 Bundles gegen 2 und 5 haben mit Browser-Caching zu tun. Je mehr Dateien vorhanden sind, desto höher ist die Wahrscheinlichkeit, dass der Browser diese Kombination im Cache hat. Je mehr Dateien vorhanden sind, desto mehr Verbindungen werden in HTTP 1.1 hergestellt und geöffnet. Verwenden Sie 2 für CSS, da diese Nummer nicht auf neue Verbindungen wartet. JS ist 5, da die meisten Browser ein gleichzeitiges Verbindungslimit von 6 haben. Diese Anzahl für Bundles wurde nach vielen Tests ausgewählt. In HTTP 2.0 gibt es eine Streaming-Verbindung und die Strafe für mehrere CSS- und JS-Dateien ist fast nicht vorhanden. Daher ist die Optimierung für den Browser-Cache die beste Wahl. Daher sollte 25 für CSS und JS verwendet werden, wenn HTTP / 2.0 bereitgestellt wird.
AdvAgg UmzugInstallieren Sie AdvAgg Relocate, falls nicht aktiviert, und gehen Sie zu
admin/config/development/performance/advagg/relocate
Installieren Sie AdvAgg Modifier, falls nicht aktiviert, und gehen Sie zu
admin/config/development/performance/advagg/mod
Gehen Sie zu https://www.sitelocity.com/critical-path-css-generator und geben Sie so viele Zielseiten ein, wie für kritische CSS erforderlich sind. Die Top 10 sind normalerweise ein guter Anfang. Wenn Sie über Google Analytics verfügen, erfahren Sie, wie Sie Ihre wichtigsten Zielseiten finden: https://developers.google.com/analytics/devguides/reporting/core/v3/common-queries#top-landing-pages oder für Piwik https: //piwik.org/faq/how-to/faq_160/ . Wenn Sie nicht wissen, mit welcher Seite Sie beginnen sollen, führen Sie die Homepage Ihrer Website aus. Sie können dies auch verwenden, um css https://chrome.google.com/webstore/detail/critical-style-snapshot/gkoeffcejdhhojognlonafnijfkcepob?hl=de zu generieren
Die folgenden Beispieldateinamen und -pfade gelten für das Thema "Bootstrap". sie fangen alle an mit
sites/all/themes/bootstrap/critical-css/
; Erstellen Sie in Ihrem Thema dascritical-css/
Verzeichnis. Das nächste Verzeichnis basiert auf dem Benutzer.anonymous/
,,all/
oderauthenticated/
kann verwendet werden.Das nächste Verzeichnis kann
urls/
oder seintype/
. Anschauenurls/
; front ist ein Sonderfall für die Titelseite. Alle anderen Pfade verwenden current_path () als Verzeichnis und Dateinamen.css
, die am Ende hinzugefügt werden. Siehe https://api.drupal.org/api/drupal/includes%21path.inc/function/current_path/7.xMit Blick auf
type/
diese ist ein Sonderfall für Knotentypen. Verwenden Sie den Computernamen und fügen Sie ihn.css
am Ende hinzu. Auf jedem Knoten dieses Typs wird diese kritische CSS-Datei angewendet und eingezeichnet. Im Folgenden sind einige Beispiele aufgeführt, die zeigen, wie dies funktioniert.gültige Beispielspeicherorte für die "Vorderseite":
sites/all/themes/bootstrap/critical-css/anonymous/urls/front.css
gültige Beispielspeicherorte für die Seite "node / 1" current_path ():
sites/all/themes/bootstrap/critical-css/anonymous/urls/node/1.css
gültige Beispielspeicherorte für den Knotentyp "Seite":
sites/all/themes/bootstrap/critical-css/anonymous/type/page.css
Wenn Sie diese CSS-Dateien auf irgendeine Weise automatisiert generieren möchten, finden Sie in fourkitchens einen hervorragenden Artikel zum Einrichten: https://fourword.fourkitchens.com/article/use-grunt-and-advagg-inline-critical-css -drupal-7-theme
quelle
advagg/mod
Seite aktiviert, UND / ODER Sie haben "Alle JS" nicht in die Fußzeile verschoben. Auch wenn ich den vollständigen Quellcode der Seiten sehen könnte, der im Allgemeinen mit Empfehlungen hilft (verlinken Sie einfach auf Ihre Site).Mit vorgefertigten Drupal-Modulen werden Sie niemals wirklich hohe Punktzahlen erzielen. Der einzige Weg, dies zu erreichen, besteht darin, die Vorschläge des Google Speed-Tools zu prüfen und sorgfältig zu analysieren und diese jeweils unabhängig voneinander anzusprechen.
Einige Dinge, die ich getan habe, um 95 in einer sehr aktiven Nachrichtenseite zu erreichen , die zu dem Zeitpunkt, als ich dies schrieb, besser abschnitt als Nytimes (jetzt nicht):
quelle