Google Indexing Api

Как проиндексировать сайт в Google через API

Сегодня поговорим о том как расширить лимиты и отправлять пачками (массово, по 100 страниц за раз, 2 раза в сутки) URL страниц на индексацию при помощи Google Indexing API.

Настройка Google Indexing API

1. Авторизуемся в Google и переходим по ссылке: https://console.cloud.google.com/projectselector2/iam-admin/serviceaccounts?supportedpurview=project.

2. На открывшейся странице переходим в «Service Accounts» и создаем сервисный аккаунт Google нажав на «Create Project».


Название проекта пишем любое.

3. На следующей странице нажимайте кнопку «Создать сервисный аккаунт»:

В поле имя можно вводить все что угодно, я ввожу название проекта.

Далее, обязательно нужно выбрать роль нового аккаунта, это очень важно. Выбирайте «Владелец» либо если у вас так же на английском языке, как у меня — «Owner».

Далее жмем «CONTINUE» все пропускаем и нажав «Done».

4. На следующей странице копируем куда-нибудь созданную почту скопируйте, после чего справа нажимаем на кнопку с действиями и выберете пункт управления ключами «Manage keys».

5. На открывшейся странице переходим во вкладку «KEYS» и создаем новый ключ щелкнув по «ADD KEY» — «Create new key».

в сплывающем окне выбираем формат JSON и жмем по кнопке «CREATE».

После чего ключ должна начаться скачка ключа на ПК, сохраняем его.

6. Далее идем в настройки Google Search Console и переходим во вкладку «Пользователи и разрешения».

На открывшейся странице жмем по кнопке «ДОБАВИТЬ ПОЛЬЗОВАТЕЛЯ», в сплывающем окне, в поле «адрес электронной почты» вводим сохраненный в 4м пункте сервисный email, в поле разрешение ранее обязательно выберете статус «Владелец» (не как на скриншоте). И жмем по кнопке добавить.

Так мы добавили в search console наш ранее созданный сервисный аккаунт и дали ему полные права.

7. Последний шаг включение Indexing API для вашего проекта. Переходим по ссылке: https://console.developers.google.com/apis/api/indexing.googleapis.com/overview
и нажимаем Enable.

Все готово. Indexing API Google подключена к Вашему сайту.

Как получить список URL не проиндексированных в Google страниц

Чтобы получить список URL не проиндексированных страниц, зайдите в Search Console, перейдите во вкладку «Покрытие». На открывшейся странице в верху щелкните по вкладке исключено (на скрине серая где 2к страниц). Далее в сведениях ниже увидите в сведениях строки «исключено».

Нажимаем по одной из строки и проваливаемся на страницу со списком не проиндексированных страниц, где вы их можете экспортировать на ПК.

И точно также скачиваете второй список (если он у вас есть). Потом будите брать из этих списков URL для отправки в индекс.

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

Для CMS WordPress

Если у вас WordPress, зайдите в его админку и установите маленький бесплатный плагин Instant Indexing for Google, автор Rank Math. В настройках плагина вставьте код из файлика json в поле (скачали этот файлик в 5 пункте, можно открыть блокнотом, а лучше редактором кода).

После чего можно отправлять страницы в индекс.

Для любых сайтов при помощи скрипта

Качаем по ссылке https://github.com/swalker-888/google-indexing-api-bulk скрипт с github на ПК.

Разархивируем скачанный скрипт, после этого сохраняем в удобной для вас папке (я сохранил его на рабочий стол). Именно с ней мы будем работать.

Открываем папку со скриптом, там есть файлики:

  • service_account.json — открываем его редактором кода (или блокнотом), заменяем все его содержимое на содержимое из скачанного JSON ключа (пункт 5).
  • urls.txt — сюда закидываем 100 url адресов которые хотите отправить в индекс гугла. В сутки можно отправить до 200 url (2 раза по 100 url или 4 раза по 50 url и т.д.).

Скрипт подготовлен к работе, но для его работы нужен node.js, скачиваем его по ссылке https://nodejs.org/en/download/ и устанавливаем.

Запускаем скрипт (первый запуск)

После подготовки скрипта и установки node.js можно приступить к запуску скрипта. Для этого запускаем командную строку (обычный запуск, не нужно запускать с полными правами).

В командной строке нам нужно зайти в подготовленную папку со скриптом — у меня это папка «google-indexing-api-bulk-master» которая находится на рабочем столе.

Давайте подключаться, для этого по очереди набираем следующие команды и нажимаем «Enter»:

  1. Заходим на рабочий стол «cd Desktop» (жмем Enter).
  2. Заходим в папку со скриптом «cd google-indexing-api-bulk-master» (папка, в которой находятся наши файлы), нажимаем Enter.

После того как мы зашли в папку, необходимо загрузить нужные файлы библиотеки туда же. Делается это при помощи следующих команд:

  • npm install requests
  • npm audit fix
  • npm audit fix --force

После каждой команды нужно немного подождать.

После того как все файлы библиотеки установлены (в папке со скриптом появиться еще одна папка с библиотеками «node_modules»), запускаем последнюю команду node index.js.
По итогу вы должны будете увидеть такую финальную картину.

после того как отправили первую партию URL, идем в файл urls.txt, закидываем туда вторую пачку URL и снова выполняем команду node index.js.

Если вместо этого скрина вы увидели что-то другое, значит вернитесь к началу статьи и внимательно проверьте каждый пункт.

Запускаем скрипт (повторные запуски)

Повторный запуск скрипта по факту тот же, что и первый, единственно нам не нужно устанавливать библиотеки:

Идем в скрипт, в файл urls.txt закидываем URL.

Запускаем командную строку и подключаемся к папке скрипта

  1. cd Desktop
  2. cd google-indexing-api-bulk-master

После чего выполняем команду node index.js.

Посмотрев данное видео вы узнаете, как использовать Google Search Console API и настроить бота через который можно будет индексировать ссылки с вашего сайта.

Ссылка на github: [mask_link href=»https://github.com/sneex-seo/google_indexing_api_and_telegram_bot» target=»_blank»]google_indexing_api_and_telegram_bot[/mask_link]

Библиотеки: pip install httplib2 pip install telebot pip install oauth2client.service_account

Получение файла Credentials.json

Для создания файла Credentials.json нужно выполнить следующие шаги:

  1. Переходим сюда и авторизируемся.
  2. Создаем проект, называем как удобно, у меня testproject
  3. Пишем в поиске «Library» и переходим на ссылку вида https://console.cloud.google.com/apis/library?project=testproject-309209&supportedpurview=project&pli=1
  4. Ищем «Google Search Console API» и включаем его
  5. Переходим на вкладку «Credentials», это URL вида: https://console.cloud.google.com/apis/credentials?project=testproject-309209&pli=1
  6. Нажимаем кнопку «Create Credentials» и выбираем «OAuth Client ID»
  7. Далее нажимаем кнопку «Configure Consent Screen»
  8. Выбираем пункт «External» и нажимаем «Create»
  9. В Appname указываем что удобно, в моем случае будет «TestTest», в саппорт Email указываем ваш email
  10. Соглашаемся далее со всеми пунктами
  11. Далее снова переходим в раздел «Credentials»
  12. Снова нажимаем кнопку «Create Credentials» и выбираем «OAuth Client ID»
  13. Выбираем уже в выпадающем списке «Desktop Application»
  14. Нажимаем кнопку «Create»
  15. Скачиваем файл который появился в поле «OAuth 2.0 Client IDs»

Документация Google Search Console API.

Автор видео https://t.me/seo_scripts — вопросы писать туда.

Мои результаты использования API

Если зайти во вкладку покрытие в Google Search Console и посмотреть график, который показывает, какие страницы проиндексированы и находятся в поиске. То увидим следующую картину:

Видите довольно резкий скачок страниц — это время начала использования Google indexing API. Да и как вы видите 425 страниц Гугл все же не проиндексировал. Через пару недель я их снова отправлю и если они снова не про индексируются их скорее всего придется переделывать.

Автор

Алексей

Веб-дизайнер и SEO оптимизатор. Занимаюсь созданием сайтов с 2010 года и их продвижение с 2012 года!

Как проиндексировать сайт в Google через API: 8 комментариев

  1. У меня командная строка отвечает что нет такой команды npm и что с этим делать?

  2. Я чуть переписал скрипт который в связке с ботом телеграмма, сделал его чуть лучше, по моему мнению.

    from oauth2client.service_account import ServiceAccountCredentials
    import time
    import httplib2
    import telebot
    import json
    from urllib.parse import urlparse

    bot_token = »
    bot = telebot.TeleBot(bot_token)

    JSON_KEY_FILE = «client_secrets.json»
    SCOPES = [«https://www.googleapis.com/auth/indexing»]

    # Replace with your actual Telegram ID
    MY_TELEGRAM_ID = ‘123’

    @bot.message_handler(commands=[‘start’])
    def send_welcome(message):
    if str(message.from_user.id) == MY_TELEGRAM_ID:
    bot.reply_to(message, «Привет! Я бот, который может индексировать URL-адреса с помощью Google Indexing API. Пожалуйста, отправьте мне URL-адреса через пробел. Например:\nhttp://example.com\nhttps://another-example.com»)
    else:
    bot.reply_to(message, «Извините, у вас нет прав для использования этого бота.»)

    @bot.message_handler(content_types=[«text»])
    def repeat_all_messages(message):
    if str(message.from_user.id) != MY_TELEGRAM_ID:
    return

    credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES)
    http = credentials.authorize(httplib2.Http())

    ENDPOINT = «https://indexing.googleapis.com/v3/urlNotifications:publish»

    indexing_list = message.text.split()

    bot.send_message(message.chat.id, ‘Получил список ссылок: ‘ + message.text)

    for site_url in indexing_list:
    parsed = urlparse(site_url)
    if bool(parsed.netloc) and bool(parsed.scheme):
    bot.send_message(message.chat.id, ‘Пробую просканировать: ‘ + site_url)
    content = {}
    content[‘url’] = site_url
    content[‘type’] = «URL_UPDATED»
    json_ctn = json.dumps(content)

    response, content = http.request(ENDPOINT, method=»POST», body=json_ctn)

    result = json.loads(content.decode())

    if(«error» in result):
    print(«Error({} — {}): {}».format(result[«error»][«code»], result[«error»][«status»], result[«error»][«message»]))
    bot.send_message(message.chat.id, ‘Ошибка при индексации ссылки: ‘ + site_url)
    else:
    print(«urlNotificationMetadata.url: {}».format(result[«urlNotificationMetadata»][«url»]))
    print(«urlNotificationMetadata.latestUpdate.url: {}».format(result[«urlNotificationMetadata»][«latestUpdate»][«url»]))
    print(«urlNotificationMetadata.latestUpdate.type: {}».format(result[«urlNotificationMetadata»][«latestUpdate»][«type»]))
    print(«urlNotificationMetadata.latestUpdate.notifyTime: {}».format(result[«urlNotificationMetadata»][«latestUpdate»][«notifyTime»]))
    bot.send_message(message.chat.id, ‘Проиндексировал ссылку: ‘ + site_url)

    time.sleep(10)
    else:
    bot.send_message(message.chat.id, ‘Неправильный формат URL: ‘ + site_url)

    while True:
    try:
    if __name__ == ‘__main__’:
    bot.polling(none_stop=True)
    except Exception as e:
    print(«Exception occurred:», e)
    time.sleep(5)

    1. Вы бы лучше на гитхаб или еще куда-нибудь код закинули, а в комментарии ссылку на него дали.

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

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

Exit mobile version