WordPress高速化研究所 > WordPress CSS読み込み最適化ガイド|速度と表示崩れを防ぐ実装手順

WordPress CSS読み込み最適化ガイド|速度と表示崩れを防ぐ実装手順

2026年10月3日

•約18分で読めます

WordPressでCSSの読み込み順、未使用CSS、レンダリングブロック、テーマやプラグイン由来CSSを整理し、表示速度と表示崩れを改善する実装手順を解説します。

WordPress
CSS
表示速度改善
Core Web Vitals
保守改善
助手
助手

WordPressのCSS読み込みを最適化したいです。CSSを圧縮したり、未使用CSSを削除したりすればよいですか?

博士
博士

それだけでは危ないのじゃ。WordPressでは、テーマ、子テーマ、ブロック、プラグイン、フォーム、ページビルダーのCSSが重なっておる。まず、どのCSSがどのページで必要なのかを棚卸しするのじゃ。

WordPressのCSS読み込みは、表示速度だけでなく、表示崩れにも直結します。

CSSが多すぎると、初期表示前にブラウザが処理する量が増えます。読み込み順が曖昧だと、あとから来たCSSでボタン、フォーム、メニュー、CTAの見た目が上書きされます。不要CSSを強引に止めると、ページは速くなったように見えても、問い合わせフォームやスマホメニューが崩れることがあります。

そのため、CSS最適化は「軽くする作業」ではなく、「必要なCSSを、必要なページで、壊れない順番で読む設計」です。

WordPressでは、CSSの読み込みにwp_enqueue_styleを使い、wp_enqueue_scriptsフックで登録するのが基本です。テーマでCSSとJavaScriptを含める方法は、WordPress公式のIncluding CSS & JavaScriptにも整理されています。

WordPressのCSS読み込み最適化は、圧縮や削除より先に、読み込み元、依存関係、必要ページ、表示崩れの確認手順を決める作業です。

WordPressのCSS読み込みを棚卸しし、wp_enqueue_style、不要CSS停止、critical CSS、preload、Core Web Vitals、CV導線確認へ進む流れ

この記事では、特定の高速化プラグイン設定ではなく、wp_enqueue_style、CSS棚卸し、wp_dequeue_style、critical CSS、preload、LCP/CLS/INP、フォーム・メニュー・CTA確認、保守しやすいCSS整理までを、運用手順として整理します。

WordPressでCSS読み込みが速度と表示崩れに効く理由

助手
助手

CSSは見た目のファイルですよね。表示速度にもそんなに影響しますか?

博士
博士

影響するのじゃ。CSSは見た目を整えるだけでなく、ブラウザがページを描く前に読む重要な材料じゃ。ここが重いと、最初の表示も、表示中の安定性も悪くなるのじゃ。

CSSは、HTMLを画面に描画する前後でブラウザが解釈するファイルです。必要なCSSが多いほど、ダウンロード、解析、適用に時間がかかります。逆に、必要なCSSが遅れて届くと、最初は崩れた状態で表示され、あとからレイアウトが変わることがあります。

WordPressでは、CSSが複数の場所から出ます。

読み込み元 よくあるCSS 起きやすい問題
テーマ 全体レイアウト、見出し、ボタン、ヘッダー 使っていない機能のCSSまで全ページで読む
子テーマ 上書きCSS、追加レイアウト 読み込み順が悪く、親テーマに負ける
ブロック ブロックごとのスタイル 記事ページでCSSが増える
フォームプラグイン 入力欄、確認画面、エラー表示 フォーム以外のページでも読み込まれる
ページビルダー セクション、アニメーション、レスポンシブ CSS量が増えやすい
解析・外部埋め込み ウィジェットやバナー用CSS どのページで必要か見えにくい

Core Web Vitalsの観点では、CSSは主にLCPとCLSに影響します。LCPでは、ファーストビューの主要コンテンツが表示されるまでの時間に関係します。CLSでは、あとからCSSやフォントが適用されてレイアウトが動くと悪化します。INPはJavaScriptの影響が大きい指標ですが、重いスタイル計算や画面更新が絡むと操作感にも影響します。

web.dev: Web Vitals

CSS読み込みの問題は「少し重い」だけでなく、ファーストビューの遅延、表示中のガタつき、CTAやフォームの見た目崩れとして表れます。

最初に見るべきなのは、CSSのファイルサイズだけではありません。どのCSSが、どのページで、どの順番で、何のために読み込まれているかです。

wp_enqueue_styleで読み込み順と依存関係を整理する

助手
助手

CSSはheader.phpにlinkタグを書けば早いですか?

博士
博士

直接書くと、あとで順番や依存関係が見えにくくなるのじゃ。WordPressでは、まずwp_enqueue_styleで管理するのが基本じゃ。

WordPressでテーマやプラグインのCSSを読むときは、基本的にwp_enqueue_styleを使います。$handleでCSSに名前を付け、$depsで依存関係を指定し、$verでキャッシュ更新を制御し、$mediaで適用対象を指定できます。

たとえば、テーマの基本CSS、部品CSS、フォーム用CSSを分けるなら、次のように考えます。

function bitlight_theme_enqueue_styles() {
    wp_enqueue_style(
        'bitlight-base',
        get_stylesheet_uri(),
        array(),
        wp_get_theme()->get( 'Version' )
    );

    wp_enqueue_style(
        'bitlight-components',
        get_template_directory_uri() . '/assets/css/components.css',
        array( 'bitlight-base' ),
        filemtime( get_template_directory() . '/assets/css/components.css' )
    );

    if ( is_page( 'contact' ) ) {
        wp_enqueue_style(
            'bitlight-contact',
            get_template_directory_uri() . '/assets/css/contact.css',
            array( 'bitlight-components' ),
            filemtime( get_template_directory() . '/assets/css/contact.css' )
        );
    }
}
add_action( 'wp_enqueue_scripts', 'bitlight_theme_enqueue_styles' );

この例で重要なのは、CSSを細かく分けること自体ではありません。bitlight-componentsはbitlight-baseの後に読み、bitlight-contactは問い合わせページだけで読む、という意図をコード上に残していることです。

項目 整理する意味
handle 後から止める、依存させる、調査する単位になる
deps 親テーマ、部品CSS、上書きCSSの順番を明示できる
ver CSS更新時に古いキャッシュを残しにくくする
media 印刷用、画面用などの読み込み意図を分けられる
条件分岐 フォームやLPなど必要ページだけにCSSを出せる

wp_enqueue_styleの目的は、CSSを読み込むことだけではなく、読み込み順、依存関係、更新管理、ページ別出し分けを保守できる形にすることです。

既存サイトでは、まずheader.phpに直接書かれたlinkタグ、テーマ設定から出ているCSS、プラグインが出しているCSSを確認し、WordPressのキューで管理できるものと、外部仕様上そのままにするものを分けます。

テーマ・プラグイン由来CSSを棚卸しする

助手
助手

どのCSSが不要なのか、どうやって判断すればよいですか?

博士
博士

いきなり消してはいかんのじゃ。まず荷札を付けるのじゃ。テーマ由来か、プラグイン由来か、フォーム用か、記事用かを分けるのじゃ。

CSS棚卸しでは、ファイル名だけで判断しないようにします。style.css、frontend.css、main.cssのような名前では、どの機能に必要なCSSなのか分かりません。

まず、重要URLごとに読み込まれているCSSを記録します。

URL種別 確認する理由 見るCSS
トップページ LCPとファーストビューに影響しやすい テーマ、メインビジュアル、ページビルダー
サービスページ・LP CTAとCVに直結する CTA、フォーム導線、アニメーション
記事ページ ブロック、目次、関連記事が増えやすい ブロックCSS、目次、シェアボタン
問い合わせページ フォーム崩れがCVに直結する フォーム、確認画面、エラー表示
管理画面 編集体験と保守に影響する エディタ用CSS、管理画面用CSS

Chrome DevToolsのNetworkでCSSファイル一覧を見て、Coverageで未使用量の目安を確認します。ただし、Coverageで未使用に見えるCSSをそのまま削除してはいけません。モーダル、エラー表示、確認画面、スマホメニュー、フォームバリデーション、ログイン状態、検索結果など、初期表示では出ていない状態に必要なCSSがあります。

棚卸しでは、次のようなメモを残します。

handleまたはファイル 由来 必要ページ 注意点
theme-style 親テーマ 全ページ レイアウトの土台
child-style 子テーマ 全ページ 上書き順に注意
contact-form-7 フォームプラグイン 問い合わせ、資料請求 エラー表示も確認
slider-front スライダー トップのみ トップ以外では不要候補
block-library WordPressコア 記事、固定ページ ブロック利用状況で判断

CSS棚卸しでは、未使用率だけで削除を決めず、ページ種別、状態変化、フォームエラー、スマホメニュー、CTA表示まで含めて必要性を判断します。

このメモがあると、あとでwp_dequeue_styleを使う場合も、どのhandleをどの条件で止めるのかを説明できます。保守担当者が変わっても、なぜ止めているのかを追いやすくなります。

不要CSSを止める判断基準とwp_dequeue_styleの使い方

助手
助手

不要そうなCSSは、wp_dequeue_styleで止めればよいですか?

博士
博士

止める前に、そのCSSの仕事を確認するのじゃ。不要に見えるCSSほど、フォームのエラー表示やスマホメニューの裏側で働いていることがあるのじゃ。

CSSを止める候補になるのは、特定ページでしか使わないのに全ページで読み込まれているCSSです。たとえば、フォームCSS、スライダーCSS、地図ウィジェットCSS、特定LP用CSS、予約システムのCSSなどです。

WordPressには、キューに入ったCSSを外すwp_dequeue_styleがあります。使うときは、対象CSSのhandleを確認し、プラグインやテーマがCSSを登録した後のタイミングで実行します。

function bitlight_dequeue_unused_styles() {
    if ( ! is_page( array( 'contact', 'request' ) ) ) {
        wp_dequeue_style( 'contact-form-7' );
    }

    if ( ! is_front_page() ) {
        wp_dequeue_style( 'top-slider-style' );
    }
}
add_action( 'wp_enqueue_scripts', 'bitlight_dequeue_unused_styles', 100 );

このコードはあくまで形の例です。実際のhandle名はサイトごとに違います。確認せずにコピーすると効かないか、必要なCSSを止めてしまいます。

止める判断では、次を確認します。

判断項目 確認内容
handleを特定したか DevTools、HTML、wp_styles、プラグイン資料で確認する
必要ページを分けたか フォーム、LP、記事、トップ、会員ページを分ける
状態変化を見たか エラー、確認画面、開閉メニュー、モーダルを確認する
スマホを見たか PCだけでなく実機またはモバイル幅で確認する
戻し方があるか 変更前の状態、コード差分、キャッシュ削除手順を残す

wp_dequeue_styleは高速化の便利な道具ですが、handle、必要ページ、状態変化、戻し方が分からないCSSには使わない方が安全です。

特にフォーム系CSSは慎重に扱います。入力欄は崩れていなくても、エラー表示、確認画面、送信完了、reCAPTCHA、同意チェック、必須ラベルだけが崩れることがあります。CSSを止めたら、フォーム送信まで確認して初めて完了です。

critical CSSとpreloadを使う場面

助手
助手

critical CSSやpreloadは、全部のCSSに使った方が速くなりますか?

博士
博士

全部に使うものではないのじゃ。最初に見える部分だけを早く描くための道具じゃ。使いすぎると、かえって保守が難しくなるのじゃ。

critical CSSは、ファーストビューを描くために最低限必要なCSSだけを先に読ませる考え方です。preloadは、ブラウザに「このリソースは早めに取りに行ってよい」と伝える仕組みです。

どちらも、使う場面を選ぶ必要があります。

手法 向いている場面 注意点
critical CSS LCP対象の見出し、メイン画像周辺、ヘッダー、CTAの初期表示 手作業で増やすと通常CSSと二重管理になる
CSS preload 遅れてほしくない主要CSSを早めに取得したい 読み込み順やフォールバック確認が必要
page-specific CSS フォームやLPだけで必要なCSSを分離したい ページ条件の保守が必要
unused CSS削減 明らかに使っていない部品CSSが多い 状態変化や別テンプレートを確認する

WordPressでcritical CSSを扱う場合は、手作業でwp_headに長いCSSを直接書き続けると保守が崩れます。ビルド工程で生成する、対象ページを限定する、通常CSSと重複しすぎないようにする、更新時に見直す、という運用まで考えます。

preloadも同じです。LCPに関係するCSSやフォントを早く読みたい場合に検討しますが、すべてのCSSをpreloadすると、ブラウザの優先順位を逆に乱すことがあります。まずNetworkで読み込み順を見て、どのCSSが遅れているのかを確認します。

critical CSSとpreloadは、全ページに一律で足す高速化テクニックではなく、LCP対象とファーストビューを確認してから使う限定的な手段です。

実務では、最初にCSSを減らす、必要ページだけで読む、読み込み順を直す、画像やフォントの影響を見る、という基本を済ませます。それでもファーストビューが遅い場合に、critical CSSやpreloadを検討します。

LCP/CLS/INPとCV導線で検証する

助手
助手

CSSを整理したら、PageSpeed Insightsの点数だけ見れば合格ですか?

博士
博士

点数だけでは足りんのじゃ。速くなっても、問い合わせボタンが崩れたり、フォームが使いにくくなったりしたら失敗じゃ。CV導線まで見るのじゃ。

CSS読み込み最適化の検証では、Core Web VitalsとCV導線をセットで見ます。

指標・導線 CSSで見ること 確認方法
LCP ファーストビューの主要要素がCSS待ちになっていないか PageSpeed Insights、DevTools Performance
CLS CSSやフォント適用後に見出し、画像、CTAが動かないか Lighthouse、実機スクロール
INP メニュー開閉やフォーム操作で重い再描画が起きないか 実機操作、Performance
フォーム 入力、確認、エラー、送信完了が崩れないか テスト送信
CTA ボタンの位置、余白、タップ範囲、クリック計測が正しいか スマホ実機、GA4/GTM
メニュー ハンバーガー、ドロップダウン、固定ヘッダーが動くか モバイル幅、実機

PageSpeed Insightsの点数は参考になりますが、CSS整理の合格条件にはなりません。特に、unused CSS削減やCSS遅延読み込みは、見た目が一瞬崩れてから整う、スマホでだけCTAが下に落ちる、フォームのエラー表示だけ崩れる、といった問題を起こすことがあります。

検証では、変更前後で同じURLを見ます。

  1. トップページ
  2. サービスページまたはLP
  3. 記事ページ
  4. 問い合わせフォーム
  5. スマホメニューがあるページ
  6. CTAが複数あるページ

CSS最適化の完了条件は、LCP、CLS、INPの改善だけでなく、フォーム、メニュー、CTA、計測イベントが壊れていないことです。

CSSは、ユーザーが見る画面の最後の仕上げです。速度だけを見てCSSを削ると、売上に近い導線の信頼感を落とすことがあります。

フォーム・メニュー・CTAの崩れチェックリスト

助手
助手

具体的にどこを見れば、表示崩れを見落としにくいですか?

博士
博士

人が触る場所を見るのじゃ。フォーム、メニュー、CTA、電話ボタン、エラー表示じゃ。眺めるだけではなく、実際に操作するのじゃ。

CSS読み込みを変えた後は、主要ページを眺めるだけでは足りません。操作しながら確認します。

確認箇所 見るポイント よくある不具合
ハンバーガーメニュー 開閉、重なり、背景固定、スクロール メニューが開かない、下に隠れる
グローバルナビ hover、現在地表示、ドロップダウン 余白が崩れる、クリック範囲が狭い
CTAボタン 色、余白、中央揃え、タップ範囲 ボタンが小さい、折り返しが崩れる
問い合わせフォーム 入力欄、ラベル、必須表示、エラー エラーだけ赤くならない、幅がはみ出す
確認・完了画面 確認テーブル、戻るボタン、完了文 確認画面だけCSSがない
固定CTA 追従位置、閉じる操作、スマホ下部 フォーム入力を隠す
計測タグ CTAクリック、フォーム完了、電話クリック 見た目は正常でもイベントが消える

スマホでは、次の幅で確認すると見落としを減らせます。

幅 確認したいこと
360px前後 小さめスマホでボタン文言が折り返しても崩れないか
390px前後 一般的なスマホ幅でCTAとフォームが読めるか
768px前後 タブレットや境界幅でメニューが破綻しないか
1024px以上 PC向けナビ、横並びCTA、フォーム幅が安定するか

CSS読み込みを変えた後は、見た目のスクリーンショットだけでなく、フォーム送信、メニュー開閉、CTAクリック、スマホ幅の確認まで行います。

特に問い合わせページは、速度改善のために壊してはいけないページです。フォームCSSをページ限定にする場合でも、入力、確認、エラー、完了、通知メール、計測イベントまで確認します。

保守しやすいCSS整理とWordPress高速化相談

助手
助手

一度CSSを整理したら、その後は何を残しておけばよいですか?

博士
博士

なぜ分けたのか、どこで読んでいるのか、何を触ると危ないのかを残すのじゃ。速くするだけでなく、次の改修で壊れにくくするのが保守じゃ。

CSS読み込み最適化は、一度の作業で終わりではありません。WordPressは、記事追加、LP追加、フォーム追加、プラグイン更新、テーマ改修、計測タグ追加でCSSの状態が変わります。

保守しやすくするには、次の形に整理します。

整理対象 保守しやすい状態
CSSファイル 全体、部品、ページ固有、フォーム固有の役割が分かれている
handle名 何のCSSか分かる名前になっている
条件分岐 is_pageやテンプレート条件の理由が説明できる
dequeue設定 止めたCSS、止める条件、確認済みページが残っている
critical CSS 生成元、対象ページ、更新手順が決まっている
preload 対象リソースと理由が記録されている
検証メモ LCP/CLS/INP、フォーム、メニュー、CTAの確認結果がある

避けたいのは、!importantで上書きを重ねる、使っていないCSSを残したままさらに追加する、ページごとの例外がどこにあるか分からない、という状態です。短期的には動いても、次の改修で崩れやすくなります。

保守しやすいCSS整理とは、CSS量を減らすだけでなく、読み込み理由、止めた理由、確認した導線を次の担当者が追える状態にすることです。

Bitlightでは、WordPress高速化を単なるスコア改善ではなく、保守改善として扱います。CSS読み込み、テーマ改修、プラグイン由来CSS、フォーム・メニュー・CTAの表示確認、Core Web Vitalsの再測定まで、壊さず改善する手順に分解できます。

助手
助手

CSS読み込みの整理は、技術的な軽量化と、問い合わせ導線を守る確認作業の両方なんですね。

博士
博士

その通りじゃ。WordPressは、速くするほど壊れやすい場所も見えてくるのじゃ。だから、CSSを減らすだけでなく、必要なCSSを必要な場所で読む設計にするのじゃ。

WordPress高速化・保守改善支援

CSS読み込み整理からWordPress高速化と保守改善まで支援します

表示速度、Core Web Vitals、フォーム・メニュー・CTAの崩れ確認、テーマ保守まで、壊さず改善する手順に落とし込みます。

著者
守高 成悟
守高 成悟

代表取締役 CEO

千葉県出身。10歳の頃からプログラミングを始め、ゲーム、Webサイト、ロボット、スマホアプリなどを制作。大阪大学基礎工学部情報科学科で情報工学と統計学を学び、大学時代はAIを研究。大学在学中にWeb広告代理店でのインターンや人材系Webサービスの立ち上げを経験し、卒業後はフリーランスエンジニアとしてGISシステム、データ基盤構築、Webシステムの開発に従事。10年以上のWebアプリ開発・データ分析経験を基に、2023年9月に株式会社ビットライトを設立し、現場業務の仕組み化からデータ基盤構築、データ活用支援までを一気通貫で支援。

運営会社
株式会社ビットライト
株式会社ビットライト

顧客が本当に必要だった価値を、実装する。

現場業務の仕組み化からデータ基盤構築、データ活用支援までを一気通貫で支援しています。

コーポレートサイトを見る
WordPress高速化相談

表示速度が遅い原因を相談できます

既存WordPressの速度低下、画像、キャッシュ、JS/CSS、プラグイン、DB、PHP、サーバーまで、直す順番を整理します。