
こんにちは!静岡県浜松市でWEBデザイナーをしています小瀧です。
サイトの表示速度やSEOの評価に直結する要素のひとつが CSSの軽量化 です。
開発が進むと
- 使っていないクラスが増える
- 似たようなスタイルが重複する
- メディアクエリが分散して管理が煩雑になる
といった問題が必ず発生します。
このままリリースすれば、無駄なCSSがユーザー体験や検索順位を下げる原因になります。
しかし、最適化は「コードを削るだけ」ではありません。
可読性・保守性を保ちながら軽量化することが重要です。
この記事では、プロが実務で行うCSS最適化テクニックを、具体例とともに紹介します。
1. 使っていないCSSを削除する
プロジェクトが長期化すると、使わなくなったクラスやスタイルが大量に残りがちです。
最もシンプルな軽量化は、未使用CSSの削除です。
- ブラウザのDevTools → Coverage機能で未使用CSSを確認
- PurgeCSSなどのツールでビルド時に不要CSSを削除
- TailwindなどユーティリティCSSではpurge設定を必須化
npx purgecss --css styles.css --content index.html --output dist/
2. セレクタのネストを浅くする
無駄なネストはCSSファイルを肥大化させます。
/* NG */
.header .nav .item .link {
color: #333;
}
/* OK */
.nav-item {
color: #333;
}
クラス名を直接付与し、セレクタの深さを2階層以内に収めるのが理想です。
3. 共通プロパティを変数化(カスタムプロパティ)
色や間隔をCSS変数で管理することで、コード量を減らしつつ一括変更可能になります。
:root {
--main-color: #0072ff;
--space: 1rem;
}
.button {
background: var(--main-color);
margin: var(--space);
}
4. メディアクエリを集約する
バラバラに書かれたメディアクエリを1箇所にまとめると、コードがスリム化し、可読性と保守性が向上します。
@media (min-width: 768px) {
.card {
width: 50%;
}
.nav {
display: flex;
}
}
5. 圧縮(Minify)でサイズを削減
本番環境では必ずCSSをMinify(圧縮)しましょう。
- スペースや改行を削除
- コメント削除
- ファイルサイズを大幅に削減
ビルドツール(Vite, Webpack)やオンラインツールを使えば簡単に自動化できます。
6. CSS Subgrid・コンテナクエリなど新機能活用
最新CSS機能を活用すると、これまでJSや複雑なCSSで対応していたレイアウトがシンプルなコードで書けるようになります。
- Subgridで複雑なレイアウトを親グリッドに合わせる
- Container Queriesで不要なメディアクエリを削減
- :has()でJSレスな状態判定を実現
まとめ
CSS最適化の重要ポイント
・未使用CSSを削除して軽量化
・セレクタは浅く・シンプルに
・変数・集約・圧縮で保守性を高める
・最新仕様を取り入れてコード量削減
・セレクタは浅く・シンプルに
・変数・集約・圧縮で保守性を高める
・最新仕様を取り入れてコード量削減