Google検索インデックスの自動化 - Web Search Indexing API

힘센캥거루
2026년 1월 20일(수정됨)
2
20

前回の IndexNow に続いて、Google でも自動化してみることにした。

調べてみると、Google は API として Web Search Indexing というものを提供していた。

Google検索インデックスの自動化 - Web Search Indexing API-1

1. 対象範囲

Google検索インデックスの自動化 - Web Search Indexing API-2

公式にこの API がサポートしている範囲は、求人情報とストリーミング動画サービスである。

リアルタイム性が重要な内容についてインデックスを生成するため、とのことだが、調べてみると一般的なブログもみんなリクエストを投げているようだ。

2. Cloud Console と Search Console で API を設定する

インデックス用の API ライブラリも、Google 兄さんたちが親切に作っておいてくれている。

自分で作ろうとせず、そのまま使わせてもらおう。

このライブラリを使ってサイトのインデックス生成を行うには、まず認証が完了している必要がある。

下記のアドレスにアクセスして、サービスアカウントを1つ作成しよう。

Google検索インデックスの自動化 - Web Search Indexing API-4

そして、そのアカウントの email アドレスをコピーして、Search Console の「設定 -> ユーザーと権限」に追加しよう。

Google検索インデックスの自動化 - Web Search Indexing API-5

下の画像では権限が「全体」になっているが、必ず 所有者 として登録する必要がある。

Google検索インデックスの自動化 - Web Search Indexing API-6

そして再びサービスに戻って json キーを1つ発行すれば、大まかな準備は完了だ。

Google検索インデックスの自動化 - Web Search Indexing API-7Google検索インデックスの自動化 - Web Search Indexing API-8

3. サーバーからリクエストを投げる

公式ドキュメントの 前提条件 の一番下にあるコードを使って作ってみた。

やはりここにも GPT 大先輩の手が加わっている。

import key from "@/utils/seo/다운받은json.json";
import { google } from "googleapis";

type IndexingType = "URL_UPDATED" | "URL_DELETED";

export async function publishIndexing(url: string, type: IndexingType = "URL_UPDATED") {
  const jwtClient = new google.auth.JWT({
    email: key.client_email,
    key: key.private_key,
    scopes: ["https://www.googleapis.com/auth/indexing"],
  });

  await jwtClient.authorize();

  const indexing = google.indexing({ version: "v3", auth: jwtClient });

  const res = await indexing.urlNotifications.publish({
    requestBody: { url, type },
  });

  return res.data;
}

これをそれぞれの API エンドポイントに IndexNow と一緒に適用しておいた。

これで、記事を書きさえすれば登録は自動で行われる。

デバッグ用コンソールを覗いてみると、ちゃんと動いている。

Google検索インデックスの自動化 - Web Search Indexing API-9

4. 所感

個人で自作ブログを運営しようとすると、気を配ることが多い。

セキュリティ問題やハッキング対策、新しい機能作りなど...

考えてみれば、素直に WordPress を入れてプラグインを買ったほうが気楽ではあるけれど、こうして一つずつ作り上げていく楽しさもあるように思う。

これからもいろいろな機能を作ってみたい。

관련 글

Next.js フルスタックブログ開発記
Next.js フルスタックブログ開発記
Web開発に初めて触れてから1年ほど経った頃、自分だけのブログを持ちたいと思うようになった。そこで、およそ6か月これだけにかかりきりになって作ってみることにした。フロントエンド側の機能については、下記のキム・ドヒョンさんのブログを参考にするだけで十分だと思う。自分も mdx を使ってブログを作るだけ...
Caddyを利用した Next.js 無停止デプロイ(ローカルサーバー)
Caddyを利用した Next.js 無停止デプロイ(ローカルサーバー)
ホームページに何かをちょこちょこ載せたくなるたびにビルドしていたら、そのタイミング에 가끔 접속하는人がいるようだった。そうしているうちに、サーチコンソールでスコアがどんどん下がる現象が起きた。このままではまずいと思い、無停止デプロイをする方法を考えてみることにした。1. プロジェクトフォルダ2つ+...
検索インデックス生成の自動化 - IndexNow
検索インデックス生成の自動化 - IndexNow
Bingにサイト登録をしている途中で知ったのだが、Bingでは IndexNow という機能を提供している。ポイントは、APIキーを使って、記事を書いた直後にすぐインデックス作成リクエストを飛ばせるということ。下のようなリクエストを fetch で作り、投稿機能に連動させておけば、記事をDBに保存す...
Nextjs、React サーバーがハッキングされた経験
Nextjs、React サーバーがハッキングされた経験
最初にセキュリティ問題に気づいたのは、12月5日の未明だった。React で認証なしにリモートコード実行が可能だということ。そのニュースを見て他の人には共有したものの、自分は大丈夫だろうと思って特に気にも留めなかった。1. ハッキングの痕跡を発見ところが、ブログのコードを更新しようとアクセスしてみる...
ブログに多言語機能を追加する(NextJS・next-intl・Vercel AI SDK)
ブログに多言語機能を追加する(NextJS・next-intl・Vercel AI SDK)
最近、ブログに多言語対応機能が必要だと感じた。そこで next-intl を使って多言語サービスを実装してみることにした。1.i18nまず多言語サービスを行うときには、守るべき原則がある。これを internationalization と呼ぶが、かなり長いので、先頭の i と末尾の n、そしてその...
Nextjsで多言語設定をする方法
Nextjsで多言語設定をする方法
私のブログへのアクセスを増やすためにどうすればいいか考えて、多言語設定を試してみることにしました。さまざまな方法を探しましたが、まずは言語ごとに異なるルーティングをすることから始めることに。next-intlを使って試してみました。1. インストールyarn add next-intl2. 適用適用は少し面倒ですが、次のような手順で進めれば大丈夫です。

댓글을 불러오는 중...