WordPress 6.8のspeculative loadingを安全に調整する方法

はじめに

ページ表示を少しでも速くしたいとき、画像最適化やキャッシュは着手しやすい一方で、リンク遷移の体感速度までは詰め切れないことがあります。特に記事一覧から詳細へ移る導線では、クリック後の待ち時間が小さくても印象に残りやすいです。

WordPress 6.8 では speculative loading がコアに入り、フロントエンドの遷移をより軽くできるようになりました。初期設定のままでも効果がありますが、サイトの性質に合わせて mode や eagerness を調整できるのが実務では大きいです。

この記事では、標準挙動の整理から、フィルターで安全に調整する実装までをまとめます。

機能やライブラリの概要

speculative loading は、ユーザーが遷移しそうな URL を先読みする仕組みです。WordPress 6.8 では Speculation Rules API を使った実装がコアに入り、ログインしていないフロント画面かつ pretty permalinks が有効な環境で既定動作します。

WordPress 側で見ておきたいポイントは次の3つです。

  • 既定では prefetchconservative を軸にした安全寄りの設定
  • wp_speculation_rules_configuration フィルターで mode と eagerness を調整できる
  • 除外したい URL パターンは専用フックで逃がせる

速度改善のための機能ですが、実務では「どこまで積極的に先読みするか」を制御できることが重要です。

インストール方法

この機能は WordPress 6.8 以降のコア機能なので、追加プラグインは必須ではありません。まずは 6.8 以上であることを確認し、テーマか機能用プラグインにフィルターを追加します。

バージョン確認の目安は次の通りです。

  • wp_speculation_rules_configuration フィルターは 6.8.0 で追加
  • wp_print_speculation_rules() も 6.8.0 で追加
  • 既定ではログイン中ユーザーには適用されません

基本の使い方

まずは設定を少しだけ明示して、既定の auto 判断を固定化する例です。記事一覧やコーポレートサイトのように安全寄りで始めたい場面では、prefetchconservative の組み合わせが扱いやすいです。

PHP

PHP
<?php
add_filter(
	'wp_speculation_rules_configuration',
	function ( $config ) {
		if ( is_admin() ) {
			return $config;
		}

		return array(
			'mode'      => 'prefetch',
			'eagerness' => 'conservative',
		);
	}
);

この形なら、運用チームが意図した設定をコードで固定できます。まず保守寄りの設定で導入し、挙動確認後に強める流れが安全です。

便利な使いどころ

speculative loading が特に効きやすいのは、次のような構成です。

  • 一覧から詳細への移動が多い記事サイト
  • フロントのページ遷移が多い情報サイト
  • ログイン前の閲覧体験を重視したサービス紹介サイト
  • テンプレート構成が比較的揃っていて先読みの恩恵を受けやすいサイト

逆に、クリックだけで副作用が起きやすい画面や、個別条件で除外制御が必要なサイトでは、対象 URL を丁寧に外す設計が向いています。

応用コード

実務では、基本設定を prefetch にしつつ、一部 URL を除外したいことがあります。たとえば会員系ページや検索結果系 URL は先読み対象から外しておくと安心です。

PHP

PHP
<?php
add_filter(
	'wp_speculation_rules_configuration',
	function ( $config ) {
		if ( is_admin() || is_user_logged_in() ) {
			return null;
		}

		return array(
			'mode'      => 'prefetch',
			'eagerness' => 'moderate',
		);
	}
);

add_filter(
	'wp_speculation_rules_href_exclude_paths',
	function ( $exclude_paths ) {
		$exclude_paths[] = '/member/*';
		$exclude_paths[] = '/search/*';
		$exclude_paths[] = '/checkout/*';

		return $exclude_paths;
	}
);

この構成なら、公開向けページは少し積極的に先読みしつつ、状態変化や個別条件を含みやすい URL は除外できます。全ページ一律で強く効かせるより、用途ごとに線引きしたほうが事故を減らしやすいです。

注意点

  • ログイン中や管理画面では無理に有効化しないほうが安全です
    WordPress コアも既定ではその前提で制御しています。
  • prerender は効果が大きいぶん副作用も確認が必要です
    JavaScript 実行や解析処理への影響がある導線では、まず prefetch から始めるほうが堅実です。
  • pretty permalinks が無効な環境では既定動作しません
    導入前に対象サイトのパーマリンク設定を確認しておく必要があります。
  • 除外 URL の設計を先に決めておくと運用が楽です
    会員ページ、検索、購入導線などは初回実装時点で外しておくと調整が進めやすいです。

まとめ

WordPress 6.8 の speculative loading は、設定次第でページ遷移の体感を改善しやすい実務向け機能です。コア標準で入り、フィルターだけで挙動を調整できるので、既存サイトにも比較的入れやすいです。

まずは prefetchconservativemoderate で様子を見て、除外 URL を整えながら適用範囲を広げるのが現実的です。速度改善を急ぐより、事故の出にくい導入順にしたほうが長く運用できます。

ポイント

  • WordPress 6.8 では speculative loading がコア機能として使える
  • wp_speculation_rules_configuration フィルターで挙動を明示的に調整できる
  • 会員ページや検索導線は除外パターンを先に決めると安全

参考リンク

read next