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

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

2026年7月6日

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-componentsbitlight-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.cssfrontend.cssmain.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、サーバーまで、直す順番を整理します。