Заказать SEO-услуги
Согласен с правилами обработки персональных данных
Скорость ответа - до 30 минут!

Как индексировать 200 URL в Google каждый день через Indexing API

  • (Обновлено: )
  • 5 минут
like 314
299
13
2
  1. Настройка Indexing API: создание сервисного аккаунта и JSON-ключа
  2. Настройка сканирующего скрипта
  3. Связь скрипта с Google Search Console
  4. Запуск скрипта

В условиях, когда Google закрыл инструмент для индексации страниц, мы (seo-специалисты) ищем альтернативные способы. В этом нам поможет Indexing API Google для переиндексации.

Как отправлять страницы на переиндекс массово, а не по одной ссылке, мы знаем давно благодаря этой статье. Ребята создали скрипт на базе Indexing API, который позволит отправлять на сканирование и последующую индексацию до 200 страниц в день. В нашей статье будет перевод основных тезисов, дополненный скринами.

Что нам понадобится для освоения Indexing API:

  • Подключить Indexing API к Google Search Console.
  • Получить JSON-ключ.
  • Установить и настроить node.js.

Эти настройки делают один раз. Далее вы просто редактируете файл urls и запускаете скрипт переиндекса. Но об этом позже.

1. Настройка Indexing API: создание сервисного аккаунта и JSON-ключа

Начнём с настройки доступа в консоли Indexing API. Переходим на Google Cloud Platform и создаём там сервисный аккаунт.

Шаг 1:

настройки скрипта indexing api

Здесь можно ввести желаемое название проекта либо оставить предлагаемое. Местоположение оставляем как есть, редактировать необязательно.

закрытый json-ключ

Продолжаем создавать сервисный аккаунт: вы должны видеть перед собой следующее окно (название проекта у вас будет другое):

включить скрипт indexing api

Далее вводите ещё одно произвольное название на латинице.

сервисный аккаунт

Шаг 2:
Назначаем роль этого аккаунта — Владелец:

настройка сервисного аккаунта

Последний пункт «Предоставление пользователям доступа к сервисному аккаунту» можно оставить как есть.

После нажатия «Готово» вы увидите следующее:

подключение к indexing api

Шаг 3:
Переходите в «Действия» — «Создать ключ». В открывшемся окне выбираем JSON:

ключ indexing api

Шаг 4:
Скачиваете ключ на компьютер.

2. Настройка сканирующего скрипта

Готовый ключ нужен для запуска сканирующего скрипта (качаем скрипт из Github).

Скрипт будет в виде папки, один из файлов которой будет называться service_account.

скрипт  indexing api

Далее нужно заменить содержимое файла service_account на содержимое вашего скачанного JSON-ключа. В итоге файл service_account в папке скрипта будет выглядеть примерно так:

как получить json  indexing api

Скрипт готов. Теперь его нужно связать с Google Search Console.

3. Связь скрипта с Google Search Console

Для этого назначаем полным владельцем client_email из нашего JSON-ключа.

Вот как это выглядит в Google Search Console:

ключ json  indexing api

Назначить владельца можно через форму Google Search Console: Настройки — Пользователи и разрешения — Управление владельцами ресурса.

настройки доступа в gsc

Кнопка «Добавить пользователя» не подойдёт: она даёт либо ограниченный, либо полный доступ. Этого недостаточно.

Нажатие на «Управление владельцами ресурса» открывает окно, где мы добавляем нового владельца. Новый владелец — это client_email из нашего ключа.

настройки скрипта indexing api

Теперь наш сервисный аккаунт, он же client_email, значится владельцем.

настройки доступа в google search console

Осталось только включить использование именно Index API в нашем проекте. Для этого переходим по ссылке.
Выбираем сервисный аккаунт и включаем API.

indexing api

Теперь наш скрипт готов к использованию.

4. Запуск скрипта

Как запустить:

  1. В папке скрипта (который вы скачали из Github и добавили JSON-ключ) находите файл urls. Туда вносите до 100 адресов, которые нужно просканировать. В сутки всего можно отправлять 200 адресов, поэтому формируйте два пакета по 100.
  2. Вызываете PowerShell (Shift+правая кнопка мыши в окне скрипта).
  3. Прописываете node index.js.
  4. Ждёте несколько секунд и видите ответ 200 ОК.

скрипт индексации

Всё это получится, если у вас настроен node.js и установлена библиотека, принимающая такие запросы.

Найти исходный код node.js можно по ссылке.
После установки всё в том же PowerShell установите библиотеку через команду npm install requests.

Частая ошибка при запуске скрипта — это 403 ответ:

ошибка доступа

Это значит, что в консоли предоставлен полный доступ, а не доступ владельца. Нужно исправить, как прописано в предыдущем пункте.

скрипт индексации ошибка доступа

Теперь всё готово. Настроив скрипт единожды, вы сможете использовать его каждый день, редактируя файл urls.

Если у Вас возникли проблемы с индексацией сайта — обращайтесь к нам!

Заказать технический аудит сайта

Подписаться на рассылку

Еще по теме:


Ольга С.

SEO-аналитик

Работала в рекламе, занималась копирайтингом.

Дожила до своих лет, предсказала будущее, вывела в ТОП сайт ветеринарной клиники.

Сейчас помогаю развивать клиентские проекты в SiteClinic.

Девиз: Рано или поздно это придется сделать, поэтому лучше рано.

Оцените мою статью: 

1 Star2 Stars3 Stars4 Stars5 Stars (28 оценок, среднее: 4,86 из 5)

Есть вопросы?

Задайте их прямо сейчас, и мы ответим в течение 8 рабочих часов.

Siteclinic logo
Наверх

56 комментариев к статье “Как индексировать 200 URL в Google каждый день через Indexing API

  1. Спасибо, классный мануал, всё чётко и по делу. Надеюсь, Гугл уже выкатит нормальное индексирование урлов, потому что такие пляски с бубном — ну это просто стыд и срам… Господи, когда уже Ahrefs свой поисковик запустят и мы забудем про этого дряхлого Гуглятора-терминатора…

    1. В командной строке введите
      npm i request —save-dev

      У меня после этого пропала эта ошибка и все заработало

    2. Привет, нашел решение проблемы. В том же WinPowerShell, с той же открытой директорией пропиши : (((npm install request))) . Без скобок. Подожди пока пройдет инстал. Выдаст пару ошибок, за то скрипт работает.

    3. Вы должны просто установить request локально в рамках вашего проекта.

      Просто gtht[jlbnt c gjvjom. cd в папку, содержащую ваш файл js, и запустите:

      npm install request

  2. А ограничение 200 адресов, это на 1 ресурс или домен? Например у меня 100 поддоменов, то ограничение будет 20 000 адресов в сути?

  3. Подскажите, можно ли как-то увеличить лимиты? И можно ли с разных аккаунтов API посылать запросы?

  4. Что-то вы пропустили в мануале. Скрипт нужно перенести в папку Node или куда ее вставить? Вряд ли он будет работать с места куда скачал с GitHub ))

    1. Разобрался) Сначало нужно запустить скрипт в той папке. Для открытия PowerShell в нужной папке сначала откройте саму папку, потом нажмите слева вверху на Файл > Запустить Windows PowerShell

  5. Наконец такой скрипт появился.
    Долго я такого ждал.
    Хотя с DataStudio работать сложно.

  6. Скрипт моментального индекса не дает((( Не полноценная замена консоли к сожалению

  7. Четкая статья! Спасибо.

    Что-то гугл сломался с сентября. Есть какие-то новости?

    Как быстро появляются страницы после запуска скрипта?

  8. Шикарный мануал, спасибо!

    Все ошибки решались ВНИМАТЕЛЬНЫМ прочтением тех мест, где они вылезали 😉

    Готовьте версию «с англоязычными картинками» — русский язык скоро уберут 🙁

  9. Здравствуйте!
    При выполнении команды node index.js выдает ошибку
    PS G:\triamart> node index.js
    node:internal/modules/cjs/loader:1148
    throw err;
    ^

    SyntaxError: G:\triamart\service_account.json: Unexpected token / in JSON at position 1
    at parse ()
    [90m at Object.Module._extensions..json (node:internal/modules/cjs/loader:1145:22)[39m
    [90m at Module.load (node:internal/modules/cjs/loader:967:32)[39m
    [90m at Function.Module._load (node:internal/modules/cjs/loader:807:14)[39m
    [90m at Module.require (node:internal/modules/cjs/loader:991:19)[39m
    [90m at require (node:internal/modules/cjs/helpers:92:18)[39m
    at Object. (G:\triamart\index.js:4:11)
    [90m at Module._compile (node:internal/modules/cjs/loader:1102:14)[39m
    [90m at Object.Module._extensions..js (node:internal/modules/cjs/loader:1131:10)[39m
    [90m at Module.load (node:internal/modules/cjs/loader:967:32)[39m
    PS G:\triamart> node index.js
    node:internal/modules/cjs/loader:1148
    throw err;
    ^)

  10. 200 запросов — это квота на сайт или поддомен?

    где мониторить успешную отправку страниц, кроме как в 200ok в PowerShell?

    через какое время страницы попадают в индекс при таком подходе?

  11. а нормально по итогу будет то, что скрипт передает боту для индексации урлы вида «https://siteclinic.ru/\r» с символом «\r» в конце урла? Ведь, по итогу боту будут выдаваться 404 страницы?

  12. Юзаем индексинг апи где-то с апреля, но нам нужно закидывать миллионы страниц в индекс. Все отлично работало до даты отключения добавления урлов через консоль (хоть это не одно и тоже, но походу они что-то там пофиксили после этого и в indexing api). И где-то с середины октября и индексинг апи перестал закидывать страницы. Возможно, на новых сайтах это будет работать (и в количестве пары тысяч страниц), какое-то время, но на старых, которые юзали его все очень плохо, даже по 200 не закидывается. Более того, не знаю связанно это или нет, самый первый сайт, который использовал индексинг апи за два месяца почти выкинули из индекса (с начала ноября), было в индексе около миллиона страниц, а стало 70 тыс. После того как врубили добавление в консоле по индексинг апи в декабре ничего не восстановилось( Буду тестить на новых сайтах, но походу инструмент уже так хорошо работать не будет, как раньше(

  13. А если кому надо закидывать больше 200 страниц в день, то просто делаете в одном аккаунте больше одного проекта, там максимум 12 можно делать. Если и этого мало, то просто покупайте gmail аккаунты и делайте там. Можно закидывать в день хоть миллион страниц, точнее можно было, у меня после середины октября перестало все это работать(

    1. Благодарю за совет!
      Вопрос был как раз в том, как, помимо, увеличения квоты индексировать больше 200 урлов в день.
      Теперь вопрос в том, как это автоматизировать))

  14. выдает ошибку 400
    HTTP/1.1 400 Bad Request
    Vary: Origin
    Vary: X-Origin
    Vary: Referer
    Content-Type: application/json; charset=UTF-8

    {
    «error»: {
    «code»: 400,
    «message»: «Missing attribute. ‘url’ attribute is required.»,
    «status»: «INVALID_ARGUMENT»

  15. Подскажите, пожалуйста, а этот скрипт будет работать на iOS? PowerShell нужно отдельно устанавливать?

  16. Отличный мануал. В дополнение, найдено на support.google, если скрипт не запускается, и выдает 403 ошибку, нужно в старой версии центра веб мастеров https://www.google.com/webmasters/verification/home?hl=ru делегировать права владельца для client_email по всем своим доменам.

  17. Все получилось, спасибо автору.
    Подскажите, помогает в индексе страниц данный метод?

  18. В сутки всего можно отправлять 200 адресов, поэтому формируйте два пакета по 100.
    Правильно ли я понимаю что так?
    https://site.ru/nomer-1
    https://site.ru/nomer-2

    Или как рекомендует Google:
    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»
    }

  19. Большое спасибо за мануал.
    Несмотря на то, что статья довольно длинная, весь процесс весьма недолог и прост.
    Для тех, кто предпочитает Python, нашел аналогичный скрипт – https://gist.github.com/alucard001/fedce21b80a3de7aa3c07299838e1462
    (не забудьте поменять название JSON-файла и создать CSV с адресами).

  20. Пробую в последние дни и столкнулся с проблемой, что в GSC больше нельзя предоставлять владельца, там только можно закрыть доступ.
    https://prnt.sc/258jlej

  21. Теперь это делается просто нажатием синей кнопки — «Добавить Пользователя» с указанием прав «Владелец»

  22. Здравствуйте. Спасибо за инструкцию. Есть вопрос.

    В официальной документации сказано, что «на данный момент Indexing API может сканировать страницы с структурированными данными JobPosting или BroadcastEvent» (ссылка — https://developers.google.com/search/apis/indexing-api/v3/quickstart). У вас об этом ничего не сказано. Подскажите, где правда?

  23. Народ, всем привет! Подскажите, вся эта тема работает на виндовс 7. Мне говорят, что нужно будет ставить 10-ку для этого скрипта. Это правда?

  24. Здравствуйте, а у меня почему то не хочет работать сканирующий скрипт. Выдает ошибку о неправильном формате url, хотя в URLs все вроде как правильно, подскажите что может быть?

  25. Слушайте, реально индексирует. У меня 80% сайта не проиндексировано, попробовал для теста 100 страниц проиндексировать (хотя на них контента уникального вообще нет), так через неделю ровно +100 страниц в search console зелеными стали))) Бомба!

  26. Ошибка 400, не формат урл и инвалидное сообщение. Скажите, кто решил проблему реально. Кучу комментов прочитала и никакой практической пользы..

  27. ТОлько что обнаружил, что Гугл не переобходит страницы, многие застряли в сентябре 2021. В сайтмепе обновляю даты у изменившихся страниц, но это не помогает(((

  28. 400. 403 ошибка , недействительный_грант, bad requests
    Синхронизируйте время на компе с интернетом. Ошибка исчезнет
    На windows 7 всё работает. Ставьте только node-v13.14.0

  29. Вот так ругается:

    node : Имя «node» не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правил
    ьность написания имени, а также наличие и правильность пути, после чего повторите попытку.
    строка:1 знак:1
    + node index.js
    + ~~~~
    + CategoryInfo : ObjectNotFound: (node:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

    подскажите плиз

  30. Спасибо большое, всё расписано подробно и прекрасно работает. С первого раза всё залетело без ошибок, единственное пришлось устанавливать библиотеки. Очень даже актуально и годно!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Мы продвигаем: