Реиндексирование 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 Полем

ЧИТАТЬ  Алгоритмы скорости страницы Google 2010 и 2018 годов были заменены основными веб-жизненными показателями.

Сценарий делает следующее:

  1. Считывает список адресов URL -адреса из файла urls.csv

  2. Отправляет каждый URL -адрес в API индексации Google с типом URL_UPDATED

  3. Сохраните результат в файле result.txt

  4. Принимайте во внимание ограничения на квоту, если квота исчерпана, сценарий определяет, какую помощь это произошло, и продолжается с другим ключом json_keys

  5. Добавлен задержка 1 секунды Между запросами, чтобы не превышать предел частоты.

  6. Появления в консоли:

    • Какой 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 -адреса в индексе.

ЧИТАТЬ  Yahoo Search все еще находится в стадии разработки – следите за обновлениями

Как использовать?

  1. Создайте файл json_keys/ И поставьте себе один или несколько .json— Учетные счета.

  2. Создайте файл urls.csv Например, со списком адресов:

    
    https://example.com/page-2
  3. Запустите сценарий — Он сам будет относиться ко всему

Пример консоли

Здесь с такими сообщениями, которые вы встретите

Здесь с такими сообщениями, которые вы встретите

Проблемы с квотами?

Google позволяет До 200 URL в день за проектИ это ограничение не может быть обошрено простыми методами. Однако вы можете:

  • Создавать Несколько проектов в Google CloudВсе с ключом JSON.

  • Сценарий сортирует ключи от файла json_keys/ По очереди.

  • Как только квота исчерпана ключом, сценарий приносит его и продолжает с другой.

Полезные дополнения

Сценарий, поскольку все может быть разработано, и я оставил в коде применение творчества. Вот идеи, где их все еще можно разработать:

  • Газетное хранилище в базе данных — вы можете заменить txt_file на database и сохранить отгрузку к столу

  • Добавьте Bota Telegram для уведомлений (например, если квота закончена)

  • Анализировать и добавить новые URL urls.csv Сайт сайта

Результат использования сценария

Прежде чем начать использовать:

Еще далеко до конца

Еще далеко до конца

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

Вау, он наконец ушел из мертвой точки, где было более 2 месяцев

Вау, он наконец ушел из мертвой точки, где было более 2 месяцев

Заключение

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

Source