Для ускорения индексации существуют разные инструменты, помимо дефолтного sitemap.xml, можно добавить автоматическую отправку новой ссылки в поисковые системы, в этой статье мы рассмотрим два примера: Google Index API и Yandex IndexNow
Yandex
Как и в Bing, используется удобный протокол IndexNow, для того чтобы API приняла ссылку, необходимо сгенерировать рандомный ключ и поместить его на сервер:
IndexNow | Bing Webmaster Tools
Ключ вида: be7dc003835e410797c70ed0ee62930d
Должен храниться: https://yourdomain.cc/be7dc003835e410797c70ed0ee62930d.txt
Теперь можно отправлять ссылки списком на адрес https://yandex.com/indexnow
js = {
'host': 'yourdomain.cc',
'key': 'be7dc003835e410797c70ed0ee62930d',
'keyLocation': 'https://yourdomain.cc/be7dc003835e410797c70ed0ee62930d.txt,
'urlList':[
'https://yourdomain.cc/mynewpage.html',
'https://yourdomain.cc/fastindex.html',
]
}
r = requests.post('https://yandex.com/indexnow', headers={'Content-Type': 'application/json', 'charset': 'utf-8'}, json=js)
print(r.content)
Если всё правильно, в ответ получим {'success':true}
По собственному опыту скажу, Яндекс реагирует очень быстро, буквально на следующую минуту Бот посещает полученные страницы, поэтому этот способ, наверное, даже быстрее, чем делать индексацию по Метрике, RSS фиду и т.д.
В Гугле, в отличии от Bing и Yandex нет протокола IndexNow, поэтому организовать отправку новых страниц немного сложнее, для этого понадобится следующее:
Создаем новый проект в Гугл Клауд: https://console.cloud.google.com/projectcreate

Создаем сервисный аккаунт:



Создаем новый ключ и скачиваем его в формате JSON.
Также, необходимо добавить созданный сервисный аккаунт как Owner в Google Search Console:

Теперь можно отправлять страницы на индексацию через API.
Python функция, которую я использую, для удобства в PasteBin: pastebin.com/raw/rp8MxeaK
(В теории, можно отправлять по несколько ссылок сразу, кто подскажет как, тому + в карму, но я отправляю по одной, вообще, лимит 200 ссылок в день, но по моему опыту Гугл и эти 200 ссылок не охотно индексирует, может у Вас будет получше результат, пишите в комментарии.)
При первом запросе может появиться ошибка: {\n "error": {\n "code": 403,\n "message": "Web Search Indexing API has not been used in project 559582583376 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/indexing.googleapis.com/overview?project=559582583376 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",\n "status": "PERMISSION_DENIED"
В таком случае нужно посетить указанную ссылку и нажать Enable.
Если всё правильно, Гугл ответит примерно так: b'{\n "urlNotificationMetadata": {\n "url": "https://yourdomain.cc/fastindex.html/",\n "type": "URL_UPDATED",\n "notifyTime": "2024-08-11T19:22:32.866322520Z"\n }\n }\n}\n'
На этом у меня всё, спасибо за внимание.