Защита информации на вашем сайте – один из залогов успеха бизнеса в сети. Утечка данных с сайта, особенно личных данных пользователей, крайне негативно скажется на репутации компании. Поэтому при поисковом продвижении сайта нужно думать не только о том, какие страницы сайта должны попасть в ТОП поисковых систем, но и о том, какие не должны быть проиндексированы ни при каких обстоятельствах. Основной инструмент ограничения доступности информации для поисковых роботов – файл robots.txt.
Файл robots.txt чаще всего используется для запрета индексирования поисковыми роботами страниц:
Robots.txt также позволяет задавать поисковому роботу время загрузки страниц и другие технические характеристики вашего сайта, однако использование таких директив имеет свои особенности в каждой конкретной поисковой системе и в сущности не является приоритетной задачей файла robots.txt.
Что такое robots.txt
Текстовый файл robots.txt согласно общепринятому стандарту располагается «в корне» сайта и всегда открыт для чтения – в первую очередь, как следует из названия, роботам поисковых систем. Однако вы свободно можете открыть robots.txt любого сайта с помощью своего браузера. Посмотрим, например, файл сайа skype.com, просто дописав в адресной строке на главной странице «robots.txt» после слэша:
– и нажав Enter:
На открывшейся странице мы видим настройки индексирования данного сайта для поисковых роботов. О синтаксисе и назначении директив мы подробно расскажем далее. Кстати, в отдельных случаях неправильное использование директив в robots.txt помогает сразу диагностировать имеющиеся проблемы с индексированием сайта.
Обратите внимание, что крупные сайты практически не используют в robots.txt никаких других директив, кроме Disallow, однозначно воспринимаемой поисковым роботом любой популярной системы.
Robots.txt: историческая справка
Стандарт для robots.txt никому не принадлежит, а начало его использования приходится на 1994 год. Сейчас robots.txt используется всеми популярными поисковыми системами. Файл robots.txt – это The Robots Exclusion Protocol, то есть файл исключений для поисковых роботов. Robots.txt противоположен по смыслу файлу sitemap.xml: robots.txt ограничивает поисковым роботам обход сайта, а sitemap.xml наоборот – указывает файлы для индексирования. При этом robots.txt первичен – прежде, чем поисковый робот начинает загружать какие-либо страницы сайта, он обращается именно к файлу robots.txt, поэтому основной директивой файла robots.txt является директива запрета индексирования – Disallow.
Основные базы знаний по использованию robots.txt – это сайт www.robotstxt.org (на английском языке) и robotstxt.org.ru.
Кто виноват?
Наличие файла robots.txt в структуре сайта не обязательно. Отсутствие явно заданного через robots.txt запрета воспринимается поисковым роботом как разрешение загружать любое доступное содержимое сайта. Если сайт ведёт работу с конфиденциальными данными, доступ к которым возможен без авторизации (так делать нельзя ни при каких обстоятельствах), SEO-специалистам и вебмастерам следует заранее позаботиться об ограничении попадания этой информации в открытый доступ: нужно составить список страниц сайта, которые ни в коем случае не должны попасть в индекс поисковых систем, и запретить индексирование этих страниц в файле robots.txt.
Не стоит обвинять поисковых роботов в том, что в индекс поисковых систем попадают, например, номера телефонов, адреса, паспортные данные или непубличные документы, как это было в скандалах с операторами сотовой связи,государственными учреждениями, интернет-магазинами и так далее: эта ситуация говорит как раз о хорошей работе поисковых роботов.
Важно понимать, что если на страницу с конфиденциальной информацией невозможно попасть одним или несколькими переходами с главной страницы сайта, это не значит, что страница «спрятана» от поискового робота: ссылка на страницу может быть кем-то размещена и на сторонних ресурсах – тогда страница с большой вероятностью окажется в индексе поисковой системы. Существуют также многочисленные причины попадания страниц в индекс, не связанные напрямую с человеческим фактором, то есть действующие автоматически: RSS-каналы, агрегаторы контента и другие (подробно эти причины были описаны на странице блога «Яндекс.Поиска»: «Почему всё находится»). Поэтому SEO-специалист должен всегда напрямую запрещать поисковой системе обходить страницы с «секретной» информацией, если эта проблема не была решена на этапе проектирования сайта.
Синтаксис в robots.txt
Обратимся теперь к оформлению файла robots.txt. В отличие от HTML-документов или XML-карт, в robots.txt содержатся непосредственно директивы для поисковых систем без каких-либо дополнительных блоков информации, описывающих назначение файла – оно вытекает просто из названия.
Как мы говорили выше, основная используемая в robots.txt директива – Disallow. Поскольку в интернете существует далеко не одна поисковая система, то в общем случае вебмастер может задать запреты для всех поисковых роботов согласно принятом синтаксису, указав в строке после User-agent: символ ‘*’. Таким образом, самый простой запрет – это запрет индексирования всего сайта любыми поисковыми роботами. Выглядит он так:
Начиная со слеша можно указывать отдельные папки или файлы или маски для запрета индексирования, при этом часть файлов из этих папок можно открыть, выглядеть это будет так:
– запрещает скачивать всё, кроме страниц, начинающихся с '/cgi-bin'.
Обратите внимание, что если для данной страницы сайта подходит несколько директив, то выбирается первая в порядке появления в выбранном User-agent блоке. Например, такая запись –
– запрещает скачивать весь сайт
Спецсимволы в robots.txt
При указании путей директив Allow-Disallow можно использовать спецсимволы '*' и '$', задавая, определенные регулярные выражения. Символ ‘#’ отделяет комментарии к коду в файле robots.txt.
Спецсимвол '*' означает любую (в том числе пустую) последовательность символов. Примеры:
По умолчанию к концу каждого правила, описанного в robots.txt, приписывается '*', например:
Чтобы отменить '*' на конце правила, можно использовать спецсимвол '$', например:
Как видно из примеров, директивы можно сочетать друг с другом. Как правило, этого небольшого функционала достаточно для решения большинства вопросов с индексированием сайта, остальные директивы нуждаются в уточнении в рамках работы конкретной поисковой системы. Популярные поисковики предоставляют вебмастерам cправочную информацию по особенностям работы своих поисковых роботов – например, «Яндекс» и «Google».
Безопасность сайта и robots.txt
Поисковые роботы не могут добраться до страниц, доступ к которым возможен исключительно после авторизации, то есть с помощью обязательного ввода пароля. Это могут быть не только профили пользователей сайта, но и аккаунты администраторов. Таким образом, включать эти страницы в robots.txt не имеет смысла.
Будет разумно указать поисковым роботам не включать в индекс страницы с формой авторизации для пользователей сайта. Если же для администраторов сайта есть отдельная страница авторизации, на которую нельзя перейти с главной или внутренних страниц сайта, и эта страница имеет нестандартный вид URL, то сомнительно включать её в robots.txt под директивой Disallow. Помните о том, что опытный вебмастер всегда сможет обнаружить стандартную страницу авторизации для популярных CMS, а в индекс системы могут попасть страницы, ссылки на которых есть на уже проиндексированных страницах других сайтов.
Процитируем также страницы помощи Google о поисковом роботе Googlebot:
Таким образом, хотя в индекс поисковой системы может не попасть содержимое страниц, могут попасть их URL, что, в общем-то, не является гарантией того, что конфиденциальные данные не попадут в руки злоумшыленников.
SEO-специалист должен составить список страниц, которые совершенно точно не должны попасть в открытый доступ в интернете, однако поскольку список этих страниц будет находиться в открытом для всех файле robots.txt, злоумышленникам не придётся даже искать страницы с «той самой» секретной информацией, о чём прямо сказано на сайте robotstxt.org: «Файл robots.txt виден всем. Не пытайтесь использовать этот файл для того, чтобы спрятать информацию».
Кроме того, не все роботы соблюдают общепринятые стандарты для robots.txt. А также robots.txt может использоваться специально написанными программами, цель которых – поиск уязвимостей ваших веб-серверов.
Эти вещи всегда нужно иметь в виду, если вы заботитесь о безопасности данных на вашем сайте.
Использование robots.txt в мошеннических целях
Файл robots.txt можно использовать и с целью нанести ущерб сайту. Всегда будьте в курсе того, кто имеет доступ к вашему сайту. С помощью robots.txt можно добиться понижения позиций сайта вплоть до полного выпадения его из индекса. Приведём некоторые примеры таких манипуляций.
Noindex, nofollow
В связи с файлом robots.txt нельзя не упомянуть микроформаты noindex и nofollow.
Значение nofollow атрибута rel тега <a> (запрет передачи веса по ссылке) входит в спецификацию HTML, и на данный момент соблюдается всеми популярными поисковыми системами.
Тег noindex был предложен компанией «Яндекс». Этот парный тег предназначен для запрета индексирования части содержимого на странице, например так:
На данный момент тег noindex используется только Яндексом. Более того, поскольку тег noindex не входит в официальную спецификацию языка HTML, то большинство HTML-валидаторов считает его ошибкой. Потому для того, чтобы сделать код с noindex валидным рекомендуется использовать тот факт, что noindex не чувствителен к вложенности и это позволяет использовать следующую конструкцию:
Возможно использование noindex в качестве мета-тега на конкретной странице (например, /page.html):
Приведённая выше запись аналогична следующей конструкции в robots.txt:
Что делать, если конфиденциальные данные с вашего сайта попали в открытый доступ
К сожалению, бывают неприятные ситуации, когда не все страницы с конфиденциальными данными были закрыты от индексации. Рано или поздно такие страницы попадают в сеть и распространяются по интернету, вызывая многочисленные скандалы, шумиху и нередко – судебные иски. Вебмастерам в этом случае следует придерживаться следующего порядка действий:
Файл robots.txt чаще всего используется для запрета индексирования поисковыми роботами страниц:
- с конфиденциальной информацией (интернет-магазины и любые сайты, хранящие личные данные пользователей);
- перемещённых или удалённых (например, при изменении структуры сайта или появления нового зеркала для максимально быстрого обновления кэша поисковой системы);
- дублей контента (блоги, интернет-магазины, сайты с использованием пейджинга и др.)
Robots.txt также позволяет задавать поисковому роботу время загрузки страниц и другие технические характеристики вашего сайта, однако использование таких директив имеет свои особенности в каждой конкретной поисковой системе и в сущности не является приоритетной задачей файла robots.txt.
Что такое robots.txt
Текстовый файл robots.txt согласно общепринятому стандарту располагается «в корне» сайта и всегда открыт для чтения – в первую очередь, как следует из названия, роботам поисковых систем. Однако вы свободно можете открыть robots.txt любого сайта с помощью своего браузера. Посмотрим, например, файл сайа skype.com, просто дописав в адресной строке на главной странице «robots.txt» после слэша:
– и нажав Enter:
На открывшейся странице мы видим настройки индексирования данного сайта для поисковых роботов. О синтаксисе и назначении директив мы подробно расскажем далее. Кстати, в отдельных случаях неправильное использование директив в robots.txt помогает сразу диагностировать имеющиеся проблемы с индексированием сайта.
Обратите внимание, что крупные сайты практически не используют в robots.txt никаких других директив, кроме Disallow, однозначно воспринимаемой поисковым роботом любой популярной системы.
Robots.txt: историческая справка
Стандарт для robots.txt никому не принадлежит, а начало его использования приходится на 1994 год. Сейчас robots.txt используется всеми популярными поисковыми системами. Файл robots.txt – это The Robots Exclusion Protocol, то есть файл исключений для поисковых роботов. Robots.txt противоположен по смыслу файлу sitemap.xml: robots.txt ограничивает поисковым роботам обход сайта, а sitemap.xml наоборот – указывает файлы для индексирования. При этом robots.txt первичен – прежде, чем поисковый робот начинает загружать какие-либо страницы сайта, он обращается именно к файлу robots.txt, поэтому основной директивой файла robots.txt является директива запрета индексирования – Disallow.
Основные базы знаний по использованию robots.txt – это сайт www.robotstxt.org (на английском языке) и robotstxt.org.ru.
Кто виноват?
Наличие файла robots.txt в структуре сайта не обязательно. Отсутствие явно заданного через robots.txt запрета воспринимается поисковым роботом как разрешение загружать любое доступное содержимое сайта. Если сайт ведёт работу с конфиденциальными данными, доступ к которым возможен без авторизации (так делать нельзя ни при каких обстоятельствах), SEO-специалистам и вебмастерам следует заранее позаботиться об ограничении попадания этой информации в открытый доступ: нужно составить список страниц сайта, которые ни в коем случае не должны попасть в индекс поисковых систем, и запретить индексирование этих страниц в файле robots.txt.
Не стоит обвинять поисковых роботов в том, что в индекс поисковых систем попадают, например, номера телефонов, адреса, паспортные данные или непубличные документы, как это было в скандалах с операторами сотовой связи,государственными учреждениями, интернет-магазинами и так далее: эта ситуация говорит как раз о хорошей работе поисковых роботов.
Важно понимать, что если на страницу с конфиденциальной информацией невозможно попасть одним или несколькими переходами с главной страницы сайта, это не значит, что страница «спрятана» от поискового робота: ссылка на страницу может быть кем-то размещена и на сторонних ресурсах – тогда страница с большой вероятностью окажется в индексе поисковой системы. Существуют также многочисленные причины попадания страниц в индекс, не связанные напрямую с человеческим фактором, то есть действующие автоматически: RSS-каналы, агрегаторы контента и другие (подробно эти причины были описаны на странице блога «Яндекс.Поиска»: «Почему всё находится»). Поэтому SEO-специалист должен всегда напрямую запрещать поисковой системе обходить страницы с «секретной» информацией, если эта проблема не была решена на этапе проектирования сайта.
Синтаксис в robots.txt
Обратимся теперь к оформлению файла robots.txt. В отличие от HTML-документов или XML-карт, в robots.txt содержатся непосредственно директивы для поисковых систем без каких-либо дополнительных блоков информации, описывающих назначение файла – оно вытекает просто из названия.
Как мы говорили выше, основная используемая в robots.txt директива – Disallow. Поскольку в интернете существует далеко не одна поисковая система, то в общем случае вебмастер может задать запреты для всех поисковых роботов согласно принятом синтаксису, указав в строке после User-agent: символ ‘*’. Таким образом, самый простой запрет – это запрет индексирования всего сайта любыми поисковыми роботами. Выглядит он так:
User-agent: * Disallow: / |
Начиная со слеша можно указывать отдельные папки или файлы или маски для запрета индексирования, при этом часть файлов из этих папок можно открыть, выглядеть это будет так:
User-agent: Yandex Allow: /cgi-bin Disallow: / |
– запрещает скачивать всё, кроме страниц, начинающихся с '/cgi-bin'.
Обратите внимание, что если для данной страницы сайта подходит несколько директив, то выбирается первая в порядке появления в выбранном User-agent блоке. Например, такая запись –
User-agent: Yandex Disallow: / Allow: /cgi-bin |
– запрещает скачивать весь сайт
Спецсимволы в robots.txt
При указании путей директив Allow-Disallow можно использовать спецсимволы '*' и '$', задавая, определенные регулярные выражения. Символ ‘#’ отделяет комментарии к коду в файле robots.txt.
Спецсимвол '*' означает любую (в том числе пустую) последовательность символов. Примеры:
User-agent: Yandex Disallow: /cgi-bin/*.aspx # запрещает '/cgi-bin/example.aspx' и '/cgi-bin/private/test.aspx' Disallow: /*private # запрещает не только '/private', но и '/cgi-bin/private' |
По умолчанию к концу каждого правила, описанного в robots.txt, приписывается '*', например:
User-agent: Yandex Disallow: /cgi-bin* # блокирует доступ к страницам начинающимся с '/cgi-bin' Disallow: /cgi-bin # то же самое |
Чтобы отменить '*' на конце правила, можно использовать спецсимвол '$', например:
User-agent: Yandex Disallow: /example$ # запрещает '/example', но не запрещает '/example.html' User-agent: Yandex Disallow: /example # запрещает и '/example', и '/example.html' User-agent: Yandex Disallow: /example$ # запрещает только '/example' Disallow: /example*$ # так же, как 'Disallow: /example' запрещает и /example.html и /example |
Как видно из примеров, директивы можно сочетать друг с другом. Как правило, этого небольшого функционала достаточно для решения большинства вопросов с индексированием сайта, остальные директивы нуждаются в уточнении в рамках работы конкретной поисковой системы. Популярные поисковики предоставляют вебмастерам cправочную информацию по особенностям работы своих поисковых роботов – например, «Яндекс» и «Google».
Безопасность сайта и robots.txt
Поисковые роботы не могут добраться до страниц, доступ к которым возможен исключительно после авторизации, то есть с помощью обязательного ввода пароля. Это могут быть не только профили пользователей сайта, но и аккаунты администраторов. Таким образом, включать эти страницы в robots.txt не имеет смысла.
Будет разумно указать поисковым роботам не включать в индекс страницы с формой авторизации для пользователей сайта. Если же для администраторов сайта есть отдельная страница авторизации, на которую нельзя перейти с главной или внутренних страниц сайта, и эта страница имеет нестандартный вид URL, то сомнительно включать её в robots.txt под директивой Disallow. Помните о том, что опытный вебмастер всегда сможет обнаружить стандартную страницу авторизации для популярных CMS, а в индекс системы могут попасть страницы, ссылки на которых есть на уже проиндексированных страницах других сайтов.
Процитируем также страницы помощи Google о поисковом роботе Googlebot:
«Хотя Google не сканирует и не индексирует содержание страниц, заблокированных в файле robots.txt, URL-адреса, обнаруженные на других страницах в Интернете, по-прежнему могут добавляться в индекс. В результате URL страницы, а также другие общедоступные сведения, например текст ссылок на сайт или заголовок из каталога Open Directory Project, могут появиться в результатах поиска Google». |
Таким образом, хотя в индекс поисковой системы может не попасть содержимое страниц, могут попасть их URL, что, в общем-то, не является гарантией того, что конфиденциальные данные не попадут в руки злоумшыленников.
SEO-специалист должен составить список страниц, которые совершенно точно не должны попасть в открытый доступ в интернете, однако поскольку список этих страниц будет находиться в открытом для всех файле robots.txt, злоумышленникам не придётся даже искать страницы с «той самой» секретной информацией, о чём прямо сказано на сайте robotstxt.org: «Файл robots.txt виден всем. Не пытайтесь использовать этот файл для того, чтобы спрятать информацию».
Кроме того, не все роботы соблюдают общепринятые стандарты для robots.txt. А также robots.txt может использоваться специально написанными программами, цель которых – поиск уязвимостей ваших веб-серверов.
Эти вещи всегда нужно иметь в виду, если вы заботитесь о безопасности данных на вашем сайте.
Использование robots.txt в мошеннических целях
Файл robots.txt можно использовать и с целью нанести ущерб сайту. Всегда будьте в курсе того, кто имеет доступ к вашему сайту. С помощью robots.txt можно добиться понижения позиций сайта вплоть до полного выпадения его из индекса. Приведём некоторые примеры таких манипуляций.
- Директива Disallow может использоваться для запрета индексирования отдельных папок (разделов сайта). Обратите внимание на имена этих папок: кроме разделов со служебной информацией там могут оказаться и разделы с контентом.
- Директива Crawl-delay отвечает за временной промежуток в секундах между последовательной загрузкой страниц сайта и используется при больших нагрузках на вебсервер. Увеличение временного промежутка может привести к тому, что поисковый робот будет индексировать сайт слишком долго.
Noindex, nofollow
В связи с файлом robots.txt нельзя не упомянуть микроформаты noindex и nofollow.
Значение nofollow атрибута rel тега <a> (запрет передачи веса по ссылке) входит в спецификацию HTML, и на данный момент соблюдается всеми популярными поисковыми системами.
Тег noindex был предложен компанией «Яндекс». Этот парный тег предназначен для запрета индексирования части содержимого на странице, например так:
... <noindex>Текст или код, который нужно исключить из индексации Яндекс</noindex> ... |
На данный момент тег noindex используется только Яндексом. Более того, поскольку тег noindex не входит в официальную спецификацию языка HTML, то большинство HTML-валидаторов считает его ошибкой. Потому для того, чтобы сделать код с noindex валидным рекомендуется использовать тот факт, что noindex не чувствителен к вложенности и это позволяет использовать следующую конструкцию:
<!--noindex-->Текст или код, который нужно исключить из индексации Яндекс<!--/noindex--> |
Возможно использование noindex в качестве мета-тега на конкретной странице (например, /page.html):
<html> <head> <meta name="robots" content="noindex" /> <title>Эта страница не будет проиндексирована</title> </head> ... |
Приведённая выше запись аналогична следующей конструкции в robots.txt:
User-agent: Yandex Disallow: /page.html |
Что делать, если конфиденциальные данные с вашего сайта попали в открытый доступ
К сожалению, бывают неприятные ситуации, когда не все страницы с конфиденциальными данными были закрыты от индексации. Рано или поздно такие страницы попадают в сеть и распространяются по интернету, вызывая многочисленные скандалы, шумиху и нередко – судебные иски. Вебмастерам в этом случае следует придерживаться следующего порядка действий:
- Определите список страниц, которые необходимо закрыть от индексации. Выясните причину их попадания в открытый доступ: если эти страницы должны быть доступны только через форму авторизации, примите соответствующие меры в модулях вашей CMS.
- Добавьте список страниц в файл robots.txt с помощью директивы Disallow для всех поисковых роботов. Помните, что если информация появилась в индексе одной поисковой системе, то в течение короткого времени она появится в индексе как минимум всех популярных поисковых систем, а также может быть сохранена пользователями интернета.
- Обратитесь напрямую в поисковые системы для скорейшего удаления страниц из индекса, соответствующие формы есть у «Яндекса» и у «Google».
- Узнайте, была ли скопирована конфиденциальная информация с вашего сайта и выложена на сторонних ресурсах. Если это произошло, обратитесь к владельцам сайтов (модераторам) с просьбой об удалении контента. Вы также можете обратиться в техподдержку поисковых систем.
Выводы Итак, сделаем некоторые основополагающие выводы об использовании файла robots.txt.
|
Еще об этом: https://seohelparticles.blogspot.com/2019/07/robotstxt.html
ОтветитьУдалить