【Javascript】Google Indexing API をローカルから叩く

Google Indexing APIを使用して、特定のウェブページのインデックス登録状態に関するリクエストをGoogleに送信することができます。

2024年02月14日

現在私は、当ブログ含め複数のサイトを管理しているのですが、毎度のことGoogle Search Console にて、なかなかインデックスされない問題が起きます。

  • sitemapは登録されている
  • 検出 - インデックス未登録 がいくつもある

なぜかと思い調べてみると、立ち上げて間もないサイトだったり、URLが少ないサイトだったりすると同様の問題が起こっているようです。

手動で登録する方法

対象のURLが5本や6本であれば、手動で登録したほうがいいでしょう。
※ 以下の手順は、Google Search Consoleの仕様次第で変わる場合があります。

  1. Google Search Consoleにログイン:
    ・Google Search Console にアクセスし、Googleアカウントでログインします。
    ・対象となるウェブサイトのプロパティを選択します。
  2. URLの検査:
    ・Search Consoleのホームページ上部にある検索バーに、インデックス登録したいURLを入力します。
    ・「検索」またはエンターキーを押して、URLを送信します。
  3. URLの状態を確認
    ・URLがGoogleによって既にクロールされている場合は、そのステータス(例:「インデックス登録済み」)が表示されます。
    ・もしURLがまだインデックスに含まれていない場合、「URLはGoogleによってインデックス登録されていません」というメッセージが表示されることがあります。
  4. インデックス登録のリクエスト:
    ・URLがまだインデックスに含まれていない場合、画面に「インデックス登録をリクエスト」というオプションが表示されます。
    ・このオプションをクリックして、Googleに対してそのURLをクロールし、インデックスに追加するようリクエストします。
  5. 結果の確認:
    インデックス登録のリクエスト後、しばらく時間を置いてから再度URLを検索し、インデックスの状態を確認します。

APIを叩く方法

さて本命です。
対象のURLが何十本もある場合はどうでしょう。私のサイトでは、40本あってもクロールが開始されませんでした。
APIで一気に済ませた方がインデックスされるのも早いですし、何より手間がかかりません。

今回はGitHubにてリポジトリを用意しているので、必要な設定をここで説明しておきます。
ロジック等はリポジトリをご覧ください。

APIの有効化

たびたびAPIの名前が変わるようなので、現時点での名称「Web Search Indexing API」で記載しています。

  1. Google Cloud Consoleにログイン:
    ・Google Cloud Console にアクセスし、Googleアカウントでログインします。
    ・使用するプロジェクトを選択します。プロジェクトがまだない場合は、新しく作成します。
  2. APIライブラリを開く:
    Google Cloud Consoleのダッシュボードで、左側のナビゲーションメニューから「APIとサービス」を選択し、「ライブラリ」をクリックします。
  3. Web Search Indexing API を有効化:
    ライブラリページの検索バーに「Web Search Indexing API」と入力し、結果から有効化します。

サービスアカウントを作成

※ くれぐれも公開しないように注意しましょう。

  1. Google Cloud Consoleにログイン
    ・ Google Cloud Console にアクセスし、Googleアカウントでログインします。
    ・ 既にプロジェクトを持っている場合は、そのプロジェクトを選択します。新しいプロジェクトが必要な場合は、新しいプロジェクトを作成します。
  2. サービスアカウントページへ移動
    ・ Google Cloud Consoleのダッシュボードで、左側のメニューから「IAMと管理」を選択します。
    ・ メニューの中から「サービスアカウント」を選びます。
  3. サービスアカウントの作成:
    ・ 「サービスアカウント」ページで「サービスアカウントを作成」をクリックします。


    サービスアカウントの詳細:
    ・サービスアカウント名: 識別しやすい名前を入力します。
    ・サービスアカウントID: 自動生成されますが、必要に応じてカスタマイズできます。
    ・サービスアカウントの説明: オプションで、サービスアカウントの目的を説明します。
    ※ ローカルで使うだけなので、権限はそのままで「作成」をクリックします
  4. サービスアカウントキーの作成:
    ・ 新しく作成したサービスアカウントに対して、「キーを作成」をクリックします。
    ・ キーファイルをJSON形式で選択します。
    ・ 「作成」をクリックし、キーファイルを安全な場所に保存しましょう。

Google Search Console で権限追加

ここでは「サービスアカウントを作成」にてダウンロードしたJSONファイルから、client_emailを確認してください。

  1. サービスアカウントの client_email をコピーしておきます。
  2. Google Search Console の「設定 > ユーザーと権限」にて、コピーしたメールアドレスをオーナー権限で追加します。

リポジトリ

興味ある方は、こちらからCloneして試してみてください。
Readmeにて詳しいことは書いてあります。

筆者情報
IT業界経験6年目のフルスタックエンジニア。
フロントエンドを軸として技術を研鑽中でございます。