Хотя кажется, что это должно быть довольно просто, мне не удалось настроить apache, чтобы запросы googlebot не сохранялись в журнале доступа. Я пробовал следующие строки:
SetEnvIfNoCase User-Agent googlebot dontlog
BrowserMatchNoCase googlebot dontlog
CustomLog "/foo/bar/access_log" combined env=!dontlog
и я перезапустил apache после их добавления, но в журнале все еще записываются все запросы бота Google. Я так понимаю, что SetEnvIf User-Agent и BrowserMatch делают то же самое. Я пробовал каждый из них, но ни один из них не работает.
Найдите в журнале запись, которая, по вашему мнению, является роботом Google, и запишите ее IP-адрес.
Затем выполните поиск этого IP-адреса с помощью следующей команды:
host 66.249.64.156
Не забудьте заменить записанный ранее IP-адрес этой командой.
Если результат выглядит примерно так, значит, это робот Google. Вы хотите убедиться, что это заканчивается на googlebot.com
:
156.64.249.66.in-addr.arpa domain name pointer crawl-66-249-64-156.googlebot.com.
Затем перейдите на свой виртуальный хост Apache2 и добавьте эти директивы, адаптированные для вашего сайта:
SetEnvIf Remote_Addr "66.249.64.156" AND User-Agent "Googlebot" do_not_log
CustomLog ${APACHE_LOG_DIR}/access.log combined env=!do_not_log
Вы можете повторить этот процесс для bingbot:
host 157.55.39.247
В записи должно быть что-то, заканчивающееся на search.msn.com
как это
247.39.55.157.in-addr.arpa domain name pointer msnbot-157-55-39-247.search.msn.com.
Таким образом, вы должны добавить дополнительную строку в файл Virtualhost после строки Googlebot:
SetEnvIf Remote_Addr "157.55.39.247" AND User-Agent "bing" do_not_log
Обычно робот Googlebot и бот MSN будут использовать один и тот же IP-адрес для проверки ваших страниц, но в противном случае вам может потребоваться добавить дополнительные записи. Вы можете просто захотеть использовать "^66"
из-за удобства.
https://support.google.com/webmasters/answer/80553
https://blogs.bing.com/webmaster/2012/08/31/how-to-verify-that-bingbot-is-bingbot/