Indexing API の使用

概要

Indexing API を使用すると、Google インデックスに登録されているページを更新または削除するよう Google にリクエストできます。リクエストでは、ウェブページの場所を指定する必要があります。また、Google に送信した通知のステータスを取得することもできます。現時点では、求人情報の構造化データを含む求人情報ページをクロールするには、Indexing API を使用する必要があります。

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

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

URL を更新する

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

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

GET https://indexing.googleapis.com/v3/urlNotifications/metadata

パラメータ

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

URL を削除する

サーバーからページを削除した後、Google がインデックスからページを削除できるようにするために、また、URL を再クロールしないようにするために、Google に通知します。削除をリクエストする前に、サーバーからページを削除して、URL が 404 または 410 のステータス コードを返すようにする必要があります。

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

  1. POST リクエストを次のエンドポイントに送信します。
    POST 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. Google は、Indexing API の正常な呼び出しに対して 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 で置き換えます。
    GET 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. デフォルトよりも多くの割り当てが必要になる場合があります。現在の割り当てを表示して、追加の割り当てをリクエストする場合は、割り当てを参照してください。

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

クライアントが確立する必要がある HTTP 接続の数を減らすために、Indexing 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==

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

フィードバックを送信...