Приручаем поискового робота с помощью robots.txt

robots.txtРешили мы немного поработать над блогом. Добавить новых рубрик, раскидать статьи по этим рубрикам, отдать в фид полные статьи и, наконец, обновить WordPress до самой свежей версии. А то у нас до сих пор стояла версия, актуальная на момент открытия блога.

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

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

Итак, для чего вообще нужен файл robots.txt.

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

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

В файле robots.txt описаны инструкции, которые указывает поисковым системам какие разделы, файлы и страницы сайта нужно индексировать, а какие упустить. Для чего это? Вроде бы, пусть индексирует все. Но сами поисковики рекомендуют веб-мастерам использовать этот файл.
Также в robots.txt можно указывать месторасположения файла Sitemap (карта сайта).

Конструкция robots.txt достаточно проста. Файл содержит внутри себя строки с директивами, спецсимволами и параметрами. Директив немного, поэтому их достаточно просто изучить. Я распишу только часто используемые директивы и спецсимволы.

Директива User-agent.

Как только робот поисковой системы нашел в корне сайта файл robots.txt, он ищет в этом файле строки, начинающиеся с директивы User-agent, далее он читает значение стоящее после User-agent. Это может быть символ «*» или имя робота какой-либо ПС. Пример:

User-agent: *

Директива для всех поисковых систем.

User-agent: Yandex

Директива только для робота Яндекса. Если робот не находит директиву User-agent, то он считает, что доступ ему не ограничен.

Директива Disallow.

Эта директива запрещает роботу индексировать сайт или его определенные разделы. Примеры:

User-agent: *
Disallow: /

Роботу запрещается индексировать весь сайт.

User-agent: *
Disallow: /cgi-bin

Робот разрешается индексировать все, кроме страниц, начинающихся с cgi-bin.

Директива Allow.

Эта директива разрешает роботу индексировать ту или иную область. Если эта директива используется в блоке совместно с Disallow, то Allow должна стоять выше директивы Disallow. Пример:

User-agent: *
Allow: /wp-content/uploads
Disallow: /wp-content

Роботу запрещается индексировать документы, начинающиеся с wp-content, но разрешается индексировать документы, начинающиеся с /wp-content/uploads.

Директива Sitemap.

Указывает роботу, где расположена карта сайта в xml. Пример:

User-agent: *
Disallow: / wp-content

Sitemap: http://7bloggers.ru/sitemap.xml

Символ #.

Символ «#» говорит роботу о том, что все, что после # и до конца строки — это комментарий для человека и роботу он не к чему.

Как создать robots.txt?

В создании этого файла тоже нет ничего сложного. Нужно создать текстовый файл с именем robots и расширением .txt. Открыть его в блокноте или другом подобном редакторе и записать необходимые инструкции. После чего сохранить файл и залить в корень сайта. То есть файл будет доступен по адресу http://ваш_сайт.ru/robots.txt.

Как проверить файл robots.txt?

Для того, чтобы проверить работу, созданного вами файла robots.txt можно воспользоваться:
— Яндекс.Вебмастер: Анализ robots.txt
— Анализ Robots.txt в инструментах Гугл для веб-мастеров

Я составил для этого блога (WordPress) вот такой robots.txt:

User-agent: *
Allow: /wp-content/uploads
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /trackback
Disallow: /feed
Disallow: */trackback
Disallow: */feed
Disallow: /*?*
Disallow: /*?
Disallow: /xmlrpc.php  

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

Sitemap: http://7bloggers.ru/sitemap.xml

Он, конечно, не идеален. Было бы неплохо закрыть от индексации теги и категории (добавить Disallow: /category/*/* и Disallow: /tag), для того, чтобы избежать дублированного контента. Но надо было делать это вначале. Сейчас, мне кажется, это может привести к потере PR и посещаемости.

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

Чтобы узнать все директивы для робота ПС Яндекс, смотрите здесь. Для робота ПС Гугл, смотрите здесь.

38 Ответ(а)
  1. СЕО блоггер Ответ для СЕО

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

    • 9SEO Ответ для 9SEO

      Согласен, можно добавить еще директиву host от греха подальше:). Хотя она является чисто рекомендацией для робота Яндекса и он сам выбирает главное зеркало. В этом блоге робот слава богу определился и главное зеркало посчтитал без www

  2. defs Ответ для defs

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

    User-agent: *
    Allow: /wp-content/uploads
    Disallow: /wp-content

    только запретит идексацию папки /wp-content и всё. Может быть я и ошибаюсь, но я бы написал так:

    User-agent: *
    Disallow: /wp-content
    Allow: /wp-content/uploads

    • 9SEO Ответ для 9SEO

      Скорее всего, Вы правы в том, что поисковик читает роботс построчно, но директиву Allow нужно ставить выше Disallow. В хелпах Гугла и Яндекса это хорошо показано на примерах.

  3. Темыч Ответ для Темыч

    Преполезнейший пост, спасибо — давненько я с роботсами не ковырялся, память хоть освежил 😉

    • 9SEO Ответ для 9SEO

      Не за что;)

  4. TiamatInc Ответ для TiamatInc

    Так вот кто его смотрел, а я то всю голову сломал 😉

    defs, правильно как раз allow ставить в начало. Если для одной страницы подходит несколько директив, то выбирается первая в блоке User-agent

    • 9SEO Ответ для 9SEO

      О как ты следишь за своим блогом! Небось уже по ip вычислил где живет тот, кто заглядывал в роботс 🙂 .

      • TiamatInc Ответ для TiamatInc

        Не то чтобы очень слежу, просто когда посещаемость невысокая в ежедневном отчете LI очень хорошо видны всякие странные посещения 😉

  5. Сергей Ответ для Сергей

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

  6. Максим Ответ для Максим

    Про роботсы — интересно и пользительно. А вот фид целиком всё-таки не отдается.

    • 9SEO Ответ для 9SEO

      Все, сделали. Теперь должен отдаваться полностью…)

  7. Armagedonec Ответ для Armagedonec

    А нельзя на теговых и категорийных страницах просто убрать дабл контент от индксации? На многих блогах так в начале не сделал, теперь хочу и кол-во страниц в индекс сохранить и дабл контент убрать 🙁

    • TiamatInc Ответ для TiamatInc

      Используйте тег canonical, по крайней мере для буржуйских поисковиков эту проблему махом разрешите

  8. Vitashok Ответ для Vitashok

    Полезный пост.
    У меня вообще одно время был сайт закрыт от индексации, а я ещё удивлялся, почему яндекс его не индексирует, пока не написа письмо Платону, он то мне глаза и открыл 🙂

  9. Светлана Ответ для Светлана

    Я где-то встречала, а теперь не найду, информацию о том, что лучше два разных файла robots.txt для Гугла и Яндекса. Или речь шла о двух вариантах карты сайта… Запуталась совсем 🙁

    • 9SEO Ответ для 9SEO

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

      • Светлана Ответ для Светлана

        Точно,значит речь шла о карте.

        Мой robots.txt имеет несколько иной вид. Не знаю, тебуется ли вносить изменения, или того что есть достаточно:

        Disallow: /cgi-bin
        Disallow: /wp-admin
        Disallow: /wp-includes
        Disallow: /wp-login.php
        Disallow: /xmlrpc.php
        Disallow: /xmlrpc.php?rsd
        Sitemap: http://www.vseuch.ru/sitemap.xml
        Sitemap: http://www.vseuch.ru/sitemap.xml.gz
        User-agent: Yandex
        Disallow: /cgi-bin
        Disallow: /wp-admin
        Disallow: /wp-includes
        Disallow: /wp-login.php
        Disallow: /xmlrpc.php
        Disallow: /xmlrpc.php?rsd
        Sitemap: http://www.vseuch.ru/sitemap.xml
        Sitemap: http://www.vseuch.ru/sitemap.xml.gz
        Host: www.vseuch.ru

        • Алесей Ответ для Алесей

          Светлана, в документации от Yandex написано «перед каждой директивой ‘User-agent’ рекомендуется вставлять пустой перевод строки» и Sitemap можно указать один раз, для нескольких роботов и «директиву ‘Host’ непосредственно после директив ‘Disallow'(‘Allow’)». А посмотрев сам файл у вас, не понял, зачем вы поставили возле каждой строки «>»?

    • Светлана Ответ для Светлана

      Алексей, я даже не заметила у себя этих скобочек… 🙁 Наверное, Яндексу они тоже не понравились.

      Вот вам доказательство, что в блоггеры лезут совершенно неподготовленные товарищи.
      Иду смотреть, что у Вас, и сравнивать. Как-нибудь общими усилиями доведу до ума своего роботса. Спасибо за подсказки.

  10. Venadich Ответ для Venadich

    а вот кто знает, нафига вот эта директива:
    # digg mirror
    User-agent: duggmirror
    Disallow: /
    многие советуют ее пихнуть, а вот для чего она, я как то упустил

    • 9SEO Ответ для 9SEO

      Точно не знаю, но думаю это для буржуев полезно, кто статьи добавляет в digg.com и они становятся популярными…

  11. Алексей Ответ для Алексей

    Хотел спросить, А вот это не одно и то же делает?
    Disallow: /*?*
    Disallow: /*?

    Так же не понятно правило для Google Image, зачем?

    То же решил заняться robots.txt, тоже в блоге написал, и составил.

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

  12. Светлана Ответ для Светлана

    Правильно говорите, правильно! А я все-таки пренебрегла советом »

    Было бы неплохо закрыть от индексации теги и категории (добавить Disallow: /category/*/* и Disallow: /tag), для того, чтобы избежать дублированного контента. Но надо было делать это вначале. Сейчас, мне кажется, это может привести к потере PR и посещаемости.»

    Исправила, добавила всё что надо в robots.txt и … потеряла свою десяточку. Вот. 🙁

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

    • Алексей Ответ для Алексей

      Я не думаю что бы так быстро отняли десятку из за этого. Возможно Яндекс глючит, темболее АПа тИЦ не было.
      Ну вы всёравно не учли про Sitemap и Host. Ну и так, там несколько смысловых повторений.

      • Светлана Ответ для Светлана

        Проверила программой Site-Auditor и она показывает ТИЦ10 PR1 а количество проиндексированных страниц теперь выровнялось.
        Сейчас у меня Яндекс-Рамблер-Google идут как 65/58/68
        Значит не зря-таки возилась.

        Алексей, а почему Ваш сайт Яндекс не индексирует? И очень большой отрыв в цифрах (0/136/860), мне кажется так не должно быть, или это вообще несущественые показатели? На очень хорошем сайте встречала (16000/17/9000)

        Так что же все-таки дает правильно составленный файл robots.txt ?

        • Алексей Ответ для Алексей

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

  13. wonder Ответ для wonder

    Спасибо за полезный пост, как раз искал мануал по роботсам.

  14. Светлана Ответ для Светлана

    Не знаю, что с чем связано, может быть просто совпадение, но после исправления файла robots.txt у меня ТИЦ поднялся. 20 это мало, но лучше чем 10!

    • TiamatInc Ответ для TiamatInc

      Думаю совпадение, просто на днях был ап тИЦ 😉

  15. revolt Ответ для revolt

    Подскажите, куда конкретно надо вставить файл robot.txt в .blogspot.com

    • TiamatInc Ответ для TiamatInc

      А он там уже есть, гляньте по адресу ваш_блог/robots.txt

  16. revolt Ответ для revolt

    Смотрел, blogger пишет, что нет его.

    • TiamatInc Ответ для TiamatInc

      Ну как это нет, а вот это http://kovbasahomemade.blogspot.com/robots.txt ???

      • revolt Ответ для revolt

        Спасибо, разобрался.

  17. Advent Ответ для Advent

    Я сейчас рыскаю по всем описаниям, пытаясь понять почему сервис на валидность показывает кучу ошибок. Везде роботс практически одинаков, и никто ничего не может толком объяснить, одни говорят allow не нужен, вторые нужен. Ну закрыть директории это понятно, сделать исключения тоже, но вот если исходить из чекера, то нужно исправлять ошибки.
    Привожу сервис попробуйте,жду ответа.
    http://tool.motoricerca.info/robots-checker.phtml

  18. робот Ответ для робот

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

  19. zdorovyal Ответ для zdorovyal

    Вот и нашел на наглядном примере что и как! Спасибо большое.

Добавить комментарий

Ваш e-mail не будет опубликован.