Идеальная конфигурация файла robots.txt для WordPress блога

Файл robots.txt — это специальный текстовый файл, хранящийся в корневом каталоге веб-сайта и указывающий поисковым роботам, какие файлы необходимо индексировать, а какие — оградить от индексации. Для достижения хороших SEO показателей файл robots.txt должен быть идеально сконфигурирован. Индексация всех без исключения файлов и папок, хранящихся в WordPress, может привести к плачевным результатам, поскольку система имеет множество страниц, содержащих дублирующий контент: страницы рубрик, страницы меток, страницы архивов и т.д. При индексации у поискового робота, естественно, возникнет вопрос, каким страницам отдать свое предпочтение и вывести в индекс. Чтобы не возникало такой двойственности, необходимо тщательно отнестись к настройке файла robots.txt.

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

 sitemap: http://yourdomain.com/sitemap.xml
 User-agent: *
 Disallow: /cgi-bin/
 Disallow: /wp-admin/
 Disallow: /wp-includes/
 Disallow: /wp-content/
 Disallow: /go/
 Disallow: /archives/
 disallow: /*?*
 Disallow: /wp-*
 Disallow: /author
 Disallow: /comments/feed/

http://devilmustcry.com/blog/ideal-configuration-of-robots-txt-file-for-wordpress-blog.html

Блог про WordPress
Комментарии: 42
  1. HotIce

    Довольно полемично, на мой взгляд. Смотря какие цели. Категории зачем индексировать и тэги? Если бороться за количество страниц в индексе, тогда да.

    1. Дмитрий (автор)

      Не все материалы попадают в индекс напрямую (у меня так отсеилось 40% материалов), но некоторые оседают в выдаче благодаря тегам или рубрикам. А то бывает обидно — пишешь, пишешь статью, а в индексе ее нет.

  2. HotIce

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

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

    Ты будешь меня пинать, но кнопка смены капчи закрывает первый символ ввода. Два раза ошибался. ;)

    1. Дмитрий (автор)

      Ох уж эта капча, поставил отступ при вводе) А по поводу кэширования: а к тебе в блог как часто робот заходит? Да, посмотрел, странно, все кэши у тебя на месте в гугле.

  3. HotIce

    Да, капча тебе крови попила. ;) Так нормально уже.

    Робот. а тебе какой из? Я не помню, какой там в их стаде главный..

    1. Дмитрий (автор)

      Я, честно говоря, не в курсе)

  4. HotIce

    ;) А ну пара ежедневно заходит, берет роботс и sitemap. За страницами заходит еще один, этот наверное ты в виду и имел. Он ходит как ему вздумается, в зависимости от наличия обновлений. Но обновлений было вагон, но, допустим, ты смотрел страницу "про мну", так как на ней лента твиттера, то заходит индексирующий на нее. И хоть стоит "noarchive" как-то он не очень на это реагирует. Правда гугловцы писали, что страницы и из индекса не сразу выпадают.. Смотрю в общем. Потому что разделы как в индекс взял, до сих пор не выбросил, хотя ноиндекс ему сказал, в роботс запретил.. Живет своей жизнью, или я чего не догоняю.

  5. Екатерина

    Прописала, но ничего не понимаю: на основном домене все нормально, с субдоменом какая то странная история — зачем индексируются трекбеки, плагины, комментарии…

    Поясните, это я скривила чем-то или гугл с яндексом вредничают. В статистике почему-то высвечивается адрес плагина, я в шоке…

  6. HotIce

    А у вас пути точно, как в роботс из примера?

    Я у себя прописывал вот так:

    Disallow: /wp-content/

    Disallow: /wp-content/plugins

    Disallow: /wp-content/themes

    Disallow: /wp-content/languages

    Disallow: /wp-content/upgrade

    но это, ИМХО, избыточно. Если у вас добирается робот до плагинов, то на пути надо смотреть. Да и сайт бы показали, было бы проще.

    1. Екатерина

      субдомен не прописывала, во всех справках по интернету ничего про это не сказано. Если дело в этом, то мой промах…

  7. HotIce

    Прозевал про суб. домен. А как вы суб. домен прописывали? И организован он у вас как?

    Disallow /name.dir/wp-content/

    По идее так должно быть, если вы субдомен расположили в папке /name.dir/ лежащей в корне основного.

    1. Дмитрий (автор)

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

  8. HotIce

    Вероятно дело тогда в этом. Он же робот, дерево. Вы не сказали, а он рад стараться, все утащить к себе, почитать на сон грядущий что нового разработчики плагинов придумали.. ;)

  9. HotIce

    А как по другому? Просто еще одна папка, со своим вордпрессом. Но не видя как оно организованно, что-то говорить сложно. Так как я субдомены не строил, то это вариант. Знаешь каконить сайт с субдоменом? Я вот припомнить не могу сейчас. Надо найти, и поглядеть роботс. Тогда и вопросы снимем.

    1. Дмитрий (автор)

      Не видел ни одного такого. Вот вроде бы сайт Екатерины: fontrebina.com

      1. Екатерина

        Это мой основной сайт, по нему вопросов нет, он отлично индексируется. С субами проблемы остались, вроде папку прописала, все равно не видит. Если дальше так будет, напишу в support хостинга, помогут или подскажут.

        Да,и по поводу прописки папки субдомена, я думала зачем, ведь sitemap уже ссылается на него, соответственно и папки прописывать незачем. Я впервые такое вижу.

  10. Екатерина

    Вообщем такой вид, при проверке яндекс не нашел ошибок

    User-agent: Unknown robot

    Disallow: /

    User-agent: *

    Disallow: /cgi-bin/

    Disallow: /wp-login.php

    Disallow: /wp-register.php

    Disallow: /wp-includes/

    Disallow: /xmlrpc.php

    Disallow: /wp-admin

    Disallow: /wp-content/plugins

    Disallow: /wp-content/themes

    Disallow: /tag/

    Disallow: /trackback/

    Disallow: /date/

    Disallow: /category/

    Disallow: /feed/

    Disallow: */trackback/

    Disallow: */feed/

    Disallow: /?feed=

    Disallow: /?s=

    Disallow: /*?*

    Disallow: /*?

    Allow: /wp-content/uploads/

    Crawl-delay: 5

    Host: http://www.сайт

    Sitemap: http://www.сайт/sitemap.xml

    User-agent: Yandex

    Disallow: /cgi-bin/

    Disallow: /wp-login.php

    Disallow: /wp-register.php

    Disallow: /wp-includes/

    Disallow: /xmlrpc.php

    Disallow: /wp-admin

    Disallow: /wp-content/plugins

    Disallow: /wp-content/themes

    Disallow: /tag/

    Disallow: /trackback/

    Disallow: /date/

    Disallow: /category/

    Disallow: /feed/

    Disallow: */trackback/

    Disallow: */feed/

    Disallow: /?feed=

    Disallow: /?s=

    Disallow: /*?*

    Disallow: /*?

    Allow: /wp-content/uploads/

    1. HotIce

      Мне ваш роботс местами не понятен. Насколько я понимаю, вы роботу яндекса зеркало не показали. Если не трудно, объясните зачем. Мне для общего развития.

      1. Екатерина

        если прописать то ошибку выдает, яндекс видит то что прописано выше, я имею ввиду host и sitemap достаточно один раз прописать. Если я правильно вас поняла.

        1. Екатерина

          а вообще что ни прописывай на протяжении почти года яндекс в поиске выводит только один мой адрес субдомена — главную страницу, вот прям одна строчка в результатах поиска…мне непонятно, подозреваю глюки в работе хоста. Когда-то им писала об этой проблеме — обнадежили что скоро все появится в поиске, но так и ничего. Вообще выход есть какой…

  11. HotIce

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

    В общем, пройдясь по интернету, надо сказать — был не прав. Конструкция с папкой не верна. Нужен второй роботс для субдомена, в котором выставлять разрешения для субдомена. Робот не понимает папок, он оперирует адресами. Логично.

    Получается — сколько в сумме доменов с поддоменами — столько и роботс должно быть.

    1. Екатерина

      я вот тоже так думаю

  12. Екатерина

    поначалу вообще на робота внимания не обращала, теперь проснулась…дотянула

  13. HotIce

    В общем нашел я сайт, вида субдомен.домен.ru

    Разные роботс — один для субдомен.домен.ru другой для домен.ru. С этим для себя разобрался. Но там не используются зеркала на www, поэтому с зеркалированием не ясно как быть. Пока одно усвоил, что если оглядывать ся на яндекс, то с зеркалами связываться не хочется.

  14. Екатерина

    а может вообще на яндекс не обращать внимания, гугл хоть что-то индексирует, а с этим только зря время тратить, на том же своем опыте проверено…Спасибо за помощь!

  15. HotIce

    _http://help.yandex.ru/webmaster/?id=996567#996574
    Важно: в целях совместимости с роботами, которые не полностью следуют стандарту при обработке robots.txt, директиву 'Host' необходимо добавлять в группе, начинающейся с записи 'User-Agent', непосредственно после директив 'Disallow'('Allow'). Аргументом директивы 'Host' является доменное имя с номером порта (80 по умолчанию), отделенным двоеточием.

    Яндекс конечно своеобразный, но у вас прямое нарушение их рекомендаций, как мне кажется.

  16. Екатерина

    Для меня главное, чтобы в поисках нормальные результаты были, а не что-то подобное "trackback — Сайт, RSS 2.0 — Сайт, 7 — Сайт, Ноябрь 2010 — Сайт…", сейчас в гугле именно такое творится без всяких пояснений.

  17. HotIce

    В том-то и дело. У меня цели точно такие. Вот не хочу чтоб категории попадали в поиск. Гугл как сожрал их при первой индексации, так и расставаться не хочет.

    В роботс запрет стоит, в head страницы стоит директива meta name="robots" contents="noindex" до лампочки. В статические страницы вцепился клещами. В общем, пришел к выводу, что нужно делать внутреннюю перелинковку по другому, и отбирать вес у этих страниц.

  18. HotIce

    Зачем же не обращать внимания? Нет, это не наш метод. Я бы ваш роботс написал вот так:

    User-agent: *

    Disallow: /cgi-bin/

    Disallow: /wp-login.php

    Disallow: /wp-register.php

    Disallow: /wp-includes/

    Disallow: /xmlrpc.php

    Disallow: /wp-admin

    Disallow: /wp-content/plugins

    Disallow: /wp-content/themes

    Disallow: /tag/

    Disallow: /trackback/

    Disallow: /date/

    Disallow: /category/

    Disallow: /feed/

    Disallow: */trackback/

    Disallow: */feed/

    Disallow: /?feed=

    Disallow: /?s=

    Disallow: /*?*

    Disallow: /*?

    Host: http://www.сайт

    Sitemap: http://www.сайт/sitemap.xml

    Allow: /wp-content/uploads/

    User-agent: Yandex

    Disallow: /cgi-bin/

    Сrawl-delay: 5

    То что мне приходилось читать про роботс полного понимания мне не дало, скорее насторожило. И просто бесит, что не могут в своих инструментах подсказки сделать человеческие подсказки — вот это я съел, а вот это нет.

    Когда себе делал роботс, рисовал его по рекомендациям гугла и _http://www.robotstxt.org/ на яндекс не обращал внимания, он ругался там на что-то. Гугл индексирует криво, яндекс лучше. Я ничего не понял, и просто плюнул.

    1. Екатерина

      Наверное Хост без http://

  19. WMmagnat

    А у Вас то у Самого в Блоге :

    User-agent: *

    Disallow: /wp-admin/

    Disallow: /wp-includes/

    Sitemap: https://oddstyle.ru/sitemap.xml.gz

    А вы пишите о других идеальных файлах :)))))

    1. Дмитрий (автор)

      Меня лично устраивает тот вариант, что уже имеется. Это перевод, так что мое мнение может не совпадать с мнением автора этой статьи.

  20. WMmagnat

    аааа вот как ) Ну понимаю.

    Я лично себе сделал так :

    User-agent: *

    Disallow: /go/

    Disallow: /wp-login.php

    Disallow: /wp-register.php

    Disallow: /xmlrpc.php

    Disallow: /wp-admin

    Disallow: /wp-includes

    Disallow: /wp-content

    Disallow: */trackback/

    Disallow: /*/feed/

    Disallow: /feed/rss/

    Disallow: /feed/atom/

    Disallow: /?feed=

    Disallow: /?s=

    Allow: /wp-content/uploads/

    Allow: /feed/

    Sitemap: http://blogpolitic.ru/sitemap.xml

    Думаю это самое правильное, хотя как говориться…. :-)

    1. Дмитрий (автор)

      Вряд ли в таком деле как продвижение ресурса, может быть что-то "самым правильным" :)

  21. Никита

    Мдааа. просто пострясающие)) Ловите и будет Вам счастье.

    Сначала самое главное правило — создайте резервную копию блога! Всегда создавайте резервную копию не ленитесь прежде чем лезть в код.

    Во первых -сначала проверяте включена ли вообще индексация идем в меню —> Чтение —> Видимость для поисковых систем и убираем галочку с — «Попросить поисковые системы не индексировать сайт»

    Если у Вас версия блога 3,4 идем в настройки приватности и ищем там. Сохраняем настройки.

    Второе если пользуемся Google XML Sitemap generator да любыми вообще генераторами или Dragon генераторами. не забываем и про virtual robots.txt c которыи тоже могут быть проблемы. Тем более что более 50% используют впримешку All in one SEO pack тоже дает эффект eco/*

    Пишем след функцию в /wp-includes/function.php в папке Вашего блога ищем файл в папке wp-includes/ называется function.php ищем строчки это около 1056:

    ———————————————————————————

    function do_robots() {
    	header( 'Content-Type: text/plain; charset=utf-8' );
    
    	do_action( 'do_robotstxt' );
    
    	$output = "User-agent: *\n";
    	$public = get_option( 'blog_public' );
    	if ( '0' == $public ) {
    		$output .= "Disallow: /\n";
    	} else {
    		$site_url = parse_url( site_url() );
    		$path = ( !empty( $site_url['path'] ) ) ? $site_url['path'] : '';
    		$output .= "Disallow: $path/wp-admin/\n";
    		$output .= "Disallow: $path/wp-includes/\n";
    	}
    
    	echo apply_filters('robots_txt', $output, $public);
    }

    ———————————————————————————
    и меняем оооочень внимательно на
    ———————————————————————————

    function do_robots() {
    	header( 'Content-Type: text/plain; charset=utf-8' );
    
    	do_action( 'do_robotstxt' );
    
    	if ( '0' == get_option( 'blog_public' ) ) {
                         echo  "User-agent: *";
                         echo  "\nDisallow: /wp-admin";
                         echo  "\nDisallow: /wp-includes";
                         echo  "\nDisallow: /wp-content";
                         echo  "\nDisallow: /stylesheets";
                         echo  "\nDisallow: /_db_backups";
                         echo  "\nDisallow: /cgi";
                         echo  "\nDisallow: /store";
                         echo  "\nDisallow: /wp-includes\n";
    	} else {
                         echo  "User-agent: *";
                         echo  "\nDisallow: /wp-admin";
                         echo  "\nDisallow: /wp-includes";
                         echo  "\nDisallow: /wp-content";
                         echo  "\nDisallow: /stylesheets";
                         echo  "\nDisallow: /_db_backups";
                         echo  "\nDisallow: /cgi";
                         echo  "\nDisallow: /store";
                         echo  "\nDisallow: /wp-includes\n";
    	}
    }

    Это нужно для создания hook правила так называемого крючка для robot.txt чтобы избавить себя от лишних проблем с созданием постоянных правил для * robots.txt.

    Это правило и вообще функции актуальны для версии 3,4 если у Вас версия 3,5 проверьте на соответствие

    в версии 3,5 код должен выглядеть так:

    function do_robots() {
    	header( 'Content-Type: text/plain; charset=utf-8' );
    
    	do_action( 'do_robotstxt' );
    
    	$output = "User-agent: *\n";
    	$public = get_option( 'blog_public' );
    	if ( '0' == $public ) {
    		$output .= "Disallow: /\n";
    	} else {
    		$site_url = parse_url( site_url() );
    		$path = ( !empty( $site_url['path'] ) ) ? $site_url['path'] : '';
    		$output .= "Disallow: $path/wp-admin/\n";
    		$output .= "Disallow: $path/wp-includes/\n";
    	}
    
    	echo apply_filters('robots_txt', $output, $public);
    }

    ———————————————————————————

    Затем ручками создаем robot.txt c кодировкой UTF-8

    Пишем внутрь

    User-agent: *

    Disallow: /feed/
    Disallow: /trackback/
    Disallow: /wp-admin/
    Disallow: /wp-content/
    Disallow: /wp-includes/
    Disallow: /xmlrpc.php
    Disallow: /wp-

    Sitemap: http://ваш.домен.ru/sitemap.xml

    Этот robot txt актуален для всех весрий включительно 3.5
    ———————————————————————————

    Сохраняем заливаем. Проверяем на ошибки.

    Все ничего придумывать не надо с Уважением ко вс блогерам Никитос ;)
    Вопросы?

    1. Дмитрий (автор)

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

      1. vovasik

        Вот не совсем понял это:

        Это нужно для создания hook правила так называемого крючка для robot.txt чтобы избавить себя от лишних проблем с созданием постоянных
        правил для * robots.txt.

        Править /wp-includes/function.php то есть по сут хакать ядроо разве правильно что именно это нам дает недопоял почему сразу не перейти к пункту:

        Затем ручками создаем robot.txt c кодировкой UTF-8

        Какие плюсы от правки /wp-includes/function.php ?

  22. Дмитрий (автор)

    Я сам не совсем понял, какой смысл пихать все в functions.php. Но автор комментария так ничего и не ответил)

  23. Волшебник

    Но если у вас нет зеркал сайта, лучше вообще эту директиву не использовать. Смысла нет.

  24. Ehate

    Может кто-то даст определение как заполнять:
    Host: http://www.ehate.ru

    C http:// или без???

    1. Волшебник

      Без. У вас всё правильно в robot.txt

  25. Сергей

    Надо поэкспериментировать.

Добавить комментарий для Екатерина Отменить ответ

Получать новые комментарии по электронной почте.