Использование 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: 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==Подробнее об отправке пакетных запросов…