私はDrupal 7サイトを構築しています。これらは私が使用するいくつかのモジュールです:アダプティブテーマ(テーマ)、ビューとコンテンツペイン、パネル、ミニパネル、どこでもパネル、ページマネージャー、メニューのSuperfish 、Addthis、Chosen(ドロップダウン)。
サイトのパフォーマンスを改善し、CSSファイルとJSファイルを処理するために、 Advagg module を使用しています。
Googleの Pagespeedテストを実行すると、 「Should Fix」として次のエラーが発生します。
fold-the-foldでレンダリングをブロックするJavaScriptとCSSを排除します
contentページには、6つのブロックスクリプトリソースと8つのブロックCSSリソースがあります。これにより、ページのレンダリングが遅延します。
次のリソースが読み込まれるのを待たずに、ページのスクロールせずに見えるコンテンツをレンダリングできませんでした。ブロッキングリソースを遅延または非同期にロードするか、それらのリソースの重要な部分を直接HTMLにインライン化してください。
これはGoogleが提供する情報です。
AdvaggモジュールまたはDrupalコアの設定を変更して、この問題を解決する方法はありますか?
この目標を達成する別の方法はありますか?
更新-mikeytown2回答に従って変更を実装した後、GoogleのPagespeedテストで次のメッセージが表示されました:
スクロールせずに見えるコンテンツのレンダリングをブロックするJavaScriptとCSSを削除します
ページには6つのブロックスクリプトリソースと4つのブロックCSSリソースがあります。これにより、ページのレンダリングが遅延します。
次のリソースが読み込まれるのを待たずに、ページのスクロールせずに見えるコンテンツをレンダリングできませんでした。ブロッキングリソースを遅延または非同期にロードするか、それらのリソースの重要な部分を直接HTMLにインライン化してください。
[〜#〜] readme [〜#〜] には、現在の 7.x-2.31 +バージョンのAdvAgg を使用してこれを行う方法に関するガイドがあります。 High PerformanceグループのこのWikiページ も参照してください。ほとんどのサイトは https://developers.google.com/speed/pagespeed/insights/ で完全な100/100スコアを達成できます。以下のAdvAggの新規インストールでそれを達成する方法の指示。
すべてのセクションの後でサイトをチェックして、変更がサイトを台無しにしていないことを確認してください。 AdvAgg Modifierでの変更は通常、最も問題の多いものですが、最大の改善をもたらします。
admin/config/development/performance/advagg
に移動
有効になっていない場合はAdvAgg Compress Javascriptをインストールし、admin/config/development/performance/advagg/js-compress
に移動します
有効になっていない場合はAdvAgg Async Font Loaderをインストールし、admin/config/development/performance/advagg/font
に移動します
有効になっていない場合はAdvAgg Bundlerをインストールし、admin/config/development/performance/advagg/bundler
に移動します
HTTP/2.0設定
HTTP/1.1設定(デフォルト)
25バンドル対2および5は、ブラウザーのキャッシュに関係しています。ファイルの数が多いほど、ブラウザがキャッシュにそのコンボを持っている可能性が高くなりますが、ファイルの数が多いほど、HTTP 1.1で確立されて開かれる接続が多くなります。この番号は新しい接続を待機しないため、CSSには2を使用します。ほとんどのブラウザーの同時接続制限は6であるため、JSは5です。バンドルのこの数は、多くのテストの後に選択されました。 HTTP 2.0では1つのストリーミング接続があり、複数のCSSおよびJSファイルのペナルティはほとんどありません。したがって、ブラウザのキャッシュを最適化するのが最良の選択です。したがって、HTTP/2.0を提供する場合は、CSSおよびJSに25を使用する必要があります。
有効になっていない場合はAdvAgg Relocateをインストールし、admin/config/development/performance/advagg/relocate
に移動します
有効になっていない場合はAdvAgg Modifierをインストールし、admin/config/development/performance/advagg/mod
に移動します
https://www.sitelocity.com/critical-path-css-generator にアクセスし、重要なCSSに必要な数のランディングページを入力します。通常、トップ10が良いスタートです。 Google Analyticsを使用している場合、これにより、トップランディングページを見つける方法が表示されます https://developers.google.com/analytics/devguides/reporting/core/v3/common-queries#top-landing-pages またはPiwikの場合 https://piwik.org/faq/how-to/faq_160/ 。どのページから始めればよいかわからない場合は、サイトのホームページをご覧ください。これを使用してcssを生成することもできます https://chrome.google.com/webstore/detail/critical-style-snapshot/gkoeffcejdhhojognlonafnijfkcepob?hl=en
以下のファイル名とパスの例は、「ブートストラップ」テーマ用です。それらはすべてsites/all/themes/bootstrap/critical-css/
で始まります。テーマにcritical-css/
ディレクトリを作成します。次のディレクトリはユーザーに基づいています。 anonymous/
、all/
、またはauthenticated/
を使用できます。
次のディレクトリはurls/
またはtype/
です。 urls/
を見るフロントはフロントページの特殊なケースです。他のすべてのパスは、末尾に.css
が追加されたディレクトリおよびファイル名としてcurrent_path()を使用します。 https://api.drupal.org/api/drupal/includes%21path.inc/function/current_path/7.x を参照してください
type/
を見ると、これはノードタイプの特殊なケースです。マシン名を使用して、末尾に.css
を追加します。このタイプのノードには、この重要なcssファイルが適用され、インライン化されます。以下は、これがどのように機能するかを示すいくつかの例です。
「フロント」ページの有効なサンプルファイルの場所:sites/all/themes/bootstrap/critical-css/anonymous/urls/front.css
"node/1" current_path()ページの有効なサンプルファイルの場所:sites/all/themes/bootstrap/critical-css/anonymous/urls/node/1.css
「ページ」のノードタイプの有効なサンプルファイルの場所:sites/all/themes/bootstrap/critical-css/anonymous/type/page.css
これらのcssファイルを生成する何らかの自動化された方法が必要な場合は、fourkitchensがその設定方法に関する優れた記事を持っています: https://fourword.fourkitchens.com/article/use-grunt-and-advagg-inline -critical-css-drupal-7-theme
ビルド済みのdrupalモジュールを使用して、本当に高いスコアを取得することはありません。これを達成する唯一の方法は、 google speed tool によって提案されたそれぞれに参加して注意深く分析することです、それぞれに個別に対処します。
非常にアクティブなニュースサイト で95を達成するために行ったいくつかのことは、私がこれを書いた時点では nytimes より優れていました(今はそうではありません)。