GEMINI LABEN
ROBOTICS — 8月31日に停止した ER 1.6 preview には後継があります。Gemini Robotics ER 2 が公開プレビュー中で、通常版とストリーミング版の2種類が提供されていますVIDEO — ER 2 の成功・失敗判定は静止画ではなく生の映像フィード上で動きます。こぼれ・滑り・位置ずれのような、実行の途中で起きる失敗を捉えられる設計ですDEADLINE — 次の期限は9月30日、gemini-omni-flash-preview の廃止です。移行先は8月27日に GA になった gemini-omni-1.1-flash で、残り4週間を切りましたAPIKEY — 残りの標準 API キーは、制限付きのものも含めて9月中に全面停止します。移行先は Google Cloud サービスアカウントに紐付く auth キー形式ですPRICE — Gemini 3.7 Flash の導入価格 $0.75/$3.75 per 1M は12月31日までです。2027年1月1日から $1.50/$7.50 になるため、年を跨ぐ見積もりは2本立てが要りますAUDIO — Gemini 3.5 Transcribe は85言語以上の言語検出、話者ダイアライゼーション、単語単位タイムスタンプ、最大1,000語のカスタム語彙バイアスに対応していますROBOTICS — 8月31日に停止した ER 1.6 preview には後継があります。Gemini Robotics ER 2 が公開プレビュー中で、通常版とストリーミング版の2種類が提供されていますVIDEO — ER 2 の成功・失敗判定は静止画ではなく生の映像フィード上で動きます。こぼれ・滑り・位置ずれのような、実行の途中で起きる失敗を捉えられる設計ですDEADLINE — 次の期限は9月30日、gemini-omni-flash-preview の廃止です。移行先は8月27日に GA になった gemini-omni-1.1-flash で、残り4週間を切りましたAPIKEY — 残りの標準 API キーは、制限付きのものも含めて9月中に全面停止します。移行先は Google Cloud サービスアカウントに紐付く auth キー形式ですPRICE — Gemini 3.7 Flash の導入価格 $0.75/$3.75 per 1M は12月31日までです。2027年1月1日から $1.50/$7.50 になるため、年を跨ぐ見積もりは2本立てが要りますAUDIO — Gemini 3.5 Transcribe は85言語以上の言語検出、話者ダイアライゼーション、単語単位タイムスタンプ、最大1,000語のカスタム語彙バイアスに対応しています
記事一覧/開発ツール
開発ツール/2026-04-08中級

Gemini APIでCore Web Vitalsを自動診断・最適化する

Gemini APIを活用してWebサイトのCore Web Vitals(LCP・CLS・INP)を自動診断・改善提案する方法を解説。PageSpeed InsightsのデータをAIが分析し、具体的な最適化コードまで提示します。

gemini110core-web-vitalsseo3web-performancelcpclsinppagespeed

取り組みの背景 — Core Web VitalsとGemini AIの組み合わせが強力な理由

Webサイトの表示速度や安定性を測る指標「Core Web Vitals」は、GoogleのSEO評価においてますます重要な位置を占めています。LCP(Largest Contentful Paint)・CLS(Cumulative Layout Shift)・INP(Interaction to Next Paint)の3指標が「Good」の範囲に入っているかどうかが、検索順位に直接影響します。

しかし多くの開発者にとって、PageSpeed InsightsやLighthouseのレポートを読み解き、「どこを、どう直せばよいのか」を判断するのは容易ではありません。そこで注目したいのが Gemini API との連携 です。測定データをGeminiに渡すことで、問題の根本原因の特定から具体的なコード修正案の提示まで、AIが一気通貫でサポートしてくれます。


Core Web Vitalsの3指標をおさらいする

まず基本から確認しておきましょう。

  • LCP(Largest Contentful Paint): ページの最大コンテンツ要素が表示されるまでの時間。2.5秒以内が「Good」。ヒーロー画像や大きなテキストブロックが対象になることが多く、画像の最適化やサーバー応答速度が影響します。
  • CLS(Cumulative Layout Shift): ページ読み込み中にレイアウトがどれだけずれるかを示すスコア。0.1以下が「Good」。フォントの遅延読み込みや動的コンテンツの挿入が原因になりがちです。
  • INP(Interaction to Next Paint): ユーザーの操作(クリック・タップ等)に対してページが視覚的に応答するまでの時間。200ミリ秒以下が「Good」。重いJavaScriptやメインスレッドのブロッキングが主な原因です。

これら3つを一度に診断し、優先度付きで改善提案を出すのは、人手では時間がかかります。Gemini APIを使えば、この作業を大幅に自動化できます。


PageSpeed Insights APIでデータを取得する

Google PageSpeed Insights APIは無料で利用でき、指定URLのCore Web Vitals測定値とLighthouse監査結果を JSON形式で取得できます。APIキーはGoogle Cloud Consoleから発行します。

以下のTypeScriptスクリプトで、測定データを取得・整形します。

// pagespeed.ts — PageSpeed Insights APIでCore Web Vitalsを取得する
import fetch from "node-fetch";
 
const PSI_API_KEY = "YOUR_PAGESPEED_API_KEY"; // 実際のキーに置き換えてください
 
interface CoreWebVitals {
  lcp: number; // 秒
  cls: number;
  inp: number; // ミリ秒
  fcp: number; // First Contentful Paint(参考値)
  ttfb: number; // Time to First Byte(参考値)
}
 
export async function fetchCoreWebVitals(url: string): Promise<CoreWebVitals> {
  const endpoint = `https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${encodeURIComponent(url)}&key=${PSI_API_KEY}&strategy=mobile`;
  const res = await fetch(endpoint);
  const data = (await res.json()) as any;
 
  const metrics = data.loadingExperience?.metrics ?? {};
 
  return {
    lcp: metrics.LARGEST_CONTENTFUL_PAINT_MS?.percentile / 1000 ?? 0,
    cls: metrics.CUMULATIVE_LAYOUT_SHIFT_SCORE?.percentile / 100 ?? 0,
    inp: metrics.INTERACTION_TO_NEXT_PAINT?.percentile ?? 0,
    fcp: metrics.FIRST_CONTENTFUL_PAINT_MS?.percentile / 1000 ?? 0,
    ttfb: metrics.EXPERIMENTAL_TIME_TO_FIRST_BYTE?.percentile ?? 0,
  };
}
 
// 使用例: fetchCoreWebVitals("https://example.com").then(console.log)
// 出力例: { lcp: 3.2, cls: 0.18, inp: 240, fcp: 1.8, ttfb: 820 }

このスクリプトで取得した数値データを、次のステップでGemini APIに渡します。


Gemini APIで自動診断・改善提案を生成する

取得したCore Web Vitalsのデータとサイトの基本情報をプロンプトに含め、Gemini APIに分析と改善提案を依頼します。gemini-2.5-flash モデルはコスト効率が高く、このような診断タスクに最適です。

// analyze.ts — Gemini APIでCore Web Vitalsを診断・最適化提案を生成する
import { GoogleGenAI } from "@google/genai";
import { fetchCoreWebVitals } from "./pagespeed";
 
const GEMINI_API_KEY = "YOUR_GEMINI_API_KEY";
const client = new GoogleGenAI({ apiKey: GEMINI_API_KEY });
 
async function analyzeCoreWebVitals(targetUrl: string) {
  // Step 1: PageSpeed InsightsからCore Web Vitalsを取得
  const metrics = await fetchCoreWebVitals(targetUrl);
 
  // Step 2: 診断プロンプトを構築する
  const prompt = `
あなたはWebパフォーマンス最適化の専門家です。
以下のCore Web Vitals測定結果を分析し、各指標の問題点と具体的な改善策をステップ形式で提案してください。
コード修正例も含めること。
 
## 測定対象URL
${targetUrl}
 
## Core Web Vitals測定値
- LCP(Largest Contentful Paint): ${metrics.lcp.toFixed(2)}秒(目標: 2.5秒以下)
- CLS(Cumulative Layout Shift): ${metrics.cls.toFixed(3)}(目標: 0.1以下)
- INP(Interaction to Next Paint): ${metrics.inp}ms(目標: 200ms以下)
- FCP(First Contentful Paint): ${metrics.fcp.toFixed(2)}秒
- TTFB(Time to First Byte): ${metrics.ttfb}ms
 
## 要求事項
1. 各指標を「Good / Needs Improvement / Poor」に分類する
2. 最も優先度が高い問題を3つ特定し、改善方法をコード例付きで説明する
3. 改善後の期待値(目安)も示すこと
`;
 
  // Step 3: Gemini APIを呼び出す
  const response = await client.models.generateContent({
    model: "gemini-2.5-flash",
    contents: [{ role: "user", parts: [{ text: prompt }] }],
  });
 
  return response.candidates?.[0]?.content?.parts?.[0]?.text ?? "";
}
 
// 実行
analyzeCoreWebVitals("https://example.com").then((result) => {
  console.log("=== Core Web Vitals 診断レポート ===");
  console.log(result);
});
 
// 出力例(抜粋):
// ## 診断結果
// - LCP: 3.20秒 → Poor(目標の2.5秒を超過)
// - CLS: 0.180 → Poor(目標の0.1を超過)
// - INP: 240ms → Needs Improvement
//
// ## 優先度高: LCP改善
// ヒーロー画像に fetchpriority="high" を追加し、next/image の priority プロパティを有効化することで
// LCPを約0.8〜1.2秒改善できる見込みです。

このスクリプトを実行すると、Geminiが各指標を評価し、具体的なHTMLやCSS、JavaScriptの修正例を含む診断レポートを生成します。


LCP・CLS・INPそれぞれの改善でGeminiを活用するコツ

Gemini APIとCore Web Vitalsを組み合わせる際に、より精度の高い提案を得るためのポイントを紹介します。

LCPの改善: プロンプトにHTMLのheadセクションやCSSのヒーローセクションのコードを貼り付けると、画像の遅延読み込み設定の誤りやプリロードの欠落をピンポイントで指摘してもらえます。

CLSの改善: CLSはフォントのスワップやダイナミックコンテンツが原因になるため、<link rel="preload"> タグの有無や font-display: swap の設定をGeminiに確認してもらうと効果的です。

INPの改善: Chromeのパフォーマンスプロファイリング結果(JSONエクスポート)をGeminiに渡すと、メインスレッドをブロックしている処理を特定してもらえます。ReactやVue.jsのコンポーネントコードを含めれば、useEffect の最適化や不要な再レンダリングの削減提案まで得られます。

また、Gemini APIとGemini × Next.js 開発ガイドの手法を組み合わせれば、診断レポートをWebダッシュボードとして可視化することも可能です。

なお、より複雑なパフォーマンス分析(Lighthouse CI × GitHub Actions連携など)については、Gemini API Function Calling 本番環境対応実装ガイドで解説している構造化出力パターンが参考になります。


まとめ

Core Web Vitalsの改善は、SEO評価とユーザー体験の両面から重要な取り組みです。PageSpeed Insights APIでデータを取得し、Gemini APIに渡すことで、問題の特定から具体的なコード修正案の提示まで自動化できます。

本記事で紹介したフローをベースに、定期的な監視スクリプトやダッシュボードへ発展させることで、Webサイトのパフォーマンス管理をより効率的に進めることができます。

Google検索でのSEO改善や日々のWebコンテンツ制作についてはGeminiの活用法が広がっています。GeminiでSEOとコンテンツ制作を効率化する実践ガイドもあわせてご覧ください。

シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

開発ツール2026-08-21
通知文の長さ指示が英語版だけ効かなかった理由と、生成後に幅で詰める実装
日英2言語のプッシュ通知を Gemini に生成させたところ、英語版だけが実機で途切れていました。原因は文字数での長さ指示です。表示幅の実測値と、生成後に詰めるフィッティング実装をまとめました。
開発ツール2026-08-15
新しい iPhone の幅を足す前に、既存の分岐表を Gemini に書き出してもらいました
画面幅の三項演算子が4本のアプリに散った状態で新機種を足す作業を、書き換えではなく分岐表の抽出と網羅検査に切り替えた記録です。抽出だけを Gemini に任せ、判定を決定的なコードに残した理由と実装をまとめます。
開発ツール2026-08-10
ヘルプが答えていない質問を、Gemini に問題を作らせて先に見つける
ヘルプやFAQに書いてあるのに問い合わせが止まらないとき、その資料から問いを生成し、資料本文だけで答えられるかを判定する二段構えの点検パイプラインを作ります。呼び出し設計と費用の見積もりまで含めた実装手順です。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →