Файл robots.txt
Для управлений индексацией сайта поисковыми системами существует файл robots.txt. Если рассуждать глобально, то файл robots.txt позволяет запрещать одни файла или каталоги для индексации и разрешать другие. Вот о том, как этим файлом пользоваться, как разрешать и запрещать индексацию определённых страниц и каталогов, Вы узнаете из этой статьи.
Robots.txt - это обычный текстовый файл, который расположен в корне сайта. Файл robots.txt состоит из набора директив, каждая из которых сообщает какую-либо информацию поисковому роботу.
Но прежде чем приступать к разбору различных директив, нужно определиться с общим синтаксисом:
директива:значение
Как видите, синтаксис самый наипростейший. А теперь давайте разберём самые важные директивы.
User-Agent
Эта директива означает, к какому роботу относятся все последующие директивы. Если стоит значение "*", то это относится абсолютно ко всем поисковым роботам. Если же Вы хотите выделить определённую поисковую систему, то необходимо поставить в качестве значение имя поискового робота (например, "Yandex", "Google", "Rambler", "Mail" и так далее). Пример использования директивы "User-Agent":
User-agent: Google
Allow
Данная директива разрешает индексацию указанных в значении элементов. Например, так:
Allow: /images
В данном примере мы разрешаем индексацию каталога "images".
Disallow
Противоположность директиве "Allow", то есть, наоборот, запрещает индексацию указанных элементов. Пример:
Disallow: /library
Также очень важно помнить о приоритете. Приоритет имеет та директива, которая расположена выше. Например, в таком файле robots.txt:
Allow: /images
Disallow: /
Здесь запрещается индексировать сайт полностью ("Disallow: /"), но так как у нас до этого идёт директива Allow, и она является приоритетной, то на индексацию каталога "images" запрет не распространяется.
Или, например, такой вариант:
Disallow: /
Allow: /images
В данном примере, мы сначала всё запрещаем, а потом пытаемся разрешить индексацию каталога "images", однако, этого не произойдёт. Так как директива Disallow стоит раньше, и она имеет более высокоий приоритет. То есть результатом данного файла robots.txt будет полный запрет индексации сайта.
*
"*" используется в директивах Allow и Disallow, и "*" означает любую последовательность символов. Чтобы стало понятнее, привожу пример:
Disallow: /library/*.php
Таким образом, мы запрещаем индексацию всех PHP-файлов в директории "library". Однако, файл "library/page.html" будет доступен для индексации.
Sitemap
Использовать данную директиву нужно только в том случае, если у Вас имеется XML-версия карты сайта. В значении данной директивы необходимо указать полный путь к карте сайта. Например, так:
Sitemap: http://mysite.ru/sitemap.xml
Host
Данную директиву понимает только Яндекс, поэтому другие поисковые роботы данную директиву просто пропустят. Содержит "Host" адрес основного сайта. Допустим, у Вашего сайта имеется несколько зеркал (например, mysite.ru, mysite.com, mysite.net и так далее). В значении данной директивы необходимо указать основной адрес:
Host: mysite.ru
Также данная директива полезна для устранения дублирования с www, так как по сути www.mysite.ru и mysite.ru - это два совершенно разных сайта с точки зрения поисковой системы: Просто укажите то значение (с www или без) в значении директивы Host, которое Вы хотите, и это дублирование пропадёт. Однако, не забывайте, что это поймёт только Яндекс, а для Google надо всё-таки задавать 301 редирект (здесь более подробно об этом). Поэтому используйте данную директиву, как дополнительное лекарство, а не как основное.
Clean-param
Последняя директива, которая иногда имеет очень серьёзное значение, это "Clean-param". Если Ваш сайт динамический, и ссылки имеют GET-параметры, то очень часто в GET передаются параметры, которые не влияют на содержимое страницы. Например, два адреса одной и той же страницы:
http://mysite.ru/index.php?id=15&sid=fdsl3l39dsfdsl3l39ds93fdsl3l39ds
http://mysite.ru/index.php?id=15&sid=a4hl33392gfhnlz4hdklf3fd372dvxfs
Фактически, данные ссылки отличаются значением параметра "sid", а потому для поисковой системы это две совершенно разных страницы. Однако, очень часто такие параметры никак не меняют контент страницы. И вот для того, чтобы убрать дублирование (злейший враг оптимизации), возникающее вот от таких параметров, нужно использовать директиву "Clean-param":
Clean-param: sid /index.php
Это, пожалуй, все самые важные и самые частоиспользуемые директивы файла robots.txt. Есть ещё несколько, но они используются крайне редко, и лучше ими голову не забивать, хотя, если хотите, то можете поискать в Интернете.
И, напоследок, приведу пример своего файла robots.txt (на момент написания статьи), а также подробно его поясню:
User-agent: *
Disallow: /admin
Disallow: /captcha
Disallow: /js
Disallow: /lib
Disallow: /scripts
Disallow: /print.php
Sitemap: http://myrusakov.ru/sitemap.xml
Host: myrusakov.ru
В данном robots.txt для всех поисковых роботов запрещена индексация следующих каталогов: "admin", "captcha", "js", "lib", "scripts". Также запрещена индексаци файла "print.php". Путь к XML-версии карты сайта: "http://myrusakov.ru/sitemap.xml". Основной адрес сайта - "myrusakov.ru".
И главное правило, которое используется чаще всего при составлении robots.txt - это "всё, что не запрещено - разрешено". Фактически, в примере robots.txt, я ничего не разрешал, а только запрещал. Это означает, что всё, что я не запретил, поисоковый робот может индексировать. Вот такое простое правило. Другими словами, если Вы создавать файл robots.txt не будете, то Ваш сайт будет индексироваться полностью от начала и до конца, что не всегда хорошо, так как поисковому роботу совсем необязательно индексировать различные скрипты и системные файлы. Вот для задания запретов и существует файл "robots.txt", о котором Вы теперь знаете всё, что нужно.
-
- Михаил Русаков
Комментарии (61):
А какое по умолчанию стоит значение у директивы "User-agent"?
Ответить
Какое значение по умолчанию, решают поисковые системы, но я думаю, что абсолютно все, ставят значение *.
Ответить
И директива "Disallow" позволяет полностью игнорировать файл, или на сайте его применять можно? Например: если я запретил индексировать файл captcha.php, то на сайте его применять можно например вот так: <img src="captcha.php"> или нет?
Ответить
На сайте можете, сколько угодно их применять, они не будут индексироваться поисковыми системами.
Ответить
А в эти файлы зайти можно будет? Например: пользователь напишет ialim.ru/captcha.php , и зайдет он на этот файл? Или нет?
Ответить
Зайдёт, конечно. Этот файл относится только к поисковым роботам, и никто этот файл, кроме них не смотрит.
Ответить
Что то я запуталась. Вы не могли бы объяснить, что это значит? User-Agent: * Crawl-Delay: 10 Request-rate: 1/10
Ответить
Crawl-Delay: 10 - для яндекса. Это означает, что он должен обращаться к серверу не чаще, чем раз в 10 секунд. Это делается для уменьшения нагрузки на сервер. Request-rate: 1/10 - означает абсолютно то же самое, но только для google и других западных поисковиков.
Ответить
Здравствуйте Михаил! Помогите с вопросом,что это значит? Index of / Apache/2.2.19 (Unix) mod_ssl/2.2.19 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.17 Server at .Port 80
Ответить
Это различная информация о сервере.
Ответить
Я прошу прощения,когда я ввожу в поиск название своего сайта,то изначально показывается эта информация.Что нужно,что бы сразу отображалась главная страница? Если не сложно обьясните пожалуйста...
Ответить
Главная страница должна называться index.html (или index.php, или index.htm).
Ответить
Михаил,извините меня за такой вопрос: ваш сайт находится на yutex?
Ответить
Раньше находился, но уже где-то 1.5 месяца пользуюсь услугами Hostia.ru
Ответить
Вы не подскажете,по опыту работы,где отключается автоматическая кодировка сайта и есть ли там такая функция?Сайт в utf-8,а при проверке выдаёт,что кодировка [ISO-8859-1].И письма мне на почту приходят в сплошной тарабарщине.
Ответить
Попробуйте создать файл .htaccess и добавить туда такую строчку: AddDefaultCharset UTF-8
Ответить
а помещать его потом куда?
Ответить
В корень сайта.
Ответить
Михаил,извините за назойливость,но вы единственный,кто может все нормально обьяснять таким "чайникам" как я((.Помогите с таким вопросом. Я не могу понять, почему при вводе своего адреса http://....ru, мне выдается различная информация о сервере и потом ссылка на мой сайт.Голову сломала, не могу понять в чем дело. Главная страница index.html. Почему нет переходасразу на главную страницу? Помогите пожалуйста!!!!!
Ответить
А Вы точно в корень сайта кидаете (директория public_html или www)? Такая ошибка возникает, когда не существует ни одного файла.
Ответить
В директорию public_html. Может надо что то прописать в index....что бы при запросе сразу открывалась главная страница?
Ответить
Дайте ссылку на сайт.
Ответить
только сильно не пугайтесь и не смейтесь((( я учусь http://mastericam.ru
Ответить
Вы зачем-то создали папку с названием домена. Скопируйте содержание этой папки и вставьте в ту же директорию, в которой находится эта папка. А затем удалите эту папку.
Ответить
Простите меня за непонятливость! Я окончательно запуталась!Что скопировать,что удалить,где это находится и куда что вставлять(((!!!
Ответить
У Вас в public_html находится папка mastericam.ru . Удалите её вообще. А потом скопируйте в public_html файл index.html.
Ответить
А где тогда будут расположены фото и вся остальная информация? в директории www? На сайте все пропало...
Ответить
Да. Всё должно находиться в папке www.
Ответить
СПАСИБО ВАМ ОГРОМНОЕ ЗА ПОМОЩЬ!!!!! Получилось! Только одна маленькая проблема каждая страница http отображается с таким знаком %20!Как это можно убрать. Пробовала удалять,выскакивает опять...
Ответить
%20 - это пробел. Сотрите пробелы из названия страниц, и этот символ исчезнет.
Ответить
C фавиконом не получается,хотя расположение правильное.%20 не убираются.((( Михаил,скажите, Ваш сайт добавлен в каталоги? Если да, то не подскажете,как это сделать? И еще такая просьба,не могли бы Вы оценить (как спец),все ли верно у меня прописано на страницах? Очень много ошибок? Если конечно Вам не трудно....
Ответить
Надо убрать из названия файлов пробелы, то есть вместо мой файл.html поставить мой_файл.html Тогда %20 пропадёт. В каталоги мой сайт не добавлен, и не надо заниматься этой ерундой. Ничего, кроме фильтра (а может и бана) со стороны поисковых систем не получите. Это устаревшая информация о том, что они помогают. Оценить страницу можно только с точки зрения валидности HTML: http://myrusakov.ru/html-valid.html
Ответить
Не получается((((( % не пропадают...
Ответить
Чудес не бывает. Значит, Вы что-то не так делаете. Вы должны зайти по FTP на Ваш сайт, добраться до папки со страницами и переименовать эти страницы. Также советую изменить названия страниц на латинские символы. Это работает 100%, если сделать так, как я пишу. Если не работает, значит, ищите у себя ошибку. Другого варианта не будет.
Ответить
Оно вот где.Это я скопировала из public_html <div id="logo"><a href="#">мастерицам.ру</a></div> <div id="menu"> <ul> <li><a href="index.html">Главная</a></li> <li><a href="Для%20детей.html">Для детей</a></li> <li><a href="Для%20женщин.html">Для женщин</a></li> <li><a href="Для%20мужчин.html">Для мужчин</a></li> <li><a href="Для%20начинающих.html">Для начинающих</a></li>
Ответить
Здесь тоже надо всё исправить, чтобы ссылки были рабочие.
Ответить
О Господи... Михаил,скажите, а эти %20- это критическая ошибка? Или на это можно не обращать внимания? Голова уже не варит! Ничего не получается(((
Ответить
Здравствуйте Михаил. Подскажите пожалуйста, почему при проверке файла robots.txt поисковики выдают такую информацию Request-rate: 1/10 - обнаружена неизвестная директива. Что я не правильно написала? Весь файл robots.txt: User-agent: Yandex User-agent: Aport User-agent: Googlebot User-agent: StackRambler User-Agent: * Crawl-Delay: 10 Request-rate: 1/10 Disallow:/admin Disallow:/captcha Disallow:/js Disallow:/lib Disallow:/scripts Disallow:/print.php Sitemap:http://mastericam.ru/sitemap.xml Host:mastericam.ru
Ответить
Request-rate: 1/10 - Яндекс не понимает, однако, данная директива вставляется автоматически. Ничего плохого не будет, если эту директиву оставить, её просто Яндекс будет игнорировать.
Ответить
Марина, классный сайт! Тематика очень востребованная. Можно сделать посещаемый ресурс. Только делать его имеет смысл на html, а не на cms. Если Вы хотите развиваться в данной области, купите хорошую книгу по html - и вперед ))
Ответить
Интересно было бы узнать, а чем сайт на cms плох?
Ответить
http://myrusakov.ru/php-engine-vs-null.html
Ответить
Подскажите пожалуйста, как закрыть в robot.txt русский url типа Страница-2.html Прописываю так, Disallow: /Страница-2.html но когда пытаюсь добавить страницу мой_сайт.Ru/Страница-2.html а аддурилку яндекса пишет что все нормально и робот внесет в поиск страницу? Или сделать ридирект.
Ответить
Не используйте вообще никогда и нигде названия файлов и страниц с русскими символами.
Ответить
Михаил, я извеняюсь, я просто только начинаю познавать сайтостроение, и я не использовал их, просто мой сайт на Joomla вот в чем впринципе проблема, я уже сам понял как в robot.txt запрещать индекс русских url, если б еще подсказали как делать с них ридирект в .htaccess
Ответить
Redirect 301 /old.htm /new.htm
Ответить
Такой вариан я пробывал и с url "Страница-2.html" почему-то нет ридиректа и url как открывался так и открывается да и плагин SEF тоже не делает ридирект, хотя его создаю. С url "сайт/home" все нормально да и с другими урлами ридирект с помощью SEF работает. В .htaccess стоит ридирект c index.php тоже работает. Блин задолбал я уже всех)
Ответить
Добрый вечер Михаил. Скажите, а нужно ли к папке с шаблонами ставить "Disallow" то есть к той папке в которой tpl файлы?
Ответить
Да, можно.
Ответить
Михаил здравствуй! У меня текст главной страницы записан в шаблоне main_article.tpl в папке tmpl Значит ли это, что если я поставлю Disallow: /tmpl/ то главная страница моего сайта не будет индексироваться?
Ответить
Нет, не значит. tpl используется только самим движком, никто эти файлы больше и видеть не должен. Более того, лучше туда вообще залить файл .htaccess с Deny from all
Ответить
Понял. А вариант Disallow: /tmpl/ и вариант "лучше туда вообще залить файл .htaccess с Deny from all" друг друга не исключают? Если я использую оба варианта в дальнейшем ошибок не будет?
Ответить
Не будет.
Ответить
Добрый день Михаил! ПОдскажите пожалуйста, поставила код из статьи с перенаправлением на www. В опере перенаправление работает, а в хроме, мазиле и ИЕ нет. В чем может быть проблема?
Ответить
без понятия. попробуйте в user agents указать названия браузеров или вообще *
Ответить
Папку с картинками включать в не индексируемые файлы?
Ответить
не принципиально.можете оставить в индексе. Яндекс и гугл.картинки ещё никто не отменял
Ответить
здраствуйте.Михаил прошу помочь мне. в резултатах поиска гугл гл. стр. моего сайта появилась в этих вариянтах .. 1)В обычном -> mydomain.am/ 2)и в виде постраничной навигации -> mydomain.am/?page=3 и т.д, как мне сделать чтобы эти все странички пейджи не индексировал и не выдавал в результатах ГУГл?
Ответить
Михаил скажите пожалуйста почему в файле robots.txt, когда я пишу так: User-Agent:* Disallow: /...../ запрета индексации не происходит, а если так: User-Agent:* Disallow: /*...../ то все нормально. Почему? Объясните пожалуйста!
Ответить
Как можно поставить запрет индексирования на удаленную страницу с сайта, А лучше нескольких. Они сохранены в поиске, и мне нужно удалить url. Пример url ?view=article&id=115
Ответить
Долго не могла разобраться как работать с robots.txt ,пока не нашла эту статью https://ifish2.ru/fail-robots-txt-chto-eto-takoe/ . Эти ребята помогли мне разобраться с файлом и даже помогли исправить мои ошибки!! Теперь мой сайт работает как надо))
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.