サーチコンソールAPIのURL検査(inspection)をGASで実行する方法

Googleが提供するSEOツール「サーチコンソール」はAPIでも実行することができます。

以前はなかったURL検査を実行するコマンド「inspection」が用意されたので、Google Apps Script(GAS)で実行する方法を紹介します。

サーチコンソールAPIにURL検査が実装

Google検索セントラルブログは、GoogleのSEOツール「サーチコンソール」の情報を発信している公式ブログです。

2022年1月31日にそのGoogle検索セントラルブログで新しい記事が公開されました。

Google検索セントラルブログに2022年1月31日にURL検査の新しいAPIが登場したと発表(英語版のみ)

Welcoming the new Search Console URL Inspection API(Google Search Central Blog)

※残念ながら翻訳されていないため、日本語版がまだなく、英語版のみ公開されています。

ブログ記事によると、「Google Search Console URL Inspection APIを公開しました。」とあります。

以前、AutoWorkerでもサーチコンソールAPIの利用方法の紹介記事を掲載しています。

ただ、このときはサーチコンソール管理画面の検索パフォーマンス「検索結果」の情報を取得できる機能でした。

サーチコンソールのURL検査がAPIで可能に

今回のリリースでサーチコンソールのAPIでURL検査が実行可能となりました。

サーチコンソール管理画面のURL検査

サーチコンソールには所有するサイトのページがGoogle検索にインデックス登録されているか確認する機能として、URL検査があります。

URL検査では調べたい記事ページなどのURLを入力することで、Googleインデックス登録状況をチェックできます。

これまでのサーチコンソールAPIにはこの機能がなかったのですが、新たに実装されたことで、URL検査もAPI経由で実行可能です。

Search Console URL Inspection API

サーチコンソールのURL検査を行うためのAPIが「Search Console URL Inspection API」です。

Search Console URL Inspection API(Google Developers)

※英語のリファレンスページです。

新しくできたAPIには「index:inspect」というメソッドが用意されています。

このinspectメソッドには、サイトURL、検査対象URL、言語コードの3つ用意してHTTP POSTすると、URL検査結果を得ることができます。

「URL Inspection API」の実行制限を確認したところ、以下2点でした。

  • 1日当たり2000クエリ
  • 1分当たり600クエリ

1日2000クエリも実行できるので、無料でも十分な実行回数があります。

大規模なサイトでは2000ページを超えるサイトもあるため、そうした場合は日数を分けて実行が必要です。

サーチコンソールAPIのURL検査のGASサンプルコード

実際にサーチコンソールAPIに新たに実装されたURL検査を、Google Apps Script(GAS)で実行するサンプルコードを解説します。

サーチコンソールAPIはGASの標準サービスに用意されているAPIではないので、事前設定が必要です。

サーチコンソールAPIの有効化とGASのプロジェクトの紐付け方法は先程紹介した記事で解説しているので、そちらを確認ください。

Google Cloud Platform(GCP)でサーチコンソールAPIの有効化とGASプロジェクトとの紐付けができたところで、サンプルコードを用意します。

Google Apps Script(GAS)でサーチコンソールAPIのURL検査(Search Console URL Inspection API)を実行するサンプルコード
function searchConsoleInspect(){
  //インデックスを検査するAPIを実行する
  let apiURL = "https://searchconsole.googleapis.com/v1/urlInspection/index:inspect";
  //サーチコンソールの検査対象のURLを定義する
  let inspectUrl = "URL検査したいURL";
  //APIのパラメータに必要なサイトURLを定義する
  let siteUrl = "サーチコンソールに登録したサイトURL";
  //APIリクエスト時にセットするペイロード値を設定する
  let payload = {
    'inspectionUrl' : inspectUrl,
    'siteUrl': siteUrl,
    "languageCode" : 'ja'
  };
  //HTTPSのPOST時のオプションパラメータを設定する
  let options = {
    'payload' : JSON.stringify(payload),
    'myamethod'  : 'POST',
    'muteHttpExceptions' : true,
    'headers' : {"Authorization" : "Bearer " + ScriptApp.getOAuthToken()},
    'contentType' : 'application/json'
  };
  //APIリクエストを行った結果のJSONデータを変換する
  let response = UrlFetchApp.fetch(apiURL, options);
  let json = JSON.parse(response);
  console.log(json.inspectionResult);
}

インデックス検査するAPIを定義し、検査対象のURLとサイトURL、そして日本語コード「ja」を設定します。

用意したペイロードの値と認証情報をオプションとして設定し、UrlFetchApp.fetchでHTTP POSTします。

実行後、返却されたJSONデータをパースした結果が実行ログに出力されます。

サーチコンソールAPIでURL検査(URL Inspection API)をGoogle Apps Script(GAS)で実行したスクリプトと実行ログ

実行ログの内容は英語になっていますが、coverageStateの部分に「送信して登録されました」とあります。

サーチコンソールのURL検査画面でも見たことがあるメッセージです。

サーチコンソールAPIの「Search Console URL Inspection API」は、管理画面のURL検査と同様の実行結果を得ることが可能

普段ブログやウェブサイトを運営している方は見たことがあるURL検査と同じ内容をサーチコンソールAPIで取得できました。

インデックス登録のリクエストはAPIで実行不可

今回紹介した「Search Console URL Inspection API」は、URL検査の結果をAPI経由で取得する機能です。

残念ながら、インデックス登録されていない場合にサーチコンソールで実行する「インデックス登録をリクエスト」(※かつてのフェッチ)はAPIで実行できません。

そのため、APIで実行できるのは、URL検査の結果を取得するところまでで、インデックス登録のリクエストは、サーチコンソールの管理画面から実行する必要があります。

まとめ・終わりに

今回、サーチコンソールAPIの「Search Console URL Inspection API」の紹介と、Google Apps Script(GAS)で実行する方法を紹介しました。

新しい記事を公開後、きちんとGoogleにインデックス登録されているかチェックするURL検査の取得がAPI経由で実行可能です。

GASでもサーチコンソールAPIと連携後、サンプルコードを使えば簡単に実行できます。

ただ、残念ながらインデックス登録されていない場合の「インデックス登録をリクエスト」を実行するAPIは用意されていません。

そのため、URL検査を実行し、インデックス登録されていないURLをスプレッドシートにリストアップするような使い方が考えられます。

サーチコンソールのURL Inspection APIを使って、URL検査の自動実行を試してみてください。