Файл robots.txt. Что, зачем и почему

Тэги: , , , ,

googlebot1.jpg
Не смотря на то, что описаний такого весьма полезного инструмента как файл robots.txt мильён и одна штука, я все же не удержался от соблазна решил так же сказать о нем пару-тройку слов. Бо если уж блог называется Вебсовет, то нужно быть последовательным и рассказывать о всех полезняшках, которые могут пригодиться вебмастеру. И указанный файл — не исключение, а скорее даже наоборот — насущная необходимость, если вы пожелаете заняться оптимизацией своего сайта под ПС.

Начнем с того, что вообще представляет из себя данный файл. Да ничего особенного. Обычный текстовик, который легко можно создать в Блокноте. Имя его, как уже было сказано, robots.txt. Пишется ВСЕГДА мелкими строчными буквами на латинице. Никаких Robots.txt, ROBOTS.txt, роботс.txt и прочих придумок. Иначе все роботы проигнорируют такой файл и побегут шарить на вашем сайте где ни попадя.

С оформлением понятно. Теперь о смысле, вернее о функциях этого файла. Логика подсказывает, что предназначен файл исключительно для роботов. Но каких? У каждой поисковой системы (ПС) есть свой робот (бот) — существо весьма любопытное и пронырливое. Незаметно человечьему глазу, оно проникает на страницы сайтов, внимательно или не слишком читает все, что там есть и после тащит домой, т.е. в базу данных ПС. В результате поисковики знают, что у вас есть такие-то страницы на сайте вот с таким содержимым. Иначе этот процесс называется индексацией. Если ботов никак не ограничивать, то по-умолчанию они могут просматривать все содержимое вашего сайта.

Что же в этом плохого? Когда сайт — это всего лишь с десяток статичных HTML-страниц, то ничего. Пусть боты читают. Это как раз и хорошо. Но если ваш сайт, например, на какой-либо CMS, то вы имеете массу служебных папок и файлов, которые, по сути своей, вовсе не являются полезным содержимым вашего сайта. А в некоторые папки и файлы ботам совсем даже ни к чему заглядывать. Вот как раз чтобы как-то их ограничивать и был придуман такой полезный инструмент как robots.txt. Его первейшая функция — не пущщать! Используется для этого грозное слово Disallow. Но обо всем по-порядку.

Начинается любой robots.txt со строки

User-agent:

Это слово означает не живого пользователя — юзера, а как раз бота. После двоеточия ставится конкретное имя железякина. У каждого бота есть такое уникальное имя. Например, у Яндексоида — Yandex, у гуглевского посланца — Google, у Архив-Машины — ia_archiver. Соответственно, для каждого из них будет такая запись:

User-agent: Yandex
User-agent: Google
User-agent: ia_archiver

Если нужно дать указание всем без исключения роботам, то вместо имени ставится звездочка:

User-agent: *

Как только задали имя, то следом на новой строке пишем, что же мы конкретно запрещаем. На одной строке можно задать лишь один запрет. Если их несколько, то каждый пишем с новой строки. Например:

User-agent: Yandex
Disallow: /

Данная запись запрещает боту яндекса шариться по всему сайту. Слэш / означает ни что иное, как сокращенную запись «от корня». То есть, если адрес сайта http://www.ваш-сайт.ru/, то все, что находится за закрывающим слэшем, по сути, и является всем содержимым. Если нам нужно закрыть от индексации только одну папку, например admin, то мы запишем так:

User-agent: Yandex
Disallow: /admin

В результате бот сможет прочитать все остальное, кроме папки admin. Запретить можно не только папки, но и отдельные файлы:

User-agent: Yandex
Disallow: /private.html
Disallow: /docs/myporno.jpg

Если вы используете в качестве движка сайта Вордпресс, то можете смело прописать в robots.txt следующее:

User-agent: *
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /trackback
Disallow: /comments
Disallow: */trackback
Disallow: */comments
Disallow: /*?*
Disallow: /*?

Все это служебные папки и файлы, и роботам они совсем ни к чему.

В некоторых файлах robots.txt можно встретить что-то вроде:

# Does anyone care I love Google

Это называется комментарий. Его роботы не видят. Нужен он скорее для напоминания самому вебмастеру, чего это он тут наворотил. Решетка является началом комментария, а заканчивается он при переносе строки. Если вам просто позарез нужно накатать коммент на 10 строк, то начинайте каждую из них с решетки:

# Я ненавижу яндекс и потому пошел он в зад!
# Я навижу Гугль, и потому разрешаю его боту посмареть мою подборку
# порно в папке porno

Комментарий можно прописывать в любом месте: до запрета, после него, но не вместо него.

Еще могут попадаться такие конструкции:

# Google Image
User-agent: Googlebot-Image
Disallow:
Allow: /*

Она означает, что спец-гугле-боту, который заточен только под нахождение картинок, разрешено тащить все картинки с сайта. Мало того, ему это указано дважды. Во-первых, когда мы после Disallow: не пишем более ничего, то это означает наоборот — разрешение. Во-вторых, слово Allow, которое опять же «дает добро». Однако, на самом деле, правила Allow не существует. Во всяком случае, в официальном документе, регламентирующем порядок составления robots.txt. Хотя документ сей не строгий и, к тому же, довольно древний. Возможно, потому гуглеводы придумали эту фишку с Allow. Есть мнение, что гугль-бот понимает это слово.

Как можно использовать в своих меркантильных целях все эти запреты или разрешения? Рассмотрим такой вариант: мы сделали прекрасный во всех отношениях сателлит для последующей продажи на нем ссылок из Сапы. Очень хорошо! Как поступает мастер-сателлитчик? Он плодит массу страниц всеми возможными способами. В ход идут: использование облака из тэгов, календарь, постраничная разбивка. Ведь что получается? При написании всего лишь одного поста на самом деле выходит и несколько его дублей, но с разными адресами:

http://www.ваш-сайт.ru/category/news/kak-ya-vstretil-novy-god
http://www.ваш-сайт.ru/page/2/kak-ya-vstretil-novy-god
http://www.ваш-сайт.ru/tag/novygod/kak-ya-vstretil-novy-god

Для посетителя сайта это все один и тот же пост, но для роботов — 3 разных файла. Все три будут проиндексированы. И если для яндекса (читай — для Сапы) это хорошо, то для Гугля совсем плохо. Потому как Гугль не любит дублирующие страницы и вполне может в основную выдачу показать дубль, а в запасник выкинуть настоящую страницу. И если таких дублей будет много, то ничего хорошего (ПР=9 например) от него не жди. Как в этом случае можно поступить? Понятно, что нужно как-то разрешить лазать одному боту и запретить другому. Пишем следующее:

User-agent: Yandex
Disallow:

User-agent: Google
Disallow: /category/*/*/*
Disallow: /tag/*
Disallow: /20*

Данная запись означает, что боту яндекса можно смотреть на сайте все, а боту гугля запрещены пути к файлам из рубрик (category), к тэгам и архиву, начинающемуся с две-тысячи-любого-года.

Небольшое замечание: почему закрыты рубрики? Дело в том, что в том же Вордпрессе можно настроить ЧПУ таким макаром, чтобы адрес отдельной статьи содержал только имя домена и заголовок статьи, без всяких излишеств (как у меня). Для этого достаточно в настройках ЧПУ прописать такую строку: /%postname%/
Но так как архивы Вордпресса все равно строятся по принципу полной записи пути, то мы получим лишние дубли вида:

http://www.ваш-сайт.ru/category/news/kak-ya-vstretil-novy-god

Закрыв же от Гугля путь к рубрикам, мы тем самым избавляемся от дублей. Но яндекс-бот будет их видеть. Что и требовалось получить на выходе.

Чтобы разрешить всем без исключениям роботам шарить по сайту можно поступить тремя способами:

1. Прописать в файле robots.txt следующее:

User-agent: *
Disallow:

2. Вообще не составлять файла robots.txt. Роботы сами разберутся, что к чему. Кстати, наличие файла robots.txt вовсе не гарантирует, что боты набегут тучно. Для этого нужно использовать другие приемы.

3. Можно прописать дополнительный мета-тэг в самих страницах сайта в разделе <head></head>:

<meta name="robots" content="follow, all" />

Вебсовет

rss Подпишитесь на RSS

Или получайте новости на ваш e-mail:

Комментарии (29) на запись “Файл robots.txt. Что, зачем и почему”

  1. Steward 04.02.2009 18:55

    Забыл про Sitemap:

    файл может быть как sitemap.xml, так и sitemap.xml.gz

    вот только я не знаю может ли быть другое название файла :)

  2. Светлана 04.02.2009 21:05

    Игорь, я перечитала кучу объяснений по этому robots.txt но только эта статья действительно ОБЪЯСНИЛА его смысл и значение. Спасибо!
    У меня есть этот файл на сервере. При проверке с помощью программы Site-Auditor я вижу такой текст:
    User-agent: *
    Disallow:

    <!– Page not cached by WP Super Cache. No closing HTML tag. Check your theme. –>
    Не могу понять, в чем тут дело.

  3. Игорь Квентор 05.02.2009 01:28

    Steward, sitemap можно добавить в robot.txt конечно же, но особо важной роли это вряд ли сыграет. А следующий пост будет как раз о сайтмапе и о том, что с ним можно сделать :)

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

  4. Светлана 05.02.2009 06:06

    Вопрос оттого, что у меня файл robots.txt имеет несколько строчек, а не одну со всеобщим разрешением! Вот и думаю, что “видят”роботы, все подряд или выборочно.

    Игорь, если Site-Auditor не очень точно работает, есть ли другой способ самопроверки?
    У меня WP, и по этой статье я поняла, что в случае разрешения гулять везде роботы могут дважды считать один и тот же текст, что не есть хорошо.

  5. Игорь Квентор 05.02.2009 08:10

    Светлана, а при отключении плагина кэширования файл robots не меняется?

  6. Светлана 05.02.2009 11:52

    Сейчас попробую найти что отключить. А это не опасно?

  7. Светлана 05.02.2009 12:39

    Игорь, у меня WP Super Cache деактивирован. Может его, наоборот, надо включить?

  8. Игорь Квентор 05.02.2009 13:22

    Нет, попробуйте файлу robots задать права 444. Если содержимое перестанет меняться, значит какой-то другой плагин хулиганит.

  9. Светлана 05.02.2009 14:33

    Не помогло. Кто-то хулиганит (с моего негласного разрешения, наверное), но не пойман.

    Вылезла проблема с антиспамом. Оказывается, из Оперы комментарий на мой блог отправить невозможно! Идет сообщение о неправильно введенном коде. Хорошо, что мне сообщили об этом письмом. Проверила - и правда. Придется, видимо, менять на такую штучку, как у Вас.

  10. Игорь Квентор 05.02.2009 23:58

    Светлана, если антиспам-капча с “красными-и-другими-цифробуквами”, то это известный глюк самой капчи. От браузера не зависит. Часто просто не сохраняет комментарий и выдает пустое окно. Лучше и правда как у меня математику поставить. Она простая и не глючная. Плагин называется math-comment-spam-protection

  11. Макс 17.03.2009 00:02

    Здраствуйте, помогите правильнно составить robots.txt:
    1. Хочу чтобы боты не лазили по системным файлам
    2. Чтобы гугль не учитывал дубли, но у меня ссылка на новость выглядит, так: http://мой_сайт/название категории транслитом/название статьи транслитом/(если не понятно, прописываю линку, щелкните на моё имя у комментария и сами гляньте).
    Под мои требования, такое содержание файла пойдет?

    User-agent: Yandex
    Disallow:
    User-agent: Google
    Disallow: /category/*/*/*
    Disallow: /tag/*
    Disallow: /20*
    User-agent: *
    Disallow: /cgi-bin
    Disallow: /wp-admin
    Disallow: /wp-includes
    Disallow: /wp-content/plugins
    Disallow: /wp-content/cache
    Disallow: /wp-content/themes
    Disallow: /trackback
    Disallow: /comments
    Disallow: */trackback
    Disallow: */comments
    Disallow: /*?*
    Disallow: /*?

    Подскажите, а то так пропишу, что гугль вообще не чего не проиндексирует)))

  12. Игорь Квентор 17.03.2009 01:13

    Если путь к статье у вас идет через категории, то в роботс файле нужно убрать строку:
    Disallow: /category/*/*/*
    иначе Гугль и правда ничего толкового не увидит. Все остальное можно оставить. Если будете использовать плагин постраничной разбивки постов, то для гугль-бота нужно добавить еще пару строк:
    Disallow: /page
    Disallow: /*/*/page/*

  13. Макс 17.03.2009 11:46

    Спасибо, а его можно просто закинуть в коренвую сайта или надо к нему путь где-нибудь прописывать?

  14. Игорь Квентор 17.03.2009 16:55

    Да, просто кладете в корень сайта. Никакого пути нигде прописывать не нужно.

  15. awtor 18.03.2009 19:22

    Макс а вас не волнует, что вы многое запретили google но все разрешили Яндексу? Или считаете, что Яндекс очень любит копии контента?

    Юзерагент Яндекса выделяется, если нужно что-то еще дозакрыть или приоткрыть, добавить директиву host и прочее.

    В общем случае лучше просто использовать
    User-agent: *
    и тд

  16. Олеся 13.04.2009 17:33

    Спасибо Игорь за статью, написано практически для чайников)))Прочла много статей, но ваша статья написано доступно, но есть некоторые сложности для меня. Можете помочь прояснить,если указывать такую инструкцию:
    User-agent: Yandex

    Disallow: /cgi-bin

    Host: http://www.lubit-ne-lubit.ru

    то что она дает?

    И эти строки что показывают (это корректное написание):
    Disallow: /*?

    Allow: /wp-content/uploads

  17. Игорь Квентор 15.04.2009 16:36

    Олеся, директиву Host понимает только бот Яндекса. Нужна она на тот случай, если у вашего сайта есть зеркала. Данной директивой, в которой прописывается адрес основного сайта, мы даем понять боту, что вот этот самый сайт и есть главный, а все остальное - зеркала.
    Прописывается данная директива после всех Disallow.
    Строка Disallow: /cgi-bin написана немного некорректно. Чтобы закрыть от индексации ботом папки cgi-bin, нужно в конце добавить слэш / Иначе бот будет игнорировать все,что начинается со слова cgi-bin. Например, cgi-bin, cgi-bin.html, cgi-bingoooo и т.п.

    Disallow: /*? по идее должна означать, что от бота закрыты все файлы, начинающиеся с любого количества буквоцифер и заканчивающиеся вопросительным знаком. Но есть мнение, что звездочка, как маска, не работает в файле robots.

    Кстати, есть у кого-нить достоверные сведения на сей счет?

  18. snow_leopard 21.04.2009 20:51

    подскажите, плз.
    хочу закрыть страницу со ссылками от поисковиков. смогут ли роботы из катологов, в кот я зарегился проверить обратку, если написать в robots.txt так:
    User-agent: *
    Disallow: /links.php

  19. MASTER 24.05.2009 06:10

    Подскажите, пожалуйста, правильно ли я составила robots.txt? Меня смущает строка
    Allow: /
    Когда писала ее, имела ввиду, что кроме указанных имен папок и файлов в Disallow, все остальное можно индексировать. Не могу понять, правильно ли написана строка, нужна ли она вообще, или можно (нужно) обойтись без нее? И еще, правильно ли располагаются строки? То есть их очередность. Имеет ли значение, какая под какой находится в данном конкретном примере?
    Вот весь документ:

    User-Agent: *
    Disallow: /backup/
    Disallow: /cgi-bin/
    Disallow: /statistics-buttons.htm
    Allow: /
    Host: http://www.site.com

    Буду благодарна за любой совет и помощь.

  20. MASTER 24.05.2009 06:13

    В строке Host: при отправке сообщения прописался http:// На самом деле было только www Прошу это не считать за ошибку.

  21. Alex 13.08.2009 15:03

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

  22. Игорь Квентор 13.08.2009 16:56

    Alex, имеются в виду страницы, созданные либо календарем, либо плагином постраничной навигации. Например:

    http://www.ваш-сайт.ru/page/2/kak-ya-vstretil-novy-god

  23. Alex 13.08.2009 17:04

    ага, при попытке ввести подобный адрес происходит переадресация на нормальную страницу т.е это страницы как бы и нет

  24. Игорь Квентор 13.08.2009 19:17

    Страница есть по любому. Во всяком случае, поисковик этот адрес видит вне зависимости происходит редирект или нет

  25. Alex 13.08.2009 20:15

    Редирект ставится автоматом при настройке ЧПУ и если я его вижу, то и поисковик видит, он же максимально имитирует обычный браузер.

  26. Игорь Квентор 13.08.2009 22:42

    Сдается мне, не о том мы говорим. Вот у меня на главной странице есть внизу постраничная навигация. Кликнув по любому номеру, попадаем на страницу с этим номером, где размещено несколько постов. О каком редиректе речь? Нет там никакого редиректа. Есть ссылка вида http://www.websovet.com/page/3 которую как раз поисковику и незачем показывать.

  27. Alex 14.08.2009 08:30

    Ну хорошо, есть такая страница, а почему ее не за чем показывать, если на ней анонсы до тэга more, то она будет уникальна, если на ней полный версии статей, тогда да, не стоит. Кстати какой плагин страницы делает?

  28. Игорь Квентор 14.08.2009 09:59

    Гугль может по 2 - 3 предложениям решить, что текст один и тот же. Так что more тут не поможет.
    А навигацию делает плагин wp-pagenavi.

  29. Alex 14.08.2009 10:08

    Google тут не при чем, он все равно разберет всю страницу, а на ней много текста, вот где может застопорить это в архивах-категориях, особенно если там 1 запись, но опять-таки, там не полная статья, поэтому риск не велик. Вот с редиректом я все-таки так и не понял. При уставновке чпу автоматом через htaccess прописываются правила переадресации, поэтому я не вижу страниц с “довеском” по идее и для поисковика тоже самое, но реально никто ответить не может.

Трэкбеки

Оставить комментарий