- (Обновлено: ) Ольга С.
- 5 минут
В условиях, когда 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:
Здесь можно ввести желаемое название проекта либо оставить предлагаемое. Местоположение оставляем как есть, редактировать необязательно.
Продолжаем создавать сервисный аккаунт: вы должны видеть перед собой следующее окно (название проекта у вас будет другое):
Далее вводите ещё одно произвольное название на латинице.
Шаг 2:
Назначаем роль этого аккаунта — Владелец:
Последний пункт «Предоставление пользователям доступа к сервисному аккаунту» можно оставить как есть.
После нажатия «Готово» вы увидите следующее:
Шаг 3:
Переходите в «Действия» — «Создать ключ». В открывшемся окне выбираем JSON:
Шаг 4:
Скачиваете ключ на компьютер.
2. Настройка сканирующего скрипта
Готовый ключ нужен для запуска сканирующего скрипта (качаем скрипт из Github).
Скрипт будет в виде папки, один из файлов которой будет называться service_account.
Далее нужно заменить содержимое файла service_account на содержимое вашего скачанного JSON-ключа. В итоге файл service_account в папке скрипта будет выглядеть примерно так:
Скрипт готов. Теперь его нужно связать с Google Search Console.
3. Связь скрипта с Google Search Console
Для этого назначаем полным владельцем client_email из нашего JSON-ключа.
Вот как это выглядит в Google Search Console:
Назначить владельца можно через форму Google Search Console: Настройки — Пользователи и разрешения — Управление владельцами ресурса.
Кнопка «Добавить пользователя» не подойдёт: она даёт либо ограниченный, либо полный доступ. Этого недостаточно.
Нажатие на «Управление владельцами ресурса» открывает окно, где мы добавляем нового владельца. Новый владелец — это client_email из нашего ключа.
Теперь наш сервисный аккаунт, он же client_email, значится владельцем.
Осталось только включить использование именно Index API в нашем проекте. Для этого переходим по ссылке.
Выбираем сервисный аккаунт и включаем API.
Теперь наш скрипт готов к использованию.
4. Запуск скрипта
Как запустить:
- В папке скрипта (который вы скачали из Github и добавили JSON-ключ) находите файл urls. Туда вносите до 100 адресов, которые нужно просканировать. В сутки всего можно отправлять 200 адресов, поэтому формируйте два пакета по 100.
- Вызываете PowerShell (Shift+правая кнопка мыши в окне скрипта).
- Прописываете node index.js.
- Ждёте несколько секунд и видите ответ 200 ОК.
Всё это получится, если у вас настроен node.js и установлена библиотека, принимающая такие запросы.
Найти исходный код node.js можно по ссылке.
После установки всё в том же PowerShell установите библиотеку через команду npm install requests.
Частая ошибка при запуске скрипта — это 403 ответ:
Это значит, что в консоли предоставлен полный доступ, а не доступ владельца. Нужно исправить, как прописано в предыдущем пункте.
Теперь всё готово. Настроив скрипт единожды, вы сможете использовать его каждый день, редактируя файл urls.
Если у Вас возникли проблемы с индексацией сайта — обращайтесь к нам!
Еще по теме:
- Можно ли автоматизировать сбор подсказок в Google? Можно ли автоматизировать сбор подсказок Google? Ответ Самый простой способ сбора поисковых подсказок в Google – использование специализированных программ и сервисов, некоторые из них бесплатные...
- Что показывает показатель Potential Traffic в Аhrefs и доверять ли ему, если частотность запроса низкая? Насколько можно доверять большим цифрам в колонке PT в ahrefs? Особенно если у частотность запроса низкая. Ответ PT (Potential Traffic) в ahrefs показывает приблизительное количество...
- Как долго ждать результата от Disavow Tool? Подскажите, как быстро срабатывает Disavow Tool? Как быстро ждать результата от таких действий, может есть какие-то кейсы? Ответ Время, необходимое для того, чтобы Google учел...
- Как провести аудит ссылочной массы сайта с помощью Ahrefs Преимущества и недостатки Ahrefs, доступные инструменты, детальный разбор возможностей и советы по анализу ссылочной массы вашего сайта и сайтов конкурентов. Читайте в статье, как проанализировать...
- Обзор ТОП-6 лучших парсеров сайтов Screaming Frog SEO Spider 9.2 ComparseR 1.0.129 Netpeak Spider 3.0 Xenu’s Link Sleuth WildShark SEO Spider Majento SiteAnalayzer Выводы Сегодня представить технический анализ сайта без...
Есть вопросы?
Задайте их прямо сейчас, и мы ответим в течение 8 рабочих часов.
Спасибо, классный мануал, всё чётко и по делу. Надеюсь, Гугл уже выкатит нормальное индексирование урлов, потому что такие пляски с бубном — ну это просто стыд и срам… Господи, когда уже Ahrefs свой поисковик запустят и мы забудем про этого дряхлого Гуглятора-терминатора…
Статья супер, столкнулся с проблемой при запуске скрипта:
Error: Cannot find module ‘request’
Скрин: https://prnt.sc/vlj4ci
Попробуйте «requests»
Сработало, но теперь то же самое пишет про googleapis))
В командной строке введите
npm i request —save-dev
У меня после этого пропала эта ошибка и все заработало
Привет, нашел решение проблемы. В том же WinPowerShell, с той же открытой директорией пропиши : (((npm install request))) . Без скобок. Подожди пока пройдет инстал. Выдаст пару ошибок, за то скрипт работает.
У меня точна такая же ошибка. Что делать?
Вы должны просто установить request локально в рамках вашего проекта.
Просто gtht[jlbnt c gjvjom. cd в папку, содержащую ваш файл js, и запустите:
npm install request
А ограничение 200 адресов, это на 1 ресурс или домен? Например у меня 100 поддоменов, то ограничение будет 20 000 адресов в сути?
Подскажите, можно ли как-то увеличить лимиты? И можно ли с разных аккаунтов API посылать запросы?
Пробуйте. Но думаю, 200 на домен.
Что-то вы пропустили в мануале. Скрипт нужно перенести в папку Node или куда ее вставить? Вряд ли он будет работать с места куда скачал с GitHub ))
Разобрался) Сначало нужно запустить скрипт в той папке. Для открытия PowerShell в нужной папке сначала откройте саму папку, потом нажмите слева вверху на Файл > Запустить Windows PowerShell
Начался для меня тёмный лес со слов: «node index.js»
вы прошли больше половины) там немного осталось
Наконец такой скрипт появился.
Долго я такого ждал.
Хотя с DataStudio работать сложно.
Все этапы прошел, но скрипт запустить не получилось.
Скрин: https://prnt.sc/vq7fsy
Скрипт моментального индекса не дает((( Не полноценная замена консоли к сожалению
Большое спасибо! думаю очень пригодится
Четкая статья! Спасибо.
Что-то гугл сломался с сентября. Есть какие-то новости?
Как быстро появляются страницы после запуска скрипта?
Шикарный мануал, спасибо!
Все ошибки решались ВНИМАТЕЛЬНЫМ прочтением тех мест, где они вылезали 😉
Готовьте версию «с англоязычными картинками» — русский язык скоро уберут 🙁
Здравствуйте!
При выполнении команды 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;
^)
200 запросов — это квота на сайт или поддомен?
где мониторить успешную отправку страниц, кроме как в 200ok в PowerShell?
через какое время страницы попадают в индекс при таком подходе?
Спасибо автору за подробный мануал. Как с этим бороться
https://ibb.co/SrfmyT3
?
а нормально по итогу будет то, что скрипт передает боту для индексации урлы вида «https://siteclinic.ru/\r» с символом «\r» в конце урла? Ведь, по итогу боту будут выдаваться 404 страницы?
Юзаем индексинг апи где-то с апреля, но нам нужно закидывать миллионы страниц в индекс. Все отлично работало до даты отключения добавления урлов через консоль (хоть это не одно и тоже, но походу они что-то там пофиксили после этого и в indexing api). И где-то с середины октября и индексинг апи перестал закидывать страницы. Возможно, на новых сайтах это будет работать (и в количестве пары тысяч страниц), какое-то время, но на старых, которые юзали его все очень плохо, даже по 200 не закидывается. Более того, не знаю связанно это или нет, самый первый сайт, который использовал индексинг апи за два месяца почти выкинули из индекса (с начала ноября), было в индексе около миллиона страниц, а стало 70 тыс. После того как врубили добавление в консоле по индексинг апи в декабре ничего не восстановилось( Буду тестить на новых сайтах, но походу инструмент уже так хорошо работать не будет, как раньше(
А если кому надо закидывать больше 200 страниц в день, то просто делаете в одном аккаунте больше одного проекта, там максимум 12 можно делать. Если и этого мало, то просто покупайте gmail аккаунты и делайте там. Можно закидывать в день хоть миллион страниц, точнее можно было, у меня после середины октября перестало все это работать(
Благодарю за совет!
Вопрос был как раз в том, как, помимо, увеличения квоты индексировать больше 200 урлов в день.
Теперь вопрос в том, как это автоматизировать))
У кого выдает 403 ошибку, но вы сделали все правильно — проверьте в гугл консоли для какого именно сайта вы открыли доступ — http://site.com/
https://site.com/
http://site.com
https://site.com
выдает ошибку 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»
Точно такая же ошибка и у меня, а я запостил отдельный вопрос)
Не удалось победить ошибку?
Подскажите, пожалуйста, а этот скрипт будет работать на iOS? PowerShell нужно отдельно устанавливать?
Отличный мануал. В дополнение, найдено на support.google, если скрипт не запускается, и выдает 403 ошибку, нужно в старой версии центра веб мастеров https://www.google.com/webmasters/verification/home?hl=ru делегировать права владельца для client_email по всем своим доменам.
Большое спасибо! Все работает!
Отличный мануал, большое спасибо автору за статью
Все получилось, спасибо автору.
Подскажите, помогает в индексе страниц данный метод?
В сутки всего можно отправлять 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»
}
Большое спасибо за мануал.
Несмотря на то, что статья довольно длинная, весь процесс весьма недолог и прост.
Для тех, кто предпочитает Python, нашел аналогичный скрипт – https://gist.github.com/alucard001/fedce21b80a3de7aa3c07299838e1462
(не забудьте поменять название JSON-файла и создать CSV с адресами).
Пробую в последние дни и столкнулся с проблемой, что в GSC больше нельзя предоставлять владельца, там только можно закрыть доступ.
https://prnt.sc/258jlej
Теперь это делается просто нажатием синей кнопки — «Добавить Пользователя» с указанием прав «Владелец»
Здравствуйте. Спасибо за инструкцию. Есть вопрос.
В официальной документации сказано, что «на данный момент Indexing API может сканировать страницы с структурированными данными JobPosting или BroadcastEvent» (ссылка — https://developers.google.com/search/apis/indexing-api/v3/quickstart). У вас об этом ничего не сказано. Подскажите, где правда?
Народ, всем привет! Подскажите, вся эта тема работает на виндовс 7. Мне говорят, что нужно будет ставить 10-ку для этого скрипта. Это правда?
Здравствуйте, а у меня почему то не хочет работать сканирующий скрипт. Выдает ошибку о неправильном формате url, хотя в URLs все вроде как правильно, подскажите что может быть?
Слушайте, реально индексирует. У меня 80% сайта не проиндексировано, попробовал для теста 100 страниц проиндексировать (хотя на них контента уникального вообще нет), так через неделю ровно +100 страниц в search console зелеными стали))) Бомба!
Ошибка 400, не формат урл и инвалидное сообщение. Скажите, кто решил проблему реально. Кучу комментов прочитала и никакой практической пользы..
ТОлько что обнаружил, что Гугл не переобходит страницы, многие застряли в сентябре 2021. В сайтмепе обновляю даты у изменившихся страниц, но это не помогает(((
Тоже проблема с индексацией
400. 403 ошибка , недействительный_грант, bad requests
Синхронизируйте время на компе с интернетом. Ошибка исчезнет
На windows 7 всё работает. Ставьте только node-v13.14.0
На первом этапе нужно указать страну. России там нет. Как быть?
я выбрал Казахстан
Вот так ругается:
node : Имя «node» не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правил
ьность написания имени, а также наличие и правильность пути, после чего повторите попытку.
строка:1 знак:1
+ node index.js
+ ~~~~
+ CategoryInfo : ObjectNotFound: (node:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
подскажите плиз
У вас случаем не Вин11?
Ребята. В файле service_account.json нет указанного кода…
Спасибо большое, всё расписано подробно и прекрасно работает. С первого раза всё залетело без ошибок, единственное пришлось устанавливать библиотеки. Очень даже актуально и годно!
Спасибо. получилось