PHP

Как запретить ботам посещать сайт?

Запрещаем с помощью .htaccess ботам посещать ваш сайт

sqlka.ruОпубликовано: Чтение: 4 мин.
Как запретить ботам посещать сайт?
Запрещаем доступ ботам через .htaccess
Запретить ботам посещать ваш сайт можно тремя способами:
 
  1. По ip-адресу
  2. По User-Agent
  3. По маске Ip (по странам)
Вычислять нежелательных ботов по их ip-адресам, с баном этих адресов – занятие нудное и малоэффективное: ip-адреса меняются, появляются новые и т.д. Есть гораздо лучше решение – поставить запрет по его имени (User-Agent). В таком случае неважно с какого ip он приходит. Также дополнительно можно забанить ботам вход на сайт по маске ip-адресов зарубежных стран, с которых эти боты приходят (зачастую сервера seo-сервисов, спам-ботов и прочих парсеров находятся за рубежом).
 
Список популярных ботов
Нежелательных роботов достаточно много, но самые популярные и соответственно самые надоедливые приведены ниже:
 
  • AhrefsBot – этот робот сервиса ahrefs.com анализирует страницы сайта на наличие внешних ссылок.
  • SemrushBot – робот аналитического сервиса ru.semrush.com по анализу сайтов.
  • MJ12bot – поисковый робот сервиса Majestic, который собирает данные об исходящих ссылках на сайтах.
  • Riddler – робот сервиса riddler.io
  • aiHitBot – робот сервиса aihitdata.com
  • trovitBot – робот сервиса trovit.com
  • Detectify – робот сервиса detectify.com
  • BLEXBot – робот от webmeup-crawler.com
  • dotbot – робот сервиса www.dotnetdotcom.org
  • FlipboardProxy – робот сервиса flipboard.com
  • rogerBot – робот компании Moz Pro. Он обращается к коду вашего сайта, анализирует его и доставляет отчет по нему в Moz Pro.
  • MegaIndex – робот сервиса megaindex.ru (система автоматизированного продвижения)

Запрещаем доступ по User-Agent

Добавляем в .htaccess следующий код:
 
Вариант 1


RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} “.*AhrefsBot.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*SemrushBot.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*MJ12bot.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*Riddler.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*aiHitBot.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*trovitBot.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*Detectify.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*BLEXBot.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*dotbot.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*FlipboardProxy.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*rogerBot.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*MegaIndex\.ru/2\.0.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*LinkpadBot.*”
RewriteRule “.*” “-” [F]


 
Вариант 2 

RewriteCond %{HTTP_USER_AGENT} AhrefsBot
RewriteRule (.*) – [F,L]
RewriteCond %{HTTP_USER_AGENT} SemrushBot
RewriteRule (.*) – [F,L]
RewriteCond %{HTTP_USER_AGENT} MJ12bot
RewriteRule (.*) – [F,L]
RewriteCond %{HTTP_USER_AGENT} Riddler
RewriteRule (.*) – [F,L]
RewriteCond %{HTTP_USER_AGENT} aiHitBot
RewriteRule (.*) – [F,L]
RewriteCond %{HTTP_USER_AGENT} trovitBot
RewriteRule (.*) – [F,L]
RewriteCond %{HTTP_USER_AGENT} Detectify
RewriteRule (.*) – [F,L]
RewriteCond %{HTTP_USER_AGENT} BLEXBot
RewriteRule (.*) – [F,L]
RewriteCond %{HTTP_USER_AGENT} dotbot
RewriteRule (.*) – [F,L]
RewriteCond %{HTTP_USER_AGENT} FlipboardProxy
RewriteRule (.*) – [F,L]
RewriteCond %{HTTP_USER_AGENT} rogerBot
RewriteRule (.*) – [F,L]
RewriteCond %{HTTP_USER_AGENT} LinkpadBot
RewriteRule (.*) – [F,L]

Запрещаем доступ по маске ip-адресов

Значительная часть сервисов, которые грузят ваш сайт, находятся на серверах, расположенных за рубежом. Проанализировав лог файлы десятков сайтов, выделили маски ip-адресов наиболее часто посещаемых роботов.
 
Для запрета ботам заходить с указанных айпи-адресов необходимо добавить следующие строки в .htaccess: 

Order deny,allow
Deny from 5.9. 46.4.
Вы можете добавлять в файл .htaccess другие айпи-адреса, с которых была замечена большая активность.

Пример файла .htaccess

Пример файла .htaccess, запрещающий ботам других стран (Германии, Франции, США, Украины, Казахстана) и самых популярных сервисов-парсеров посещать сайт (в комментариях ip соответствующих стран):
 

RewriteEngine On
RewriteBase /

# Germany = 5.9. 46.4. 78.46. 88.198. 88.217. 144.76. 148.251. 178.203. 46.229.168 94.130.18.35 173.212.233.
# France = 51.254. 62.210.148. 91.121. 149.202. 151.80. 164.132. 212.83.174. 163. 188.165.233. 188.165.234.
# USA = 69.30. 69.197.163.195 71.13.87.122 104.131.147.112 107.170. 192.187.104. 192.243.55. 207.46.13.97 148.177.168.116 104.148.44. 169.229.3.91
# USA = 54.165. 34.192. 216.244.64.-216.244.95. 199.47.80.-199.47.87 104.148.44.34 104.148.71.26 104.148.38. 198.89.125.126 23.237.4.26
# Ukraine = 91.198.143. 130.0. 89.21.70. 89.21.71. 178.137.128. 193.106.28. 193.106.29. 193.106.30. 193.106.31. 91.200.80.2
# Kazahstan = 82.200.159.
# Ireland = 185.234.217.
# Poland = 80.211.246. 91.196.48.-91.196.51. 185.25.148. 185.25.151.
# Canada = 167.114.181.145 192.175.111.237
# Thailand = 118.174.41.

Order deny,allow
Deny from 5.9. 46.4. 51.254. 62.210.148. 69.30. 69.197.163.195 71.13.87.122 78.46. 88.198. 88.217. 91.121. 91.198.143. 104.131.147.112 107.170. 130.0. 144.76. 148.251. 149.202. 151.80. 164.132. 173.212.233.
Deny from 178.203. 192.187.104. 192.243.55. 207.46.13.97 212.83.174. 148.177.168.116 82.200.159. 89.21.70. 89.21.71. 104.148.44. 163. 54.165. 34.192. 216.244.64. 188.165.233. 188.165.234. 178.137.128. 104.148.44.34
Deny from 185.234.217. 193.106.28. 193.106.29. 193.106.30. 193.106.31. 94.130.18.35 199.47.80. 199.47.81. 199.47.82. 199.47.83. 199.47.84. 199.47.85. 199.47.86. 199.47.87. 167.114.181.145 192.175.111.237
Deny from 216.244.64. 216.244.65. 216.244.66. 216.244.67. 216.244.68. 216.244.69. 216.244.70. 216.244.71. 216.244.72. 216.244.73. 216.244.74. 216.244.75. 216.244.76. 216.244.77. 216.244.78. 216.244.79. 104.148.71.26 80.211.246.
Deny from 216.244.80. 216.244.81. 216.244.82. 216.244.83. 216.244.84. 216.244.85. 216.244.86. 216.244.87. 216.244.88. 216.244.89. 216.244.90. 216.244.91. 216.244.92. 216.244.93. 216.244.94. 216.244.95.
Deny from 91.196.48. 91.196.49. 91.196.50. 91.196.51. 169.229.3.91 185.25.148. 185.25.149. 185.25.150. 185.25.151. 91.200.80.2

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} “.*AhrefsBot.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*SemrushBot.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*MJ12bot.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*Riddler.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*aiHitBot.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*trovitBot.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*Detectify.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*BLEXBot.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*dotbot.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*FlipboardProxy.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*rogerBot.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*MegaIndex\.ru/2\.0.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*LinkpadBot.*”
RewriteRule “.*” “-” [F]

Хотите освоить SQL для работы с данными?

В SQLka можно изучать SQL последовательно или готовиться к собеседованиям. Запросы выполняются прямо в браузере — устанавливать базу данных не нужно.

sqlka.ru

support@sqlka.ru

Дальше по теме

PHP

Как искать значения в многомерных массивах PHP: обход ограничения in_array()

Как использовать in_array() с многомерными массивами в PHP. Практические решения: array_column(), рекурсивный поиск, array_search() и пользовательские функции для эффективного поиска значений в сложных структурах данных

sqlka.ruЧтение: 5 мин.
PHP

Получаем список популярных поисковых запросов из Яндекс.Вебмастер через PHP API

Практическое руководство по использованию API Яндекс.Вебрастера на PHP для получения ТОП популярных поисковых запросов по вашим сайтам. Примеры кода, авторизация OAuth, обработка ответов.

sqlka.ruЧтение: 9 мин.
← Все статьи