Как закрыть сайт от индексации поисковых систем
Вступление
Есть хорошее правило SEO: закрывайте сайт от индексации поисковых систем, до его полной готовности. Есть другие ситуации, при которых нужно временно или не временно, закрыть сайт или часть сайта от поисковых систем. Для этих и некоторых других задач, создан специальный текстовой файл, под названием robots.txt, с помощью которого можно управлять поведением поисковых роботов, в том числе закрыть сайт от индексации.
Директивы и обращение к ботам
Напомню, в файле robots.txt общение с поисковыми системами происходит при помощи директив Disallow (запрещаю) и Allow (разрешаю). Директивы объединяются в группы, первой строкой группы директив ставят обращение к определенному поисковику или ко всем поисковикам сети. Синтаксис обращения ко всем поисковикам, это же обращение к основному боту Google:
User-agent: *
Синтаксис обращения к Яндекс:
User-agent: Yandex
Как полностью закрыть сайт от индексации поисковых систем
Чтобы закрыть весь сайт от индексации Яндекс и сканирования всех ботов сети используют следующие строки прописанные в robots. txt:
User-agent: * Disallow: /
К сожалению, некоторые боты не выполняют общепринятых правил и игнорируют обращение [User-agent: *]. Поэтому, для некоторых поисковиков нужно прописывать свои обращения и закрывать сайт от них индивидуально. Так, чтобы закрыть сайт от индексации основных ботов Яндекс, используем следующие строки:
User-agent: Yandex Disallow: /
Чаще, на практике прописав в файле robots.txt две директивы Disallow для всех поисковиков и для Яндекс индивидуально, считается, что сайт полностью закрыт от индексации.
Важно. После двоеточия в директивы нужно делать пробел, после окончания директивы пробелов быть не должно.
Обратите внимание, что можно обратиться к любому поисковику и зарыть сайт от конкретного поисковика. Так русские сайты можно закрыть от Yahoo. Можно закрыть сайт от спам ботов и т.д.
Как закрыть отдельный каталог сайта от индексации
Косая черта (слэш) в директиве Disallow означает, что мы закрываем все файлы и каталоги сайта корневой папки. Если нужно закрыть сайт, лежащий не в корне, а скажем, в папке site, пишем директиву так:
Disallow: /site/
Аналогично можно закрыть любую отдельную папку сайта.
Как закрыть отдельный файл сайта от индексации
Чтобы закрыть отдельный файл (file.php) она же страница, от индексации, в файле robots.txt пишем директиву:
Disallow: /site/file.php
Например, чтобы на Joomla закрыть от индексации страницу регистрации, пишем следующую директиву:
Disallow: /users/registration.html
Или в зависимости от настроек ЧПУ:
Disallow: /users/registration
Как закрыть шаблонный файл от индексации
В завершении покажу, как закрыть от индексации файл, в URL которого входит шаблон, например, index.php.
Disallow: */index.php*
Этой директивой мы закроем все файлы сайт в URL которых, есть index.php. Для Joomla закроет все не ЧПУ ссылки. Иногда эту директиву прописывают более жестко:
Disallow: ******/index. php******
В завершении о директиве Allow
Если вам нужно открыть какой или какие либо файл (файлы) из закрытого каталога, после директивы Disallow: для каталога, пропишите директорию Allow: для файла (файлов).
User-Agent: *
Disallow: /images
Allow: *.jpg
Allow: *.png
Тем самым, я закрываю всё содержимое каталога images сайта, но открываю, только картинки формата jpg и png. Зачем? Для примера.
Инструкции от ботов
- Яндекс: https://yandex.ru/support/webmaster/controlling-robot/robots-txt.xml
- Google: https://support.google.com/webmasters/answer/6062608?hl=ru
©Joomla-abc.ru
Еще статьи админу
Powered by JV-Relatives
▷ Как закрыть сайт от индексации на WordPress, какие есть методы закрытия сайта от индексации на WordPress — спроси Inweb, вопрос №105
ответ
Дата вопроса: 11.11.2019, 11:06
Владислав, здравствуйте.
Я сейчас создаю себе сайт на вордпрессе с платным шаблоном. Пока наполняю его информацией, как я понимаю, его нужно закрыть от поисковых систем, как это лучше сделать?
Автор: Кенша
Просмотров: 3052
Категория:
SEOОцените вопрос
Рекомендуйте нас друзьям
- Подписаться на уведомления
- Отписаться от уведомлений
Частный ответ Рейтинг автора 188 Дано ответов 77 Рейтинг ответа Влад Наумов Head of SEO Добрый день. Очень важно, при разработке сайта, не только на WordPress, но и на других CMS/framework’ах закрывать сайт от индексации. Это нужно для того чтобы поисковая система не оценивала качество сайта пока он в разработке. Закрыть сайт от индексации сайт на WP, пока он в разработке, можно несколькими способами:
Я бы рекомендовал использовать для закрытия сайта от индексации первый вариант, так как он самый простой в реализации. Дата сообщения: 11.11.2019, 12:49 |
Для того чтобы оставить вопрос, необходимо войти используя свой аккаунт одной из социальных сетей.
Полное руководство по Robots.txt
Robots.txt — это небольшой текстовый файл, который находится в корневом каталоге веб-сайта. Он сообщает корректным поисковым роботам, следует ли сканировать определенные части сайта или нет. В файле используется простой синтаксис, чтобы его было легко вводить в действие поисковые роботы (что также упрощает его установку для веб-мастеров). Напишите это хорошо, и вы будете в индексируемом раю. Напишите это плохо, и вы можете скрыть весь свой сайт от поисковых систем.
Для файла нет официального стандарта. Robotstxt.org часто рассматривается как такой ресурс, но этот сайт описывает только исходный стандарт от 1994. Это место для начала, но вы можете сделать с robots.txt больше, чем наброски сайта, например, использовать подстановочные знаки, ссылки на карту сайта и директиву «Разрешить». Все основные поисковые системы поддерживают эти расширения.
В идеальном мире никому бы не понадобился файл robots.txt. Если все страницы на сайте предназначены для общего пользования, то в идеале поисковым системам должно быть разрешено сканировать их все. Но мы не живем в идеальном мире. Многие сайты имеют ловушки для пауков, проблемы с каноническими URL-адресами и закрытые страницы, которые необходимо скрывать от поисковых систем. Robots.txt используется, чтобы приблизить ваш сайт к совершенству.
Как работает robots.txt
Если вы уже знакомы с директивами robots.txt, но опасаетесь, что делаете это неправильно, перейдите к разделу «Распространенные ошибки». Если вы новичок во всем этом, читайте дальше.
Файл
Создайте файл robots.txt с помощью любого текстового редактора. Он должен находиться в корневом каталоге сайта и называться «robots.txt» (да, это очевидно). Вы не можете использовать файл в подкаталоге.
Если домен example.com, то URL-адрес robots.txt должен быть:
http://example.com/robots.txt
Спецификация HTTP определяет «агент пользователя» как то, что отправляет запрос (в отличие от «сервера», который получает запрос). запрос). Строго говоря, пользовательский агент может быть чем угодно, что запрашивает веб-страницы, включая сканеры поисковых систем, веб-браузеры или малоизвестные утилиты командной строки.
Директива агента пользователя
В файле robots.txt директива агента пользователя используется для указания того, какой сканер должен подчиняться заданному набору правил. Эта директива может быть подстановочным знаком, указывающим, что правила применяются ко всем поисковым роботам:
Агент пользователя: *
Или это может быть имя конкретного поискового робота:
Агент пользователя: Googlebot
Узнайте больше о том, как давать указания нескольким агентам пользователя, в разделе Другие ловушки агентов пользователей.
Директива Disallow
Вы должны следовать за строкой агента пользователя одной или несколькими директивами запрета:
Агент пользователя: *
Disallow: /junk-page
В приведенном выше примере будут заблокированы все URL-адреса, путь которых начинается с «/junk-страницей»:
http://example.com/junk-page
http://example.com/junk-page?usefulness=0
http://example.com/junk-page/whatever
http://example .com/junk-pages-and-how-to-keep-them-out-of-search-results
Он не будет блокировать любой URL-адрес, путь которого не начинается с «/junk-page». Следующий URL-адрес не будет заблокирован:
http://example.com/subdir/junk-page
Ключевым моментом здесь является то, что disallow — это простое совпадение текста. Все, что идет после «Disallow:», обрабатывается как простая строка символов (с заметными исключениями * и $, о которых я расскажу ниже). Эта строка сравнивается с началом части пути URL-адреса (все от первой косой черты после домена до конца URL-адреса), которая также рассматривается как простая строка. Если они совпадают, URL блокируется. Если нет, то нет.
Директива Allow
Директива Allow не является частью исходного стандарта, но теперь поддерживается всеми основными поисковыми системами.
Вы можете использовать эту директиву, чтобы указать исключения из правила запрета, если, например, у вас есть подкаталог, который вы хотите заблокировать, но вы хотите просканировать одну страницу в этом подкаталоге:
Агент пользователя: *
Разрешить: / здесь ничего хорошего/кроме этой одной страницы
Запретить: /здесь ничего хорошего/
В этом примере будут заблокированы следующие URL-адреса:
http://example.com/nothing-good-in-here/
http://example.com/nothing-good-in-here/somepage
http://example.com/nothing-good- in-here/otherpage
http://example.com/nothing-good-in-here/?x=y
Но он не заблокирует ничего из следующего:
http://example.com /nothing-good-in-here/except-this-one-page
http://example. com/nothing-good-in-here/except-this-one-page-because-i-said-so
http ://example.com/nothing-good-in-here/except-this-one-page/that-is-really-a-directory
http://example.com/nothing-good-in-here/except-this-one-page?a=b&c=d
Опять же, это простое совпадение текста. Текст после «Разрешить:» сравнивается с началом части пути URL-адреса. Если они совпадают, страница будет разрешена, даже если где-то еще есть запрет, который обычно блокирует ее.
Подстановочные знаки
Оператор подстановочных знаков также поддерживается всеми основными поисковыми системами. Это позволяет блокировать страницы, когда часть пути неизвестна или является переменной. Например:
Запретить: /users/*/settings
* (звездочка) означает «соответствовать любому тексту». Приведенная выше директива заблокирует все следующие URL-адреса:
http://example.com/users/alice/settings
http://example.com/users/bob/settings
http://example. com/users /tinkerbell/settings
http://example.com/users/chthulu/settings
Будьте осторожны! Приведенное выше также заблокирует следующие URL-адреса (которые могут не совпадать с вашими):
http://example.com/users/alice/extra/directory/levels/settings
http://example.com/users/alice/search?q=/settings
http://example.com/users /alice/settings-for-your-table
Оператор конца строки
Другим полезным расширением является оператор конца строки:
Disallow: /useless-page$
$ означает URL-адрес должен заканчиваться в этой точке. Эта директива заблокирует следующий URL:
http://example.com/useless-page
Но он не будет блокировать ничего из следующего:
http://example.com/useless-pages-and-how-to-avoid-creating-them
http://example.com/useless -page/
http://example.com/useless-page?a=b
Блокировка всего
Но допустим, вы очень застенчивы. Возможно, вы захотите заблокировать все, используя robots.txt для промежуточного сайта (подробнее об этом позже) или зеркального сайта. Если у вас есть частный сайт для использования несколькими людьми, которые знают, как его найти, вы также захотите заблокировать сканирование всего сайта.
Чтобы заблокировать весь сайт, используйте запрет, а затем косую черту:
Агент пользователя: *
Запретить: /
Разрешить все
Я могу предположить две причины, по которым вы можете создать файл robots. txt, когда вы планируете разрешить все:
- В качестве заполнителя, чтобы всем, кто работает на сайте, было понятно, что вы намеренно разрешаете все.
- Чтобы предотвратить появление в журналах запросов неудачных запросов robots.txt.
Чтобы разрешить весь сайт, вы можете использовать пустой disallow:
User-agent: *
Disallow:
Кроме того, вы можете просто оставить файл robots. txt пустым или не иметь его вообще . Краулеры будут сканировать все, если вы не скажете им этого не делать.
Директива карты сайта
Хотя это необязательно, многие файлы robots.txt содержат директиву карты сайта:
Карта сайта: http://example.com/sitemap.xml
Указывает расположение файла карты сайта. Карта сайта — это специально отформатированный файл, в котором перечислены все URL-адреса, которые вы хотите просканировать. Рекомендуется включить эту директиву, если на вашем сайте есть карта сайта в формате XML.
Распространенные ошибки при использовании robots.txt
Я вижу очень много случаев неправильного использования robots.txt. Наиболее серьезные из них пытаются использовать файл, чтобы сохранить в секрете определенные каталоги или пытаются использовать его для блокировки враждебных поисковых роботов.
Самым серьезным последствием неправильного использования файла robots.txt является случайное сокрытие всего вашего сайта от сканеров. Обратите пристальное внимание на эти вещи.
Забыли скрыть при переходе к рабочей среде
Все промежуточные сайты (которые еще не закрыты паролем) должны иметь файлы robots.txt, поскольку они не предназначены для публичного просмотра. Но когда ваш сайт заработает, вы захотите, чтобы его увидели все. Не забудьте удалить или отредактировать этот файл.
В противном случае весь активный сайт исчезнет из результатов поиска.
User-agent: *
Disallow: /
Вы можете проверить файл robots.txt в реальном времени при тестировании или настроить что-то, чтобы вам не нужно было запоминать этот дополнительный шаг. Защитите промежуточный сервер паролем, используя простой протокол, такой как Digest Authentication. Затем вы можете передать промежуточному серверу тот же файл robots.txt, который вы собираетесь развернуть на рабочем сайте. При развертывании вы просто копируете все. В качестве бонуса у вас не будет представителей общественности, наткнувшихся на ваш промежуточный сайт.
Попытка заблокировать враждебные сканеры
Я видел файлы robots.txt, которые явно пытаются блокировать известные вредоносные сканеры, например:
Агент пользователя: DataCha0s/2.0
Disallow: /
Агент пользователя: ExtractorPro
Disallow : /
User-agent: EmailSiphon
Disallow: /
User-agent: EmailWolf 1.00
Disallow: /
Это все равно, что оставить на приборной панели автомобиля записку: «Дорогие воры! эта машина. Спасибо!»
Это бессмысленно. Это все равно, что оставить на приборной панели автомобиля записку: «Дорогие воры, пожалуйста, не угоняйте эту машину. Спасибо!»
Robots.txt является строго добровольным. Вежливые поисковые роботы, такие как поисковые системы, подчинятся ему. Враждебные сканеры, такие как сборщики электронной почты, не будут. Сканеры не обязаны следовать рекомендациям в robots.txt, но основные предпочитают это делать.
Если вы пытаетесь заблокировать вредоносные поисковые роботы, используйте блокировку пользовательского агента или блокировку IP-адресов.
Попытка сохранить каталоги в секрете
Если у вас есть файлы или каталоги, которые вы хотите скрыть от общественности, НИКОГДА не перечисляйте их все в robots.txt следующим образом:
User-agent: *
Disallow: /secret-stuff/
Запретить: /compromising-photo.jpg
Запретить: /big-list-of-plaintext-passwords.csv
По очевидным причинам это принесет больше вреда, чем пользы. Это дает враждебным поисковым роботам быстрый и простой способ найти файлы, которые вы не хотите, чтобы они находили.
Это все равно, что оставить на своей машине записку, в которой говорится: «Уважаемые воры, пожалуйста, не заглядывайте в желтый конверт с пометкой «наличные на случай непредвиденных обстоятельств», спрятанный в бардачке этой машины. Спасибо!»
Единственный надежный способ скрыть каталог — поставить на него пароль. Если вы абсолютно не можете поставить его за паролем, вот три временных решения.
- Блокировка на основе первых нескольких символов имени каталога.
Если каталог «/xyz-secret-stuff/», заблокируйте его следующим образом: - Блокировать с помощью метатега robots.
Добавьте в HTML-код следующее: - Блок с заголовком X-Robots-Tag.
Добавьте что-то вроде этого в файл .htaccess каталога:
Запретить: /xyz-
Набор заголовков X-Robots-Tag «noindex,nofollow»
Опять же, это временные решения. Ни один из них не является заменой реальной безопасности. Если это действительно нужно держать в секрете, то это действительно должно быть за паролем.
Случайная блокировка несвязанных страниц
Предположим, вам нужно заблокировать страницу:
http://example.com/admin
А также все в каталоге:
http://example.com/admin /
Очевидным способом было бы сделать это:
Запретить: /admin
Это заблокирует то, что вы хотите, но теперь вы также случайно заблокировали страницу статьи об уходе за домашними животными:
http ://example. com/administer-medication-to-your-cat-the-easy-way.html
Эта статья исчезнет из результатов поиска вместе со страницами, которые вы пытались заблокировать.
Да, это надуманный пример, но я видел, как такое происходит в реальном мире. Хуже всего то, что это обычно остается незамеченным в течение очень долгого времени.
Самый безопасный способ заблокировать и /admin, и /admin/, не блокируя ничего другого, — это использовать две отдельные строки:
Disallow: /admin$
Disallow: /admin/
Помните, что знак доллара — это оператор конца строки, который говорит: «URL должен заканчиваться здесь». Директива будет соответствовать /admin, но не /administer.
Попытка поместить robots.txt в подкаталог
Предположим, вы контролируете только один подкаталог огромного веб-сайта.
http://example.com/userpages/yourname/
Если вам нужно заблокировать некоторые страницы, вы можете попытаться добавить файл robots. txt следующим образом:
http://example .com/userpages/вашеимя/robots.txt
Это не работает. Файл будет проигнорирован. Единственное место, куда вы можете поместить файл robots.txt, — это корень сайта.
Если у вас нет доступа к корню сайта, вы не можете использовать robots.txt. Некоторые альтернативные варианты — заблокировать страницы с помощью метатегов robots. Или, если у вас есть контроль над файлом .htaccess (или его эквивалентом), вы также можете заблокировать страницы с помощью заголовка X-Robots-Tag.
Попытка настроить таргетинг на определенные субдомены
Предположим, у вас есть сайт с множеством разных субдоменов:
http://example.com/
http://admin.example.com/
http://members.example.com/
http://blog.example.com/
http://store .example.com/
У вас может возникнуть соблазн создать один файл robots.txt, а затем попытаться заблокировать из него субдомены, например:
http://example. com/robots.txt
Агент пользователя: *
Запретить: admin.example.com
Запретить: member.example.com
Это не работает. В файле robots.txt нельзя указать субдомен (или домен). Данный файл robots.txt применяется только к поддомену, с которого он был загружен.
Так есть ли способ заблокировать определенные поддомены? Да. Чтобы заблокировать одни субдомены, а не другие, вам нужно обслуживать разные файлы robots.txt с разных субдоменов.
Эти файлы robots.txt блокируют все:
http://admin.example.com/robots.txt
http://members.example.com/robots.txt
User-agent: *
Disallow : /
А эти разрешат все:
http://example.com/
http://blog.example.com/
http://store.example.com/
User-agent: *
Disallow:
Использование несовместимого типа case
Пути чувствительны к регистру.
Запретить: /acme/
Не будет блокировать «/Acme/» или «/ACME/».
Если вам нужно заблокировать их все, вам нужна отдельная строка запрета для каждого:
Запретить: /acme/
Запретить: /Acme/
Запретить: /ACME/
Забыть строку user-agent
Строка user-agent имеет решающее значение для использования robots.txt. Файл должен иметь строку пользовательского агента, прежде чем разрешать или запрещать. Если весь файл выглядит так:
Disallow: /this
Disallow: /that
Disallow: /whatever
На самом деле ничего не будет заблокировано, потому что вверху нет строки user-agent. Этот файл должен иметь следующий вид:
User-agent: *
Disallow: /this
Disallow: /that
Disallow: /whatever
Другие ловушки пользовательского агента
Существуют и другие ловушки неправильного использования пользовательского агента. Допустим, у вас есть три каталога, которые нужно заблокировать для всех поисковых роботов, а также одна страница, которая должна быть явно разрешена только для Google. Очевидный (но неправильный) подход может заключаться в следующем:
User-agent: *
Disallow: /admin/
Disallow: /private/
Disallow: /dontcrawl/
User-agent: Googlebot
Allow: /dontcrawl/исключение
Этот файл фактически позволяет Google сканировать все на сайте. Робот Google (и большинство других поисковых роботов) будет подчиняться правилам только в более конкретной строке агента пользователя и игнорировать все остальные. В этом примере он будет подчиняться правилам «User-agent: Googlebot» и игнорировать правила «User-agent: *».
Для достижения этой цели вам нужно повторить те же правила запрета для каждого блока агента пользователя, например:
Агент пользователя: *
Запретить: /admin/
Запретить: /private/
Запретить: /dontcrawl/
Агент пользователя: Googlebot
Запретить: /admin/
Запретить: /private/
Запретить: /dontcrawl/
Разрешить: /dontcrawl/exception
Забыть ведущий косая черта в пути
Предположим, вы хотите заблокировать URL-адрес:
http://example. com/badpage
И у вас есть следующий (неверный) файл robots.txt:
User-agent: *
Запретить: плохая страница
Это вообще ничего не заблокирует. Путь должен начинаться с косой черты. Если это не так, это никогда не сможет соответствовать чему-либо. Правильный способ заблокировать URL-адрес:
Агент пользователя: *
Запретить: /badpage
Советы по использованию Robots.txt
Теперь, когда вы знаете, как не отправлять враждебных сканеров прямо к вашим секретным вещам или чтобы ваш сайт не отображался в результатах поиска, вот несколько советов, которые помогут вам улучшить файлы robots.txt. Если вы сделаете это хорошо, это не повысит ваш рейтинг (для этого и нужны стратегическое SEO и контент, глупышка), но, по крайней мере, вы будете знать, что поисковые роботы находят то, что вы хотите, чтобы они нашли.
Конкуренция разрешает и запрещает
Директива allow используется для указания исключений из правила запрета. Правило запрета блокирует весь каталог (например), а правило разрешения разблокирует некоторые URL-адреса в этом каталоге. В связи с этим возникает вопрос: если заданный URL-адрес может соответствовать любому из двух правил, как сканер решает, какое из них использовать?
Не все поисковые роботы одинаково обрабатывают конкурирующие разрешения и запреты, но Google отдает приоритет тому правилу, путь которого длиннее (с точки зрения количества символов). Это действительно так просто. Если оба пути имеют одинаковую длину, то разрешение имеет приоритет над запретом. Например, предположим, что файл robots.txt имеет следующий вид:
Агент пользователя: *
Разрешить: /baddir/goodpage
Запретить: /baddir/
Путь «/baddir/goodpage» имеет длину 16 символов, а путь «/baddir/» всего 8 символов длинный. В этом случае разрешение побеждает запрет.
Разрешены следующие URL-адреса:
http://example.com/baddir/goodpage
http://example. com/baddir/goodpagesarehardtofind
http://example.com/baddir/goodpage?x= y
И будут заблокированы:
http://example.com/baddir/
http://example.com/baddir/otherpage
Теперь рассмотрим следующий пример:
Агент пользователя: *
Разрешить: /some
Запретить : /*page
Будут ли эти директивы блокировать следующий URL?
http://example.com/somepage
Да. Путь «/some» имеет длину 5 символов, а путь «/*page» — 6 символов, поэтому побеждает запрет. Разрешение игнорируется, и URL-адрес будет заблокирован.
Заблокировать определенный параметр запроса
Предположим, вы хотите заблокировать все URL-адреса, содержащие параметр запроса «id», например:
http://example.com/somepage?id=123
http://example .com/somepage?a=b&id=123
У вас может возникнуть соблазн сделать что-то вроде этого:
Disallow: /*id=
Это заблокирует нужные URL-адреса, но также заблокирует любые другие параметры запроса, оканчивающиеся на «id»:
http://example. com/users?userid=a0f3e8201b
http://example.com/auction?num=9172&bid=1935.00
Так как же заблокировать «id», не блокируя «userid» или «bid» ?
Если вы знаете, что «id» всегда будет первым параметром, используйте знак вопроса, например:
Запретить: /*?id=
Эта директива заблокирует:
http://example .com/somepage?id=123
Но не заблокирует:
http://example.com/somepage?a=b&id=123
Если вы знаете, что «id» никогда не будет первым параметром, используйте амперсанд, например:
Disallow: /*&id=
Эта директива заблокирует:
http://example.com/somepage?a=b&id=123
Но не заблокирует:
http://example.com/somepage?id= 123
Самый безопасный подход — сделать оба:
Запретить: /*?id=
Disallow: /*&id=
Не существует надежного способа сопоставить оба параметра в одной строке.
Блокировка URL-адресов, содержащих небезопасные символы
Предположим, вам необходимо заблокировать URL-адрес, содержащий символы, небезопасные для URL-адресов. Один из распространенных сценариев, когда это может произойти, — это когда код шаблона на стороне сервера случайно открывается в Интернете. Например:
http://example.com/search?q=<% var_name %>
Если вы попытаетесь заблокировать этот URL таким образом, это не сработает:
User-agent: *
Disallow: /search?q=<% var_name %>
Если вы протестируете эту директиву в инструменте тестирования Google robots.txt (доступном в Search Console), вы обнаружите, что она работает не блокировать URL. Почему? Поскольку директива фактически проверяется по URL-адресу:
http://example.com/search?q=%3C%%20var_name%20%%%3E
Все веб-агенты пользователя, включая сканеры, автоматически URL-кодируйте любые символы, которые не являются URL-безопасными. К таким символам относятся: пробелы, знаки «больше» и «меньше», одинарные и двойные кавычки, а также символы, отличные от ASCII.
Правильный способ заблокировать URL-адрес, содержащий небезопасные символы, — это заблокировать экранированную версию:
Агент пользователя: *
Запретить: /search?q=%3C%%20var_name%20%%3E
Самый простой способ получить экранированную версию URL-адреса — щелкнуть ссылку в браузере, а затем скопировать и вставить URL-адрес из поля адреса.
Как сопоставить знак доллара
Предположим, вы хотите заблокировать все URL-адреса, содержащие знак доллара, например:
http://example.com/store?price=$10
Следующее не будет работать:
Disallow: /*$
Эта директива фактически заблокирует все на сайте. Знак доллара, используемый в конце директивы, означает, что «URL заканчивается здесь». Таким образом, вышеприведенное заблокирует каждый URL-адрес, путь которого начинается с косой черты, за которой следует ноль или более символов, за которыми следует конец URL-адреса. Это правило применяется к любому допустимому URL-адресу. Чтобы обойти это, хитрость заключается в том, чтобы поставить дополнительную звездочку после знака доллара, например:
Disallow: /*$*
Здесь знак доллара больше не стоит в конце пути, поэтому он теряет свое особое значение. Эта директива будет соответствовать любому URL-адресу, который буквально содержит знак доллара. Обратите внимание, что единственное назначение последней звездочки — не допустить, чтобы знак доллара был последним символом.
Приложение
Забавный факт: Google на своем пути к семантическому поиску часто правильно интерпретирует директивы с ошибками или искажениями. Например, Google без жалоб примет любое из следующего:
UserAgent: *
Disallow /this
Dissalow: /that
Это НЕ означает, что вы должны пренебрегать форматированием и написанием директив, но если вы сделаете ошибку, Google часто позволит вам избежать наказания . Однако другие поисковые роботы, вероятно, этого не сделают.
Любимая мозоль: люди часто используют конечные подстановочные знаки в файлах robots.txt. Это безвредно, но и бесполезно; Я считаю это дурным тоном.
Например:
Запретить: /somedir/*
Делает то же самое, что и:
Запретить: /somedir/
Когда я вижу это, я думаю: «Этот человек не понимает, как работает robots.txt». Я вижу это МНОГО.
Сводка
Помните, что robots.txt должен находиться в корневом каталоге, должен начинаться со строки пользовательского агента, не может блокировать враждебные поисковые роботы и не должен использоваться для сохранения секретности каталогов. Большая часть путаницы, связанной с использованием этого файла, связана с тем, что люди ожидают, что он будет более сложным, чем он есть на самом деле. Это действительно очень просто.
Теперь смело идите и блокируйте свои страницы. Только не ваш живой сайт, ваши секреты или враждебные поисковые роботы. Я надеюсь, что это руководство подготовило вас к использованию robots.txt без каких-либо ошибок, но если вам нужны дополнительные рекомендации, ознакомьтесь с Robots.txt.org или спецификациями Google Robots.txt.
Заблокируйте нежелательных ботов и спам-ботов с помощью файла robots.txt и ускорьте работу вашего сайта
- 18 сент. 2021 г.
- Комментарии (1)
- 6077 прочтений
Возможно, сейчас ваш сайт работает быстро, но однажды это может измениться. Однажды спам-бот может зайти на ваш сайт и решить терроризировать вас запросами, которые замедлят работу вашего сайта или даже сломают его. Это реальность для многих владельцев веб-сайтов, и большинство из них даже не знают, что это происходит.
В этой статье мы рассмотрим файл robots.txt и посмотрим, как мы можем заблокировать нежелательных и спамерских ботов. Вы получите общее представление о том, как работает файл robots.txt и почему рекомендуется использовать его на своем веб-сайте.
Что такое файл robots.txt?
Вкратце: файл robots.txt представляет собой набор инструкций для ботов, перемещающихся по Интернету. Его содержимое не состоит из HTML, а содержит простые слова, такие как «Разрешить» и «Запретить». Чтобы сделать правила вашего сайта более конкретными, вы можете указать пользовательский агент, который относится к конкретному сканеру. Команды, которые вы даете пользовательскому агенту, могут заключаться в том, чтобы запретить определенные маршруты или подстановочные знаки.
Здесь вы можете узнать больше о том, что такое файл robots.txt.
Файл robots.txt содержит правила/закон вашего веб-сайта, и хорошие боты, скорее всего, будут следовать этим правилам, а плохие — нет. В следующем разделе этой статьи мы рассмотрим, что описывает плохого бота и что описывает хорошего бота.
Вот простой пример того, как может выглядеть файл robots.txt. Мы запрещаем все пользовательские агенты, но затем разрешаем роботу Google сканировать наш веб-сайт:
Пользовательский агент: * Запретить: / Агент пользователя: Googlebot Позволять: /
Зачем нужен файл robot.txt?
Файл robots.txt содержит набор правил для вашего веб-сайта и какие пользовательские агенты он применяет. Без этого набора правил боты не смогут узнать, как взаимодействовать с вашим сайтом, и если есть маршруты, которые вы не хотите индексировать.
Есть два типа ботов. Хорошие боты сканируют ваш сайт, чтобы показать его в результатах поиска, а плохие рассылают спам и могут попытаться взломать определенные функции на вашем сайте.
Боты сканируют ваш сайт, чтобы проиндексировать его.
Большинство ботов в Интернете имеют простую цель: просканировать каждый веб-сайт, чтобы показать его в результатах поиска в таких поисковых системах, как Google, Bing, Yahoo и DuckDuckGo. Они находят ваш веб-сайт где-то в Интернете и просматривают каждую страницу, чтобы проверить, стоит ли отображать ваш контент в результатах поиска.
Боты не понимают редиректы и некоторые брутфорс-атаки.
Не все боты посещают ваш сайт только для того, чтобы его просканировать. Некоторые сканируют ваш веб-сайт, чтобы найти уязвимости, которые могут позволить другим получить доступ к вашей базе данных или полностью нарушить работу вашего веб-сайта. Некоторые из этих «плохих» ботов используют такие методы, как атака грубой силы, чтобы угадать имена пользователей и пароли. Не все боты действуют добросовестно, и это боты, которых мы хотели бы отговорить от сканирования нашего веб-сайта. Боты также могут приходить добросовестно, но большинство ботов не понимают простых перенаправлений, таких как 403, 500 и 404. Это может привести к спам-запросам, которые значительно замедлят работу вашего сайта.
Вот как вы добавляете файл robots.txt на свой веб-сайт.
Добавить файл robots.txt на ваш сайт очень просто. Вы начинаете с создания пустого текстового файла с именем: robots. После того, как вы добавите маршрут URL в свой sitemap.xml, если он у вас есть, и вставите правила под ним. Чтобы добавить этот файл на статический веб-сайт HTML, вы просто добавляете файл в корень вашего проекта. После добавления файла вы сможете получить к нему доступ, следуя по этому пути: yourwebsite.com/robots.txt. Если вы можете открыть его из своего браузера, значит, роботы тоже могут.
Вот как можно заблокировать нежелательных ботов с помощью файла robots.txt.
Причина, по которой вы читаете эту статью, заключается в том, что вы хотите знать, как можно заблокировать нежелательных ботов, чтобы они не замедляли работу вашего веб-сайта, и вот оно. Заблокировать нежелательных ботов легко, и для этого нужно написать всего несколько строк текста. В нашем первом примере вы видели, как это сделать, но вместо того, чтобы просто запретить всех ботов, кроме нескольких, мы рекомендуем вам просмотреть приведенный ниже список и конкретно добавить тех, кого вы хотели бы заблокировать. Пожалуйста, не копируйте/вставляйте весь раздел. Просмотрите пользовательские агенты и выберите те, которые вы хотите заблокировать, и те, которые вы хотели бы сканировать на своем веб-сайте.
Использование файла robots.txt для блокировки нежелательных ботов, безусловно, не защищает от них, но, надеюсь, они будут следовать правилам.
Агент пользователя: AhrefsBot Агент пользователя: AhrefsSiteAudit Агент пользователя: adbeat_bot Агент пользователя: Alexibot Агент пользователя: AppEngine Пользовательский агент: Aqua_Products Агент пользователя: archive.org_bot Агент пользователя: архив Агент пользователя: asterias Пользовательский агент: b2w/0.1 Агент пользователя: BackDoorBot/1.0 Агент пользователя: BecomeBot Агент пользователя: BlekkoBot Агент пользователя: Blexbot Пользовательский агент: BlowFish/1. 0 User-agent: Инструмент поиска по закладкам Агент пользователя: BotALot Агент пользователя: BuiltBotTough Пользовательский агент: Bullseye/1.0 Агент пользователя: BunnySlippers Агент пользователя: CCBot Агент пользователя: CheeseBot Агент пользователя: CherryPicker Агент пользователя: CherryPickerElite/1.0 Агент пользователя: CherryPickerSE/1.0 Агент пользователя: chroot Агент пользователя: Copernic Агент пользователя: CopyRightCheck Пользовательский агент: космос Агент пользователя: Полумесяц Агент пользователя: Crescent Internet ToolPak HTTP OLE Control v.1.0 Агент пользователя: DittoSpyder Агент пользователя: dotbot Агент пользователя: тупица Агент пользователя: EmailCollector Агент пользователя: EmailSiphon Агент пользователя: EmailWolf Агент пользователя: Enterprise_Search Агент пользователя: Enterprise_Search/1.0 Агент пользователя: EroCrawler Агент пользователя: es Агент пользователя: exabot Агент пользователя: ExtractorPro Агент пользователя: Клиент FairAd Агент пользователя: Flaming AttackBot Агент пользователя: Foobot Агент пользователя: Gaisbot Агент пользователя: GetRight/4.2 Агент пользователя: gigabot Агент пользователя: grub Пользовательский агент: grub-клиент Пользовательский агент: Go-http-клиент Агент пользователя: Harvest/1.5 Агент пользователя: Антенна Hatena Агент пользователя: hloader Агент пользователя: бот http://www.SearchEngineWorld.com Пользователь-агент: бот http://www.WebmasterWorld.com Пользовательский агент: httplib Агент пользователя: Humanlinks Агент пользователя: ia_archiver Агент пользователя: ia_archiver/1.6 Агент пользователя: InfoNaviRobot Агент пользователя: Iron33/1.0.2 Агент пользователя: JamesBOT Агент пользователя: JennyBot Агент пользователя: Jetbot Агент пользователя: Jetbot/1.0 Агент пользователя: Джорджи Агент пользователя: Kenjin Spider Пользовательский агент: Плотность ключевого слова/0,9Агент пользователя: larbin Агент пользователя: LexiBot Агент пользователя: libWeb/clsHTTP Агент пользователя: LinkextractorPro Агент пользователя: LinkpadBot Агент пользователя: LinkScan/8.1a Unix Агент пользователя: LinkWalker Агент пользователя: LNSpiderguy Пользовательский агент: lookmart Пользовательский агент: lwp-тривиальный Пользовательский агент: lwp-тривиальный/1. 34 Агент пользователя: Мата Хари Агент пользователя: Мегалодон Агент пользователя: Microsoft URL Control Агент пользователя: Microsoft URL Control — 5.01.4511 Агент пользователя: Microsoft URL Control — 6.00.8169 Агент пользователя: MIIxpc Агент пользователя: MIIxpc/4.2 Агент пользователя: Мистер PiX Агент пользователя: MJ12bot Агент пользователя: moget Пользовательский агент: moget/2.1 Агент пользователя: mozilla Агент пользователя: Mozilla Агент пользователя: mozilla/3 Агент пользователя: mozilla/4 Агент пользователя: Mozilla/4.0 (совместимый; BullsEye; Windows 95) Агент пользователя: Mozilla/4.0 (совместимый; MSIE 4.0; Windows 2000) Агент пользователя: Mozilla/4.0 (совместимый; MSIE 4.0; Windows 95) Агент пользователя: Mozilla/4.0 (совместимый; MSIE 4.0; Windows 98) Агент пользователя: Mozilla/4.0 (совместимый; MSIE 4.0; Windows NT) Агент пользователя: Mozilla/4.0 (совместимый; MSIE 4.0; Windows XP) Агент пользователя: mozilla/5 Агент пользователя: MSIECrawler Агент пользователя: naver Агент пользователя: NerdyBot Агент пользователя: NetAnts Агент пользователя: NetMechanic Агент пользователя: NICErsPRO Агент пользователя: Nutch Агент пользователя: Offline Explorer Агент пользователя: Openbot Агент пользователя: Openfind Пользовательский агент: Сбор данных Openfind Агент пользователя: Oracle Ultra Search Агент пользователя: PerMan Агент пользователя: ProPowerBot/2. 14 Агент пользователя: ProWebWalker Агент пользователя: psbot Пользовательский агент: Python-urllib Пользовательский агент: Метапоиск QueryN Агент пользователя: Radiation Retriever 1.1 Агент пользователя: RepoMonkey Агент пользователя: RepoMonkey Bait & Tackle/v1.01 Агент пользователя: RMA Агент пользователя: rogerbot Агент пользователя: скутер Пользовательский агент: Screaming Frog SEO Spider Агент пользователя: searchpreview Агент пользователя: SEMrushBot Агент пользователя: SemrushBot Агент пользователя: SemrushBot-SA Пользователь-агент: SEOkicks-Robot Агент пользователя: SiteSnagger Агент пользователя: sootle Агент пользователя: SpankBot Агент пользователя: гаечный ключ Агент пользователя: spbot Агент пользователя: Стэнфорд Агент пользователя: Stanford Comp Sci Агент пользователя: Stanford CompClub Агент пользователя: Stanford CompSciClub Агент пользователя: Stanford Spiderboys Агент пользователя: SurveyBot Агент пользователя: SurveyBot_IgnoreIP Агент пользователя: suzuran Агент пользователя: Szukacz/1. 4 Агент пользователя: Szukacz/1.4 Агент пользователя: Телепорт Агент пользователя: TeleportPro Агент пользователя: Телесофт Агент пользователя: Теома Пользовательский агент: Интраформант Агент пользователя: TheNomad Агент пользователя: toCrawl/UrlDispatcher Агент пользователя: True_Robot Агент пользователя: True_Robot/1.0 Агент пользователя: turingos Агент пользователя: Typhoeus Пользовательский агент: контроль URL Агент пользователя: URL_Spider_Pro Пользовательский агент: Предупреждение URLy Агент пользователя: VCI Агент пользователя: VCI WebViewer VCI WebViewer Win32 Пользовательский агент: сборщик веб-изображений Агент пользователя: WebAuto Агент пользователя: WebBandit Агент пользователя: WebBandit/3.50 Агент пользователя: WebCopier Агент пользователя: WebEnhancer Агент пользователя: WebmasterWorld Extractor Агент пользователя: WebmasterWorldForumBot Агент пользователя: WebSauger Пользователь-агент: Веб-сайт Quester Агент пользователя: Webster Pro Агент пользователя: WebStripper Агент пользователя: WebVac Агент пользователя: WebZip Агент пользователя: WebZip/4. 0 Агент пользователя: Wget Пользовательский агент: Wget/1.5.3 Пользовательский агент: Wget/1.6 Агент пользователя: WWW-Коллектор-E Агент пользователя: Xenu's Пользовательский агент: Xenu's Link Sleuth 1.1c Агент пользователя: Зевс Агент пользователя: Зевс 32297 Вебстер Про V2.9 Win32 Агент пользователя: Zeus Link Scout Запретить: /
Подведение итогов.
Прочитав эту статью, вы должны лучше понять, что такое файл robots.txt и как он работает. Вы знаете, как написать файл для блокировки определенных ботов, и знаете, что нет уверенности, что он сработает.
Как у людей есть законы, и мы надеемся, что все будут им следовать, так и нет уверенности, что все будут следовать им. Это также относится к файлу robots.txt, и, надеюсь, вы успешно заблокируете нежелательных ботов от сканирования вашего сайта. Более надежным способом блокировки нежелательных ботов является использование брандмауэра вашего веб-сайта для блокировки ботов с использованием их IP-адресов, но это будет игра в кошки-мышки.