Indexing API の使用

概要

Indexing API を使用すると、Google インデックスに登録されているページを更新または削除するよう Google にリクエストできます。 リクエストでは、ウェブページの場所を指定する必要があります。また、Google に送信した通知のステータスを取得することもできます。現在、Indexing API は、JobPosting が追加されたページ、または VideoObjectBroadcastEvent が埋め込まれたページをクロールするためにのみ使用できます。

Indexing API にリクエストを送信するときは、スタンドアロンのウェブページの場所を指定して、そのページをクロールするように、またはインデックスから削除するように Google に通知します。

以下の例に、Indexing API を使用して実行できる操作を示します。

URL を更新する

Send the following HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish endpoint
{
  "url": "https://careers.google.com/jobs/google/technical-writer",
  "type": "URL_UPDATED"
}
URL を削除する

Send the following HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish endpoint
{
  "url": "https://careers.google.com/jobs/google/technical-writer",
  "type": "URL_DELETED"
}
通知のステータスを取得する

Send a HTTP GET request to https://indexing.googleapis.com/v3/urlNotifications/metadata endpoint

パラメータ

次の表で、すべてのメソッド(URL の更新および削除)に必要なフィールドについて説明します。

フィールド
url

必須

更新または削除する項目の場所(完全修飾で表現)。

type

必須

送信した通知のタイプ。

ガイドライン

URL の更新および削除リクエストには以下のガイドラインが適用されます。

  • https://indexing.googleapis.com/v3/UrlNotifications:publish のすべての呼び出しで Content-Type ヘッダーとして「application/json」を使用する必要があります。
  • 更新リクエストの本文では URL を 1 つだけ送信できます。また、インデックス登録の一括リクエストを送信するで説明されているように、バッチでは最大 100 個のリクエストを統合可能です。
  • 以下の例におけるリクエストの本文は、アクセス トークンの例で使用されている content 変数の値です。

URL を更新する

クロールしてほしい新しい URL や、以前に送信した URL のコンテンツが更新されたことを Google に通知する手順は次のとおりです。

  1. POST リクエストを次のエンドポイントに送信します。
    Send a HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish
  2. リクエストの本文で、次の構文を使用してページの場所を指定します。
    {
      "url": "content_location",
      "type": "URL_UPDATED"
    }
  3. Indexing API の呼び出しに成功すると、Google は HTTP 200 で応答します。HTTP 200 レスポンスは、Google が URL の再クロールを近いうちに試行する可能性があることを意味します。レスポンスの本文には UrlNotificationMetadata オブジェクトが含まれます。このオブジェクトのフィールドは、通知ステータス リクエストから返されるフィールドに対応します。
  4. HTTP 200 レスポンスが届かない場合は、Indexing API 固有のエラーをご覧ください。
  5. ページのコンテンツが変更された場合は、別の更新通知を送信します。これにより、Google によるページの再クロールがトリガーされます。
  6. デフォルトよりも多くの割り当てが必要になる場合があります。現在の割り当てを表示して、追加の割り当てをリクエストする場合は、割り当てを参照してください。

URL を削除する

サーバーからページを削除したり、特定のページの <head> セクションに <meta name="robots" content="noindex" /> タグを追加したりした後は Google に通知します。そうすることで、Google は該当のページをインデックスから削除し、その後のクロールおよびインデックス登録の対象から除外できます。削除をリクエストする際は、該当する URL から 404 または 410 ステータス コードが返される状態になっているか、対象のページに <meta name="robots" content="noindex" /> meta タグが含まれていることを事前に確認してください。

インデックスからの削除をリクエストする手順は次のとおりです。

  1. POST リクエストを次のエンドポイントに送信します。
    Send a HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish
  2. リクエストの本文で次の構文を使用して、削除する URL を指定します。
    {
      "url": "content_location",
      "type": "URL_DELETED"
    }

    次に例を示します。

    {
      "url": "https://careers.google.com/jobs/google/technical-writer",
      "type": "URL_DELETED"
    }
  3. Indexing API の呼び出しに成功すると、Google は HTTP 200 で応答します。HTTP 200 レスポンスは、Google が URL をインデックスから削除する可能性があることを意味します。レスポンスの本文には UrlNotificationMetadata オブジェクトが含まれます。このオブジェクトのフィールドは、通知ステータス リクエストから返されるフィールドに対応します。
  4. HTTP 200 レスポンスが届かない場合は、Indexing API 固有のエラーをご覧ください。
  5. デフォルトよりも多くの割り当てが必要になる場合があります。現在の割り当てを表示して、追加の割り当てをリクエストする場合は、割り当てを参照してください。

通知のステータスを取得する

Indexing API を使用すると、Google が最後に受信した、指定された URL に関する各種の通知を確認できます。GET リクエストでは、Google が URL のインデックス登録や削除をいつ行ったかはわかりません。リクエストが正常に送信されたかどうかだけが返されます。

通知のステータスを取得する手順は次のとおりです。

  1. GET リクエストを次のエンドポイントに送信します。指定する URL は、URL エンコードする必要があります。たとえば、:(コロン)は %3A で置き換え、/(スラッシュ)は %2F で置き換えます。
    Send a HTTP GET request to https://indexing.googleapis.com/v3/urlNotifications/metadata?url=url-encoded_url

    次に例を示します。

    GET https://indexing.googleapis.com/v3/urlNotifications/metadata?url=https%3A%2F%2Fcareers.google.com%2Fjobs%2Fgoogle%2Ftechnical-writer
    
  2. Indexing API は、HTTP 200 メッセージと、通知に関する詳細を含むペイロードを返します。次の例は、更新と削除の通知に関する情報を含むレスポンスの本文を示しています。
    {
      url: "http://foo.com",
      latest_update: {
        type: "URL_UPDATED",
        notify_time: "2017-07-31T19:30:54.524457662Z"
      },
      latest_remove: {
        type: "URL_DELETED",
        notify_time: "2017-08-31T19:30:54.524457662Z"
      }
    }
  3. HTTP 200 レスポンスが届かない場合は、Indexing API 固有のエラーをご覧ください。
  4. デフォルトよりも多くの割り当てが必要になる場合があります。現在の割り当てを表示して、追加の割り当てをリクエストする場合は、割り当てを参照してください。

インデックス登録の一括リクエストを送信する

Indexing API を呼び出すたびにクライアントから HTTP 接続を行う必要があります。この HTTP 接続数を減らすために、API 呼び出しを最大 100 個まで 1 つの HTTP リクエストにまとめることができます。これは、バッチと呼ばれるマルチパート リクエストで行います。

バッチ リクエストを Indexing API に送信する場合、次のエンドポイントを使用します。

https://indexing.googleapis.com/batch

バッチ リクエストの本文には複数のパートが含まれます。各パートはそれ自体が完全な HTTP リクエストで、それぞれ独自の動詞、URL、ヘッダー、本文が含まれます。バッチ リクエスト内の各パートのサイズは 1 MB 以下でなければなりません。

Google の API クライアント ライブラリはバッチ機能をサポートしており、この機能を使用することでバッチ リクエストを簡単に送信できます。クライアント ライブラリを使用したバッチ処理について詳しくは、以下の言語固有のページをご覧ください。

上記のページに掲載されているバッチ処理の例を使用する場合、アクセス トークンを取得するに記載されている実装要件を満たすようにコードを更新する必要があります。

次のバッチ リクエストのメッセージ本文の例には、更新通知と削除通知が含まれています。

POST /batch HTTP/1.1
Host: indexing.googleapis.com
Content-Length: content_length
Content-Type: multipart/mixed; boundary="===============7330845974216740156=="
Authorization: Bearer oauth2_token

--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+2>

POST /v3/urlNotifications:publish [1]
Content-Type: application/json
accept: application/json
content-length: 58

{ "url": "http://example.com/jobs/42", "type": "URL_UPDATED" }
--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+1>

POST /v3/urlNotifications:publish [2]
Content-Type: application/json
accept: application/json
content-length: 75

{ "url": "http://example.com/widgets/1", "type": "URL_UPDATED" }
--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+3>

POST /v3/urlNotifications:publish [3]
Content-Type: application/json
accept: application/json
content-length: 58

{ "url": "http://example.com/jobs/43", "type": "URL_DELETED" }
--===============7330845974216740156==

詳しくは、バッチ リクエストの送信をご覧ください。