КрасносельскийКонстантинКонстантинович |
ТаблицейБлоками.Анализ WEB-конъюнктуры: robots.txt, индексация страниц |
Последняя модификация: 10.08.2014 г
Страница загружена с адреса: http://webdesign.site3k.ru/conjuncture/search/webdesig1-2.html
Представление о поисковой машине как о праздношатающемся человеке (предложено Яндексом) или, как о черве, проникающим по ссылкам в самые отдаленные уголки серверов (по аналогии с вирусом-червем, рассылающим себя по найденным почтовым адресам), или как о роботе-пауке, контролирующим малейшие колебания всемирной паутины, имеющие широкое распространение в массах, на самом деле не имеет никакого отношения к действительности. Все это фантастические метафоры, сбивающие новичков с толку.
Поисковая машина это супернасос, со всеми вытекающими отсюда последствиями. Выкачивая из сети миллионы файлов в день, они создают такой трафик и так забивают линии, что администрация серверов, на которые напало это чудовище, начинает вешаться. Единственная причина, по которой на входных линиях не стоят барьеры от этих монстров, заключается в том, что вторжение поисковика практически всегда приводит к увеличению посещаемости сайтов сервера, а увеличение посещаемости это сверхзадача любого сервера, предоставляющего место под сайты (исключением являются некоторые сервера, содержащие сайты, предназначенные для узкого круга лиц, информация в них обычно зашифрована и доступ к ней защищен паролем), ведь наличие сайта бессмысленно, если он не посещается. Возникает двоякая ситуация: с одной стороны, поиск по сайту хуже чумы, с другой, без него и сайт не нужен. Для разрешения этого конфликта и уменьшения ущерба, причиняемого поисковыми машинами, вежливые разработчики этих машин решили согласовывать поиск с пожеланиями владельцев серверов и сайтов, для чего разработали короткую, но предельно ясную спецификацию файла управления поиском robots.txt в котором должны быть указаны области, каталоги, сайты, файлы или группы файлов, не подлежащие скачиванию для индексирования в поисковых системах.
Некоторым разработчикам настолько понравилась идея управления роботами через robots.txt, что они вообще игнорируют сайты, не имеющие таких файлов (поисковая машина Lycos). Хорошо что, известные российские поисковые системы не последовали их примеру, иначе многие сайты, созданные непрофессиональными Веб-дизайнерами, так и остались бы непроиндексированными, а некоторые из них достойны внимания. Но, несмотря на то, что сайты индексируются независимо от наличия файла управления роботами, его наличие все же желательно.
Путь к файлу robots.txt касается всех.
Поисковые машины поддерживают всего три директивы файла robots.txt:
# означает начало комментария. Вся строка, следующая за этим знаком, игнорируется. Данная директива позволяет разработчику оставить себе памятку о том, с какой целью он указал ту, или другую, директиву.
User-agent: указывает робота, которому адресован приведенный в следующих за строкой User-agent блок инструкций. Например, робот поисковой системы Рамблер называется StackRambler и, строка для его указания выглядит как:
User-agent: StackRambler
В одной директиве User-agent можно указать только одного робота (на самом деле, спецификации, с момента создания изменились и, в одной директиве, через пробел можно указывать любое количество роботов, но наши поисковые системы и многие западные, проигнорировали такое нововведение в спецификации и не понимают строк User-agent указывающих на нескольких роботов) и, для указания нескольких роботов, применяется несколько директив User-agent. Однако допускается применение универсального имени * означающего всех роботов, кроме тех, что указаны в других строках. Например:
User-agent: *
Если указание одного и того же робота повторяется в нескольких строках (по ошибке), роботами учитывается только первое, потому что, найдя первое упоминание о себе, роботы прекращают поиск директивы User-agent (спецификация, в таком случае, разрешает роботам произвольно выбирать используемый блок).
disallow: указывает имя или часть имени не индексируемых файлов. Так же, как и директива User-agent, директива disallow: допускает не более одного параметра, поэтому для указания нескольких файлов, требуется употребление нескольких строк disallow. Директивы disallow должны идти в следующей строке после строки User-agent. Пустая строка является окончанием блока параметров для одного робота и началом блока параметров для следующего. Дойдя до пустой строки своего блока, роботы прекращают чтение параметров и начинают индексацию файлов. Поэтому пустые строки недопустимы как внутри блока параметров, так и между этим блоком и предшествующей им строкой с директивой User-agent. Например, блок параметров для Рамблера должен выглядеть так:
Этот блок запретит индексацию файлов путь, к которым начинается с alt, mac и koi. Если же между disallow: /mac и disallow: /koi вставить пустую строку, файлы, имя которых начинается с koi, будут проиндексированы.
Директива disallow не признает шаблонов типа *.CGI, поэтому, чтобы облегчить себе жизнь и не повторять строку тысячи раз, следует собрать все неиндексируемые файлы в один каталог (или несколько каталогов, если так будет удобней) и запретить индексацию всего этого каталога.
Параметр директивы disallow должен указывать относительный путь от корня сайта. Попытка указать абсолютный путь вроде HTTP://MyCite.Host.ru/files.html приведет к результату
disallow: /HTTP://MyCite.Host.ru/HTTP://MyCite.Host.ru/files.html
Этот результат получается в силу того, что путь к корневому каталогу сайта роботами учитывается автоматически (иначе можно было бы запретить индексацию файлов на чужих сайтах).
Корневой каталог сайта обозначается обратным слешем (/). Если по какой-то причине не требуется индексация всего сайта, директива disallow должна указывать на корень:
disallow: /
Директива disallow без слеша ничего не запрещает.
Если не требуется индексация файлов, имя которых начинается с некоторой последовательности символов, в директиве disallow указывается обратный слеш и требуемая последовательность. Например:
disallow: /dir
Запретит индексацию файлов «/dir.html», «/dir/index.html», «/directory.html».
Если требуется указать не начало имени файла или пути к нему, а имя целиком, это имя следует закончить обратным слешем. Например:
Чувствительность к регистру в имени файлов зависит от сервера предоставляющего хостинг. Если сервер регистрочувствительный, то
disallow: /dir.html/
Запретит индексацию файла dir.html, но не файла dir.HTML.
Других директив, robots.txt содержать не может. В частности, нет директив разрешающих индексацию. Иначе владелец сайта мог бы разрешить индексацию файлов, запрещенных к индексации владельцем сервера.
Трудно представить ситуацию, в которой содержателю сайта пришлось бы давать различные инструкции для разных роботов. Поэтому, с учетом изложенного, стандартный файл robots.txt выглядит примерно так:
Где cgi-bin папка с cgi-скриптами, а links папка с различными ссылками. Если же требуется задание различных параметров индексации различным роботам, перед началом блока параметров для следующего робота обязательно наличие пустой строки, определяющей завершение предыдущего блока. Например:
Имена некоторых роботов: Yandex, StackRambler, Aport, Googlebot, Lycos
Для чего robots.txt создателю сайта или пусть наше общежитие будет лучшим
На первый взгляд может показаться что, возня с файлом robots.txt для создателя сайта не имеет смысла, так как наиболее популярные поисковые машины все равно его проиндексируют. Но это только на первый взгляд. Многие файлы, например, файлы, хранящие скрипты, не требуют индексации и, их индексацию лучше запретить, уменьшив, таким образом, время, затрачиваемое роботами на индексацию, и создаваемый ими трафик на сервере, предоставившем место для сайта. В результате, у посетителей увеличится скорость доступа к ресурсам сайта, и они вернутся к нему с большим удовольствием. Если же скорость будет очень низкая, то они вернутся, только если им больше некуда будет деваться.
Кто имеет настолько уникальное и настолько ценное содержание сайта, что посетитель будет пробиваться к нему несмотря не на какие преграды?
К тому же, сайты, подолгу имеющие плохой доступ, исключаются из каталогов-рубрикаторов, вроде каталога Яндекса. А это рушит многие надежды владельцев сайта.
Конечно, десяток файлов одного сайтодержателя не изменят погоды на фоне миллиона других файлов, закачиваемых поисковым роботом, но если об исключении из индексации лишних файлов позаботятся все пользователи хостинга на данном сервере, результат будет ощутимым. Настолько ощутимым, что администрация некоторых серверов предоставляющих хостинг (например, h11.ru) запрещает владельцам сайта помещать скрипты иначе как в каталог cgi-bin и редактировать файл robots.txt, а лиц, уличенных в нарушении этого запрета, лишает права хостинга. Поэтому, файлом robots.txt следует обзавестись и указать в нем файлы и каталоги, не требующие индексации. Не стоит полагаться на мощность серверов любую, даже самую продвинутую, систему можно загадить.
В повышении скорости доступа к файлам сервера каждый должен сделать все от него зависящее, не оглядываясь на остальных. Другие, возможно уже сделали это, или сделают, когда до них дойдет очевидная польза данного действия.
Вторая, гораздо более значимая для владельца сайта причина создать файл robots.txt заключается в механизме, по которому роботы обрабатывают сайты:
Для того чтобы робот начал индексировать страницу, он должен знать о ее существовании. Информацию о существовании страницы, обычно робот получает из ссылок на других страницах. Получив ссылку на какую-то страницу, робот закачивает ее, индексирует, анализирует ссылки и закачивает указанные в них страницы, с тем, чтобы без устали повторять одни и те же операции закачивание, индексация, анализ ссылок. При обнаружении ссылок на страницы другого сайта, робот начинает закачивать страницы и от туда, а там новые ссылки, некоторые из которых могут вести к следующему сайту (именно так зачастую роботы обнаруживают новые сайты). При этом существует вероятность полного переключения робота на другие сайты, и Ваши страницы останутся недоиндексированными (конечно, не навсегда, но, возможно, надолго). Вот тут-то, директива Disallow, запрещающая индексацию страниц с многочисленными ссылками на другие сайты, была бы очень кстати.
META ROBOTS
На случай, если пользователь не имеет права корректировать файл robots.txt, да и просто, на всякий случай (перемещение файла из каталога в каталог, с забыванием отметить это в robots.txt, размещение файла на другом, возможно чужом, сайте и т. д.), в HTML-файлы не подлежащие индексации стоит внести теги «META» с именем «ROBOTS», где указать допустимые параметры работы с файлом.
NOINDEX - запрещает индексирование документа;
NOFOLLOW - запрещает проход по ссылкам, имеющимся в документе;
INDEX - разрешает индексирование документа;
FOLLOW - разрешает проход по ссылкам, имеющимся в документе.
ALL разрешает как индексирование документа, так и проход по ссылкам (равносильно INDEX, FOLLOW)
NONE запрещает индексирование и проход по ссылкам (равносильно NOINDEX, NOFOLLOW)
Регистр значения не имеет.
Если META name="ROBOTS" в документе не указан и в файле robots.txt не запрещена его индексация, файл индексируется, и проход по ссылкам происходит, что равносильно
<META name="ROBOTS" content="index, follow">
или
<META name="ROBOTS" content="all">
Если же такое положение вещей автора страницы не устраивает, ему следует включить META name="ROBOTS" между тегами «Head» и «/Head» страницы, указав, какая обработка ему нужна. Например:
<META name="ROBOTS" content="index, nofollow">
Индексировать все, по ссылкам не переходить.
Строка
<META name="ROBOTS" content="none">
очень близка по смыслу запрету индексации в файле robots.txt, но, все же, не совсем то же самое. Обнаружив запрет на индексацию файла в robots.txt, поисковая машина не станет его скачивать и, тем самым, немного облегчит доступ посетителей. Если же запрет индексации находится на самой странице, то машина сначала ее скачает, наработав трафик, а только затем поймет что, сделала это понапрасну. Поэтому, запрет на индексацию страниц следует помещать в саму страницу не вместо директив robots.txt, а придачу к ним.
При обнаружении в теге противоречивых инструкций (включенных по ошибке, принимаются разрешающие). Например:
<META name="ROBOTS" content="index, nofollow, follow">
Равносильно
<META name="ROBOTS" content="index, follow">
Запрет индексации фрагмента файла
Во многих случаях HTML-документы содержат как ссылки на чужие ресурсы, так и ссылки на свои. Переход роботов на свои ресурсы, обычно, желателен, а на чужие, зачастую, нет. META name="ROBOTS" в таких ситуациях не пригоден, поскольку управляет переходом по всем ссылкам файла. Теги <NOINDEX> и </NOINDEX>, вставляемые вовнутрь документа дают более гибкий механизм управления роботами, запрещая индексацию части документа заключенной между ними. Однако не стоит им доверять полностью. Это нестандартный способ управления роботами, поддерживаемый не всем поисковыми системами. Доподлинно известно что, их учитывают Рамблер и Яндекс.
Стратегия управления
Как уже говорилось, скачивая одну из страниц сайта, робот индексирует ее и собирает ссылки для следующей закачки. При этом он закачивает только те страницы, ссылки на которые находит. Если на какую-то из страниц нет ссылок, то она не будет замечена и проиндексирована, в частности, не будут найдены страницы, переход на которые организован с помощью скриптов, а некоторыми роботами и страницы со случайно генерируемыми адресами (Google индексирует только первый уровень таких ссылок). Это, означает, что на все страницы требующие индексации, должны указывать нормальные гиперссылки. А там, где по каким-то причинам требуется замена ссылок скриптами, следует их продублировать гиперссылками. Страницы с фреймами, вопреки широко распространенному мнению, нормально индексируются поисковыми машинами. Конечно, непонимание фреймов поисковыми роботами имело место в 87 году, когда фреймы ввели в HTML, а поисковые машины еще не успели к ним адаптировать. Но с тех пор прошло много времени и поисковые машины давно научены работать с фреймами, хотя это и происходит с задержкой, поскольку сначала скачивается страница фреймов, затем определяются и скачиваются ее компоненты и, только после обнаружения в них ссылок, роботы начинают индексировать остальной сайт. Для предотвращения временных задержек, внутри элемента <frameset>, между тегами <noframes> и </noframes> можно поставить ссылки на все основные страницы сайта, и сайты основанные на фреймах проиндексируются так же быстро, как и любые другие. Кроме того, эти ссылки позволят просмотреть сайт посетителям, использующим неграфические обозреватели (распространенные, например, в Unix) или устаревшие графические, не поддерживающие фреймов.
При сложной структуре сайта и глубокой вложенности его страниц существует вероятность что, поисковый робот, прослеживая одну из ссылочных ветвей в глубь сайта, оставит без внимания какую-то другую ветвь, и она надолго останется непроиндексированной. Во избежание такого казуса, страницы сайта должны почаще ссылаться друг на друга. В документах, представляющих собой отдельные главы, следует вставить гиперссылки перехода на следующую и предыдущую главу. На каждой странице полезно добавить ссылку для возвращения к началу раздела и сайта. Там, где это возможно, следует перекидывать мостики гиперссылок между разделами.
Чтобы робот не переключился на индексацию другого сайта, найдя на него ссылку на вашем сайте, следует запретить индексацию страницы в файле robots.txt или, если индексация желательна, указать в тегах страницы, предназначенных для роботов, параметр «nofollow». Если же по некоторым ссылкам страницы все же следует переходить, то тут возможны несколько вариантов решения:
Организация ссылок сайта указанным образом вынуждает поисковую машину проиндексировать его целиком и не выпускает до тех пор, пока индексация не закончится.
Не запрещайте индексацию страниц, на которых есть ссылки, указывающие на сайты, с которыми вы обмениваетесь ссылками! Подняв их рейтинг, вы поднимите вес их ссылок на вас.