Реиндексирование URL в Google является важным инструментом в руках специалиста SEO и маркетолога. Если вы внесли изменения в сайт, добавили новые страницы или изменили структуру — вы можете сообщить Google руками в интерфейсе. Что -то подобное:

Но если у вас есть сайт с таким большим количеством страниц, это будет довольно проблематично сделать это своими руками.

Используя API индексации, вы можете значительно ускорить этот процесс, но не без костылей. Ниже я расскажу вам, как автоматизировать этот процесс, используя сценарий Python, который уже находится в Интернете, но я немного изменил и укрепил его.
SAM SCRIP:
import datetime
from oauth2client.service_account import ServiceAccountCredentials
import httplib2
import json
import os
from script_mysql import MySQLi
from config import *
import time # Добавляем импорт модуля time
"""
pip install google-api-python-client oauth2client
pip install --upgrade oauth2client
"""
def write_result(work_type, url, date):
if work_type == 'database':
db = MySQLi(host, user, password, database_home)
db.commit("INSERT INTO indexing_api (url, date) VALUES (%s, %s)", url, datetime.date.today())
elif work_type == 'txt_file':
with open('result.txt', 'a', encoding='utf-8') as result_file:
string_write = f"{url};{date}\n"
result_file.write(string_write)
SCOPES = ["
def indexURL2(u, http):
ENDPOINT = "
content = {'url': u.strip(), '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"]))
return "Error({} - {}): {}".format(result["error"]["code"], result["error"]["status"],
result["error"]["message"])
else:
print("URL успешно отправлен на переиндексацию: {}".format(result["urlNotificationMetadata"]["url"]))
if "latestUpdate" in result["urlNotificationMetadata"]:
latest_update = result["urlNotificationMetadata"]["latestUpdate"]
print("Последнее обновление URL:")
print("- URL: {}".format(latest_update.get("url", "N/A")))
print("- Тип: {}".format(latest_update.get("type", "N/A")))
print("- Время уведомления: {}".format(latest_update.get("notifyTime", "N/A")))
else:
print("Нет данных о предыдущих обновлениях, но URL успешно отправлен.")
return "OK"
count_urls = 0
for root, dirs, files in os.walk("json_keys"):
for json_key_path_name in files:
json_key = 'json_keys/' + json_key_path_name
credentials = ServiceAccountCredentials.from_json_keyfile_name(json_key, scopes=SCOPES)
http = credentials.authorize(httplib2.Http())
with open("urls.csv", "r") as a_file:
urls = a_file.readlines()
with open("urls.csv", "w") as new_file:
flag = False
request_google_api = ''
for url in urls:
url_new = url.rstrip("\n")
if flag:
new_file.write(url)
else:
request_google_api = indexURL2(url_new, http)
time.sleep(1) # Задержка в 1 секунду между запросами
if 'Error' in request_google_api:
# Проверяем, если ошибка 429, то выводим, какой ключ исчерпал квоту
if "RESOURCE_EXHAUSTED" in request_google_api:
print(f"Квота исчерпана для ключа {json_key}")
flag = True
new_file.write(url)
request_google_api = ''
else:
if not flag:
write_result('txt_file', url_new, datetime.date.today())
count_urls += 1
print("Отправлено на индексацию: " + str(count_urls) + " шт.")
Содержание
Что такое сценарий?
Вы должны сначала создать документ с Raaching .py
В отдельном файле. Вставьте там сценарий, создайте документ рядом с ним urls.csv
И файл json_keys
Полем
Сценарий делает следующее:
-
Считывает список адресов URL -адреса из файла
urls.csv
-
Отправляет каждый URL -адрес в API индексации Google с типом
URL_UPDATED
-
Сохраните результат в файле
result.txt
-
Принимайте во внимание ограничения на квоту, если квота исчерпана, сценарий определяет, какую помощь это произошло, и продолжается с другим ключом
json_keys
-
Добавлен задержка 1 секунды Между запросами, чтобы не превышать предел частоты.
-
Появления в консоли:
-
Какой URL был успешно отправлен
-
У него есть история обновления
-
Если ошибка — это его код, статус и сообщение
-
Название ключа, для которого квота исчерпана
-
Что необходимо?
Как получить ключ обслуживания?
1. Мы сохраняем новую учетную запись в Google.
2. Мы идем сюда: https://console.cloud.google.com/apis/enableflow?apiid=indexing.googleapis.com&; crienty = client_key & hl = ru & pli = 1 И активировать API.

3. Перекресток здесь: И нажмите «Создать проект».
4. Затем мы создаем учетную запись службы.
5. Заполните все данные, выберите роль «Владельца». Нажмите.

6. Нажмите на созданную учетную запись (по почте).

7. Перейдите в раздел Keys и добавьте новый ключ. Выберите формат JSON и сохраните файл ключа в папке сценария JSON_KEYS.

8. В консоли поиска Google мы переходим к «параметрам» — «пользователи и авторизацию» — «добавьте услугу из созданной учетной записи».
Что нового по сравнению с основным сценарием?
Оригинальный сценарий просто прошел список URL и отправил их на индексацию. Мой улучшенный вариант:
-
Добавить период 1 секунды — Google рекомендует не слишком часто плевать на API.
-
Определить, какой ключ был «сгорел» По квоте и передай ее.
-
Пишет результат в текстовом файле (или база данных при необходимости).
-
Относится к ошибкам кодом
429 RESOURCE_EXHAUSTED
-Это самая важная защита от «разрыва» сценария из -за депрессии предела. -
Посмотрите, были ли были предыдущие обновления URL — Это помогает оценить последнюю запись URL -адреса в индексе.
Как использовать?
-
Создайте файл
json_keys/
И поставьте себе один или несколько.json
— Учетные счета. -
Создайте файл
urls.csv
Например, со списком адресов:https://example.com/page-2
-
Запустите сценарий — Он сам будет относиться ко всему
Пример консоли

Проблемы с квотами?
Google позволяет До 200 URL в день за проектИ это ограничение не может быть обошрено простыми методами. Однако вы можете:
-
Создавать Несколько проектов в Google CloudВсе с ключом JSON.
-
Сценарий сортирует ключи от файла
json_keys/
По очереди. -
Как только квота исчерпана ключом, сценарий приносит его и продолжает с другой.
Полезные дополнения
Сценарий, поскольку все может быть разработано, и я оставил в коде применение творчества. Вот идеи, где их все еще можно разработать:
-
Газетное хранилище в базе данных — вы можете заменить
txt_file
наdatabase
и сохранить отгрузку к столу -
Добавьте Bota Telegram для уведомлений (например, если квота закончена)
-
Анализировать и добавить новые URL
urls.csv
Сайт сайта
Результат использования сценария
Прежде чем начать использовать:

И всего через несколько дней после:

Заключение
API Indexing Google является мощным инструментом для ускорения индексации, в частности для свежего контента, страниц с критическими модификациями или восстановленными URL -адресами или, если есть много пипетков. Но важно учитывать пределы и иметь возможность работать с квотами. Мой модифицированный скрипт решает все эти проблемы и делает процесс реиндексации простым и понятным. Остается только получить 500 Google Mail. =)