Важные мелочи при настройке технических параметров сайта

Аннотация

В докладе рассказывается о тех мелочах, на которые зачастую не обращают внимания ни разработчики ни посетители сайта, но что не ускользает от внимания поисковых роботов. Они не кричат о себе на главной странице, но пренебрежение ими может существено затруднить продвижение, а любому специалисту скажет о тщательности проработки сайтов столь же красноречиво, как изнанка о качестве рубашки. Будут рассмотрены наиболее часто встречающиеся, и наиболее часто влиющие на корректную индексацию поисковиками и мнение посетителей упущения в настройке технических параметров сайта. Так же будут рассмотрены способы их приведения к допустимым значениям.

Введение

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

Http-протокол, как язык общения между поисковым роботом и сайтом

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

Человеческий фактор

Другой класс погрешностей не оказывает существенного влияния на индексацию поисковиками, но оказывает влияние на мнение посетителей о добротности исполнения сайта и даже несёт потенциальную угрозу безопасности.

Основные технические параметры

Корректная обработка 404-й ошибки

Наиболее часто встречающаяся и наиболее грубая ошибка. Заключается в том, что несуществующие документы ведут себя с точки зрения 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");

ID сессии в URL страниц

Данная ошибка приводит к нарушению принципа «один URL — один документ». Из за некорректных настроек web-сервера ID сессий могут передаваться не через cookie, а путём добавления в ссылки. В результате получается, что одна и та же страница известна разным посетителям под разными URL.

Как известно, ID сессии может передаваться через cookie, через строку запроса, через то и другое, или только через cookie. Для определения как именно это делается в настроечном файле php.ini есть 3 параметра

  1. session.use_cookies — указывает на то, что для передачи ID сессии необходимо использовать cookie.
  2. session.use_only_cookies — указывает на то, что ID сессии передаётся только через cookie, всё остальное игнорируется
  3. session.use_trans_sid — указывает на то, что ID сессии передаётся через строку запроса. Если этот ключ установлен в 1, то при выводе страницы к ссылкам будет добавлена конструкция вида PHPSESSID=81dc9bdb52d04dc20036dbd8313ed055.

Некоторые ключи 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-тегах другая, а сам сайт исполнен в третьей. Но лучше не напрягать роботов и браузеры решением таких головоломок.

Наиболее часто используемыми являются кодировки

  • windows-1251. Часто её ошибочно указывают как cp1251, путая с её обозначением в MySQL. Наиболее распространённая, в силу исторических

причин, кодировка html страниц

  • UTF-8. Ещё одна популярная кодировка, наспространение которой в последнее время связано с применением CMS общего назначения, таких как

Drupal, для которых она явлеятся основной;

  • koi8-r. Её уже можно отнести к разряду экзотики, но тем не менее, сайты в ней ещё попадаются.

Все остальные встречаются очень редко.

Итак, для того, чтобы не было никаких разночтений по поводу кодировки 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 и обратно.

Желательно, чтобы все страницы сайта имели унификацию в плане используемого имени домена. Либо с www, либо без. Нарушителей — принудительно пересылать на аналогичную страницу, но уже с правильным доменом.

Это, как и выставление кодировки тоже можно организавать программно, в скриптах, но более правильно и менее затратно настроить это в .htaccess, используя модуль apache mod_rewrite

  RewriteCond %{HTTP_HOST} !^www.*
  RewriteRule (.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]

Содержимое каталогов

Зачастую можно наблюдать, как содержимое каталогов на сервере, при отсутствии индексного файла выводится в браузер, позволяя любому желающему полюбоваться на состав и названия находящихся там файлов. Помимо всего прочего, это может создавать определённую угрозу безопасности сайта. Это устраняется добавлением в .htaccess строчки

  Options -Indexes

Заключение

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


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