未使用の CSS を削除します

Lighthouse レポートの [改善案] セクションには、未使用の CSS が含まれ、2 KiB 以上の削減が見込めるすべてのスタイルシートが一覧表示されます。使用していない CSS を削除して、ネットワーク アクティビティによって不必要に消費される通信量を抑えます。

Lighthouse の未使用の CSS 監査の削除のスクリーンショット

未使用の CSS がパフォーマンスを低下させる仕組み

ページにスタイルを追加する一般的な方法は、<link> タグを使用する方法です。

<!DOCTYPE html>
<html>
  <head>
    <link href="main.css" rel="stylesheet" />
    ...
  </head>
</html>

ブラウザがダウンロードする main.css ファイルは、使用する HTML とは別に保存されるため、外部スタイルシートと呼ばれます。

デフォルトでは、ブラウザはコンテンツをユーザーの画面に表示またはレンダリングする前に、検出されたすべての外部スタイルシートをダウンロード、解析、処理する必要があります。スタイルシートにページのスタイルに影響するルールが含まれている可能性があるため、スタイルシートが処理される前にブラウザがコンテンツを表示しようとしても意味がありません。

各外部スタイルシートはネットワークからダウンロードする必要があります。このような余分なネットワーク トラフィックにより、コンテンツが画面に表示されるまでユーザーが待つ時間が大幅に長くなる可能性があります。

未使用の CSS は、ブラウザによるレンダリング ツリーの構築を遅らせます。レンダリング ツリーは DOM ツリーに似ていますが、各ノードのスタイルも含まれます。レンダリング ツリーを構築するには、ブラウザが DOM ツリー全体を走査し、各ノードに適用される CSS ルールを確認する必要があります。未使用の CSS が多いほど、ブラウザが各ノードのスタイルの計算に費やす時間が長くなる可能性があります。

使用されていない CSS を検出する方法

Chrome DevTools の [カバレッジ] タブを使用すると、重要な CSS と重要でない CSS を見つけることができます。 [カバレッジ] タブで使用済みと未使用の CSS を確認するをご覧ください。

Chrome DevTools: [Coverage] タブ
Chrome DevTools: [Coverage] タブ。

クリティカルな CSS をインライン化し、クリティカルでない CSS を先送りする

<script> タグ内のインライン コードと同様に、HTML ページの head にある <style> ブロック内で、First Paint に必要なインライン クリティカル スタイルを行います。次に、preload リンクを使用して残りのスタイルを非同期で読み込みます。

クリティカル ツールを使用して、「スクロールせずに見える範囲」の CSS を抽出してインライン化するプロセスを自動化することを検討してください。

詳しくは、クリティカルではない CSS を先送りするをご覧ください。

スタック固有のガイダンス

Drupal

使用されていない CSS ルールの削除を検討し、必要な Drupal ライブラリのみを関連性の高いページまたはページのコンポーネントに接続してください。詳細については、Drupal のドキュメントをご覧ください。

不要な CSS を追加している接続ライブラリを特定するには、Chrome DevTools でコード カバレッジを実行してみてください。Drupal サイトで CSS の集約が無効になっている場合、スタイルシートの URL から、該当のテーマやモジュールを特定できます。

コード カバレッジが赤色で示されている複数のスタイルシートがリストされているテーマとモジュールに注意してください。テーマとモジュールは、実際にページで使用される場合にのみ、スタイルシート ライブラリをアタッチします。

Joomla

ページで使用されていない CSS を読み込む Joomla 拡張機能の数を減らすか、他の拡張機能に切り替えることをご検討ください。

WordPress

ページで使用されていない CSS を読み込む WordPress プラグインの数を減らすか、他のプラグインに切り替えることをご検討ください。

リソース