使用 Indexing API
概览
您可以使用 Indexing API 通知 Google 更新或移除 Google 索引中的网页。
发送请求时必须指定网页的位置。对于已发送给 Google 的通知,您还可以获取其状态。目前,Indexing API 只能用于抓取包含 JobPosting
或 BroadcastEvent
(嵌套于 VideoObject
)的网页。
当您向 Indexing API 发送请求时,请指定独立网页的位置,以通知 Google 可以抓取此网页或从索引中移除此网页。
以下示例演示了您可以使用 Indexing API 执行的操作:
更新网址
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" }移除网址 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 |
必需 要更新或移除内容的完全限定位置。 |
type |
必需 您提交的通知的类型。 |
准则
以下准则适用于更新和移除网址请求。
- 所有对 https://indexing.googleapis.com/v3/UrlNotifications:publish 的调用都必须使用“application/json”作为
Content-Type
标头。 - 只能在更新请求的正文中提交一个网址,或者如发送批量索引编制请求中所述,批量整合最多 100 个请求。
- 这些示例中的请求正文是访问令牌示例中使用的
content
变量的值。
更新网址
要将需抓取的新网址告诉 Google,或通知 Google 之前提交网址的内容已更新,请按以下步骤操作:
- 将
POST
请求提交到以下端点:Send a HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish
- 在请求的正文中,使用以下语法指定网页的位置:
{ "url": "content_location", "type": "URL_UPDATED" }
- Google 会对成功的 Indexing API 调用做出
HTTP 200
响应。HTTP 200
响应意味着 Google 可能很快会尝试重新抓取此网址。响应的正文包含一个UrlNotificationMetadata
对象,其字段对应通知状态请求返回的字段。 - 如果没有收到
HTTP 200
响应,请参见与 Indexing API 相关的错误。 - 如果网页内容发生变化,请另外提交一个更新通知,这会触发 Google 重新抓取该网页。
- 您可能需要超出默认配给量的配额。要查看当前配额和申请更多配额,请参阅配额。
移除网址
当您从服务器中删除网页或在给定网页的 <head>
部分添加 <meta name="robots" content="noindex" />
标记后,请通知 Google,以便我们从索引中移除该网页,不再尝试抓取并将其编入索引。在请求移除之前,网址必须返回 404 或 410 状态代码,或者网页包含 <meta name="robots" content="noindex" />
meta
标记。
如需请求从我们的索引中移除网页,请按以下步骤操作:
- 将
POST
请求提交到以下端点:Send a HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish
- 使用以下语法在请求的正文中指定要移除的网址:
{ "url": "content_location", "type": "URL_DELETED" }
例如:
{ "url": "https://careers.google.com/jobs/google/technical-writer", "type": "URL_DELETED" }
- Google 会对成功的 Indexing API 调用做出
HTTP 200
响应。HTTP 200
响应意味着 Google 可能会从索引中移除此网址。响应的正文包含一个UrlNotificationMetadata
对象,其字段对应通知状态请求返回的字段。 - 如果没有收到
HTTP 200
响应,请参见与 Indexing API 相关的错误。 - 您可能需要超出默认配给量的配额。要查看当前配额和申请更多配额,请参阅配额。
获取通知状态
您可以使用 Indexing API 查看 Google 上次针对特定网址收到每种通知的时间。GET
请求不会告知您 Google 何时将网址编入索引或移除网址;它只返回请求提交后的状态。
要获取通知的状态,请按以下步骤操作:
- 将
GET
请求提交到以下端点。您指定的网址必须经过 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 相关的错误。 - 您可能需要超出默认配给量的配额。要查看当前配额和申请更多配额,请参阅配额。
发送批量索引编制请求
要减少客户端需要创建的 HTTP 连接数,您可以将最多 100 个 Indexing API 调用整合到单个 HTTP 请求中。此操作可以通过多部分请求(批量请求)执行。
向 Indexing API 发送批量请求时,请使用以下端点:
https://indexing.googleapis.com/batch
批量请求的正文包含多个部分。每个部分本身都是一个完整的 HTTP 请求,拥有自己的动词、网址、标头和正文。批量请求中每个部分的大小不能超过 1MB。
为了方便您发送批量请求,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==
如需了解详情,请参阅发送批量请求。