Файл robots.txt. Что, зачем и почему
Не смотря на то, что описаний такого весьма полезного инструмента как файл robots.txt мильён и одна штука, я все же не удержался от соблазна решил так же сказать о нем пару-тройку слов.
Бо если уж блог называется Вебсовет, то нужно быть последовательным и рассказывать о всех полезняшках, которые могут пригодиться вебмастеру. И указанный файл — не исключение, а скорее даже наоборот — насущная необходимость, если вы пожелаете заняться оптимизацией своего сайта под поисковики.
Начнем с того, что вообще представляет из себя данный файл. Да ничего особенного. Обычный текстовик, который легко можно создать в Блокноте. Имя его, как уже было сказано, robots.txt. Пишется ВСЕГДА мелкими строчными буквами на латинице. Никаких Robots.txt, ROBOTS.txt, роботс.txt и прочих придумок. Иначе все роботы проигнорируют такой файл и побегут шарить на вашем сайте где ни попадя.
Смысл файла robots.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
Если вы используете в качестве движка сайта WordPress, то можете смело прописать в 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. Есть мнение, что гугл-бот понимает это слово.
Как еще можно использовать robots.txt
Как можно использовать в своих меркантильных целях все эти запреты или разрешения? Рассмотрим такой вариант: мы сделали прекрасный во всех отношениях сателлит для последующей продажи на нем ссылок из Сапы. Очень хорошо!
Как поступает мастер-сателлитчик? Он плодит массу страниц всеми возможными способами. В ход идут: использование облака из тэгов, календарь, постраничная разбивка. Ведь что получается? При написании всего лишь одного поста на самом деле выходит и несколько его дублей, но с разными адресами:
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, к тэгам и архиву, начинающемуся с две-тысячи-любого-года.
Небольшое замечание: почему закрыты рубрики? Дело в том, что в том же WoordPress можно настроить ЧПУ таким макаром, чтобы адрес отдельной статьи содержал только имя домена и заголовок статьи, без всяких излишеств (как у меня). Для этого достаточно в настройках ЧПУ прописать такую строку: /%postname%/.
Но так как архивы WoordPress все равно строятся по принципу полной записи пути, то мы получим лишние дубли вида:
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" />
Удачи!