Indexing API の使用
Indexing API を使用すると、Google インデックスに登録されている求人情報やライブ配信イベントのページを更新または削除するよう Google にリクエストできます。リクエストでは、ウェブページの場所を指定する必要があります。また、Google に送信した通知のステータスを取得することもできます。Indexing API は、JobPosting
が追加されたページ、または VideoObject
に BroadcastEvent
が埋め込まれたページをクロールするためにのみ使用できます。
ガイドライン
Indexing API には以下のガイドラインが適用されます。
- Indexing API で送信されたコンテンツには、Google のスパムに関するポリシーが適用されます。
https://indexing.googleapis.com/v3/UrlNotifications:publish
のすべての呼び出しでContent-Type
ヘッダーとして"application/json"
を使用する必要があります。- 更新リクエストの本文では URL を 1 つだけ送信できます。また、インデックス登録の一括リクエストを送信するで説明されているように、バッチでは最大 100 個のリクエストをまとめて送信できます。複数のアカウントを使用するなどして、この制限以上に送信しないでください。
- 以下の例におけるリクエストの本文は、アクセス トークンの例で使用されている
content
変数の値です。
API でできること
Indexing API にリクエストを送信するときは、スタンドアロンのウェブページの場所を指定して、そのページをクロールするように、またはインデックスから削除するように Google に通知します。
以下の例に、Indexing API を使用して実行できる操作を示します。
例 | |
---|---|
URL を更新する |
以下の HTTP { "url": "https://careers.google.com/jobs/google/technical-writer", "type": "URL_UPDATED" } |
URL を削除する |
以下の HTTP { "url": "https://careers.google.com/jobs/google/technical-writer", "type": "URL_DELETED" } |
通知のステータスを取得する |
HTTP |
パラメータ
次の表で、すべてのメソッド(URL の更新および削除)に必要なフィールドについて説明します。
フィールド | |
---|---|
url |
必須 更新または削除する項目の場所(完全修飾で表現)。 |
type |
必須 送信した通知のタイプ。 |
URL を更新する
クロールを希望する新しい URL や、以前に送信した URL のコンテンツが更新されたことを Google に通知する手順は次のとおりです。
- HTTP
POST
リクエストを次のエンドポイントに送信します。https://indexing.googleapis.com/v3/urlNotifications:publish
- リクエストの本文で、次の構文を使用してページの場所を指定します。
{ "url": "CONTENT_LOCATION", "type": "URL_UPDATED" }
- Indexing API の呼び出しに成功すると、Google は
HTTP 200
で応答します。HTTP 200
レスポンスは、Google が URL の再クロールを近いうちに試行する可能性があることを意味します。レスポンスの本文にはUrlNotificationMetadata
オブジェクトが含まれます。このオブジェクトのフィールドは、通知ステータス リクエストから返されるフィールドに対応します。 HTTP 200
レスポンスが届かない場合は、Indexing API 固有のエラーをご覧ください。- ページのコンテンツが変更された場合は、別の更新通知を送信します。これにより、Google によるページの再クロールがトリガーされます。
- Indexing API は、テスト用にデフォルトの割り当てを設定しています。API を使用するには、割り当てと承認をリクエストしてください。
URL を削除する
サーバーからページを削除したり、特定のページの <head>
セクションに <meta name="robots" content="noindex" />
タグを追加したりした後は Google に通知します。そうすることで、Google は該当のページをインデックスから削除し、その後のクロールおよびインデックス登録の対象から除外できます。削除をリクエストする前に、該当する URL から 404
または 410
ステータス コードが返される状態になっていること、および対象のページに <meta name="robots" content="noindex" />
meta
タグが含まれていることを確認してください。
インデックスからの削除をリクエストする手順は次のとおりです。
POST
リクエストを次のエンドポイントに送信します。https://indexing.googleapis.com/v3/urlNotifications:publish
- リクエストの本文で次の構文を使用して、削除する URL を指定します。
{ "url": "CONTENT_LOCATION", "type": "URL_DELETED" }
次に例を示します。
{ "url": "https://careers.google.com/jobs/google/technical-writer", "type": "URL_DELETED" }
- Indexing API の呼び出しに成功すると、Google は
HTTP 200
で応答します。HTTP 200
レスポンスは、Google が URL をインデックスから削除する可能性があることを意味します。レスポンスの本文にはUrlNotificationMetadata
オブジェクトが含まれます。このオブジェクトのフィールドは、通知ステータス リクエストから返されるフィールドに対応します。 HTTP 200
レスポンスが届かない場合は、Indexing API 固有のエラーをご覧ください。- Indexing API は、テスト用にデフォルトの割り当てを設定しています。API を使用するには、割り当てと承認をリクエストしてください。
通知のステータスを取得する
Indexing API を使用すると、Google が最後に受信した、指定された URL に関する各種の通知を確認できます。GET
リクエストでは、Google が URL のインデックス登録や削除をいつ行ったかはわかりません。リクエストが正常に送信されたかどうかだけが返されます。
通知のステータスを取得する手順は次のとおりです。
GET
リクエストを次のエンドポイントに送信します。指定する URL は、URL エンコードする必要があります。たとえば、:
(コロン)は%3A
で置き換え、/
(スラッシュ)は%2F
で置き換えます。https://indexing.googleapis.com/v3/urlNotifications/metadata?url=ENCODED_URL
次に例を示します。
GET https://indexing.googleapis.com/v3/urlNotifications/metadata?url=https%3A%2F%2Fcareers.google.com%2Fjobs%2Fgoogle%2Ftechnical-writer
- 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" } }
HTTP 200
レスポンスが届かない場合は、Indexing API 固有のエラーをご覧ください。- Indexing API は、テスト用にデフォルトの割り当てを設定しています。API を使用するには、割り当てと承認をリクエストしてください。
インデックス登録の一括リクエストを送信する
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==
詳しくは、バッチ リクエストの送信をご覧ください。