GEMINI LABEN
NANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定ですNANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定です
記事一覧/開発ツール
開発ツール/2026-04-08中級

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

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

gemini102core-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/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

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

関連記事

開発ツール2026-07-02
ワンクリックデプロイの『その先』— AI Studio から Cloud Run に出した Gemini アプリを本番に引き上げる点検手順
AI Studio の build タブから Cloud Run へワンクリックデプロイした Gemini アプリは、そのままでは本番相当ではありません。APIキーの保管・認証・費用上限・観測の4点を、gcloud コマンドつきで点検する手順を整理しました。
開発ツール2026-06-30
どのプロンプト改訂で品質が動いたかを後から辿る — Gemini 生成パイプラインにプロンプト版管理を入れる
プロンプトをその場で書き換えると、品質が動いたときに原因がモデル側なのかプロンプト側なのか辿れなくなります。プロンプトを内容ハッシュで固定し、生成のたびにモデルIDと一緒に刻んで、品質が落ちた区間を改訂境界へ二分探索で寄せる小さな仕組みを、コピペで動く Python で残します。
開発ツール2026-06-17
Gemini API のチャット履歴を Redis で運用する — 本番で会話状態を失わない実装メモ
Gemini のチャット履歴をプロセスメモリに置いたまま本番に出すと、再デプロイやスケールのたびに会話が消えます。Redis を受け皿にしつつ、トークン予算・同時送信・SDK 依存・障害時の縮退まで、実運用で踏んだ箇所を実装とともにまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →