Управление индексацией на сайте через robots.txt | О раскрутке сайта простым языком

DATAWORD - наблюдения оптимизатора
Раскрутка сайта и поисковая оптимизация

 
  

Управление индексацией на сайте через robots.txt

Раздел блога: SEO-приёмы | 16 августа 2007, 22:41

Версия для печати Версия для печати

Наверняка большинство из читающих мою заметку людей уже знают о существовании этого в общем-то незатейливого файла. Факт в том, что его незатейливость и простота может довольно корректно указать поисковой системе, что же всё-таки индексировать на вашем сайте, а что следует оставить "в тени".

Парадокс весь в том, что эта некоторая простота синтаксиса файла robots.txt скрывает в себе большие проблемы, если его не приручить, т. е. не научиться его правильно составлять. Ведь любая ошибка может стоить вам многого. В этой статье я расскажу вам, как использовать подобный файл с умом и избежать возможных проблем.

Начнём, пожалуй, с истории рождения стандарта robots.txt. Как гласит история, стандарт robots.txt был принят консенсусом 30 января 1994 года и опубликован, с тех пор используется большинством известных поисковых машин.

Позже этот стандарт начинали всячески модифицировать различные поисковые компании, которые внедряли новую функциональность в ранее созданный стандарт.

Как например, компания Yahoo, которая ввела для своего поискового бота YahooSlurp, дополнительную возможность запрета индексации типов файлов по их расширению, добавив возможность использования символов * и $ в полях Disallow. Позже эта возможность была одобрена Google, а затем и "Яндексом" в конце 2007 года. "Яндекс" также добавил возможность использования дополнительного поля Host для определения основного зеркала сайта.

Недавно была добавлена возможность использования ещё одного поля.

Sitemap: http://www.site.ru/sitemap.xml


Поле Sitemap позволяет поисковой системе указать, где находится специальным образом сгенерированная карта Sitemap для сайта, что помогает снять обязанность веб-мастеров каждый раз загружать новую карту Sitemap на сервер поисковой системе и позволить поисковой системе самой загружать Sitemap с сайта. Возможность использования директивы в настоящий момент поддерживается в Google, Yahoo, Ask, MSN (Bing) и "Яндекс". Тут можно подробнее ознакомиться со стандартом Sitemaps.

Что такое robots.txt?

Robots.txt – это специальным образом оформленный текстовый файл, находящийся в корне сайта, в котором содержатся директивы, следуя которым поисковая система может понять стратегию индексирования информации на вашем сайте.

Структура robots.txt:

Файл состоит из полей. Структура полей такова: сначала идёт информация о том, какой поисковик должен следовать указаниям в директиве (строка содержит User-Agent поискового бота или *, как рекомендация для всех поисковых систем), далее идёт поле Disallow, в котором указывается название объекта, который необходимо скрыть от индексирования.

Раздел рекомендаций между инструкциями для одной поисковой системы распознаётся от раздела рекомендаций для другой поисковой системы пустой строкой, а раздел, в свою очередь, формируется полем User-Agent. В одном разделе может быть сразу несколько полей User-Agent, начинающихся с новой строки.

Стандарт robots.txt поддерживает комментарии. Всё, что начинается от символа # до конца строки, является комментарием.

Следует заметить любопытный факт, что файл robots.txt создавался и создаётся с основной целью – запрета индексации, следовательно, и все поля, в нём прописанные, явно указывают на запрет индексации частей сайта. Однако поисковые системы постепенно вводят поле Allow, но пока официально оно не признано, хоть и используется некоторыми поисковыми системами (Например, "Яндексом", Google и MSN (Bing)).

Некоторые поисковые системы используют собственные "информационные" директивы.  В MSN Live (Bing Live) и "Яндексе" через robots.txt реализована установка значения скорости индексации документа. Делается это так:

User-agent: MSNbot
Crawl-delay: n где n - величина задержки в секундах перед индексированием очередной страницы.User-agent: Yandex
Crawl-delay: n где n - величина задержки в секундах перед индексированием очередной страницы.

В начале 2009 года в поисковой системе "Яндекс" введена директива Clean-param, при помощи которой веб-мастер может указать, как индексировать динамические параметры, которые не влияют на содержание страницы. Это могут быть различные идентификаторы сессий, пользователей и т. д., что увеличивает эффективность индексации страницы. (Ознакомиться с ней можно здесь).

Пример одного из составленных файлов robots.txt:

User-agent: *
Disallow: /User-agent: Googlebot
Disallow: /text/

Это важно знать:

1) Файл robots.txt должен находиться только в корневой директории сайта, только тогда он будет учитываться поисковыми системами.

2) Называть файл необходимо robots.txt, Robots.txt будет уже ошибкой.

3) На каждой строке должно быть поле Disallow, запрещающее индексацию только одного объекта. Если нужно запретить несколько директорий или файлов, то для этого пишем поле Disallow на каждой новой строке. В записи должно быть хотя бы одно поле Disallow. Также не забудьте про поле User-Agent - оно не должно быть пустым (либо *, либо имя робота).

4) Запомните простые комбинации:

Disallow: - разрешение индексировать всё содержимое сайта,
Disallow: / - запрет на индексацию всего сайта.
Disallow: /name – запрет на индексацию любых файлов и папок, которые называются или имеют в своём названии name.
Disallow: /name/ - запрет на индексацию папки name.
Disallow: /*.gif$ - запрет на индексацию всех файлов, имеющих расширение .gif.
Disallow: /name.php – запрет на индексацию файла name.php.
Disallow: /name.php?action=print – запрет индексации переменной, например, страниц для печати.
# - при помощи решётки можно писать комментарии: они не учитываются роботами поисковых систем и носят сугубо информативный  характер.

5) Поле Host используется "Яндексом" для определения основного зеркала сайта. Например, так: Host: www.site.ru. Это поле говорит поисковой системе "Яндекс", что в результатах поиска лучше выводить именно такую ссылку на ваш сайт (с www).
Параметр директивы Host обязан состоять из одного корректного имени хоста (т.е. соответствующего RFC 952 и не являющегося IP-адресом) и допустимого номера порта. Важно помнить, что если вы хотите, чтобы поисковая система "Яндекс" приняла во внимание директиву Host в вашей файле, то создайте одинаковые файлы robots.txt на всех "зеркалах" сайта. Только тогда зеркальщик "Яндекс" выделит главное зеркало,  согласно данным в Host.

6) Поле Sitemap используется для указания поисковой системе, где находится сгенерированная для поисковых систем карта сайта.(Sitemap: http://www.site.ru/sitemap.xml). Применяется в Google, Ask, Yahoo, MSN (Bing) и "Яндекс".

User-Agent: Yandex
http://www.site.ru/sitemap-main.xml
http://www.site.ru/folder/sitemap-second.xml
# В случае, когда на сайте используется несколько файлов Sitemap, то их желательно перечислить в файле robots.txt

7) Если инструкции задаются для нескольких поисковых систем, то поля User-Agent
должны вводиться через перевод строки (клавишу Enter).

Вот так:

User-Agent: msnbot
User-Agent: Slurp
Disallow: /admin/

Ошибки в файле robots.txt:

1) Неверный порядок расположения полей:

Неправильно:

Disallow: /
User-agent: *

Правильно:

User-agent: *
Disallow: /

2) Совершаются синтаксические ошибки:
Нет пустой строки:

Неправильно:

User-agent: Googlebot
Disallow: /
User-agent: *
Disallow:

Правильно:

User-agent: Googlebot
Disallow: /User-agent: *
Disallow:

Ошибки в синтаксисе Disallow:

Disallow: * (приводит к запрету на индексацию всего сайта).
Disallow: /text/ /text2/ (нельзя использовать одно поле для разных директорий).

Правильно:

Disallow: /text/
Disallow: /text2/

Поле User-Agent:

User-agent: (поле не должно быть пустым)

Поле Host:

Неправильно:

Host: http://www.site.ru/ # (нельзя использовать протокол и слеш в конце)
Host: .site.ru # (любые ошибки в написании доменных имён не допустимы)
Host: 200.114.47.5 # (указан IP вместо адреса)

Правильно:

Host: www.site.ru
или
Host: www.site.ru:8080
# - если ваш сайт доступен по какому-то другому порту (стандартный порт 80, если используется именно он, то его не указывают).

Желательно делать так:

Не пишите все поля с больших букв, комментарии лучше переносить на новую строку. Не используйте дополнительные директивы (Allow, Host) для всех поисковых систем: это может вызвать недопонимание тех систем, которые не используют эти поля, а также не забывайте, что поле Disallow должно быть даже тогда, когда некоторые поисковые системы игнорируют его. Не создавайте размер файла robots.txt больше, чем 256 килобайт.
На этом всё, спасибо за внимание.

Перейти в начало страницы

Подписаться на rssНравится этот блог?
Подпишитесь на обновления блога (RSS)
.
Подпишитесь на комментарии (RSS).



Количество комментариев: 102

  1. vitaweb:

    Написание этой статьи меня подтолкнуло к подключению информации о моей карте сайта в этом файле.

  2. anetta:

    Хороший материал, спасибо!
    Только кажется в этом разделе ошибка:

    "2) Совершаются синтаксические ошибки:
    Нет пустой строки:
    ...
    Правильно:

    User-agent: Googlebot
    Disallow: / User-agent: *
    Disallow:"

    а где пустая строка? :wink:

    И еще тут:

    "Правильно:

    Host: www.site.ru/"

    зачем слэш в конце?

  3. Олег:

    Не полностью раскрыта тема. Не показан запрет на индексацию ссылок.

  4. Anna:

    Как запретить индексацию только определённому роботу.
    Например Яндексу?

  5. Serg:

    А можно например разрешить индексацию сайта только Яндексом, Рамблером и Гуглей, а всем остальным типа МСН и Яху запретить? Как это правильно оформить?

  6. Serg:

    На последний вопрос ответа не будет?

  7. Anti Вepressant:

    А как удалить уже попавшие в индекс Google страницы с помощью robots.txt?

  8. Автор блога Виталий:

    Anti Вepressant, вот так:

    User-agent: Googlebot
    Disallow: /

    В статье об этом написано. Читайте внимательно.

  9. ELF0007:

    А можно просто в пхп код страницы вставить код который будет редирект ставить на другую страницу)
    главное никто кроме яндекса небудет знать что его обманывают. вот такой своего рода клоакин)

  10. Дмитрий:

    Есть идея закрыть от поисковиков каталог, в котором лежит php файл с обратными линками на каталоги. Вычисляется ли данное действие ботами каталогов?

  11. Автор блога Виталий:

    Дмитрий, в основном, да :smile:

  12. Vladimir:

    Anti Вepressant:
    27 июня 27, 2008 г. в 11:37 am
    А как удалить уже попавшие в индекс Google страницы с помощью robots.txt?

    Автор блога Виталий:
    30 июня 30, 2008 г. в 7:38 pm
    Anti Вepressant, вот так:

    User-agent: Googlebot
    Disallow: /

    Ответ: НУ-НУ, это шутка? Закрыли весь сайт от индексаии гугла!

  13. Сергей:

    И здесь ни слова о фреймовых сайтах.

  14. Автор блога Виталий:

    Vladimir, это один из способов удалить страницы из индекса Google. Вопрос был про это.

    Vladimir, фреймовый сайт - это всего лишь набор нескольких страниц, которые открываются в одном окне. Если вам нужно запретить индивидуальную индексацию страниц, то блокируйте нужные страницы от индексации, которые открываются во фрейме.

  15. Otzyvy:

    А для яндекса общего кода достаточно?

  16. Автор блога Виталий:

    Otzyvy, что подразумевается под "общим кодом"?

  17. РоботЯга:

    А помоему лучше вообще фреймовые сайты (по возможности, конечно) не использовать - это только запутывает роботы и усложняет индексацию

  18. Анатолий:

    mysoftmaster.ucoz.ru а почему этот(мой) сайт не хочет индексироватся?

  19. Admin:

    еще бы дописать о запрете индексирования ссылок,а так статья в целом не плохая.+1

  20. admingarant:

    а как попасть в эту самую корневую директорию?

  21. Павел:

    Что будет если разместить Satemap не в корне сайта

  22. alex:

    Спасибо за статью! у меня вопрос:
    почему страницы закрытые с помощью robots.txt попадают в дополнительные результаты? значит гугл эти страницы все таки индексирует? :shock:

  23. Автор блога Виталий:

    alex, информация, которая содержится в файле robots.txt, носит рекомендативный характер, поэтому всё зависит от политики самой поисковой системы.

  24. IncognitoSS [HepB]:

    Подскажите пожалуйста, как через robots.txt запретить поисковикам и ндексацию вот этой категории(интернет магазин) bez-predela.net/shop.php/ яндекс пишет в вебмастере, что слишком много ссылок :!: и мне хотелось бы запретить индексацию этой категории, дабы не влететь в бан. :neutral:

  25. Автор блога Виталий:

    IncognitoSS, попробуйте так:

    User-agent: Yandex
    Disallow: /shop.php/

    В данном случае, мы запрещаем индексировать файлы, содержащиеся в категории shop.php.

  26. Евгений:

    Я в растерянности:Яндекс не хочет индексировать домены текелау,хоть убей
    nstudio.tk
    snflowers.tk
    Они на бесплатных хостингах, но открыты к индексации, в нихесть файл роботс,но толку мало.
    Что делать?

  27. Автор блога Виталий:

    Евгений:
    Как давно подавали заявку на индексацию?

  28. IncognitoSS [HepB]:

    Автор блога Виталий: Спасибо! :!:

  29. Alex:

    Как проинтексировать в яндексе домен .tk (проблема как у Евгения)

  30. Автор блога Виталий:

    Alex
    Домены .tk индексируются "Яндексом" на общих основаниях и никаких ограничений на их индексацию нет. Опишите, пожалуйста, как давно эксплуатируется сайт, который обслуживается этим доменом? Какие методы первоначальной раскрутки использовались? Обязательное условие: сайт должен быть на русском языке!

    Насколько мне известно, в "Яндексе" в приоритете индексирования стоят домены .RU и .SU, а также стран СНГ. Остальные на общих оснвованиях, и их первичная индексация может происходить несколько месяцев.

    Если домен не индексируется дольше 3 месяцев, то есть смысл написать в службу поддержки "Яндекса".

  31. Superman:

    Не так давно зарегил 3 сайта .tk, яндекс отлично все проиндексировал. Примерное неделю ждал.Помочь в индексации может следующее: делаем sitemap и на него 2-3 ссылки с сапы покупаем.

  32. Эльвира:

    Огромное спасибо!
    А как закрыть от индексации в файле robots.txt счетчики, например, liveinternet или mail?

  33. Автор блога Виталий:

    Эльвира:

    Счётчики не являются поисковыми системами, поэтому из закрыть нельзя. Возможно, вы имеете в виду роботы, обслуживающие поиск на этих порталах? Для портала Mail.ru можно попробовать закрыть информацию для робота от Gogo.ru, т. к. поисковая база именно этой системы используется в данный момент на портале Mail.ru.

  34. Евгений:

    Скажите, а как запретить индексирование отдельных статей в каталоге?

  35. Алексей:

    Подскажите пожалуйста с первым сайтом никаких проблем не было , а со вторым такая история, при анализе сайта определяется стандартный robots.txt закрывающий доступ на индексацию написал свой как на первом сайте, открывающий доступ для индексации всего сайта, но при просмотре все равно выскакивает стандартный, сайт на ucoz. В общем никак не могу изменить стандартный robots.txt на свой

  36. Евгений:

    Ответ Алексею.На Ucoze, если сайт только создан, сайт находится на карантине в течении 30 дней. Поэтому Robots.txt изменить нельзя.

  37. Mariya:

    Сегодня яндекс выкинул почти все страницы, что-то с файлом robots.txt, какая-то ошибка, что делать не знаю.

  38. Автор блога Виталий:

    Евгений:
    Спасибо вам большое за помощь в ответе на комментарии. :cool:

    Mariya:
    Добавьте ваш сайт в панель "Яндекс.Вебмастер". В этой панели есть встроенный анализатор файлов robots.txt. Если что-то не так, сама поисковая система даст вам об этом знать. Если ваш сайт уже добавлен в эту панель, то внимательно изучите ошибки индексации, которые могли иметь место быть.
    Не исключён также вариант, что выброс страниц из индекса временный в связи обновлением поисковой выдачи или же произошла ошибка, которая сама собой разрешится в результате следующего обновления индекса поисковой системы.
    Если ничего не помогает, обратитесь в службу поддержки Яндекса через специальную форму.

  39. Kano:

    Хорошо, но если я хочу запретить индексацию внутренних поддиректорий - то какой будет синтаксис?

  40. advardss:

    Всех женщин с наступающим женским днем.
    Подскажите пожалуйста, как грамотно прописать robots.txt , чтобы исключить для индексации некоторые страницы только для Яндекса, а всем остальным сайтам дать добро на полную индексацию.
    за ранее спасибо.

  41. Автор блога Виталий:

    advardss:

    Синтаксис вашего файла будет выглядеть примерно так (чтобы что-то запретить делать Яндексу, достаточно указать его User-agent в этой строке, затем прописать файлы, которые вы планируете запретить для индексации, для остальных поисковых систем используем символ *, между 2-мя правилами обязательно должна быть пустая строка):

    User-agent: Yandex
    Disallow: /name.php

    User-agent: *
    Disallow:

    Kano:
    В вашем случае для запрета индексаций внутренних директорий, вы должны в файле перечислить все те директории, которые индексировать роботу поисковой системы не стоит. Синтаксис в таком случае будет примерно таким (где name, name2 и name 3 - имена поддиректорий сайта):

    User-agent: *
    Disallow: /name/
    Disallow: /name2/
    Disallow: /name3/

  42. Somblya:

    Помогите пожалуйста разобраться что мне на сайте запретить к индексации? И как правильно это сделать?
    Мне многие говорят, что у меня много ненужно открыто к индексированию. И этим я порчу продвижение сайта.
    Я вроде и так позакрывал что додумался.

  43. Автор блога Виталий:

    Somblya:
    Запрещайте к индексации всё, что непосредственно не относится к контенту сайта.

  44. Владимир:

    И все-таки, какой максимальный размер SITEMAP на сегодня (в килобайтах, количестве URL, etc)? У меня есть новый сайт на 14000 страниц - на сколько файлов бить карту?

  45. Lektor:

    Если не трудно, товарищи разясните. Сайт существует уже пол года ни разу не было поискового робота, посещяемость есть, сайт наполнен. В корневой дерриктории нет документа robots.txt
    В адресную строку после своего сайта ввожу robots.txt
    выдаёт
    User-agent: *
    Disallow: /a/
    Disallow: /stat/
    Disallow: /index/1
    Disallow: /index/2
    Disallow: /index/3
    Disallow: /index/5
    Disallow: /index/7
    Disallow: /index/8
    Disallow: /index/9
    Disallow: /panel/
    Disallow: /admin/
    Disallow: /secure/
    Disallow: /informer/
    Disallow: /mchat
    Disallow: /search

    исправить не могу

    Составлю и помещю robots.txt документ,

    User-agent: *
    Disallow:

    будет правильно? Будут роботы индексировать? Или что сделать подскажите?

  46. Автор блога Виталий:

    Владимир:
    Один Sitemap-файл может содержать в себе не больше 50 000 адресов и быть объёмом не больше 10 мегабайт (можно сжать gzip). Тут важно, чтобы размер файла был не больше 10 мегабайт.

    Lektor:
    Да, вы правильно составили файл, в таком случае ваш сайт будут индексировать поисковые системы.

  47. Рома:

    Иногда приходится очень долго ждать пока страница проиндексируется, а иногда это происходит очень быстро.
    С чем это связано и какие самые надёжные способы чтобы ускорить индексацию?

  48. Автор блога Виталий:

    Рома:
    Скорость индекскации вашего сайта зависит от множества факторов, среди которых могут быть и доступность вашего сервера, качество и количество ссылок, которые ссылаются на сайт, частота обновления самого сайта. Многие оптимизитары считают универсальным показателями, которые могут привести к увеличению скорости индексации сайта, именно увеличение скорости публикации контента на сайте, а также постоянный прирост качественных внешних ссылок на уже созданные страницы сайта.

  49. Димон:

    Здравствуйте!
    У меня такой вопрос. Вот я хочу запретить все страницы, в URL которых есть знак вопроса. Нужно добавить директиву
    Disallow: /?

    Правильно?
    ***
    Ну и вообще мне интересно выполнение правила вида "Запретить к индексации все страницы, содержащие XXX".
    Как это реализовать? Спасибо

  50. Дмитрий:

    Помогите пожалуйста как запретить индексацию динамической страници, например вот такой /product.php?view_product=10401 Заранее спасибо

  51. Максим:

    Уважаемые пользователи 2 недели назад мой сайт перестал индексироваться написав в яндекс ответа уже 10 дней нет, делаю в яндекс-вебмастер запрос робот.тхт он выдает:

    User-agent: *
    Disallow: /a/
    Disallow: /stat/
    Disallow: /index/1
    Disallow: /index/2
    Disallow: /index/3
    Disallow: /index/5
    Disallow: /index/7
    Disallow: /index/8
    Disallow: /index/9
    Disallow: /panel/
    Disallow: /admin/
    Disallow: /secure/
    Disallow: /informer/
    Disallow: /mchat
    Disallow: /search

    где он это берет ведь фаила нет и я его несоздавал???

    я создал фаил и прописал внем вот это:

    User-agent: *
    Disallow:

    и все правильно ли это для индексации всего сайта во всех поисковых системах или надо так:

    User-agent: Yandex
    Allow: /

    и как создать сайт мап??? или он сам создается??? заранее спасибо буду очень признателен быстрому ответу и особенно в аську 115-00-14 заранее спасибо

  52. Автор блога Виталий:

    Димон:
    Знак вопроса (?) - это часть URL-адреса, через которую передаются параметры запроса. В адресах страницы этот символ не встречается, поскольку это служебный оператор.
    Но вы можете запретить переменную после знака ?.
    В статье такой пример уже был разобран:

    User-agent: *
    Disallow: /name.php?action=print

    В данном случае мы запрещаем переменную action со значением print
    Запретить к индексации все страницы, содержащие XXX, можно через регулярные выражения. В статье тоже об этом была информация, воспользуйтесь символами *необходимое символы, идущие подряд в файле, для запрета$

    Дмитрий:
    Прописываем целиком эту страницу со всеми параметрами.

    Максим:
    У вас, вероятно, хостинг от Ucoz. Насколько я знаю, этот хостинг ставит ограничение для всех новых сайтов и невозможность редактировать файл robots.txt первое время. Для решения этой проблемы обратитесь в службу поддержки.

    Разрешение индексировать все документы сайта:
    User-agent: *
    Disallow:

    Информацию о том, как создавать файл Sitemap, вы можете найти в моей статье: http://dataword.info/sitemaps-google.php

  53. Димон:

    Спасибо, Виталий!
    Меня просто смущает *name.php
    User-agent: *
    Disallow: /name.php?action=print
    ***
    Я бы запретил так:
    User-agent: *
    Disallow: /?action=print
    или так нельзя?
    **********************
    Оператор * я понимаю так
    1) Например, мне нужно запретить всё, что заканчивается на index.php, тогда я пропишу так
    Disallow: /*index.php
    2) Для запрета того, что начинается на букву z, я бы прописал так:
    Disallow: /z*
    ***
    Много напутал? :neutral:

  54. Автор блога Виталий:

    Димон:
    Всё зависит от того, какие страницы сайта уже есть в индексе поисковой системы. Если в поиске присутствуют URL site.ru/?action=print, то тогда и в robots.txt так же пишем, если site.ru/index.php?action=print, то запрещаем после слеша именно комбинацию index.php?action=print. Важно избежать дублей страниц в поиске и избегать параметров ссылок, которые влияют на URL. Нужно избегать факт загрузки по разным URL одной и той же страницы.

    1) чтобы запретить все файлы index.php, нужно прописать все директории, которые содержат этот файл.
    User-agent: *
    Disallow: /index.php
    Disallow: /content/index.php

    Конструкция:
    Disallow: /name
    Запретит индексацию и файлов и папок, которые имеют комбинацию name.

    Disallow: /z
    запрет всего, что начинается на z

    * символ чаще всего используется в User-Agent, поэтому лучше избегать избыточного его использования в файле robots.txt. А если есть необходимость использовать * как регулярное выражение, то тогда в связке с $.

  55. Димон:

    Понял! Огромное спасибо.
    Просто подбираю сейчас оптимальный роботс для Джумлы.

  56. Света:

    Вот это я понимаю, понятное объяснение.
    Подскажи звездочка
    User-agent: *
    обозначает, что запрет относится к вышеназванному поисковику?

  57. Автор блога Виталий:

    Света:
    User-agent: *
    Эти правила со знаком * относятся ко всем поисковикам.

    Если нужно задать для какого-то отдельного поисковика свои правила индексации, то указываем его в User-Agent вместо звёздочки.
    Например:
    User-agent: Yandex
    В данном случае мы регулируем порядок индексации сайта для "Яндекса".

  58. Наталия:

    хорошая статья, спасибо!

  59. Света:

    Здорово объясняешь,
    мы проделали с корпоративным сайтом перезеркаливание и редирект 301 на основной домен, но что-то долго ничего не происходит. Хотя я знаю, надо ждать...

  60. ille:

    Kак запретить к индексации дубли джумлы? Урлы страниц-дублей оканчиваются "=999999".

  61. Автор блога Виталий:

    ille:
    В файле robots.txt можно прописать не только названия директорий, запрещённых к индексации, но и файлов. Если таких дублей немного, то, думаю, будет смысл прописать эти страницы.
    Если же нет, то пропишите запрет на индексацию файлов по определённой схеме.

  62. Дмитрий:

    Можно ли делать запреты такого вида "Disallow: /index.php?" ?

  63. Автор блога Виталий:

    Дмитрий:
    Да, можно, но нужно делать уточнение, какую именно переменную и с каким значением не индексировать.

  64. Алик:

    Долго искал статью о роботсе, где бы было доходчиво написано для таких чайников как я. Спасибо за доступное объяснение.

  65. Владимир:

    А какие права нужно поставить на файл robots.txt чтобы робот мог его прочитать, а остальные по запросу site.ru/robots.txt - нет?

  66. Автор блога Виталий:

    Владимир:
    Скорее, вам нужно редактировать не права, а настроить веб-сервер таким образом, чтобы он обрабатывал User-Agent и от его значения принимал решение, блокировать доступ к файлу или нет. Если вы используете веб-сервер Apache, то реализовать это можно в файле .htaccess

  67. AIvPetrov:

    Хорошая инструкция, спасибо! А то никак не могу из индекса ненужную страницу удалить..

  68. Anton:

    Здравствуйте, очень интересная статья, но самое приятное что автор отвечает на вопросы без коронных фраз многих специалистов "Ищи и найдёшь", у меня такой вопрос на который я нигде не могу найти ответ, буду надеяться на Вашу подсказку. У меня есть интернет магазин на джумле 1.5, сложилась такая ситуация каждая страница товара имеет два урл адреса,
    /component/virtuemart/?page=shop.product_details&flypage=flypage.tpl&product_id=1&category_id=1
    и
    /component/virtuemart/?page=shop.product_details&product_id=1&flypage=flypage.tpl&pop=0

    оба индексируются,я хочу второй закрыть для индексации, подскажите пожалуйста как мне это сделать? всё обыскал, но ответа не нашёл(((

  69. Автор блога Виталий:

    Anton:
    Знаете, я бы поработал с движком Joomla. Дело в том, что URL, которые она геренирует в обычном режиме, совершенно неудобны для понимания. Часто вызывают нарекания как людей, которые пользуются сайтом, из-за невозможности запомнить такую ссылку, так и сложности индексации сайта поисковым системам. Многие веб-мастеры настраивают движок на ЧПУ-адреса (человекопонятные урлы).
    Если ваш сайт был недавно проиндексирован, и пока что посещаемость не так велика, то имеет смысл переделать URL на более короткие и запоминающиеся.
    Ознакомьтесь со следующими статьями:
    http://joomlaportal.ru/content/view/100/53/
    http://www.seo-joomla.net/ru/seo-optimizatsiya-joomla-1.5.html

    Во второй статье даются очень хорошие примеры, которые помогут настроить движок с точки зрения SEO, чтобы избежать возможных проблем в индексации контента на сайте.

  70. Anton:

    понимаете,дело в том что это уже ссылки ЧПУ, у меня стоит sh404SEF (если я не ошибаюсь он так называется), и все ссылки у меня выглядят благородно вот так: "http://site.ru/press.html", а вот со страницами на которых находится товар, т.е. грубо говоря на страницах где есть кнопочка "Купить" существует такая проблема которую я описал в предыдущем сообщении.
    Хочу заметить, что эти ссылки, которые я представил в прошлом сообщении гораздо понятнее и короче чем были до того как я установил ЧПУ, а были они такими: "http://site.ru/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=1&category_id=1&vmcchk=1&option=com_virtuemart&Itemid=1"

    Хочу заметить что таких страниц у меня всего девять.
    Я как понимаю должен сейчас закрыть к индексации:
    "http://site.ru/component/virtuemart/?page=shop.product_details&product_id=1&flypage=flypage.tpl&pop=0"

    Будет ли корректным и не будет ли закрывать к индексации ссылки "http://site.ru/component/virtuemart/?page=shop.product_details&flypage=flypage.tpl&product_id=1&category_id=1"
    Если я сделаю как было указанно у вас на примере, в роботс напишу такую строчку:
    Disallow: /pop*
    или как правильно сделать?
    Я уже запутался, помогите пожалуйста разобраться

  71. Автор блога Виталий:

    Anton:
    Если страниц у вас всего 9, то, я думаю, можно каждую со всеми параметрами (если ссылка каждый раз постоянная и не генерируется каждый раз заново с новыми параметрами) перечислить в файле robots.txt для того, чтобы исключить их из индекса поисковой системы.

    Disallow: /component/virtuemart/?page=shop.product_details&product_id=1&flypage=flypage.tpl&pop=0

    А после того, как их пропишете, воспользуйтесь формой http://webmaster.yandex.ru/delurl.xml "Яндекса", в которой можно исключить запрещённые к индексированию страницы из поиска. Желательно также вообще как-нибудь убрать из шаблона эту ссылку или подменять её другой.

  72. Anton:

    Спасибо Вам большое!
    А скажите пожалуйста /component/virtuemart/ будет индексироваться тогда в других урлах?
    в этом в том числе: "http://site.ru/component/virtuemart/?page=shop.product_details&flypage=flypage.tpl&product_id=1&category_id=1".
    А как у Гугла можно убрать из страницы из поиска?

  73. Автор блога Виталий:

    Anton:
    Инструкция по удалению страницы из Google:
    1) Создайте (если у вас ещё нет аккаунта на "Инструментах веб-мастера Google") аккаунт (https://www.google.com/webmasters/tools/).
    2) Добавьте и подтвердите права на владение сайтом
    3) После того, как вы пройдёте эти шаги успешно, зайдите в "Инструменты " https://www.google.com/webmasters/tools/
    />
    В подразделе "Конфигурация сайта - Доступ для сканера" выбираете пункт "Удалить URL" и создаёте заявку (предварительно запретите эти файлы в robots.txt).

    Как правило, поисковая система учитывает все символы в URL, включая и переменные с параметрами в адресной строке, поэтому если вы укажете конкретную переменную с конкретным значением, то удалится из индекса страница именно с этими переменными и параметрами.
    /component/virtuemart/ - в других URL должна индексироваться, т. к. в robots.txt будет указан точный адрес той или иной страницы.

  74. Anton:

    Всё что Вы сказали сработало)
    Но вот я хотел выяснить один интересующий меня момент!

    Если я в Роботс пропишу вместо
    Disallow: /component/virtuemart/?page=shop.product_details&product_id=1&flypage=flypage.tpl&pop=0

    Disallow: /*pop*
    или
    Disallow: /pop

    это будет правильным решение? или тогда тоже блокироваться будут ссылки в которых есть часть: /component/virtuemart/?page=shop.product_details&product_id=1

  75. Автор блога Виталий:

    Anton:
    Disallow: /*pop* - такое оформление вам не поможет, т. к. * используется для обозначения User-Agent. Если вы хотите пользоваться регулярными выражениями для того, чтобы настроить индексацию, то нужно использовать символ * в совокупности с ? и специальный синтаксис, по которому задаются регулярные выражения.

    Disallow: /pop - такая конструкция будет запрещать индексировать все файлы и папки сайта, названия которых НАЧИНАЮТСЯ с pop.

  76. Андрей:

    А если на сайте не 9, а ~700 страниц подобного вида /component/virtuemart/?page=shop.product_details&product_id=1&flypage=flypage.tpl&pop=0

    И переделака/доработка cms это последний вариант решения проблемы, то как можно всё таки их закрыть одним правилом через robots.txt, или же это невозможно?

    Спасибо!

  77. Автор блога Виталий:

    Андрей:

    Как вариант, выделить общую часть URL у всех этих 700 страниц и прописать её в robots.txt в виде одной строки.

    В файл robots.txt можно помещать не больше 256 000 символов.

  78. Anton:

    Спасибо большое, мне Ваши советы очень помогли!

    Подскажите пожалуйста для общего развития, если есть ссылки подобного типа http://site.ru/vmchk/igri.html и http://site.ru/igri.html а хочу что бы первый вариант не индексировался можно в Робот прописать:

    Disallow: /vmchk

    при этом будут ли индексироваться ссылки http://site.ru/igri.html ?

  79. Автор блога Виталий:

    Anton:
    Disallow: /vmchk - такая директива будет запрещать индексацию ВСЕХ объектов от корня сайта, которые НАЧИНАЮТСЯ с этих симоволов. Т.е. будет запрещена индексация файлов и директорий, содержащих в себе такую начальную комбинацию от корня сайта.

    Пример:
    vmchk1111 - если, допустим, на сайте будет такая папка, то её индексация будет невозможна
    vmchk-file.php - если на сайте будет (в корне сайта) такой файл, то его индексация тоже будет невозможна.

    В вашем случае это поможет запретить к индексации файл по URL http://site.ru/vmchk/igri.html

    Поскольку во втором URL не содержится комбинации vmchk, то страница будет индексироваться.

  80. Наталья:

    Скажите а такой файл правильный,
    User-agent: *
    Disallow:

  81. Автор блога Виталий:

    Наталья:
    Да, правильный. Будет разрешено индексировать всё содержимое сайта.

  82. Larisa:

    Пожалуйста, помогите исправить ошибку - как раз по теме!
    Яндекс-метрика пишет:
    Информация: страницы намеренно запрещены к индексированию или не должны индексироваться.
    Страницы с ошибкой
    Документ запрещен в файле robots.txt
    Файл robots.txt содержит директиву, запрещающую роботу Яндекса индексирование этого документа. Чтобы робот мог проиндексировать документ, удалите запрещающую директиву. Ничего не запрещала:(
    Три страницы выпали из индекса.
    Что делать?

  83. Автор блога Виталий:

    Larisa:
    Дайте ссылку на ваш файл robots.txt. Без анализа самого файла трудно что-либо сказать.

  84. Gelik:

    Здравствуйте, так и не понял из вашей статьи - можно ли запретить индексацию url адресов, содержащих определенный символ?
    Например, у меня имеется очень много url адресов содержащих символ " = ", все эти адреса я хотел бы запретить к инднксации. Вот примеры таких url -
    www.site.ru/index.php?option=com_virtuemart&Itemid=1&
    www.site.ru/index.php?page=shop.product_details&
    www.site.ru/index.php?category_id=32&
    www.site.ru/index.php?flypage=flypage_images_1.tpl
    www.site.ru/index.php?/Detskaya_kolyaska_lyulka_Inglesina_Classica_s_shassi_Balestrino_Italiya.html?fontstyle=f-smaller&pop=0

    Это не все возможные варианты, вариантов очень много, всех их объединяет одно, в каждом url есть символ " = ".

    Скажите пожалуйста, можно ли одной строчкой запретить индексацию всех url адресов, содержащих этот символ?

  85. Автор блога Виталий:

    Gelik:
    Запретить индексировать всё можно при помощи регулярных отношений, но стоит ли идти на такой крайний шаг. Ведь символ "=" служит символом присваивания переменной определённого значения. В некоторых случаях даже при помощи этого символа отдаются страницы сайта. Стоит ли идти на такие крайние меры?

    Я бы вам посоветовал запретить к индексации ненужные переменные. Например, так:
    Disallow: /index.php?option
    Disallow: /index.php?page
    Disallow: /index.php?category_id
    Disallow: /index.php?flypage

    Блокировать по символу "=" нецелесообразно, т. к. это служебный символ, и него одна функция в строке URL.

  86. Gelik:

    Спасибо за ответ, скажите, а как же быть с адресами такого вида? :
    www.site.ru/index.php?/Detskaya_kolyaska_lyulka_Inglesina_Classica_s_shassi_Balestrino_Italiya.html?fontstyle=f-smaller&pop=0

    Здесь после html идут ненужные символы, такие страници нужно тоже запретить к индексу, наверное это делается так?
    Disallow: /.html?

    По поводу целесообразности - на моем сайте установлен ЧПУ и все страници имеют такой вид:
    http://site.ru/index.php?/Detskie_kolyaski.html
    http://site.ru/index.php?/Detskie_kolyaski/Detskie_kolyaski_2_v_1.html
    http://site.ru/index.php?/Detskaya_kolyaska_2_v_1_ABC_Design_Turbo_3_S_Germaniya.html

    Другие, левые страницы я (и уверен что и Яндекс :) ) видить не хотим. Сайтом управляет joomla, это такая СМС, которая может генерить такие страници десятками в течении месяца. Если делать, так как вы советуете, а именно -
    Disallow: /index.php?option
    Disallow: /index.php?page
    Disallow: /index.php?category_id
    Disallow: /index.php?flypage

    То я боюсь, что просто не смогу быть уверен, что указал все возможные варианты в робот.тхт, поэтому целесообразней будет как раз запретить все url содержашие символ " = ", этот вариант удалит все текущие, не нужные страници и не даст попасть в индекс новосгенеренным. Скажите пожалуйста, как это можно реализовать?

  87. Автор блога Виталий:

    Gelik:
    Заблокировать все страницы с расширением .html можно при помощи регулярных выражений:

    Disallow: /*.html$

    Такой синтаксис исключит абсолютно ВСЕ страницы с расширением .html. Если ваша CMS генерирует именно страницы с таким форматом, то вы ЗАПРЕТИТЕ ИНДЕКСАЦИЮ ВСЕХ ФАЙЛОВ САЙТА (т. к. все контентные страницы имеют это расширение).

    Заблокировать все страницы, содержащие "=", я вам не рекомендую, поскольку в некоторых случаях этот символ используется для создания команд, поисковики эту строку могут некорректно интерпретировать.

    Советую вам блокировать имена переменных, которые создаёт эта CMS:

    Disallow: /*fontstyle$

    В этом случае будут заблокированы все файлы с переменной fontstyle, а также файлы, которые в своих именах будут содержать эту комбинацию символов.

  88. Gelik:

    Виталий, прошу уточнить послдний момент, вы написали -

    "Disallow: /*fontstyle$

    В этом случае будут заблокированы все файлы с переменной fontstyle, а также файлы, которые в своих именах будут содержать эту комбинацию символов."

    Вы пишете, что будут заблокированы ФАЙЛЫ, а мне бы хотелось заблокировать URL адреса, или вы это и имели ввиду?
    То есть, при выражении "Disallow: /*fontstyle$", будут заблокированы страници с адресами, например -

    www.site.ru/index.php?/Detskaya_kolyaska_lyulka_Inglesina_Classica_s_shassi_Balestrino_Italiya.html?fontstyle=f-smaller&pop=0
    и
    www.site.ru/index.php?fontstyle=f-smaller&pop=0
    />
    и
    www .fontstyle.ru/бла-бла-бла
    и
    www.site.ru/index.php?fontstyleblablabla.html

    Все ли я правильно понял? спасибо за ваши ответы!

  89. Автор блога Виталий:

    Gelik:
    При использовании Disallow: /*fontstyle$ будут заблокированы любые символы в URL после первого символа /. Извините, в прошлом комментарии неправильно выразился, запрет касается URL. Под запрет попадает и индексация файлов с такой комбинацией, и переменных.

    Т. е.
    www .site.ru/index.php?/Detskaya_kolyaska_lyulka_Inglesina_Classica_s_shassi_Balestrino_Italiya.html?fontstyle=f-smaller&pop=0 - будет заблокировано

    www .site.ru/index.php?fontstyle=f-smaller&pop=0 - будет заблокировано

    www .fontstyle.ru/ - к доменам это не относится, блокировка касается только содержания конкретного сайта с корневой директории (т. е. с символа "/").

    www .site.ru/index.php?fontstyleblablabla.html - будет заблокировано

  90. Дмитрий:

    Здравствуйте!!Пожалуйста помогите!!!Я новичок в это деле!Создал сайт на плаформе "ucoz" ,зарегистрировался в гугл , сайт досих пор не появился в поисковике,даже когда вбиваешь сам сайт / не могу снять запрет индексации для гугл.Заранее спасибо)

  91. Автор блога Виталий:

    Дмитрий:
    В системе UCOZ стоит ограничение на новые сайты. Сделано это с целью избежания создания сайтов для спама. Через месяц после регистрации сайта на UCOZ можно будет этот файл и открыть сайт для индексации для всех поисковых машин Интернета.

  92. Толя:

    Здравствуйте. Подскажите, пожалуйста.
    Есть ссылки типа:
    www.site.ru/magazin.html?page=shop.ask&flypage=flypage.tpl&product_id=29&category_id=4
    www.site.ru/magazin.html?page=shop.ask&flypage=flypage.tpl&product_id=27&category_id=4
    magazin.html?page=shop.ask&flypage=flypage.tpl&product_id=21&category_id=4
    Такие ссылки нужно запретить к индексации. Подойдет ли такая запись?
    Disallow: /*shop.ask$
    Заранее, спасибо за ответ.

  93. Автор блога Виталий:

    Толя:
    Можно вашим способом, можно и таким:

    Disallow: /magazin.html?page=shop.ask

  94. Толя:

    Благодарю! Спасибо за помощь)

  95. Толя:

    Автор блога Виталий:
    Можно вашим способом, можно и таким:

    Disallow: /magazin.html?page=shop.ask
    А случайно не надо после всей строчки знака $ или * ?

  96. Толя:

    Проверил через вебмастер.яндекс, вроде все работает правильно, еще раз спасибо!

  97. Автор блога Виталий:

    Толя:
    Нет, не надо. Регулярные выражения используются только тогда, когда нужно изолированный сегмент в URL заблокировать.

  98. Ильдаро:

    Отличная статья. Но у меня вопрос! :)
    Если я включил в джумле свой (встроенный) ЧПУ, как можно удалить запретить стары урлы типа /index.php?com=comp&bla=bla... Достаточно ли
    Disallow: index.php
    или нужно Disallow: index.php*
    ?

    И еще.
    В этом же случае (при встроенном чпу). передается партнерский ID. Вида site.ru/?pid=2. Правильно ли (и нужно ли?) Ставить:
    Clean-param: bns /*
    ?

    И еще!
    Disallow: /*component/page,shop.product_details/
    Disallow: /*flypage,shop.flypage/
    Disallow: /*vmcchk,1/
    Это я хочу поставить, т.к. flypage я удалил из кода и теперь все внутренние ссылки БЕЗ него. И "component/page,shop.product_details/option,com_virtuemart" теперь тоже нет. Везде теперь "component/option,com_virtuemart/page,shop.browse/"
    т.е. привел в порядок последовательность в урл. В джумле не имеет значения порядок, а для поисковиков, как известно, имеет.

    Джумла и VM у меня старые... каюсь. Но обновлятся пока не планирую (слишком много кода исправлено). Жду полноценного релиза VM.

    И вообще нужны ли какие-то подобные манипуляции, если гуглу и яндексу "скормлен" SiteMap?

    Заранее огрооомное спасибо!

  99. Ильдаро:

    Ну и в догонку:

    Allow: /components/com_virtuemart/shop_image/category
    Allow: /components/com_virtuemart/shop_image/product
    Disallow: /components/

    Яндекс/Гугл "доберутся" до картинок?

  100. Автор блога Виталий:

    Ильдаро:
    Мы уже разбирали пример с joomla чуть выше в комментариях. Там есть много полезной информации.
    Disallow: /index.php - запретит индексацию ВСЕХ страниц, которые начинаются с index.php. Поэтому целесообразно запретить к индексации отдельные переменные в адресе, используя регулярные выражения.
    Например так:
    Disallow: /index.php?com - запрет на индексацию адресов, которые начинаются через эту переменную.

    Запрет реферральских ссылок и идентификаторов сессии делается так (для ссылки site.ru/?pid=2):
    Clean-param: pid /

    Запрет на индексацию отдельных переменных деляется через регулярные выражения

    Disallow: /*component/page,shop.product_details$
    Disallow: /*flypage,shop.flypage$
    Disallow: /*vmcchk,1$

    В Sitemap должны быть прописаны адреса, которые необходимо индексировать. Но если даже и имеются данные о старых адресах на сайте, то поисковая система не будет им следовать, поскольку приоритет отдаётся рекомендациям в файле robots.txt

    Необходимо убрать путаницу и выбрать что-то одно: либо Disallow: /components/, либо
    Allow: /components/com_virtuemart/shop_image/category
    Allow: /components/com_virtuemart/shop_image/product

    Конструкция Allow разрешает выполнить что-то, Disallow запрещает.

  101. Ильдаро:

    Да ничего страшного, если index.php не будет индексироваться. ЧПУшные ссылки-то "съедятся". А для чего $ в конце Disallow: /*component/page,shop.product_details$ ?

    "page,shop.product_details" может стоять и в середине URL. Или я чего не понимаю?
    + Clean-param: pid /* будет работать только для Яндекса, имеет ли смысл добавить "Disallow: /*?pid" для Гугла?

  102. Автор блога Виталий:

    Ильдаро:
    Символ $ в регулярных выражениях обозначает конец строки. Его нужно указывать тогда, когда важно показать сегмент, выделить что-то из общего потока данных.

    Когда вы указываете сегмент данных в URL, то не имеет значения, где он стоит. Он будет заблокирован в любом случае.

    Да, для Google сделайте отдельное правило запрета, т. к. Clean-param - реализован компанией "Яндекс".

Хотите высказать своё мнение по теме? Пишите!

ВНИМАНИЕ!
Комментарии, которые не несут смысловую нагрузку, могут быть удалены! В URL можно использовать только ссылку на ваш блог или Twitter, ссылки на другие ресурсы могут быть удалены.

Поля, помеченные *, обязательны для заполнения.



Потребление памяти: 11.8MB