Понедельник, 09 апреля 2012 07:02

Технический SEO-аудит клиентского сайта

Проголосуйте
(0 votes)

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

1. JavaScript

Проверяем, содержит ли сайт JavaScript-ссылки.

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

Как обнаружить JavaScript- ссылки? Если навести курсор на такую ссылку, то в статус-баре (это строка состояния, строчка в нижней части окна) либо ничего не отобразится, либо появится что-то типа «javascript:;». В коде это может выглядеть таким образом: <A href=”javascript:;”>, либо что-то вида onClick (…). Также возможна такая конструкция: «document.write (<A href=http://www.domain.ru>Link</A>)».

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

Также можно рекомендовать скорректировать JavaScript-код: пункты меню оформляются в контейнеры <DIV>, которым при помощи CSS приписывается свойство display: none;. Соответственно меню помещается в этот <DIV> и при наведении мыши происходит событие onMouseOver, которое вызывает функцию отображения меню (более подробно см. шаблон по оптимизации).

Исключения: кнопки «назад», кнопки для голосования, кнопки «заказать», ссылки на страницы, содержащие только изображения.

2. Динамические ссылки

Проверяем, содержит ли сайт динамические ссылки.

Динамические ссылки – любые ссылки содержащие символы ? или &, например: http://www.domain.ru/?action=search&type=property&property=94041&force_cache=1. Причем расширение файла не имеет значения, т.е. ссылка http://www.domain.com/search.php — статичная, а например http://www.domain.ru/index.html/?action=show&fuck=yes – динамическая.

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

Решение: для сервера IIS нужны специальные программы. Для сервера Apache нужно подключить модуль Mod_rewrite и в файле настроек сервера прописать правила замены динамических ссылок на статические. Для любого сервера нужно составить таблицу соответствия старых (динамических) и новых (статических) ссылок, причем в этой таблице должны быть отражены все типы динамических ссылок, присутствующих на сайте. Кроме того, после замены динамически ссылок статическими нужно настроить сервер так, чтобы при запросе старой динамической ссылки выдавался ответ 301 Moved Permanently с полем Location, содержащим новый статический URL страницы.

Пример:

Старая ссылка Новая ссылка
http://www.domain.ru/shop/index.php?id_group=N&show=K http://www.domain.ru/shop/N/K.html
http://www.domain.ru/news/?id=N http://www.domain.ru/news/N.html
http://www.domain.ru/articles/?id=N http://www.domain.ru/articles/N.html
http://www.domain.ru/shop/index.php?action=show_info&id_goods=N http://www.domain.ru/shop/show_info/N.html
http://www.domain.ru/shop/index.php?action=firm_info&firm_id=N http://www.domain.ru/shop/firm_info/N.html
Примечание:  
N,K — численные константы, должны соответствовать в старой и в новой ссылке

Настройка правил замены сервера Apache (http://www.apache.org) делается через настройку модуля Mod_Rewrite:

RewriteEngine on
RewriteRule ^/shop/([0-9]+)/([0-9]+).html /shop/index.php?id_group=$1&show=$2 [PT]

RewriteRule ^/news/([0-9]+).html / [PT]

RewriteRule ^/articles/([0-9]+).html /articles/?id=$1 [PT]

RewriteRule ^/shop/show_info/([0-9]+).html /shop/index.php?action=show_info&id_goods=$1 [PT]

RewriteRule ^/shop/firm_info/([0-9]+).html /shop/index.php?action=firm_info&firm_id=$1 [PT]

3. Переадресация на статические страницы

Необходимо, чтобы в поисковых системах были проиндексированы только статические адреса страниц. Для этого необходимо, чтобы при запросе старых динамических URLs сервер осуществлял 301-й редирект на новые статические адреса.

Причина: см. выше пункт «Динамические ссылки».

Решение: для сервера Apache для каждой динамической ссылки составляется правило переадресации на её статический адрес (при помощи шаблонов регулярных выражений). Для сервера Microsoft-IIS составляются аналогичные правила.

Таким образом, при запросе любого старого динамического URL, например http://www.domain.ru/index.php?page=about сервер будет осуществлять переадресацию с 301-м статусным кодом на страницу http://www.domain.ru/about (например). Соответственно с течением времени в поисковых системах будут проиндексированы только статические адреса страниц.

4. Переадресация с главной страницы

Необходимо, чтобы при запросе URLs вида http://www.domain.ru/index.php, http://www.domain.ru/index.html и пр. сервер осуществлял переадресацию с 301-м статусным кодом на http://www.domain.ru.

Причина: возможны ситуации, когда главная страница в поисковой системе Яндекс проиндексирована по двум адресам: http://www.domain.ru и http://www.domain.ru/index.php (например). Таким образом, происходит некорректное распределение веса на главной странице. Появление подобных страниц в индексе может быть связано с действиями конкурентов, направленными на пессимизацию ресурса.

Решение: для сервера Apache создаются правила переадресации от всех возможных некорректных запросов главной страницы. При этом необходимо учесть, что для сохранения работоспособности сайта главная страница должна быть переименована и в конфигурационном файла сервера Apache внесены соответствующие изменения в директиве DirectoryIndex.

Для сервера Microsoft-IIS производятся аналогичные настройки сервера.

5. Запрет индексации динамических страниц

Необходимо, чтобы при запросе URLs вида, например, http://www.domain.ru/?id=156 сервер осуществлял переадресацию с 301-м статусным кодом на http://www.domain.ru.

Причина: возможны ситуации, когда главная страница в поисковой системе Яндекс проиндексирована по двум адресам: http://www.domain.ru и http://www.domain.ru/?id=156 (например). Таким образом, происходит некорректное распределение веса на главной странице. Появление подобных страниц в индексе может быть связано с действиями конкурентов, направленными на пессимизацию ресурса.

Решение: для сервера Apache создаются правила переадресации от всех возможных некорректных запросов от корневой директории сервера.

Для сервера Microsoft-IIS производятся аналогичные настройки сервера.

6. Дата модификации документа и заголовок If-Modified-Since

Необходимо проверить, правильно ли сервер выдает дату последней модификации документа.

Причина: поисковик, заходя на сайт, за один раз индексирует определенное кол-во документов и запоминает их дату изменения. Если при следующем заходе поисковика на сайт, дата изменения проиндексированных документов не менялась, то поисковый робот собирает следующую «порцию» документов, и т.д. до полной индексации сайта. Если же документ изменился со времени последнего захода поисковика, поисковик проиндексирует его заново. Если же кол-во таких «измененных»документов превышает кол-во страниц, которые поисковик индексирует за 1 раз, то робот опять индексирует те же самые документы и т.п., т.е. сайт может быть НЕ проиндексирован до конца, если дата последних изменений неверна.

Как проверять заголовок Last- Modified: при запросе страницы (а не картинки, или какого-либо другого файла, например, robots.txt), должно выдаваться, например Last-Modified: Tue, 29 Aug 2006 15:12:42 GMT. Данная дата может совпадать с текущим временем сервера (полем Date), либо отличаться от него на некоторую фиксированную величину (например, на 1 секунду или 10 минут) – это неправильно!

Как проверять заголовок If- Modified- Since: при запросе «If Modified Since <текущее время минус один час>» и при условии, что запрашиваемая страница не менялась за последний час, сервер должен выдавать: HTTP/1.1 304 Not Modified.

7. Сжатие документов

Желательно, чтобы на сервере было установлено сжатие документов (для ускорения загрузки страниц).

Как проверять: при запросе «Accept-encoding: gzip» сервер должен выдавать ответ: Content-Encoding: gzip. Возможно также ситуация, когда сервер постоянно отдаёт контент сжатым gzip. Это может привести к тому, что некоторые поисковые роботы не смогут корректно проиндексировать сайт. Контент должен отдаваться сжатым gzip только при запросе заголовка «Accept-encoding: gzip».

8. Кодировка документа

Сервер должен правильно выдавать кодировку документа. Необходимо проверять на соответствие, какая кодировка отдаётся в заголовках сервера и в какой кодировке представлены страницы.

Причина: неправильная отдача заголовка кодировки документа может привести к некорректной индексации сайта поисковыми системами.

Как проверять: при запросе страницы сервер должен отдавать заголовок кодировки документа Content-Type: text/html; charset=windows-1251, если страницы закодированы именно в этой кодировке, или любую другую, например, Content-Type: text/html; charset=utf-8. Однако при этом нельзя забыть о проверке на соответствие.

9. Кэширование изображений

Для ускорения загрузки страниц рекомендуется кэшировать картинки на три месяца.

Как проверять: при запросе изображений необходимо, чтобы сервер отдавал заголовок Cache- Control: max-age=7776000.

Для более быстрой работы сайта с модемными соединениями (в 4-5 раз) желательно включить кэширование картинок хотя бы на 3 месяца. Это можно сделать путем активации и настройки стандартного модуля:

LoadModule expires_module libexec/mod_expires.so
AddModule mod_expires.c 

ExpiresActive On

ExpiresByType image/gif «access plus 3 month»

ExpiresByType image/jpeg «access plus 3 month»

10. Ошибка 404

При запросе заведомо несуществующей страницы сервер должен отдавать статусный код HTTP/1.1 404 Not Found.

Причина: чтобы робот не индексировал (исключал из базы) несуществующие страницы (например, при изменении структуры сайта, удалении/перемещении страниц и т.п.).

Как проверять: ввести строки типа http://www.domain.ru/qwerty.php, http://www.domain.ru/qwerty/. Если запрос обрабатывается корректно, сервер должен отдавать статусный код 404 Not Found.

11. Google Cache и Яндекс Cache

Должен отсутствовать клоакинг (подделывание страницы). Это «черный метод» оптимизации. Выдает браузеру пользователя «нормальную» страницу, а поисковику – страницу, например, с высокой релевантностью по запросам.

Причина: может привести к бану (запрету к индексации) сайта.

Как проверять: в форму поиска Google ввести URL сайта. Затем нажать по ссылке «Сохранено в кэше». Если страницы, выданные в Google и в браузере, совпадают – все нормально. В противном случае – это клоакинг.

Для Яндекса проверять аналогично.

12. Фреймы

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

Причина: фреймы очень плохо индексируются.

Как проверять: если при скроллинге какая-то часть страницы остается неизменной – это фрейм. Либо в меню «Вид» -> «Просмотр HTML-кода» искать «Frame». Также нужно проверить в коде страницы наличие тегов <IFRAME>. Следует учитывать, что скроллинг может также возникать при использовании тега <DIV> — в таком случае это не приравнивается к фреймам.

13. Кодирование UNICODE

В том случае, если страница целиком не кодируется в UNICODE, текст сайта должен быть в нормальной кодировке, и не заменен символами в HTML-кодах типа &#454. Это не относится к кодированию спец-символов.

Причина: браузеры нормально распознают Юникод, однако могут возникать сложности в распознавании HTML-кодов для поисковых роботов (для них это не является текстом).

Как проверять: в HTML-коде страницы искать символы &#. Значение имеют большие блоки текста, набранные в Юникод. Если, например, кодировка страницы windows-1251, но в тексте страницы встречаются закодированные блоки символов вида &#141 – то это HTML-коды в UNICODE.

Однако можно допускать использование UNICODE для кодирования выборочных спецсимволов.

14. Элементы МЕТА-информации

На сайте не должно содержаться ненужных (лишних) элементов МЕТА-информации.

Причина: лишние элементы МЕТА-информации зачастую представляют собой большие куски текста, невидимые (не значимые) для людей и игнорируемые поисковыми системами. В общем случае, это как минимум увеличивает размер страницы.

Решение: необходимо перечислить все лишние элементы МЕТА-информации. В общем случае на сайте допустимо использование трёх элементов МЕТА-информации: <META name="description">, <META name="keywords"> и информация о кодировке <META http-equiv="content-type" content="text/html;>.

15. Теги <MAP>

На сайте не должно быть ссылок с изображений-карт (либо они должны быть дублированы). Рекомендуется также разбивать изображения-карты на несколько обычных картинок ссылок.

Причина: изображения-карты не индексируются.

Как проверять: в коде страницы искать «map».

16. Flash-ссылки

На сайте не должно быть Flash-ссылок (или они должны быть дублированы текстовыми ссылками или ссылками с картинок).

Причина: Flash-ссылки плохо индексируются или не индексируются вообще.

Как проверять: либо в коде страницы искать “swf” (Shockwave-Flash), либо при нажатии правой кнопкой на картинку отображается меню с пунктом типа «About Macromedia Flash Player». При наведении курсора на Flash-ссылку в строке состояния (статус-баре браузера) ничего не отображается.

17. Зеркала и неосновные хосты

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

Причина: некорректная индексация поисковиками зеркал, индексация ненужного зеркала (например, если ссылки идут на хост www.domain.ru, а проиндексирован domain.ru (без www)).

Как проверять: http://webmaster.yandex.ru/ — вводим основной адрес сайта. Если выдается «сайт проиндексирован и доступен для поиска» — все нормально. Если выдается «данный сайт не индексируется, т.к. является зеркалом сайта http://www.domain.ru/» — это проблема. Если выдается сообщение типа «спасибо, сайт добавлен» — необходимо указывать это в письме.

Для устранения данной проблемы необходимо в корневой директории сервера (DOCUMENT_ROOT) разместить файл robots.txt следующего содержания:

User-agent: Yandex
Host: www.domain.ru

User-agent: *
В директиве Host необходимо указать адрес основного ресурса, который определяется в п.1 базового SEO-аудита.

Также необходимо, чтобы при запросе любых неосновных хостов ресурса (например, domain.ru без префикса www) выдавался ответ 301 Moved Permanently с полем Location, содержащим адрес основного хоста (т.е. чтобы все ссылки, ранее ссылавшиеся на неосновной хост, переадресовывались на основной хост). Нужно внимательно смотреть, какой хост выбран за основной – с www или без www.

Как проверять: в адресной строке браузера ввести http://www.domain.ru/robots.txt — должен отобразиться текстовый файл.

18. Редирект

На сайте не должно быть редиректа с использованием статусного кода 302 Moved Temporarily, а также с использованием МЕТА-тега и JavaScript.

Причина: это может считаться поисковым спамом и привести к запрету индексации сайта.

Как проверять: редирект с 302-м статусным кодом для проблемной страницы можно проверить утилитами анализа заголовков сервера (см. п.1 «Примечаний» выше). Редирект, реализованный при помощи МЕТА-тега и JavaScript необходимо искать в коде или визуально в поведении браузера.

19. Сессии

Сайт не должен использовать сессии в строке браузера (используются сайтами для удобства пользователей – вместо них лучше использовать Cookies).

Причина: некорректно индексируются поисковиками.

Как проверять: в адресной строке браузера при первом заходе на страницу отображается что-то похожее на http://www.domain.ru/index.php?action=buy&PHPSESSIONID=34353475345.

20. Совместимость с другими браузерами

В общем случае сайт должен корректно отображаться во всех основных браузерах: Microsoft Explorer, Mozilla FireFox, Opera.

Причина: некорректное отображение сайта может привести к потере клиентов.

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

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