В докладе рассказывается о тех мелочах, на которые зачастую не обращают внимания ни разработчики ни посетители сайта, но что не ускользает от внимания поисковых роботов. Они не кричат о себе на главной странице, но пренебрежение ими может существено затруднить продвижение, а любому специалисту скажет о тщательности проработки сайтов столь же красноречиво, как изнанка о качестве рубашки. Будут рассмотрены наиболее часто встречающиеся, и наиболее часто влиющие на корректную индексацию поисковиками и мнение посетителей упущения в настройке технических параметров сайта. Так же будут рассмотрены способы их приведения к допустимым значениям.
Вряд ли найдётся желающий оспорить утверждение, что сайт бесполезен, если его никто не посещает. Так же обычно не подвергается сомнению тот факт, что основной приток посетителей дают поисковые системы. Но почему-то остаются сомнения в том, что вкусы и привычки поисковиков несколько отличаются от посетительских. По крайней мере на эту мысль наводит анализ потока приходящих на продвижение сайтов, редкий из которых не имеет хотя бы небольших отклонений технических параметров от допустимых. А это именно та одёжка, по которой поисковик встречает сайт, прежде чем начать разбираться с его содержимым.
Http-протокол — своеобразный язык, который без специальных средств не станет виден посетителю, но именно в организации общения на этом языке таятся, как правило, самые грубые ошибки, порой сводящие к нулю все усилия по продвижению. Ниже будут рассмотрены наиболее вопиющие и чаще всего встречающиеся, а так же способы их устранения.
Другой класс погрешностей не оказывает существенного влияния на индексацию поисковиками, но оказывает влияние на мнение посетителей о добротности исполнения сайта и даже несёт потенциальную угрозу безопасности.
Наиболее часто встречающаяся и наиболее грубая ошибка. Заключается в том, что несуществующие документы ведут себя с точки зрения http-протокола как полноценные, несушие полезную информацию страницы. Чаще всего имеет место на сайтах, генерирующих контент динамически. По умолчанию php-скрипт, вне зависимости от выдаваемого содержимого (не важно сообщение это о том, что страница не найдена или полезный текст) отдаёт код 200. Вывод нужного заголовка осуществляется следующей строчкой скрипта:
header("HTTP/1.x 404 Not Found");
Поисковику важно знать, когда в последний раз изменялась индексируемая страница, и самый простой и надежный способ получить эту дату — из передаваемых http-заголовков. Вот только эти заголовки не всегда указываются. В случае со статическими страницами таких проблем нет. Web-сервер сам сгенерирует нужный заголовок, опираясь на дату последнего изменения файла. Для скриптов он этого не делает, так как дата последней правки скрипта никак не связана со свежестью отдаваемого контента. Поэтому его нужно сформировать самостоятельно. Самое простое, что можно в данном случае сделать - выдавать в этом заголовке текущую дату/время.
header("Last-Modefied: ".gmdate("D, d M Y 17:12:51", mktime())." GMT");
Так же можно имитировать изменение контента раз в определённый период, например, раз в $sec секунд:
header("Last-Modefied: ".gmdate("D, d M Y 17:12:51",
floor(mktime()/$sec)*$sec )." GMT");
Данная ошибка приводит к нарушению принципа «один URL - один документ». Из за некорректных настроек web-сервера ID сессий могут передаваться не через cookie, а путём добавления в ссылки. В результате получается, что одна и та же страница известна разным посетителям под разными URL.
Как известно, ID сессии может передаваться через cookie, через строку запроса, через то и другое, или только через cookie. Для определения как именно это делается в настроечном файле php.ini есть 3 параметра
Некоторые ключи php.ini могут быть установлены через .htaccess, в том числе и эти. Для того, чтобы передача ID сессии происходила только через cookie, и не фигурировал в строке запроса достаточно добавить в .htaccess следующие строчки:
php_flag session.use_cookies On php_flag session.use_only_cookies On php_value session.use_trans_sid 0
Кодировку страницы указывают в meta-тегах, но иногда кодировка, указанная в http-заголовках, отличается от неё. Бывают и более забавные случаи, когда кодировка в http-заголовках одна, в meta-тегах другая, а сам сайт исполнен в третьей. Но лучше не напрягать роботов и браузеры решением таких головоломок.
Наиболее часто используемыми являются кодировки
причин, кодировка html страниц
Drupal, для которых она явлеятся основной;
Все остальные встречаются очень редко.
Итак, для того, чтобы не было никаких разночтений по поводу кодировки html-страниц требуется:
писать html-код в целевой кодировке;
указывать целевую кодировку в meta-теге
<meta http-equiv=«Content-Type» content=«text/html; charset=utf-8»/> указывать целевую кодировку в http-заголовках одним из двух способов:
в коде скрипла для отдельных страниц
header("Content-Type: text/html; charset=windows-1251");
в .htaccess
AddDefaultCharset windows-1251
Желательно, чтобы все страницы сайта имели унификацию в плане используемого имени домена. Либо с www, либо без. Нарушителей - принудительно пересылать на аналогичную страницу, но уже с правильным доменом.
Это, как и выставление кодировки тоже можно организавать программно, в скриптах, но более правильно и менее затратно настроить это в .htaccess, используя модуль apache mod_rewrite
RewriteCond %{HTTP_HOST} !^www.*
RewriteRule (.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
Зачастую можно наблюдать, как содержимое каталогов на сервере, при отсутствии индексного файла выводится в браузер, позволяя любому желающему полюбоваться на состав и названия находящихся там файлов. Помимо всего прочего, это может создавать определённую угрозу безопасности сайта. Это устраняется добавлением в .htaccess строчки
Options -Indexes
Нами были рассмотрены типичные ошибки, совершаемые при разработке и поддержке сайтов, продвигаемых в поисковых системах, а также способы их исправления. В принципе, ни один из представленных пунктов не представляет из себя чего-то нового или неизвестного. Но! Собранные вместе на основании опыта работы с сотнями сайтов, они позволяют сформировать общие рекомендации и избежать повторения типичных ошибок при настройке технических параметров сайта, влияющих на продвижение.