Page Speed Optimization
ページ速度最適化
ページ速度最適化とは、Webページの表示速度を改善することでユーザー体験を向上させ、Core Web VitalsのスコアとLighthouseパフォーマンス評価を高める施策です。2021年以降、Core Web VitalsはGoogleのランキング要因として正式に採用されています。
表示速度の改善はSEOだけでなく、直帰率の低下・コンバージョン率の向上・ユーザー満足度の向上にも直結します。特にモバイルユーザーが多数を占める現在、モバイルでの速度改善は集客に直結する重要な投資です。
SEO Impact
ページ速度が遅いとSEOに起きる4つの問題
Core Web Vitals不良でランキング低下
LCP・CLS・INPがGoogleの「不良」基準を超えると、同等コンテンツでも速いページが優先されます。Core Web VitalsはGoogleの公式ランキングシグナルとして採用されています。
直帰率上昇でGoogleの評価が下がる
ページが3秒以内に表示されないと直帰率が大幅に上昇します。高い直帰率は「このページはユーザーの期待に応えなかった」とGoogleに伝わり、さらなる順位低下を招きます。
モバイルユーザーが離脱しCV機会を失う
スマートフォンユーザーはPCより速度に敏感です。LTEや3G環境での表示が遅いページはほぼすぐに離脱されます。モバイルの速度改善がSEOとCVの両方で最優先課題です。
クロール効率の低下でインデックスが遅れる
GoogleのクロールバジェットはURLごとに制限があります。ページの表示が遅いとクローラーの効率が下がり、重要なページのインデックスが遅れる原因になります。
Core Web Vitals
Core Web Vitalsの3指標と目標値
GoogleはCore Web Vitalsを2021年よりPageExperienceシグナルとしてランキングに組み込んでいます。LCP・CLS・INPの3指標すべてで「良好」を達成することが速度最適化のゴールです。
LCP
Largest Contentful Paint
ページの最大コンテンツ(ファーストビューの主な画像やテキスト)が描画されるまでの時間。ユーザーが「ページが読み込まれた」と感じるタイミングを表します。画像の最適化とpreloadが主要な改善手段です。
CLS
Cumulative Layout Shift
ページ読み込み中に発生するレイアウトのずれ(シフト)の累積スコア。ユーザーが誤ってボタンをクリックしてしまうなどの体験不良の指標。画像やiframeへのサイズ指定が最優先の対策です。
INP
Interaction to Next Paint
ユーザーの操作(クリック・タップ・キー入力)に対するページの視覚的な応答速度。2024年3月にFIDから置き換わった指標。重いJavaScriptの長いタスクが主な原因です。
What You'll Learn
このページでわかること
LCP・CLS・INPの意味と具体的な数値目標(Googleの公式基準値)
PageSpeed InsightsとChrome DevToolsを使った現状診断の手順
画像・JavaScript・CSS・フォント・CDNそれぞれの最適化施策
Next.jsを使った実装レベルのパフォーマンス最適化テクニック
業種別(飲食・医療・EC・建設など)の速度問題と優先対策
改善施策の効果を測定するためのKPIと確認ツール
Common Issues
ページ速度が遅い:よくある課題と原因
速度改善の第一歩は原因の特定です。サイトに応じて複数の問題が重なっているケースがほとんどです。以下の項目で当てはまるものがあれば優先的に対処します。
画像が最適化されていない
JPEGやPNGをそのままアップロードしているケースが最も多い問題です。WebP変換・サイズリサイズ・遅延読み込みの3点セットが未実装だと、LCPが3〜5秒以上になることは珍しくありません。
JavaScriptバンドルが大きすぎる
未使用のライブラリを含んだまま全ページで読み込んでいると、JavaScriptのパースと実行でメインスレッドが長時間ブロックされます。バンドルサイズが1MB超の場合はコード分割が急務です。
サーバーレスポンス(TTFB)が遅い
動的ページでデータベースクエリやAPI呼び出しに時間がかかっているケースです。CDNキャッシュが効いていない・サーバーが遠い・クエリが最適化されていないことが主な原因です。
レンダリングブロックリソースがある
headタグ内にasync/deferなしのscriptタグや大きなCSSファイルがあると、ブラウザがページ描画を開始できません。Lighthouseの「Eliminate render-blocking resources」警告が出ている場合は優先的に対応します。
CDNを使っていない
単一のオリジンサーバーから全ユーザーにコンテンツを配信していると、地理的な距離によるレイテンシーが発生します。国内ユーザー向けでも日本国内のエッジノードからの配信でTTFBを200ms以下に短縮できます。
フォントの読み込みが遅い
Google Fontsから複数のフォントファイルを読み込んでいる場合、外部DNSルックアップとファイル取得の待機時間が発生します。next/fontへの移行やpreconnect設定で大幅に改善できます。
画像・iframeにwidth/heightがない
画像やiframeのサイズが未指定だとブラウザはスペースを確保できず、読み込み完了後にレイアウトが動きます(CLS)。全ての画像にwidth・heightを必ず指定するか、aspect-ratioを使います。
サードパーティスクリプトが多すぎる
タグマネージャー・チャットウィジェット・ABテストツール・ヒートマップなどが重複・累積することで、初期読み込みが大幅に遅くなります。各スクリプトの遅延読み込み化と不要なタグの削除が必要です。
Webフォントが多すぎる・バリアントが多い
デザインのために複数のウェイト(100・300・400・700・900)や複数の書体を読み込んでいると、合計ファイルサイズが数百KBになります。使用するウェイトを2〜3種類に絞ることが重要です。
ファーストビュー画像にlazyが設定されている
LCP要素(ファーストビューのメイン画像)にloading="lazy"を設定すると、ブラウザが表示領域に入るまで読み込みを遅らせるため、LCPが悪化します。ファーストビュー画像にはpriorityを設定し、スクロール後の画像にのみlazyを使います。
Optimization Checklist
ページ速度最適化の主要施策
速度最適化は「画像だけ直せばいい」という単純なものではありません。カテゴリごとに体系的に実施し、PageSpeed Insightsのスコアを段階的に引き上げます。
画像最適化
- —WebP/AVIF形式への変換
- —適切なサイズへのリサイズ
- —遅延読み込み(loading=lazy)
- —LCP画像へのpreload設定
- —next/imageコンポーネントの活用
- —srcsetで複数解像度を提供
JavaScript最適化
- —コード分割(Code Splitting)
- —Dynamic Import(遅延読み込み)
- —不要なJSの除去・Tree Shaking
- —サードパーティスクリプトの遅延化
- —長いタスクの分割(Long Tasks)
- —Web Workerへの重処理の移管
CSS最適化
- —クリティカルCSSのインライン化
- —未使用CSSの除去(PurgeCSS等)
- —レンダーブロッキングCSSの遅延
- —CSS Containmentの活用
- —Tailwind CSSのPurge設定
- —CSS-in-JSからCSS Modulesへの移行
フォント最適化
- —font-display: swapの設定
- —next/fontでセルフホスティング化
- —必要なサブセットのみ読み込み
- —preconnectでGoogleFonts接続
- —システムフォントへのフォールバック
- —フォントのpreloadで早期取得
インフラ・配信最適化
- —CDN(エッジ配信)の活用
- —HTTPキャッシュヘッダーの設定
- —Brotli/gzip圧縮の有効化
- —HTTP/2・HTTP/3の利用
- —サーバー応答時間(TTFB)の改善
- —Edge Runtimeの活用
レイアウト安定性(CLS)
- —画像・動画にwidth/height指定
- —aspect-ratioでサイズを予約
- —Webフォントのレイアウトシフト防止
- —広告スロットの事前サイズ確保
- —動的コンテンツの安定化
- —transform/opacityでのアニメーション
By Industry
業種別のページ速度最適化ポイント
速度問題の原因と優先すべき施策は業種によって異なります。自社のカテゴリに合った優先順位で改善を進めることが効率的です。
飲食店・カフェ
- —料理写真が多いため画像最適化が最重要課題
- —WebP変換とsrcsetで写真ギャラリーを軽量化
- —メニューページのCLSをAspect Ratioで防止
- —Instagramウィジェットの遅延読み込み化
- —Google Mapsの遅延iframeで初期速度を確保
クリニック・医療機関
- —予約システムの外部スクリプトを遅延化
- —医療スタッフ写真のnext/image最適化
- —チャットボットの遅延読み込み設定
- —診療内容ページのCritical CSS分離
- —モバイルでの入力フォーム軽量化
EC・オンラインショップ
- —商品画像の大量最適化(AVIF優先)
- —カテゴリページの無限スクロールとINP対策
- —決済スクリプト(Stripe等)の遅延読み込み
- —商品フィルタのJavaScript最適化
- —カートアイコンのレイアウトシフト防止
建設・リフォーム業
- —施工事例の写真ギャラリー最適化が最優先
- —施工前後の比較スライダーのJS軽量化
- —問い合わせフォームの遅延読み込み
- —Google Maps埋め込みの非同期化
- —PDFカタログをIntersection Observer経由で読み込み
美容サロン・エステ
- —施術写真のAVIF変換と遅延読み込み
- —Instagramフィード埋め込みの非同期化
- —予約ウィジェット(HOT PEPPER等)の遅延化
- —動画背景のパフォーマンス最適化
- —Webフォントを2ウェイトに絞る
士業・コンサルティング
- —テキスト中心のためJS・CSSの最適化が主眼
- —ブログ記事ページのCritical CSS分離
- —資料ダウンロードPDFの非同期読み込み
- —問い合わせフォームのcode splitting
- —Zoomウィジェット等のサードパーティ管理
不動産
- —物件写真の大量lazy load最適化
- —地図・周辺情報の非同期読み込み
- —物件検索フィルタのINP最適化
- —360度ビューアの遅延読み込み
- —問い合わせフォームの分割読み込み
教育・スクール
- —オンライン授業動画のLazy Load化
- —LMS(学習管理システム)埋め込みの最適化
- —生徒・講師写真のWebP変換
- —お問い合わせ・無料体験申込フォームの軽量化
- —SNS埋め込みコンテンツの遅延読み込み
Step-by-Step
ページ速度改善の具体的な手順
PageSpeed InsightsとChrome DevToolsを使って診断し、優先度の高い施策から順に実施します。計測→改善→再計測のサイクルを繰り返すことが重要です。
PageSpeed Insightsで現状スコアを計測する
pagespeed.web.dev にURLを入力し、モバイル・PCそれぞれのスコアを記録します。「Opportunities」(改善機会)と「Diagnostics」(診断)のセクションを確認し、スクリーンショットを保存して改善前後の比較に使います。フィールドデータ(実ユーザーのデータ)がある場合は、ラボデータと合わせて確認します。
Chrome DevToolsのNetworkタブで大きなリソースを特定する
Chrome DevTools(F12)→ Networkタブを開き、ページを読み込みます。「Size」列でソートし、大きなファイル(画像・JS・CSS・フォント)を特定します。1MB超の画像ファイルや数百KBのJSバンドルがあれば、それが最初の改善対象です。
LCP要素を特定しfetchpriorityとpreloadを設定する
Chrome DevToolsのPerformanceタブでLCP要素を特定します(Timingsセクションに表示されます)。LCP要素が画像の場合、Next.jsでは`<Image priority>`を追加するだけでpreloadが自動適用されます。LCP要素がテキストの場合はWebフォントのpreloadを検討します。
全画像をWebP/AVIFに変換し適切なサイズにリサイズする
Next.jsではnext/imageコンポーネントを使うと自動でWebP変換が行われます。静的な画像はSquoosh(squoosh.app)でWebP変換し、表示サイズの1.5〜2倍の解像度でリサイズします。Retina対応は2xを上限にし、それ以上は過剰です。ファーストビュー以外の画像には必ずloading="lazy"を設定します。
JavaScriptのバンドルサイズを分析し不要なコードを削除する
Next.jsでは`next build`後に`.next/stats.html`(Bundle Analyzerを有効にした場合)でバンドルを可視化できます。`@next/bundle-analyzer`を導入し、大きなライブラリを特定します。momentjsをday.jsに置き換える・lodashを個別インポートにするなど、軽量な代替ライブラリへの移行が効果的です。
サードパーティスクリプトを遅延読み込みに変換する
Google Tag Manager・チャットウィジェット・ヒートマップツールなどを`afterInteractive`または`lazyOnload`のStrategyでNext.jsのScriptコンポーネントを使って読み込みます。絶対に必要なスクリプト以外は`lazyOnload`にし、ページのインタラクティブ性を確保してから読み込みます。
フォントをnext/fontでセルフホスティング化する
Next.jsのnext/fontを使うと、Google Fontsのフォントファイルがビルドジョブでローカルにダウンロードされ、外部リクエストなしでフォントが配信されます。`font-display: swap`が自動設定され、CLSも最小化されます。使用するウェイトは2〜3種類に絞ります。
CDNを設定しHTTPキャッシュヘッダーを最適化する
静的アセット(画像・フォント・CSS・JS)のCache-Controlヘッダーに`max-age=31536000, immutable`を設定します。Next.jsのVercelデプロイでは自動でCDNキャッシュが機能します。オリジンサーバーにはCloudflareを前置することで、追加コストなしでCDNを導入できます。
Google Search ConsoleのCore Web Vitalsで実ユーザーの数値を確認する
改善後は2〜4週間待ちます。Search ConsoleのCore Web Vitalsレポートに実ユーザーのデータが反映されるのに時間がかかるためです。「良好」URLの割合が増加していれば改善が実データに表れています。改善前後の数値を記録しレポートに残します。
継続的なモニタリングとアラートの設定
PageSpeed InsightsのAPIを定期的に叩くか、SpeedCurveやCalibreなどのパフォーマンス監視ツールを導入します。デプロイのたびにLighthouse CIを実行し、スコアが一定以下に落ちたらアラートを出す仕組みを構築することで、パフォーマンスリグレッションを防ぎます。
KPIs to Track
成果を見るための指標(KPI)
速度改善の成果は複数の指標で確認します。Lighthouseスコアは目安ですが、実ユーザーのデータ(フィールドデータ)と事業指標(直帰率・CVR)も必ず追います。
Core Web Vitals「良好」の割合
Google Search ConsoleのCore Web Vitalsレポートで確認。LCP・CLS・INP全てが「良好」のURLが全体の何割かを追います。改善施策後、4週間以上で変化が現れます。
PageSpeed Insightsのスコア(モバイル・PC)
施策前後のスコアを記録し比較します。モバイルスコアが50未満の場合は70以上を目標に設定し、70以上の場合は90+を目指します。
直帰率(Bounce Rate)の変化
Google Analyticsで速度改善対象ページの直帰率を計測します。LCPが1秒改善されると直帰率が5〜15%程度低下するケースが多く見られます。
TTFBの数値
PageSpeed InsightsのDiagnosticsセクションまたはChrome DevToolsのNetworkタブでServer Response Timeを確認します。800ms以下を目標値とします。
JS・CSS・画像のTransfer Size合計
Chrome DevToolsのNetworkタブでページ合計のTransfer Sizeを確認します。モバイルでは1MB以下、PCでは2MB以下を目標とします(画像が多いページは除く)。
検索順位(Speed改善後4〜8週間後)
Google Search Consoleの検索パフォーマンスレポートで対象ページの平均掲載順位を追います。Core Web Vitals改善が順位に反映されるまで数週間かかるため、継続的な確認が必要です。
コンバージョン率(CVR)の変化
Google Analyticsの目標設定またはGA4のコンバージョンイベントで、改善前後の問い合わせ・購入・申し込み率を比較します。表示速度の改善はCVRに直接影響します。
FAQ
ページ速度最適化についてよくある質問
関連ページ
SEO対策とは
SEO全体の概要
テクニカルSEO
Core Web VitalsとSEOの関係
Google Search Console活用
速度スコアのモニタリング
SEO診断
ページ速度の現状評価
モバイルSEO
モバイルでの速度最適化
キーワード調査
速度改善とコンテンツ戦略
内部リンク最適化
クロール効率との関係
構造化データ
リッチリザルトとページ品質
Webサイト制作
高速サイト設計と制作
Next.jsでのサイト制作
パフォーマンスに優れたサイト
WordPress制作
WordPress高速化の方法
Core Web Vitals解説
LCP・CLS・INP改善入門
Core Web Vitals用語集
LCP・CLS・INP・TTFBの定義
LCPとは
Largest Contentful Paintの解説
CLSとは
Cumulative Layout Shiftの解説
INPとは
Interaction to Next Paintの解説
Google Analytics基礎ガイド
速度データの確認方法
Lighthouse完全ガイド
スコアの読み方と改善手順
テクニカルSEOチェックリスト
ページ速度の確認項目
SEOコラム
ページ速度・Core Web Vitals最新情報
SEO対策サービス
ページ速度改善込みのSEO支援
SEO対策の費用
テクニカルSEO改善の料金
Contact
ページ速度改善・Core Web Vitalsのご相談
現在のスコアを診断し、効果的な改善施策をご提案します。画像・JS・CDN・Next.js最適化など、優先度の高い施策から取り組みます。
お問い合わせ
