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