Это может звучать немного сумасшедшим, но Вы должны:
noatime
, который должен уменьшить загрузку, по крайней мере, немного.Вы могли всегда использовать URL для карты сайта, которая не будет раскрыта никому больше кроме механизмов, которым Вы явно отправите.
Взгляните на http://en.wikipedia.org/wiki/Sitemaps
Как насчет того, чтобы не создать sitemap.php на лету? Вместо этого повторно создайте его один раз в день (или независимо от того, что имеет смысл), и подайте его как статический файл. Тот путь, даже если 10 000 поисковых роботов в день запрашивают это — и что?
Вы могли использовать robots.txt для запрещения файла, но Вы могли также заблокировать IP. Простой способ сделать это должно посмотреть на ссылающиеся домены HTTP в Ваших блогах и записать задание крона, чтобы взять их IP (ссылающимся доменом) и добавить их к hosts.deny для Вашего веб-сайта.
Вам следует использовать белый список и разрешать доступ только хорошим поисковым системам к этим файлам карты сайта, таким как Google и Bing.
Это огромная проблема, которую, боюсь, большинство людей не используют. даже не учитывайте при отправке файлов Sitemap в Google и Bing. Я отслеживаю каждый запрос к моим файлам карты сайта xml, и с тех пор, как я начал это делать (3 месяца назад), я отказал в доступе к более чем 6500 IP-адресам. Только Google, Bing и некоторые другие могут просматривать эти файлы сейчас.
Поскольку вы используете белый список, а не черный список, они могут покупать все прокси-серверы, которые им нужны, и никогда не получат доступ. Кроме того, вы должны выполнить обратный поиск DNS, прежде чем вносить в белый список и IP-адрес, чтобы убедиться, что они действительно от Google или Bing. Что касается того, как это сделать в PHP, я понятия не имею, поскольку мы являемся магазином Microsoft и занимаемся разработкой только для ASP.NET. Я бы начал с получения диапазона IP-адресов, из которых Google и Bing запускают своих ботов, а затем, когда с одного из этих IP-адресов поступает запрос, выполните поиск в DNS и убедитесь, что в имени DNS есть «googlebot» или «msnbot». , если это так, выполните обратный поиск в DNS по этому имени, чтобы убедиться, что возвращенный IP-адрес совпадает с исходным IP-адресом. Если это так, то вы можете безопасно разрешить IP-адресу просматривать ваш файл карты сайта, если нет, запретите доступ и 404 джокерам. Я получил эту технику в разговоре с техническим специалистом Google, кстати, так что она довольно надежна.
Обратите внимание, я владею и управляю сайтом, который просматривает около 4 000 000 страниц в месяц, поэтому для меня это было огромным приоритетом, так как мне не нужны мои данные что легко утилизировать. Также, Я использую recaptcha после 50 запросов страниц с одного и того же IP в течение 12 часов, и это действительно хорошо помогает отсеять ботов.
Я нашел время, чтобы написать этот пост, поскольку надеюсь, что он поможет кому-то другому и прольет свет на то, что я считаю проблемой, которая остается в основном незамеченной.