ライブラリの棚卸しにBaselineを使うという発想

つくば市のホームページ制作会社

一度入れた外部ライブラリを、あとから見直すことはあまりない。動いているし、テストも通っているし、あえて触る理由がない。ただ、その間にもブラウザ側は動いていて、いま package.json に並んでいるもののうち何割かは、すでにブラウザが自前で持っている機能と重なっている。Smashing Magazine に出た依存関係の棚卸しの記事が、その重なりを具体的な数字で示していて面白かった。

入れたきりの依存が積み上がっていく

記事によると、中規模のJavaScriptアプリでは、圧縮後でおよそ60KBから90KB分の依存が、いまやブラウザ側で代替できる範囲に入っているという。日付や数値の書式、HTTP通信、モーダル、ツールチップ、オブジェクトの複製、配列のグループ化。数年前までは確かに穴だった領域が、順に埋まってきた結果だ。

それでもライブラリが残り続けるのは、怠慢だからではないと筆者は書いている。セキュリティの観点で npm audit は回していても、「このライブラリは今もブラウザにできないことをやっているのか」という問いを立てる機会が、そもそも運用の中に組み込まれていない。だから入れたまま何年も過ぎる。複数サイトの保守を抱えている制作の現場だと、この感覚は身に覚えがあるのではないかと思う。

Baselineという安全度の目盛り

棚卸しの物差しとして使われているのが Baseline だ。WebDX Community Group による指標で、ある機能が主要ブラウザ(Chrome、Edge、Firefox、Safari)でどこまで安全に使えるかを三段階で示す。全エンジンには載っていない「限定的な利用可能性」、出そろった直後の「新しく利用可能」、出そろってから30か月が経った「広く利用可能」という並びになっている。

この30か月の差が、棚卸しでは効いてくる。広く利用可能なものは、基本的に今日そのまま置き換えを検討できる。新しく利用可能な段階のものは、自分のサイトの訪問者層を確かめてから決める話になる。状態は webstatus.dev や、MDN の各機能ページに付いているバッジで引ける。

消す前に通しておきたい三つの問い

「ブラウザができるようになった」と読んで、すぐ削り始めないほうがいい、というのが記事の立場だ。紙の上では無料に見える置き換えが、一部の利用者の環境を静かに壊すことがあるし、気づかずに頼っていた機能を落とすこともある。そこで、削る前に三つ確認する。

ひとつめは、代替となる機能が自分の利用者にとって安全かどうか。一般論としてのBaselineではなく、アクセス解析や browserslist の設定と突き合わせて判断する。社内向けの管理画面と、古い端末からの流入が長く続く一般向けサイトでは、答えが変わる。

ふたつめは、置き換えの費用。ブラウザ側の対応が足りずポリフィルを足すことになり、それが外したライブラリより重ければ、容量は増えている。

みっつめは、ブラウザの機能が実際の使い方をカバーしているか。ライブラリは見た目の似た標準機能より多くの仕事をしていることが多い。記事が挙げているのが axios で、fetch に置き換えると、404や500で拒否されない、共通処理を差し込むインターセプタがない、自動再試行がない、アップロードの進捗が取れない、といった差が出る。実際にどこまで使っているかを見てから決める、という順番になる。

置き換えが効きやすいのは書式と画面部品まわり

記事はライブラリを一個ずつではなく、かたまりで見ていく。いちばん取りやすいのが国際化まわりで、相対時間、数値や通貨の書式、複数形、配列を文章に連結する処理は、ブラウザの Intl 系で大半が置き換えられる。この一群でおよそ14KBという計算だ。ただし継続時間の書式は主要エンジンに出そろったのが2025年3月で、広く利用可能になるのは2027年の見込みとされている。

もうひとつ大きいのが画面部品で、こちらはツールチップやポップオーバーのライブラリまで含めて合計およそ24KB。このうちモーダル用のライブラリ、フォーカスを閉じ込める処理、背景のスクロールを止める処理が、dialog要素とCSSの一行にまとまる。showModal で開けば、フォーカスが中に移り、背後が操作できなくなり、Escapeで閉じ、閉じたあとは元の要素にフォーカスが戻る。重なり順もブラウザが面倒を見るので、z-index と格闘しなくてよくなる。手書きの実装より結果的に読み上げ環境への配慮が行き届く、という指摘もうなずける。

通信まわりも同じ見方ができる。よく使われるHTTPクライアントは圧縮後で17KBから19KBほどあり、単純な取得や送信であれば fetch と中断用の仕組みで足りる。タイムアウトも標準の指定で書ける。ここは前述のみっつめの問いが効く場所で、共通処理や再試行に頼っているなら、外した分を自分で書き直すことになる。

配列やオブジェクトの操作も、グループ化や深い複製、集合の和や積は標準側に入った。一方で debounce と throttle には今も標準の代わりがないので、そこは残す。全部捨てるという話ではなく、ブラウザがすでに持っている部分を二重に配らない、という整理だ。

今は手放さないという判断も同じ枠組みから出る

この記事の良いところは、置き換えない例をきちんと入れているところだ。JavaScriptの日付処理を置き換える Temporal は、2026年3月に仕様策定の最終段階に達し、Firefox と Chrome には載ったが、Safari の安定版にはまだ来ていない。全ブラウザで使うにはポリフィルが要る。

そこで数字を並べると、軽量な日付ライブラリが圧縮後3KB程度なのに対し、公式のポリフィルは44KB前後ある。今すぐ乗り換えると容量は減るどころか増える。三つの問いに通すと、機能の良さでは勝っていても、利用者の範囲と費用で落ちる。だから今は現状維持で、Safari が対応してBaselineに入った時点でもう一度見る。判断を「保留」として記録しておける枠組みは、実務では地味に効く。

ブラウザ側の受け皿は今も増えている

置き換え先が増え続けているのも事実で、Chrome 150では、矢印キーでの移動やフォーカス位置の記憶を属性の指定だけで賄える focusgroup が入った。従来は tabindex を書き換える手書きのスクリプトで実現していた部分だ。文字を枠幅に合わせて拡縮する text-fit や、border-image の回り道なしでグラデーションの枠線を描ける background-clip の新しい値も同じ流れにある。

続く Chrome 151 のベータでは、コンポーネントの内側にある要素を aria-labelledby などから参照できる仕組みや、複合的な部品の中の補助的な操作を支援技術に伝える aria-actions が挙がっている。手書きのJavaScriptで補っていた振る舞いが、少しずつ宣言的な記述に移っていく。

中小企業向けのサイトだと、そもそも巨大な依存を抱えていないことも多い。それでも、テーマやプラグインが読み込んでいるものを一度数えてみる価値はある。四半期に一度、本番に出ている依存だけを並べ、それぞれが実際のビルドでどれだけ容量を占めているかを解析ツールで測り、代わりになる機能のBaselineの状態を確かめる。そのうえで先ほどの三つの問いに通し、いま標準になっているものを返していく。それだけで表示は軽くなり、更新を追いかける対象も減る。まずは一つの分野だけ選んで手元の設定ファイルを開いてみる、という始め方が現実的だと思う。

アップロードした画像の変換がブラウザ側で行われるようになる

つくば市のホームページ制作会社

WordPressで写真をアップロードしたとき、裏側では何が起きているか。サーバー上のPHPが元画像を読み込み、縮小版を何種類か書き出し、必要なら形式を変換している。撮ったままの大きな写真を何十枚もまとめて投げ込むと、この処理が重くて途中で止まる。更新担当が自分で写真を載せている中小企業のサイトでは、よくある詰まりどころだ。

今月中旬に公開が予定されているWordPressの次の版では、この画像処理の担当がサーバーからブラウザに移る。開発チームの解説によると、圧縮、リサイズ、形式変換、回転、サムネイル生成までを、操作している人の手元のブラウザで済ませる仕組みだという。

画像処理のエンジンがブラウザの中で動く

使われているのはwasm-vipsと呼ばれるもので、画像処理ライブラリのlibvipsをWebAssemblyに変換し、ブラウザ上で動かせるようにしたものだ。処理はWeb Workerに逃がしてあるため、変換の最中でも編集画面の操作が固まりにくい。

副次的な効果として、書き出される画像そのものも変わる。libvipsが生成するJPEGは、これまで使われてきたGDやImagickによるものよりおよそ15パーセント小さくなるとされている。サーバーに入っている画像ライブラリの違いで書き出し結果が微妙に変わっていたのが、どの環境でも同じ出力に揃う点も見逃せない。共用サーバーを使う案件が多いほど、この均一さはありがたい。サーバーごとの環境差を吸収するために、書き出し品質の設定を案件別に調整していた人には、手間が一つ減る話でもある。

iPhoneの写真やアニメーションGIFの扱いも変わる

分かりやすいのはHEICへの対応だろう。iPhoneの標準的な写真形式だが、これまではサーバー側の対応状況次第でアップロードできないことがあった。新しい仕組みではブラウザ内でデコードしてJPEGに変換し、元のファイルは別途保持される。

AVIFは10ビットや12ビットといった高階調の元データまで通り、UltraHDRのJPEGはゲインマップを保ったまま各サイズが書き出される。透過のないアニメーションGIFはMP4やWebMの動画に変換され、エディタ側では自動再生とループが効く動画ブロックの派生として挿入される。見た目は元のGIFのままで、ファイルだけが軽くなる形だ。

条件を満たさない環境では今までどおりになる

気になるのは、対応していない環境で何が起きるかという点だが、ここは素直な作りになっている。条件を満たさない場合は従来どおりサーバー側で処理され、切り替えは自動で、画面上の見え方も変わらず、エラーも出ない。判定には端末のメモリ量やCPUのコア数、通信速度、CSPでblobが許可されているかどうかが使われる。

ブラウザ側の条件はやや厳しめだ。SharedArrayBufferを使う都合でDocument-Isolation-Policyに対応したChromium系のブラウザが必要で、FirefoxとSafariは当面サーバー側処理に回る。ただしHEICのデコードだけはSafariでも動く。サイト側で機能ごと止めたい場合はwp_client_side_media_processing_enabledフィルターをfalseにすればよく、big_image_size_thresholdjpeg_qualityといった既存のフィルターもそのまま効くとされている。

制作の現場から見て効いてくるところ

実務でありがたいのは、PHPのメモリ上限に起因するアップロード失敗が減ることだ。画像処理はメモリを食う工程で、共用サーバーの上限に当たって管理画面が真っ白になる相談は今でも珍しくない。その負荷がブラウザ側に移るなら、サーバーの構成を触らずに回避できる場面が増える。手元のパソコンは近年それなりに性能が上がっているので、重い工程を任せる先としては悪くない。

アップロードの粘り強さも上がっている。サイズ違いの書き出しごとにリクエストが分かれ、失敗すれば間隔を空けて自動で再試行する。回線が切れれば一時停止し、つながれば再開する。進捗も画面に出て、読み上げソフトにも伝わる作りだ。出先からスマートフォンで写真を上げる担当者がいるサイトほど、この差は体感しやすいだろう。

正式な公開は今月中旬の予定になっている。普段どおりの写真の投げ方を検証環境でひととおり試し、いつも使っている画像形式が想定どおりに変換されるかを見ておくと、切り替わったあとに慌てずに済む。

読み込み直さない画面切り替えの速さをChromeが測れるようになった

つくば市のホームページ制作会社

サイトの表示速度を測る指標として、Core Web Vitalsはすっかり定着しました。ところが、この指標には長らく穴があると言われてきました。ページを読み込み直さずに中身だけを差し替える作りのサイトでは、最初の一回しか計測されないという問題です。Chromeの最新版で、この部分をブラウザ側で測る仕組みが正式に使えるようになりました。

Chromeの開発者向け資料によると、Soft Navigations APIと呼ばれるこの機能は、試験運用の期間を経て、2026年7月に公開された版から設定を切り替えずに利用できるようになりました。名前のとおり、ソフトナビゲーション、つまり読み込み直さない画面遷移を計測の対象にするものです。

これまで測れていなかった部分

従来のCore Web Vitalsは、ブラウザがURLを開いて新しい文書を読み込む、いわゆる通常の遷移を前提に設計されています。表示までの時間を示すLCP、レイアウトのずれを示すCLS、操作への反応を示すINPは、どれもそのページが開かれた時点を起点に集計されます。

JavaScriptで画面を組み立てる作りのサイトでは、二画面目以降はURLだけが書き換わり、文書の読み込みは起きません。ブラウザから見れば一枚のページがずっと開かれたままなので、二画面目の表示がどれだけ遅くても、最初の一枚の数字に埋もれてしまいます。逆に、最初の表示さえ速ければ全体が良好に見えてしまうこともありました。計測ツール側で独自に区切りを入れる回避策はありましたが、実装ごとに基準が違い、横に並べて比べられる数字にはなりにくい状態でした。

ブラウザはどこで区切りを判断するのか

新しい仕組みでは、ブラウザ自身が三つの条件をもとに画面の切り替わりを見分けます。利用者の操作がきっかけになっていること、利用者から見えるURLの変化を伴うこと、そしてその結果として実際に画面が描き直されること。この三つがそろったときに、ひとつの区切りとして扱われます。

あくまで推測にもとづく判定なので、公式の説明でも、サイトの作り方によっては拾いすぎたり拾いそこねたりすることがあると断っています。それでも、判定の基準がブラウザ側に統一されたこと自体に意味があります。計測ツールを乗り換えても、同じ考え方で区切られた数字が並ぶからです。

計測する側で増えたもの

開発者から見ると、パフォーマンス情報を受け取る仕組みに新しい種類の記録が追加された形になります。切り替わりそのものを表す記録と、切り替わったあとの主要な描画を表す記録が加わり、既存の各種タイミング情報にも何番目の遷移かを示す値が付くようになりました。これで、ひとつの記録がどの画面のものかを判別できます。

ただし、これらを直接扱うのはそれなりに骨が折れます。読み込み直さない遷移では最初の応答までの時間がゼロとして扱われるなど、通常の遷移とは数字の意味が変わる場面もあるためです。Googleが公開している計測用のライブラリweb-vitalsは、新しい版でこのあたりを内部で吸収するようになっており、URLの対応付けや数値のリセットを任せられます。自前で計測基盤を持っているところ以外は、ライブラリの更新に乗るほうが現実的でしょう。

今すぐ効いてくる話ではない

注意しておきたいのは、この計測結果が検索での評価にそのまま反映されるわけではない点です。実利用者のデータを集めたChrome User Experience Reportにも読み込み直さない遷移の分を加えることは目指されていますが、どのような形で反映されるかは未定とされています。対応もChromium系のブラウザに限られます。つまり現時点では、自分たちで測って改善に使うための道具という位置づけになります。

WordPressで作られた一般的な企業サイトのように、リンクを踏むたびにページを読み込み直す作りであれば、直接の影響はほとんどありません。関わってくるのは、予約や検索の絞り込み、会員向けの管理画面など、画面の一部だけを差し替える作りを取り入れている場合です。最近はView Transitionsのように、通常の遷移でもアプリらしい見せ方ができる手段が増えており、境目は少しずつ曖昧になっています。

数字が見えるようになると、これまで感覚で語られていた二画面目が重いという話を、根拠を持って共有できるようになります。制作側と運用側で改善の優先順位を決めるとき、この差は思ったより大きいはずです。

サイト内検索の遷移先を先読みできるChromeの新しい指定

つくば市のホームページ制作会社

ページの表示を速くする手段のひとつに、リンク先を先に読み込んでおく先読み(prerender)がある。ChromeではSpeculation Rules(投機ルール)という仕組みが用意されていて、JSONを数行書くだけで、どのページを先読みするかをブラウザに伝えられる。先読みといっても中身は実際にページを読み込んで表示の準備まで済ませておく処理で、遷移した瞬間に画面が出るのが特徴になる。ただしこれまでは、フォームの送信による画面遷移には効かなかった。7月に安定版へ上がったChrome 151で、その穴が埋まっている。

新しく使えるようになったのは、prerenderのルールに書けるform_submissionというフィールド。サイト内検索のように、送信すると /search?q=… といったGETリクエストの遷移になるフォームを対象に、遷移先をあらかじめ用意しておける。これまでもURLを指定した先読み自体は書けたのだが、実際の遷移がフォーム送信だと用意した先読みを使えず、結局その場で読み込み直しになっていた。ブラウザ側から見れば、使われないページの準備に通信量とCPUを費やしていたことになる。今回の指定は、フォーム送信という遷移の種類そのものを先読み側に伝えるもので、ボタンを押した瞬間に用意済みのページへ切り替えられる。Chromeは146でオリジントライアルとして試したうえで、151からデスクトップとAndroidで正式に有効化した。WebViewは対象外のままとなっている。

サイト内検索を抱えるサイトでの使いどころ

商品検索や記事検索を備えたサイトは、規模を問わず多い。検索結果ページは一覧の組み立てやデータベースへの問い合わせが挟まるぶん、トップページより重くなりやすい。そこを先読みで前倒しできれば、押してから表示までの体感は変わってくる。もっとも、先読みしたのに遷移しなかった分はそのまま無駄になるので、あれもこれもと広げる性質のものではない。先読みは通信環境や省データ設定によってブラウザ側の判断で見送られることもあり、必ず効くものとして設計するより、効いたら速いという上乗せとして扱うほうが無難だと思う。対象を選ぶときは、アクセス解析でよく使われている検索欄はどれかを先に見ておくと判断しやすい。

気をつけたいのはサーバー側の負荷とアクセス解析の扱い。WordPressのサイト内検索は結果がURLごとに散らばるためキャッシュが効きにくく、先読みの指定を広げるとリクエストだけが増えることもある。計測についても、先読みされた時点と実際に表示された時点をどう数えるかはツールによって差がある。また、今回想定されているのは検索フォームのようなGETでの遷移で、POSTで送る問い合わせフォームの類は同じようにはいかない。ChromeのDevToolsには投機ルールの動作を確認する画面があるので、まずはそこで先読みが成立しているかを見ながら、よく使われる検索フォームひとつに絞って試すあたりが現実的なところだろう。

gzipやBrotliに続く圧縮方式zstd、全ブラウザ対応が揃う

つくば市のホームページ制作会社

ウェブページやファイルをブラウザに届けるとき、多くのサーバーは中身を圧縮してから送っている。長年その主役はgzipで、近年はより縮むBrotliが加わってきた。ここに三つ目の選択肢として、zstd(Zstandard)という圧縮方式が本格的に使えるようになりつつある。ChromeやFirefoxはすでに対応済みで、遅れていたSafariも直近のアップデートで足並みをそろえた。主要ブラウザが一通り対応したことで、実務でも検討できる段になってきた。

そもそも転送時の圧縮とは何か

HTMLやCSS、JavaScriptといったテキストは、そのまま送るとサイズが大きい。そこでサーバーは送信前にデータを圧縮し、ブラウザが受け取って展開する。この仕組みが転送時の圧縮で、リクエストのAccept-Encodingヘッダーでブラウザが対応方式を伝え、サーバーがContent-Encodingヘッダーで実際に使った方式を返す。読者から見えないところで、日々のページ表示を支えている土台のような機能だ。

gzipは登場からかなり時間が経っているが、いまも事実上すべての環境で通じる共通語として残っている。Brotliはgzipよりよく縮む方式で、Googleがウェブのために設計した。同じファイルでもより小さくなるため、公開サイトの配信では定番になってきた。zstdはMetaが開発した比較的新しい方式で、IANAの圧縮方式一覧にも「zstd」という名前で正式に登録されている。

zstdはどのあたりに位置するのか

三つの方式は、縮む度合いと処理の速さのバランスが少しずつ違う。ざっくり言えば、圧縮率はBrotliがもっとも高く、gzipが控えめ、zstdはその中間あたりに収まる。一方で圧縮にかかる時間はzstdが速く、条件によってはBrotliの最高設定より数倍速く処理できるとされている。縮み具合と速さのどちらを取るかという、昔からある悩みに新しい落としどころを用意した方式だと言える。実測を比べた記事でも、zstdはgzipより一回り小さく縮めつつ、処理そのものは軽いという傾向が繰り返し報告されている。数字の細部は圧縮の強さの設定やファイルの中身で変わるため、自分のサイトで試してみて初めて分かる部分も多い。

この特性から、zstdはその場で圧縮して送る動的なコンテンツと相性がよい。ページを表示するたびに圧縮し直す場面では、少しでも速く処理できるほうが待ち時間の短縮につながるからだ。逆に、あらかじめ圧縮しておける静的なファイルなら、時間をかけてでも最小サイズを狙えるBrotliの最高設定が向く。一度圧縮すれば以後は使い回せるため、処理速度の差はほとんど問題にならない。用途によって使い分けるのが素直な考え方になる。

導入で押さえておきたい前提

実際に使うにはいくつか条件がある。まず、Chromeはzstdを安全な通信、つまりHTTPS接続のときだけ候補として提示する。暗号化されていない通常のHTTPではgzipやBrotliに戻る。常時HTTPS化が当たり前になった今ならほとんどのサイトが該当するが、頭の片隅には置いておきたい。ブラウザごとの対応状況はCan I useのような一覧で確認できる。

サーバーやCDN側の対応も欠かせない。CDN大手のCloudflareは以前からzstdを扱えるようにしており、配信基盤としての土台は整いつつある。自前のサーバーで有効にする場合は、使っているウェブサーバーソフトがzstdに対応しているかを確認することになる。ブラウザが受け取れても、送り出す側が方式を用意していなければ実際には使われない。両側がそろって初めて効いてくる点は、gzipやBrotliと同じ理屈だ。

中小規模のサイトでどう受け止めるか

では今すぐ全サイトがzstdに乗り換えるべきかというと、そこは冷静でよい。多くの中小企業サイトは、gzipやBrotliがすでに効いていれば体感できる速度は十分に出ている。zstdはあくまで選択肢が一つ増えたという話であり、乗り換えないと遅れるという性質のものではない。既存の圧縮が正しく効いているかをまず確かめるほうが、ずっと実益は大きい。

それでも、配信の速さを突き詰めたい場面や、動的に生成する部分が多いサイトでは、zstdが効いてくる余地がある。地方の制作現場でも、圧縮方式の違いと使い分けの勘どころを知っておけば、サーバーやCDNを選ぶときの判断材料が一つ増える。ブラウザ側の対応が一巡した今は、その知識を仕込んでおくのにちょうどよい頃合いだ。

画像と同じ書き方で動画や音声も遅延読み込みできるHTML属性

つくば市のホームページ制作会社

画像の遅延読み込みでおなじみの loading=”lazy” が、video要素と audio要素でも使えるようになった。要素にこの属性を書き足すだけで、ページを開いた瞬間ではなく、その要素が画面に近づいたタイミングまで読み込みを後回しにできる。Chrome 148 で標準の挙動として全プラットフォームに行き渡り、特別な準備なしにそのまま動くようになっている。

面白いのは、後回しになる対象が動画本体のデータだけではない点だ。ポスター画像やメタデータの取得、それに autoplay の再生開始まで、要素が表示領域に入る手前まで待つ。これまでも preload=”none” やメタデータのみの指定で動画データの通信量はある程度抑えられたが、ポスター画像の取得まで含めて遅らせられるのは新しい。書き方は img要素や iframe要素の loading=”lazy” とまったく同じで、WHATWG の仕様に沿った標準の動きとして扱われる。特別なライブラリを読み込む必要はなく、既存のマークアップに一語足すだけで完結する手軽さがある。

実務でうれしいのは、専用の JavaScript を用意しなくてよくなることだ。従来はページ下部に並ぶ動画を遅らせるために、IntersectionObserver で表示位置を監視する自前のコードを書くのが定番だった。その方法だと、スクリプトが動くタイミングとブラウザ内部の読み込みスケジュールが微妙にずれて、境目でのちらつきや二重の読み込みに気を配る必要がある。属性ひとつに任せれば、こうした細かな調整から解放される。preload 属性の指定自体はこれまでどおり効くが、その判断が要素の表示まで遅れる、と理解しておけばよい。

ひとつ気を配りたいのは、レイアウトのずれだ。メタデータの取得が後回しになると、動画の縦横比が分かるのも遅れるため、読み込みの瞬間に高さが変わって周囲がガタつくことがある。video要素に width と height を指定しておくか、CSS の aspect-ratio で先に場所を確保しておけば、この飛び跳ねは避けられる。遅延読み込みと表示の安定は、セットで考えると気持ちよく収まる。

使いどころも選びたい。ページを開いてすぐ目に入る主役の動画に付けると、かえって表示が一拍遅れて見えることがある。向いているのは、スクロールした先に置いた紹介動画や、複数の音声サンプルを並べたページなど、最初の画面には映らない要素だ。折り返しより下にあるものを選んで付ける、という素直な使い分けでよい。

対応はまず Chrome 系が先行し、ほかのブラウザは順次追随していく段階にある。とはいえ非対応のブラウザでは属性が無視されて従来どおり読み込まれるだけなので、progressive enhancement として今から書き足しておいて困ることはない。動画を多く載せる商品紹介ページやサービスサイトで、最初の表示を軽くするための一行として頭の隅に置いておきたい。細かな挙動はweb.devの解説にまとまっている。

ページ遷移を先読みで速くする投機的読み込みの設計と注意点

つくば市のホームページ制作会社

ページを開いた瞬間に次の画面が表示される。そんな体験を、JavaScriptのライブラリを足さずにブラウザの標準機能だけで実現する動きが広がっている。投機的読み込み(speculative loading)と呼ばれる仕組みで、Chromeを中心に実装が進み、WordPressにも標準機能として組み込まれた。表示速度は検索評価にも使い勝手にも直結する話なので、地方の制作現場でも知っておいて損はない。

ただ、この仕組みは入れれば速くなるという単純なものではない。先に読み込むという性質上、アクセス解析の数値が狂ったりサーバーの負荷が増えたりといった副作用がある。今回は投機的読み込みの考え方と、実務で使うときに気をつけたい点を整理してみる。

投機的読み込みとは何か

投機的読み込みは、利用者が次に開きそうなページを、実際にクリックする前にブラウザが裏側で先に取得しておく仕組みだ。土台になっているのがSpeculation Rules APIで、どのURLをどのタイミングで先読みするかをルールとして宣言できる。従来もlink要素によるprefetchのような先読み手段はあったが、Speculation Rules APIはより細かく、より積極的な制御ができる点が違う。

先読みの積極度はeagernessという段階で指定する。控えめな設定はリンクを押した瞬間に動き、中間の設定はリンクにカーソルを合わせたりタップしかけた段階で動く。さらに積極的な設定にすれば、リンクが画面に入った時点で先読みを始める。押してから読み込むのではなく、押しそうな気配を見て先に動くという発想だ。

この気配の読み方はスマートフォンでも工夫が進んでいる。最近のChromeでは、リンクが画面内に入ってから短い時間を置いて先読みを始める挙動が入り、指がまだリンクに触れていない段階でも準備を進められるようになった。マウスのホバーがないタッチ環境では、こうした画面内に入ったという合図が先読みのきっかけとして重みを持つ。

プリフェッチとプリレンダーの違い

投機的読み込みには大きく二つのモードがある。プリフェッチ(prefetch)は次のページのHTMLなど主要な資源を先に取得しておくだけで、ページの組み立ては利用者が実際に移動してから行う。取得済みのぶん移動が速くなるが、効果は限定的だ。

もう一つのプリレンダー(prerender)は、資源の取得だけでなくページの描画まで裏側で済ませてしまう。利用者が移動した瞬間には完成した画面を差し出すだけになるので、体感はほぼ一瞬になる。表示速度の指標で言えばLCPやINPが大きく改善し、ほぼ瞬時と呼べる速さが出る。

効果が大きいぶん、プリレンダーは踏み込んだ挙動になる。描画までするということは、そのページのJavaScriptが裏側で実際に走るということでもある。ここが後述する副作用の入り口になる。

WordPressに標準搭載された投機的読み込み

この仕組みは、WordPress 6.8でコアに取り込まれた。もともとは実験的なプラグインとして提供され、多くのサイトで検証を重ねたうえで安定版に昇格し、コア標準機能になったという経緯がある。特別なプラグインを入れなくても、きれいなパーマリンクを使っているサイトなら初期状態で先読みが働くようになっている。

ただしコアの初期設定は安全側に振ってある。ログインしていない訪問者に対して、控えめな積極度でプリフェッチだけを行う。描画まで踏み込むプリレンダーや、より積極的な設定は初期状態では有効にならない。より強い効果を求める場合は、公式のSpeculative Loadingプラグインを入れると、設定画面からモードや積極度を選べる。プラグイン側の初期値はプリレンダーの中間設定で、コアより一歩踏み込んだ構成になっている。

使いどころとして向いているのは、複数ページを続けて見てもらう性質のサイトだ。ブログや事例紹介、ドキュメント、商品一覧などは相性がよい。一方でカート内や決済の流れのように、先に走らせると困る処理を含むページはプリレンダーの対象から外すのが定石になっている。

先読みが引き起こす副作用

投機的読み込み、とくにプリレンダーで注意したいのがアクセス解析への影響だ。プリレンダーはページのJavaScriptを先に走らせるため、ページ表示を記録する計測タグが、利用者がまだ移動していない段階で発火してしまうことがある。結果として、実際には見られていない訪問がアクセス解析に記録される。

実際にWordPress 6.8の投機的読み込みで、GA4などに幻の訪問が計上される事例が報告されている。数字が水増しされれば、直帰率や滞在時間といった指標の読み方が狂い、サイト改善の判断を誤りかねない。対策として、主要な計測ツールの一部は、ページが実際に表示される瞬間まで計測を保留する仕組みを持っている。導入するなら、使っている計測ツールが先読みに対応しているかを確かめておきたい。

ブラウザ側でも副作用を抑える改良が進んでいる。最近のChromeには、プリレンダー中に最初の外部スクリプトの手前で処理をいったん止め、CSSや画像、フォントの先読みは進めつつ計測タグなどの実行だけを保留する挙動が加わった。裏側で読み込みは進めても、実際に表示されるまで余計な処理を走らせないという方向で、先読みと計測の食い違いを和らげる狙いがある。

もう一つはサーバーへの負荷だ。訪問者が実際に開くより多くのページを先に取得させるので、そのぶんアクセスが増える。多くの閲覧者を抱えるサイトや、動的にページを組み立てる構成では、キャッシュの整備なしに踏み込むと負荷が読みにくくなる。ログイン利用者にまで先読みを広げるかどうかは、サーバーが耐えられるかを見てから決めるのが安全だ。

対応ブラウザの現実

効果の大きい仕組みだが、すべてのブラウザで使えるわけではない点も押さえておきたい。Speculation Rules APIはChromeやEdge、OperaといったChromium系ブラウザで実装されている一方、SafariやFirefoxは現時点で対応していない。対応していないブラウザは、書かれた先読みのルールを単に無視するだけなので、表示が壊れるわけではない。

つまり投機的読み込みは、対応ブラウザの利用者だけが速さの恩恵を受け、それ以外の利用者はこれまで通りという上乗せ型の改善になる。壊れないという安心感がある半面、全員に効く施策ではないので、これ一本で表示速度を語るのは早い。土台となるページ自体の軽さや画像の最適化といった基本があってこそ効いてくる。

中小企業サイトでの取り入れ方

では現場でどう扱うか。まず、WordPressで運用していてきれいなパーマリンクを使っているなら、コアの控えめな先読みはすでに働いている可能性が高い。ここは特別な作業なしに得られている速さなので、まず現状を把握するところから始めるとよい。

そのうえでもう一段速くしたい場合は、プリレンダーへの引き上げを検討する。ただし前述のとおり、アクセス解析の数値と決済まわりの挙動は必ず先に確認する。小さく試して、計測の数字が乱れないか、サーバーの負荷が跳ねないかを見ながら広げるのが現実的だ。ChromeのDevToolsには先読みの挙動を確認する機能があるので、想定通りに動いているかを目で確かめられる。

投機的読み込みは、派手さはないが体感速度をはっきり押し上げる技術だ。ブラウザ標準の仕組みに寄せることで、重いライブラリを足さずに使い勝手を上げられる方向は、限られた予算でサイトを育てる中小の制作現場と相性がよい。副作用を理解したうえで、小さく取り入れていく価値はある。

Googleが強化したCore Web Vitals評価基準、2026年3月更新でウェブ制作の新しい要求水準

つくば市のホームページ制作会社

Googleが2026年3月に実施したCore Web Vitalsの更新により、ウェブパフォーマンスの評価基準が大きく変わった。従来は2.5秒以内とされていたLCP(Largest Contentful Paint)の「良い」基準が2.0秒へと短縮され、2.0秒から2.5秒の間は「改善が必要」とされるようになった。この変更によって、LCPが2.5秒を超えるサイトは競争の激しい検索語で平均2〜4位のランキング下落が見られたという調査結果も報告されている。

INP(Interaction to Next Paint)も補助的な指標から、LCPやCLSと同等のランキング要素へと格上げされた。GoogleのSearch Central ブログで3月18日に発表されたこの変更により、INPが200ミリ秒を超える「改善が必要」とされる範囲にあるサイトは、平均0.8位のランキング下落を経験した。これは単なる数値変更ではなく、ユーザーの操作に対する応答性がSEOにおいて重要な要素として認識されたことを意味している。

今回の更新でとくに注目すべきは、個別ページが指標をクリアしていても、サイト全体が遅い場合はペナルティを受ける可能性がある点だ。従来のページ単位の評価から、共有ヘッダー、広告スロット、サードパーティスクリプトが1つのテンプレートに影響すると、数十から数百のURLが「赤」の評価を受ける可能性があるとされており、Googleの評価モデルに基づいて、テンプレートレベルでの修正と実際のユーザーデータによる検証が効果を保つ唯一の方法とされている。

制作現場での対応策

勝利するチームは実際のユーザーデータから開始し、高いインパクトを持つテンプレートを優先し、Googleが使用するのと同じモデルで成功を検証するという原則が重要だ。最も一般的な間違いは、パフォーマンスをURL単位の修正プロジェクトとして扱い、ラボスコアを成功指標として使用することとされている。

Googleが2026年にCore Web Vitalsの基準を大幅に厳格化したのは、高性能ハードウェアではなく実際のユーザー向けの最適化を求めているためだ。グローバルなインターネット通信の70%以上がスマートフォンからのアクセスとなり、MacBookで快適に動作するサイトでもエントリーレベルのAndroid端末では非常に遅く感じられる状況への対応が求められている。パフォーマンスはもはや単なる技術的最適化ではなく、ユーザーが愛する体験を提供することについての取り組みとなっている。

Core Web Vitalsの2026年重大転換、新基準で制作現場が変わる瞬間

つくば市のホームページ制作会社

2026年3月にGoogleが実施したCore Web Vitalsの大幅な改定が、ウェブ制作現場に大きな変化をもたらしています。従来の評価基準から厳格化された新しい閾値への転換により、多くのサイトが新たな対応を迫られる事態となりました。LCPの「良好」基準が2.0秒を超えるサイトでは平均2〜4ポジションの順位低下が報告されるなど、その影響は検索結果にも如実に現れています。

今回の変更は単なる数値の調整ではありません。Googleがより厳格な基準を設定し、モバイル優先の評価を強化した背景には、ユーザー体験への根本的な考え方の変化があります。この新しい動きがどのような意味を持つのか、制作現場ではどう対応すべきなのかを整理してみましょう。

LCP基準の厳格化が意味するもの

2026年3月のコアアップデートで、LCP(Largest Contentful Paint)の「良好」基準が2.5秒から2.0秒へと短縮されました。これまで「普通に使える」と考えられていた多くのサイトが、一夜にして改善の必要があるサイトに分類されることになります。

LCPが2.0秒から2.5秒の間にあるサイトは「改善が必要」扱いとなり、2.5秒を超えるサイトでは競合の激しいクエリで平均2〜4ポジションの順位低下が確認されています。この変更が持つインパクトは、単純にサイトが遅くなったということではなく、Googleが求める「快適なウェブ体験」の水準が大幅に引き上げられたことを示しています。

制作現場で特に注意すべきは、ウェブトラフィックの60%以上がモバイルデバイスから来る現在の状況です。Googleはモバイル性能を2026年により重視するようになり、デスクトップで最適化されていてもモバイルで劣るサイトは見過ごされなくなりました。つまり、従来の「デスクトップで問題ない」という感覚は通用しなくなったということです。

INPが中核指標に格上げされた意味

もう一つの重要な変更が、INP(Interaction to Next Paint)の扱いです。INPが補助的な指標から、LCPやCLSと同等の順位シグナルへと格上げされ、3月18日のSearch Central ブログ記事で正式発表されました。

INPが200msを超える「改善が必要」レンジにあるサイトでは、平均0.8ポジションの順位下落が測定されています。この数値は一見小さく感じるかもしれませんが、競合激戦区では決定的な差となりえます。

INPが重視される背景には、現代のウェブサイトがより動的でインタラクティブになったことがあります。INPはユーザーのクリック、タップ、キー入力から次の視覚更新までの遅延を捉え、ページのライフサイクル中のすべてのインタラクションを考慮して最悪ケースに近い値を報告します。つまり、「時々重い」サイトは確実に検出されるようになったということです。

モバイル優先評価の実際的な影響

2026年の変更で最も実務に影響するのは、モバイル性能への重点シフトかもしれません。Googleはモバイル使用量がデスクトップを上回る現実を反映し、2026年のWeb Vitalsではモバイル性能がより重要な順位シグナルとなり、レスポンシブデザイン、遅延読み込み、タッチフレンドリーUI、高速なモバイルレンダリングの影響が強化されました。

これまでデスクトップでの快適さを重視してきた企業サイトでも、根本的な見直しが必要になります。反応しないボタンや過度なレイアウトシフトなどのモバイル性能不足は、直帰率やセッション時間などのエンゲージメント指標に深刻な影響を与え、SEOの課題をさらに深刻化させるからです。

実際の対応では、モバイル最適化をウェブサイト開発プロセスの最優先事項とし、レスポンシブデザイン、リソース重い要素の削減、合理化されたモバイルナビゲーションが鍵となります。つまり、「デスクトップを作ってからモバイル対応」ではなく、「モバイルファーストで設計してからデスクトップに展開」という発想の転換が求められています。

制作現場での実践的対応策

新しい基準に対応するために、制作現場で実際に取り組むべき点を整理してみましょう。まず測定の観点では、Googleはラボデータではなく、28日間の実際のChromeユーザーからのフィールドデータを使って順位を決定し、75パーセンタイルで判断するため、訪問者の75%が良好な体験を得る必要があります。

LCP改善では、画像をWebP形式で200KB未満に圧縮し、幅と高さを追加し、画面外画像に遅延読み込みを適用し、LCP要素をプリロードすることが即効性のある対策です。INPについては、使用していないWordPressプラグインを削除(多くのサイトが30個以上のプラグインを実行し、半数が何もしていない状態)、JavaScriptを遅延実行し、サードパーティスクリプトを削減することが重要です。

長期的な視点では、Google Search ConsoleのCore Web Vitalsレポートを使った自動監視設定、指標が閾値を下回った際のアラート設定、ページ重量・JavaScriptサイズ・読み込み時間の許容限界を定義するパフォーマンス予算の確立、開発ワークフローでの予算遵守が欠かせません。

Core Web Vitalsを一度きりの修正ではなく継続的な実践として扱う機関やチームが、強固な検索可視性を維持している現実を踏まえると、この新基準への対応は一時的な作業ではなく、制作プロセスそのものの見直しと言えるでしょう。2026年の変更は確かに厳しいものですが、それだけユーザー体験への本質的な取り組みが求められる時代になったということでもあります。

Googleの2026年版Core Web Vitals、厳格化されたパフォーマンス評価でウェブ制作現場が変わる

つくば市のホームページ制作会社

2026年3月のGoogleコアアップデートで、ウェブサイトの検索ランキングに大きな変動が起きています。3月27日から4月8日まで12日間にわたって展開されたこのアップデートは、これまでの単純なパフォーマンス測定を超えて、サイト全体のユーザー体験を重視する方向性を明確に打ち出しました。

トラフィックを失ったサイトに共通しているのはCore Web Vitalsの問題で、個別のページがCore Web Vitalsをクリアしていても、サイト全体が遅い場合は今や検索順位に影響を受けるようになったという根本的な変化が起きています。日本のウェブ制作現場にとって、これは技術的なアプローチを見直す重要な転換点といえるでしょう。

基準値の厳格化で見えてきた現実

2026年版のCore Web Vitalsでは、従来の基準が軒並み厳しくなりました。Largest Contentful Paint(LCP)の「良い」とされる基準が2.5秒から2.0秒に引き下げられ、以前なら合格していた2.0〜2.5秒の範囲は「改善が必要」とマークされるようになっています。

Interaction to Next Paint(INP)の基準も200msから150msに短縮され、サードパーティスクリプト、アナリティクストラッカー、チャットウィジェット、未圧縮のJavaScriptが多用されているサイトでは、この差が合格と不合格の分かれ目となっています。中小企業サイトでよく見られる「便利ツールの詰め込み」が、実は検索順位を下げる要因になっているのが現状です。

さらに注目すべきは、新しく導入されたSmooth Visual Transitions(SVT)という指標で、ページ読み込み中の視覚要素の滑らかさを測定し、Googleは単なる速度ではなく体験の質を評価するようになった点です。ヒーロー画像の遅れた表示、フォント読み込み時のテキストの動き、広告表示による要素の位置移動などが、これまで以上に厳しく評価されています。

WordPressサイトが直面している課題

統計データから見えてくる現実は深刻です。WebflowやDudaなどの管理型プラットフォームがCore Web Vitalsの合格率65〜85%を記録している一方、WordPressはモバイルで45%程度にとどまっており、静的サイトが95%以上の合格率を達成できるのに対して、大きな差が生まれているのが実情です。

WordPressサイトの多くは、プラグインの組み合わせやテーマの重さ、未最適化の画像などが複合的に作用してパフォーマンスを低下させています。特に日本の制作現場でよく使われる多機能テーマやSEOプラグイン、問い合わせフォームなどを組み合わせると、知らないうちに評価基準を下回ってしまうケースが頻発しています。

2026年のアップデートで特に重要なのは、Visual Stability Index(VSI)という新指標で、初期ページ読み込みだけでなくユーザーのセッション全体を通じた安定性、スクロールや操作時の変化、予期できる変化と予期できない変化の区別を評価することです。これまでのCumulative Layout Shiftが初回読み込み時のみを対象としていたのに対し、VSIは継続的な使いやすさを測定する点で大きな進歩といえます。

モバイルファーストの加速と対策の方向性

2026年はモバイルファーストブラウジングがさらに主流となり、GoogleはCore Web Vitalsの評価においてモバイルデバイスのスコアにより多くの重みを置き、ウェブトラフィックの60%以上がモバイルデバイスから来ている現状に対応しています。

実践的な改善アプローチとしては、まず現状把握から始めることが重要です。Google PageSpeed Insightsでモバイルパフォーマンススコアが80未満なら改善が必要、60未満なら緊急対応が必要と考えるべきでしょう。多くの中小企業サイトで効果的な対策は、WebPやAVIF形式への画像変換、レンダリングをブロックするJavaScriptの削減、適切な遅延読み込みの実装、高速ホスティングへの移行、画像サイズ指定によるレイアウトシフトの防止などです。

地方のウェブ制作会社やフリーランサーにとって、この変化は新しいビジネス機会でもあります。WordPressサイトと競合している業界で、静的で高速なサイトを提供できれば構造的に有利になり、Googleは明確にこの方向を評価しているからです。単に見た目の良いサイトを作るだけでなく、パフォーマンスの技術的な裏付けがある制作会社が、今後はクライアントから選ばれる時代になっていくでしょう。

長期的な視点で考えるウェブ制作の変化

Core Web Vitalsを軽視していると深刻な機会損失を招き、総合的な最適化により12〜20%のオーガニックトラフィック増加が一般的になっている現在、パフォーマンス最適化は選択肢ではなく必須の要件となりました。

重要なのは、GoogleのSearch Consoleが28日間のローリングデータを使用しているため、改善効果が見えるまで通常4〜8週間かかるという点です。つまり、今から対策を始めても結果が見えるまで時間がかかるということで、早期の対応がより重要になっています。

ウェブ制作者としては、新規案件では最初からパフォーマンスを意識した設計を心がけ、既存のクライアントには段階的な改善提案をしていく姿勢が求められます。2026年のCore Web Vitalsアップデートは単なる技術的な変更ではなく、ユーザー体験を重視するウェブの方向性を明確に示したものといえるでしょう。