WordPressの表示速度を上げる、プラグインなしの高速化チェックリスト

WordPressサイトの表示速度は、SEOやユーザー体験に直結します。速度改善というと、すぐに高速化プラグインを導入しがちですが、プラグインを増やすほど、それ自体が負荷や不具合の原因になることもあります。

実は、WordPressが標準で出力している「不要なもの」を止める、画像を適切に扱う、キャッシュを正しく設定する、といった基本の対策だけで、体感速度は大きく変わります。この記事では、プラグインを増やさずにできる高速化を、チェックリスト形式でまとめます。

高速化に取りかかる前に:現状を計測する

対策の効果を確かめるには、最初に現状の数値を記録しておく必要があります。次のツールを使うと、ボトルネックが分かります。

  • PageSpeed Insights:Googleが提供する計測ツール。モバイルとPCの両方でスコアと改善案を確認できる。
  • Chromeのデベロッパーツール(Networkタブ):読み込まれるファイルの種類・サイズ・順序を確認できる。
  • Lighthouse:Chromeに内蔵された診断機能。

特に、表示速度の指標であるLCP(最大コンテンツの表示時間)、CLS(レイアウトのずれ)、INP(操作への反応)を意識して見てください。「何が重いか」が分かってから対策すれば、効率よく改善できます。

対策1:不要な標準出力を止める

WordPressは、使っていなくても、多くのスクリプトやタグをページに出力します。これらを無効にすると、読み込むファイルが減ります。mu-pluginまたはfunctions.phpに、次のように記述します。

絵文字スクリプトを停止する

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'wp_enqueue_scripts', 'wp_enqueue_emoji_styles' ); // WordPress 6.4以降
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );

絵文字を変換するJavaScriptとCSSが不要になります。最近のブラウザは、絵文字を標準で表示できるため、停止しても問題ありません。なお、WordPress 6.4以降は、絵文字CSSの出力が wp_enqueue_emoji_styles に移り、print_emoji_styles は非推奨になっています。そのため、上のコードは両方を記述しています。

embed(埋め込み)機能を停止する

add_action( 'wp_footer', function () {
	wp_dequeue_script( 'wp-embed' );
} );

他のWordPressサイトの記事URLを貼って、カード形式で埋め込み表示する機能を使わない場合は、不要です。

head内の不要なリンクを削除する

remove_action( 'wp_head', 'wp_generator' );          // WordPressのバージョン情報
remove_action( 'wp_head', 'wlwmanifest_link' );      // Windows Live Writer
remove_action( 'wp_head', 'rsd_link' );              // 外部ツール用
remove_action( 'wp_head', 'wp_shortlink_wp_head' );  // 短縮URL

速度への影響は小さく、バージョン情報を隠す効果も限定的ですが、HTMLの出力が整理されます。

ブロックエディターのCSSを外す

クラシックエディターや、独自のレイアウトで運用しているサイトでは、ブロック用のCSSが不要な場合があります。

add_action( 'wp_enqueue_scripts', function () {
	wp_dequeue_style( 'wp-block-library' );
	wp_dequeue_style( 'wp-block-library-theme' );
	wp_dequeue_style( 'global-styles' );
}, 100 );

ただし、ブロックエディターで記事を作成しているサイトでは、レイアウトが崩れる原因になります。外す前に、全種類のページを確認してください。

対策2:画像を最適化する

ページの重さの大半は画像です。画像の対策は、効果が最も大きい項目といえます。

適切なサイズで読み込む

表示サイズが幅600pxなのに、4000pxの画像を読み込んでいるサイトは多くあります。アップロード前にリサイズするか、WordPressが生成する中サイズ・大サイズを使い分けましょう。WordPressは、srcset 属性を自動で出力するため、wp_get_attachment_image() など標準関数で画像を出力すれば、端末に合ったサイズが選ばれます。

WebP形式を使う

WebPは、JPEGやPNGより軽量な画像形式です。WordPress 5.8以降は、WebPのアップロードに標準で対応しています。サーバーが対応していれば、アップロード時にWebPへ変換することもできます。

遅延読み込み(lazy load)を使う

WordPressは、画像に loading="lazy" を自動で付与します。画面に入るまで画像を読み込まない仕組みです。ただし、ファーストビューの画像(メインビジュアルなど)には付けないようにしてください。WordPress 6.3以降は、最初の画像を自動で判定して調整する仕組みも入っていますが、テーマによっては効かないことがあるため、メインビジュアルの出力は自分で確認しましょう。最初に見える画像まで遅延させると、LCPが悪化します。

// ファーストビューの画像は遅延させない
echo wp_get_attachment_image( $id, 'large', false, array(
	'loading'       => 'eager',
	'fetchpriority' => 'high',
) );

幅と高さを指定する

width と height 属性を指定していないと、画像の読み込み後にレイアウトがずれて、CLSが悪化します。標準関数で出力すれば自動で付与されるため、手書きのimgタグを使う場合は注意してください。

対策3:CSS・JavaScriptの読み込みを見直す

不要なプラグインのスクリプトを、必要なページだけにする

お問い合わせフォームのプラグインなどは、サイト全体でCSSとJavaScriptを読み込むことがあります。フォームのあるページ以外では読み込まないようにすると、無駄が減ります。

add_action( 'wp_enqueue_scripts', function () {
	if ( ! is_page( 'contact' ) ) {
		wp_dequeue_style( 'contact-form-7' );
		wp_dequeue_script( 'contact-form-7' );
	}
}, 100 );

ハンドル名はプラグインによって異なります。ページのソースや、デベロッパーツールで読み込まれているファイル名から、確認してください。

JavaScriptをdeferで読み込む

JavaScriptがページの描画をブロックするのを避けるため、defer 属性を付けて読み込みます。WordPress 6.3以降は、wp_enqueue_script() の引数で、読み込み方法を指定できます。

wp_enqueue_script( 'my-script', get_theme_file_uri( '/js/main.js' ), array(), '1.0', array(
	'strategy'  => 'defer',
	'in_footer' => true,
) );

jQuery Migrateを外す

古いjQueryのコードとの互換性のためのファイルですが、最近のテーマでは不要なことが多いです。

add_action( 'wp_default_scripts', function ( $scripts ) {
	if ( ! is_admin() && isset( $scripts->registered['jquery'] ) ) {
		$scripts->registered['jquery']->deps = array_diff(
			$scripts->registered['jquery']->deps,
			array( 'jquery-migrate' )
		);
	}
} );

外したあとに、スライダーなどのjQuery依存の機能が動くか確認してください。

対策4:キャッシュを正しく設定する

ブラウザキャッシュ

画像・CSS・JavaScriptなどの静的ファイルに有効期限を設定すると、2回目以降の訪問で再ダウンロードが不要になります。Apacheなら、.htaccess に次のように記述します。

<IfModule mod_expires.c>
	ExpiresActive On
	ExpiresByType image/jpeg "access plus 1 year"
	ExpiresByType image/webp "access plus 1 year"
	ExpiresByType text/css "access plus 1 month"
	ExpiresByType application/javascript "access plus 1 month"
	ExpiresByType text/javascript "access plus 1 month"
</IfModule>

レンタルサーバーによっては、管理画面にキャッシュや高速化の設定があります。サーバー側の機能のほうが効率的な場合が多いため、まず確認してみましょう。

圧縮(gzip・Brotli)

テキスト系ファイルを圧縮して転送すると、転送量が大きく減ります。多くのサーバーでは標準で有効ですが、PageSpeed Insightsで「テキスト圧縮の有効化」と指摘されたら、設定を確認してください。

ページキャッシュ

ページキャッシュは、生成済みのHTMLを保存して配信する仕組みです。サーバーが備えるキャッシュ機能(LiteSpeedの機能など)を使えば、プラグインを追加せずに利用できます。会員サイトなど、ログインユーザーごとに内容が変わるページは、キャッシュの対象から外す設定を忘れないようにしましょう。

対策5:データベースとサーバー環境

  • リビジョンの数を制限する:wp-config.phpに define( 'WP_POST_REVISIONS', 5 ); と記述すると、保存する履歴の数を抑えられる。
  • 不要なデータを削除する:スパムコメント、ゴミ箱の記事、期限切れのトランジェントを定期的に整理する。
  • PHPのバージョンを上げる:PHP 8系は、PHP 7系より処理が速い。互換性を確認したうえで更新する。
  • 使っていないプラグインを削除する:停止中のプラグインも含め、不要なものは削除する。
  • Webフォントを減らす:読み込むフォントの種類や太さを絞り、font-display: swap を指定する。

効果が大きい順の優先度

すべてを一度に行う必要はありません。次の順で取り組むと、効率よく成果が出ます。

  1. 画像のサイズ・形式の最適化(効果が最も大きい)
  2. ファーストビュー以外の画像の遅延読み込み
  3. キャッシュと圧縮の設定
  4. 不要なスクリプト・CSSの停止
  5. PHPバージョンの更新
  6. データベースの整理

まとめ

WordPressの高速化は、プラグインを足さなくても、多くの改善ができます。

  • まず計測して、ボトルネックを把握する
  • 絵文字・embedなど、使っていない標準出力を止める
  • 画像のサイズ・WebP・遅延読み込みを見直す(ファーストビューは遅延させない)
  • スクリプトは、必要なページだけで、deferで読み込む
  • キャッシュと圧縮は、サーバー機能を優先して設定する

各対策の前後で、必ず表示確認と再計測を行ってください。見た目やフォームの動作が壊れていないことを確認しながら、少しずつ進めるのが、安全に高速化するコツです。

PR当サイトはアフィリエイト広告を利用しています。掲載内容は広告主から依頼・指示を受けたものではなく、筆者の調査・体験にもとづきます。

コメント

タイトルとURLをコピーしました