ブログ記事を書くたびにGoogle Search Consoleでインデックス登録をリクエストしている人は少なくないだろう。
Google Indexing APIを使うと、わざわざサーチコンソールの画面にアクセスせずとも、インデックス登録リクエストの作業を自動化できる。
僕はiPhoneからブログを更新することも多いので、iOSショートカットからそれを実行する方法を解説する。
【2026-06-03 追記】この手法はもう非推奨。通常ページのインデックス登録には使わないでほしい。
この記事を書いた2023年当時は、Indexing APIで自分の記事を投げると体感でちゃんとクロールが走っていた。だが2026年現在、状況はだいぶ変わってしまった。
そもそもIndexing APIは、建前としては求人情報(JobPosting)とライブ配信(BroadcastEvent)専用のAPIだ。当時は通常の記事ページに対しても効いてしまっていたので、僕を含めみんな普通のブログ更新通知に使っていた、というのが実態だった。
ところが2024年にGoogleが「このAPIが突然効かなくなっても驚かないでほしい」と公式に釘を刺し、2025年には承認制(利用申請が必要な形)が導入された。GoogleのJohn Mueller氏も「スパマーによる乱用が多い。文書化された用途(=求人・ライブ配信)にだけ使ってくれ」とハッキリ明言している。
実際、通常ページにこのAPIを使うと「一旦インデックスされてもすぐ削除される」「送ったのにトラフィックがガクンと落ちて戻ってこない」といった報告も出ている。つまり今やリスクの方が大きい。
じゃあどうするのが正解か? 結局、地味だけど王道に戻るのが一番だ。
- sitemapの
lastmodを正確に運用する(記事を更新したら、その日時をちゃんと反映させる) - どうしても急ぎたい時だけ、Search Consoleの「URL検査」→「インデックス登録をリクエスト」を手動で押す
この2つで十分だし、これがGoogleの想定どおりの正攻法だ。
以下の本文は、当時の記録としてそのまま残しておく。手順の資料的価値はあると思うので、「2023年にはこういうやり方が通用していた」という前提で読んでほしい。
事前準備
下準備については、以下のサイトで丁寧に解説がなされているので参照してほしい。
ここからの解説は、サービスアカウントの作成が完了している前提で進めていく。
準備1:OAuth2.0の設定
- Google Cloud Consoleにアクセスする
- 左側のナビゲーションメニューから「APIとサービス」 > 「認証情報」に移動
- 「認証情報を作成」ボタンをクリックし、「OAuth 2.0 クライアントID」を選択
- アプリケーションの種類で「ウェブアプリケーション」を選択
- 名前は適当につける
- 「承認済みのリダイレクトURI」に
https://www.google.com
を追加
作成を押すと、「クライアント ID」と「クライアント シークレット」が表示されるので、これをメモしておく。
準備2:アクセストークンを取得
-
以下のURLにブラウザでアクセス。
このとき、YOUR_CLIENT_IDの部分を上記でメモした「クライアントID」に置き換える。
https://accounts.google.com/o/oauth2/auth?client_id=YOUR_CLIENT_ID&redirect_uri=https://www.google.com&scope=https://www.googleapis.com/auth/indexing&response_type=code&access_type=offline -
Google アカウントでログインし、アクセスを許可する。
-
自動でGoogleのトップに飛ぶ。
このとき、ブラウザのURL欄を確認すると以下のようにcodeというパラメータが含まれているので、YOUR_CODEの部分をメモしておく。
https://www.google.com/?code=YOUR_CODE&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Findexing
このcodeの有効期限は約10分しかないので、10分以内に次のステップを完了しよう。
準備3:リフレッシュトークンの取得
準備の最終ステップとして、ここからは実際にiOSショートカットを使っていく。
まずは、以下のような3ステップのアクションを構築して実行しよう。

以下、各アクションについて解説する。
-
1つ目:「テキスト」アクション
以下の記述を入れる。
YOUR_CODEとYOUR_CLIENT_IDとYOUR_CLIENT_SECRETの部分は、ここまでのステップでメモしたものに置き換える。code=YOUR_CODE&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&redirect_uri=https://www.google.com&grant_type=authorization_code -
2つ目:「URLの内容を取得」アクション
URL欄には、https://accounts.google.com/o/oauth2/tokenを入力する。
「方法」は「POST」を選択し、「ヘッダ」にはキーに「Content-Type」値に「application/x-www-form-urlencoded」と入力した行を追加する。
「本文を要求」は「ファイル」を選択し、ファイルには1つ目の「テキスト」アクションを指定する。 -
3つ目:「結果を表示」アクション
2つ目の「URLの内容を取得」の結果を表示するように設定する
完了したら、アクションを実行しよう。
以下のようなメッセージが返ってきたら成功だ。
REFRESH_TOKENの部分を控えておこう。
{"refresh_token":"REFRESH_TOKEN","scope":"https:\/\/www.googleapis.com\/auth\/indexing","expires_in":3599,"access_token":"ACCESS_TOKEN","token_type":"Bearer"}
もし、以下のようなエラーが返ってきたら、おそらくYOUR_CODEの有効期限切れなので、準備2からやり直そう。
{"error":"invalid_grant","error_description":"Bad Request"}
これで準備は完了だ。
実際に使用するショートカットの作成に移ろう。
ショートカットの作成
作成すべきアクションの全体像は以下のようになる。

以下、各アクションについて解説する。
-
1つ目:「入力を要求」アクション
ここは特定のURLが渡せるアクションであれば何でもOK。 -
2つ目:「テキスト」アクション
以下の記述を入れる。
YOUR_CLIENT_IDとYOUR_CLIENT_SECRETとREFRESH_TOKENの部分はここまでのステップでメモしたものに置き換える。client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&refresh_token=REFRESH_TOKEN&redirect_uri=https://www.google.com&grant_type=refresh_token
もし、メモしているREFRESH_TOKENの中に「\(バックスラッシュ)」が含まれていたらエラーの原因になるので削除しておくこと。
例)「1\/\/0e9…」のようになっていたら、「1//0e9…」とバックスラッシュを削除
-
3つ目:「URLの内容を取得」アクション
URL欄には、https://accounts.google.com/o/oauth2/tokenを入力する。
「方法」は「POST」を選択し、「ヘッダ」にはキーに「Content-Type」値に「application/x-www-form-urlencoded」と入力した行を追加する。
「本文を要求」は「ファイル」を選択し、ファイルには2つ目の「テキスト」アクションを指定する。 -
4つ目:「辞書の値を取得」アクション
入力は3つ目の「URLの内容を取得」アクションの結果を指定し、キーの欄にはaccess_tokenと記述しておこう。 -
5つ目:「テキスト」アクション
以下の記述を入れる。
REQUEST_URLの部分には、1つ目:「入力を要求」アクションの結果を変数として挿入しよう。
URL_UPDATEDの部分はそのままでOKだ。
{ "url": "REQUEST_URL", "type": "URL_UPDATED" } -
6つ目:「URLの内容を取得」アクション
URL欄には、https://indexing.googleapis.com/v3/urlNotifications:publishを入力する。
「方法」は「POST」を選択し、「ヘッダ」にはキーに「Authorization」値に「Bearer access_token」と入力した行を追加する。
access_tokenの部分には、4つ目:「辞書の値を取得」アクションの結果を変数として挿入しよう。
「本文を要求」は「ファイル」を選択し、ファイルには5つ目の「テキスト」アクションを指定する。 -
7つ目:「結果を表示」アクション
6つ目の「URLの内容を取得」の結果を表示するように設定する
すべて完了したら、アクションを実行して何か適当に自分のサイトのURLを入力してみよう。
以下のようなメッセージが返ってきたら成功だ。
{“urlNotificationMetadata”:{“url”:“送信したURL”,“latestUpdate”:{“url”:“送信したURL”,“type”:“URL_UPDATED”,“notifyTime”:“送信した日時(世界標準時)”}}}
試しに、送信したURLをサーチコンソール上で確認してみよう。
「前回のクロール」欄にショートカットを実行した日時が記載されていればリクエストが完了している。

これで、サーチコンソール上で手動でURLを送信したのと同じ状態になったので、あとはGoogleのインデックス化を待つだけだ。
Xでシェア