Indexing API の使用
概要
Indexing API を使用すると、Google インデックスに登録されているページを更新または削除するよう Google にリクエストできます。
リクエストでは、ウェブページの場所を指定する必要があります。また、Google に送信した通知のステータスを取得することもできます。現在、Indexing API は、JobPosting
が追加されたページ、または VideoObject
に BroadcastEvent
が埋め込まれたページをクロールするためにのみ使用できます。
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 に通知する手順は次のとおりです。
POST
リクエストを次のエンドポイントに送信します。Send a HTTP POST request to 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 によるページの再クロールがトリガーされます。
- デフォルトよりも多くの割り当てが必要になる場合があります。現在の割り当てを表示して、追加の割り当てをリクエストする場合は、割り当てを参照してください。
URL を削除する
サーバーからページを削除したり、特定のページの <head>
セクションに <meta name="robots" content="noindex" />
タグを追加したりした後は Google に通知します。そうすることで、Google は該当のページをインデックスから削除し、その後のクロールおよびインデックス登録の対象から除外できます。削除をリクエストする際は、該当する URL から 404 または 410 ステータス コードが返される状態になっているか、対象のページに <meta name="robots" content="noindex" />
meta
タグが含まれていることを事前に確認してください。
インデックスからの削除をリクエストする手順は次のとおりです。
POST
リクエストを次のエンドポイントに送信します。Send a HTTP POST request to 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 を使用すると、Google が最後に受信した、指定された URL に関する各種の通知を確認できます。GET
リクエストでは、Google が URL のインデックス登録や削除をいつ行ったかはわかりません。リクエストが正常に送信されたかどうかだけが返されます。
通知のステータスを取得する手順は次のとおりです。
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
- 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 を呼び出すたびにクライアントから 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==
詳しくは、バッチ リクエストの送信をご覧ください。