Как снизить нагрузку на сайт и сократить число платных вызовов к OTAPI
Посещаемость сайта складывается не только из количества людей, которые открывают сайт и просматривают его страницы. Она также включает в себя посещения сайта различными автоматизированными роботами, которые постоянно сканируют сайты.
Это могут быть как роботы поисковых систем, таких как Google, Yandex, так и различные системы по анализу разного рода информации. Например, такая система, как Ahrefs, которая используется при поисковом продвижении для анализа внешних и внутренних факторов сайта. При этом если вы не пользуетесь подобными системами, это не значит, что они не будут вас сканировать. Все сайты сканируются для накопления и анализа информации.
Большая часть таких роботов не приносят сайту никакого вреда и никакой пользы. Но когда на сайте используется API для получения какой-либо информации, за которое владелец платит, как в случае с Ключом OT API, то такие роботы могут наносить существенный финансовый вред владельцу сайта.
Есть несколько способов ограничить действие подобных роботов, по-другому их можно назвать ботами. Рассмотрим два таких способа, основанных на User-Agent, который передает бот.
- Запрет доступа к сайту через robots.txt.
Этот метод основан на том, что бот, который сканирует сайт, скачивает файл robots.txt и по инструкциям в нем, разрешен ему доступ или нет, продолжает дальнейшую работу или прекращает ее. Метод имеет два подхода:
- запретить доступ всем, кроме;
- запретить доступ определенным ботам.
Первый подход самый простой — запретить доступ всем, кроме Google и Yandex:
- Эта инструкция запрещает доступ всем.
User-agent: *
Disallow: /
- Эта инструкция разрешает доступ для бота поисковой системы Google.
User-agent: Googlebot
Allow: /
- Эта инструкция разрешает доступ для бота поисковой системыYandex.
User-agent: Yandex
Allow: /
- Если мы хотим закрыть доступ всем, кроме Google и Yandex, то наш файл robots.txt будет выглядеть так:
User-agent: Googlebot
Allow: /
User-agent: Yandex
Allow: /
User-agent: *
Disallow: /
В рамках подобной схемы можно открыть доступ только тем ботам, которые вам нужны. Не забывайте, что есть отдельные боты для поиска по картинкам. Более точную информацию можно узнать у SEO-специалистов.
Также полезным может быть использование директивы:
Crawl-Delay: 10
Она указывает, как часто в секундах, вы разрешаете делать запрос к сайту. Ее можно применить как к общему блоку, так и к конкретному боту.
Например:
User-agent: Yandex
Crawl-Delay: 10
Allow: /
Это будет означать, что вы разрешаете для бота Yandex сканирование сайта, но не чаще 1 запроса в 10 секунд.
Второй подход в robots.txt заключается в том, что вы, наоборот, всем разрешаете доступ, кроме определенных ботов.
Например:
User-agent: SemrushBot
Disallow: /
User-agent: *
Crawl-Delay: 10
Allow: /
В данном случае, сканировать сайт разрешается всем, кроме SemrushBot, не чаще 1 запроса в 6 секунд.
- Запрет через файл .htaccess
По своей сути, метод аналогичен предыдущему, но решение о допуске на сайте принимает не сам бот, а ваш веб-сервер.
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} (SemrushBot|SolomonoBot|MJ12bot|Ezooms|AhrefsBot|DataForSeoBot|DotBot|Purebot|PetalBot|LinkpadBot|WebDataStats|Jooblebot|Baiduspider|BackupLand|NetcraftSurveyAgent|netEstate|rogerbot|exabot|gigabot|sitebot|Slurp) [NC]
RewriteRule .* – [F,L]
Такая конструкция закроет доступ всем ботам с перечисленными User-Agent. Вы можете составить свой список.
Будьте внимательны, так как ошибки при редактировании .htaccess могут сделать ваш сайт неработоспособным. Также не все веб-сервера поддерживают инструкции через ,htaccess. Более детальную информацию вы можете узнать у своего системного администратора или в поддержке хостинга.
Каждый выбирает сам, какой вариант подходит для работы сайта.
Использование robots.txt более универсальное и простое. Однако оно основано на добросовестном поведении поискового бота, который может игнорировать данные инструкции.
Как определить, кто именно дает большую нагрузку на сайт?
Для этого нужно постоянно проводить анализ логов веб-сервера. Как их найти, вам подскажет системный администратор или поддержка хостинга вашего сайта.
Есть разные программы для анализа логов. Например WebLog Expert. У нее есть пробный тридцатидневный период.
Например:
Это логи одного из наших клиентов за 7 дней. Как видно, бот PetalBot произвел более 400 000 запросов к сайту. Потенциально это все платные вызовы.
На втором месте — Semrushbot со 150 000 запросов.
Реально полезные Google и Yandex идут на 3-4 местах с более скромными результатами.
Подобный анализ следует проводить не только по User-Agent но и по IP-адресу, с которого произошел вход на сайт. Если с какого-то IP аномально большое количество запросов на протяжении долго периода времени, и вы не знаете кому он принадлежит, то стоит заблокировать доступ к сайту с этого IP-адреса. Однако будьте осторожны в этом, лучше доверить эту операцию специалисту. Так подозрительный для вас IP может принадлежать Google, тогда вы закроете доступ для этой поисковой системы к своему сайту, что скажется на ваших позициях в поиске Google.
Следующих ботов можно без последствий для сайта внести в свой черный список: SemrushBot, SolomonoBot, MJ12bot, Ezooms, AhrefsBot, DataForSeoBot, DotBot, Purebot, PetalBot, LinkpadBot, WebDataStats, Jooblebot, Baiduspider, BackupLand, NetcraftSurveyAgent, netEstate, rogerbot, exabot, gigabot, sitebot, Slurp.
Baiduspider – это бот поисковой системы Baidu. Slurp – так идентифицирует себя Yahoo.