Использование Indexing API
Общие сведения
С помощью Indexing API можно сообщить Google, какие страницы нужно повторно проиндексировать или удалить.
В запросе должен быть указан URL веб-страницы. Вы также можете с помощью этого API получать сведения о статусе уведомлений, отправленных в Google. На данный момент Indexing API поддерживает сканирование страниц со структурированными данными типов JobPosting
или BroadcastEvent
, которые встроены в объект VideoObject
.
Отправляя запрос в Indexing API, вы должны указывать URL конкретной веб-страницы, которую необходимо обновить в индексе 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" } 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 |
Обязательное поле Полный URL элемента, который нужно обновить или удалить. |
type |
Обязательное поле Тип отправленного уведомления. |
Правила
Создавая запросы на обновление и удаление URL, соблюдайте следующие правила:
- При каждом вызове URL https://indexing.googleapis.com/v3/UrlNotifications:publish в заголовке
Content-Type
должно быть указано значение application/json. - В теле запроса на обновление следует указывать не более одного URL. Но вы можете объединять до 100 запросов и отправлять их вместе.
- Тело запроса в этих примерах – значение переменной
content
, которая используется в примерах токена доступа.
Обновление URL
Вы можете сообщать нам об изменении контента, расположенного по определенным URL, а также о появлении новых URL, которые необходимо просканировать. Вот как это сделать:
- Отправьте запрос
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. - Если контент страницы изменился, отправьте ещё одно уведомление об обновлении, чтобы наш робот повторно просканировал страницу.
- Возможно, вам потребуется более высокая квота по сравнению с доступной по умолчанию. Узнайте, как проверить свою квоту и запросить ее увеличение.
Удаление URL
Если вы удаляете ту или иную страницу со своего сервера или добавляете тег <meta name="robots" content="noindex" />
в раздел <head>
, сообщите об этом Google, чтобы мы убрали страницу из индекса и не пытались просканировать и проиндексировать ее повторно. Перед тем как отправлять запрос на удаление URL, убедитесь, что при попытке открыть страницу возвращается код статуса 404 или 410 или же что она содержит метатег <meta name="robots" content="noindex" />
.
Чтобы запросить удаление из индекса, выполните следующие действия:
- Отправьте запрос
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
может означать, что данный URL был удален из индексации. В теле ответа содержится объектUrlNotificationMetadata
с полями, соответствующими тем, которые были возвращены при отправке запроса статуса уведомления. - Если ответ
HTTP 200
не получен, изучите список ошибок, которые могут происходить при использовании Indexing API. - Возможно, вам потребуется более высокая квота по сравнению с доступной по умолчанию. Узнайте, как проверить свою квоту и запросить ее увеличение.
Получение статуса уведомления
С помощью Indexing API можно узнать, когда сервер Google в последний раз получал уведомления каждого из типов для определенного URL. Запрос GET
позволяет узнать, успешно ли был отправлен запрос, но в нем не указывается время удаления или индексирования.
Чтобы получить статус уведомления, выполните следующие действия:
- Отправьте запрос
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. - Возможно, вам потребуется более высокая квота по сравнению с доступной по умолчанию. Узнайте, как проверить свою квоту и запросить ее увеличение.
Отправка пакетных запросов индексирования
Чтобы уменьшить количество HTTP-соединений, которые должен выполнить ваш клиент, вы можете объединить до 100 запросов к Indexing API в один HTTP-запрос. Он состоит из нескольких частей и называется пакетом.
Пакетные запросы к Indexing API следует отправлять этой конечной точке:
https://indexing.googleapis.com/batch
Тело пакетного запроса состоит из нескольких частей. Каждая из них представляет собой полный HTTP-запрос с отдельным оператором, URL, заголовком и телом. Размер каждой части пакетного запроса не должен превышать 1 МБ.
Для более простой отправки пакетных запросов используйте клиентские библиотеки API Google. Чтобы узнать больше о создании пакетов с помощью библиотек для отдельных языков, перейдите по следующим ссылкам:
Перед тем как использовать примеры с приведенных выше страниц, добавьте в код обязательные данные, указанные в статье Получение токена доступа.
В теле сообщения пакетного запроса, приведенного ниже, содержатся уведомления об обновлении и удалении:
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==
Подробнее об отправке пакетных запросов…