前回の IndexNow に続いて、Google でも自動化してみることにした。
調べてみると、Google は API として Web Search Indexing というものを提供していた。

1. 対象範囲

公式にこの API がサポートしている範囲は、求人情報とストリーミング動画サービスである。
リアルタイム性が重要な内容についてインデックスを生成するため、とのことだが、調べてみると一般的なブログもみんなリクエストを投げているようだ。
2. Cloud Console と Search Console で API を設定する
インデックス用の API ライブラリも、Google 兄さんたちが親切に作っておいてくれている。
自分で作ろうとせず、そのまま使わせてもらおう。
このライブラリを使ってサイトのインデックス生成を行うには、まず認証が完了している必要がある。
下記のアドレスにアクセスして、サービスアカウントを1つ作成しよう。

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

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

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


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 と一緒に適用しておいた。
これで、記事を書きさえすれば登録は自動で行われる。
デバッグ用コンソールを覗いてみると、ちゃんと動いている。

4. 所感
個人で自作ブログを運営しようとすると、気を配ることが多い。
セキュリティ問題やハッキング対策、新しい機能作りなど...
考えてみれば、素直に WordPress を入れてプラグインを買ったほうが気楽ではあるけれど、こうして一つずつ作り上げていく楽しさもあるように思う。
これからもいろいろな機能を作ってみたい。
댓글을 불러오는 중...