User Experience(ユーザーエクスペリエンス)を改善する為、最初から何か表示し始めるまで時間は短いほど良いです。目標は、重要なリソースをインライン化し、重要でないリソースを延期し、未使用の物をすべて削除することにより、これらのレンダリングブロックURLの影響を減らすことです。
レンダリングブロックリソースとは?
レンダリングブロックURLはスクリプトとスタイルシート
ブロック<script>
タグ
<head>
の中。defer
属性、async
属性全部がない。
ブロック<link rel="stylesheet">
タグ
disable
属性がない。media
属性がないまたはmedia="all”
重要なリソースを特定する方法
レンダリングをブロックするリソースの影響を減らすための最初のステップは、重要なものとそうでないものを特定することです。Chrome DevToolsの[Coverage]タブを使用してページをロードすると、タブには、ロードされたコードの量と、使用されたコードの量が表示されます。
必要なコードとスタイルのみを返信することで、ページのサイズを縮小できます。 URLをクリックして、[Source]パネルでそのファイルを調べます。 CSSファイルのスタイルとJavaScriptファイルのコードは2色でマークされます:
- 緑(クリティカル):最初のペイントに必要な物。 ページのコア機能にとって重要なコード。
- 赤(重要ではない):すぐには表示されないコンテンツに適用されるスタイル。 ページのコア機能で使用されていないコード。
レンダリングブロックスクリプトを削除する方法
重要なコードを特定したら、そのコードをレンダリングブロックURLからHTMLページのインラインスクリプトタグに移動します。 ページが読み込まれると、ページのコア機能を処理するために必要なものが含まれます。
重要ではないレンダリングブロックURLにコードがある場合は、そのコードをURLに保持してから、async
またはdefer
でURLをマークできます。
必要ないソースは削除した方が良いです。
レンダリングをブロックするスタイルシートを削除する方法
HTMLページの<head>
にある<style>
ブロック内の最初のペイントに必要なインラインクリティカルスタイル。 次に、preload
リンクを使用して残りのスタイルを非同期でロードします。
レンダリングブロックスタイルを排除する別のアプローチは、これらのスタイルをメディアクエリごとに整理されたさまざまなファイルに分割することです。 次に、各スタイルシートリンクにmedia
属性を追加します。 ページをロードするとき、ブラウザは最初のペイントのみをブロックして、ユーザーのデバイスに一致するスタイルシートを取得します。
最後に、いつもCSSを圧縮して、余分な空白や文字を削除する必要があります。これにより、可能な限り最小のバンドルをユーザーに送信します。