Для ускорения индексации существуют разные инструменты, помимо дефолтного 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
![Create Create](https://habrastorage.org/getpro/habr/upload_files/9b1/976/44d/9b197644dd8fcfa01dcd4de06958fb0a.png)
Создаем сервисный аккаунт:
![Create Service Account Create Service Account](https://habrastorage.org/getpro/habr/upload_files/7da/1f8/576/7da1f85765b1ff4c9c61953b30a62866.png)
![Во втором шаге выбираем роль Owner! Во втором шаге выбираем роль Owner!](https://habrastorage.org/getpro/habr/upload_files/8ce/6e4/cec/8ce6e4cec0bf39775b81bcd6783b1f00.png)
![Копируем Email - testid@...gserviceaccount.com, он понадобиться далее в GSC Копируем Email - testid@...gserviceaccount.com, он понадобиться далее в GSC](https://habrastorage.org/getpro/habr/upload_files/54b/b9c/4c2/54bb9c4c2cdd4ec30a5ca73944c465cb.png)
Создаем новый ключ и скачиваем его в формате JSON.
Также, необходимо добавить созданный сервисный аккаунт как Owner в Google Search Console:
![При добавлении указываем Email сервисного аккаунта. При добавлении указываем Email сервисного аккаунта.](https://habrastorage.org/getpro/habr/upload_files/42e/254/3ab/42e2543ab59a683b12db029b44282a95.png)
Теперь можно отправлять страницы на индексацию через 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'
На этом у меня всё, спасибо за внимание.
VirRus77
А при чем тут "Примеры на Python"?
sea256 Автор
Ну для отправки ссылки в Яндекс и в Гугл есть код, написанный на Python
А "примеры", потому что можно реализовать по разному, к примеру, через urllib вместо requests и т.д.