Дизайн сайтовЮзабилитиВерстка сайтовВходящий маркетингКонверсия сайтовПоисковые системыКонтекстная рекламаИнформационные технологииНовости E-Planet
07 апреля 2016

Технический подход к SEO (Часть 2)

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

  1. Какой основной домен выбрать (с www и без);
    1. Мы определились, что выбирая между HTTPS и HTTP, стоит отдать предпочтение первому;
    2. Насколько важна высокая скорость загрузки и как этого добиться;
    3. Корректные мета-теги: title и description;
    4. Семантическая разметка страниц;
    5. Необходимость исключения дублирования контента;
    6. Как должны выглядеть ваши URLs и почему.

А теперь продолжим обзор.

Отзывчивый дизайн

Отзывчивые сайты получают значительно лучшие рейтинги в выдаче на мобильных устройствах. Одним из ключевых технических аспектов отзывчивого сайта является наличие в head следующего кода:

<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">

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

Robots.txt

Robots.txt представляет собой инструкцию по анализу вашего сайта для поискового робота. Обычно если все страницы открыты для индексирования, он выглядит следующим образом:

User-agent: *
Disallow:

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

User-agent: *
Disallow: /search
Allow: /search/about
Disallow: /sdch
Disallow: /groups

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

Sitemap.xml

Sitemap это структурированный набор данных в формате XML, в котором перечислены все страницы сайта и указано время их последнего обновления. Большинство CMS создадут его за вас, а если вы имеете дело с сайтом, написанным без использования систем управления контентом, вы можете использовать сторонние модули.

Если у вас статичный сайт вы можете использовать простой python-скрипт:

$ /bin/python sitemap_gen.py --config=config.xml

Для того чтобы настроить его на работу с вашим сайтом вам достаточно внести небольшие изменения:

$ cat config.xml
<site
  base_url=\"https://site.ru\"
  store_into=\"/path/to/htdocs/sitemap.xml.gz\"
  verbose=\"0\"
>
<directory
  path=\"/path/to/htdocs/\"
  url=\"https:// site.ru \"
  default_file=\"index.php\"
/>

Вы указываете, какую именно папку индексировать, адрес сайта, название и расположение готового файла.

Инструменты вебмастеров

Каждый сайт должен быть добавлен к Google’s Webmaster Tools и Яндекс.Вебмастер. Это поможет вам увидеть реальное состояние продвижения сайта и обнаружить проблемы, которые возникли при парсинге вашего ресурса поисковым ботами. Также вы можете явно указать файл Sitemap.xml и проверить, какие страницы и разделы будут индексированы, а какие нет.

Конечно, добавление Sitemap.xml не дает гарантии, что поисковики проиндексируют весь сайт, но вы получите четкое представление о том, насколько реальное положение дел отличается от ваших предположений.

Twitter

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

Использование карточек не потребует значительных затрат сил, но принесет довольно неплохой результат. Достаточно добавить несколько тегов в head вашего сайта:

<meta name=\"twitter:card\" content=\"summary\" />
<meta name=\"twitter:title\" content=\"[openssl-announce] OpenSSL Security Advisory\" />
<meta name=\"twitter:description\" content=\"Public mailing list archive for [openssl-announce] OpenSSL Security Advisory\" />
<meta name=\"twitter:image\" content=\"https://site.ru/assets/social_logo.png\" />
<meta name=\"twitter:creator\" content=\"@twit_logo\" />
<meta name=\"twitter:site\" content=\"@ twit_logo\" />

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

Facebook

Facebook подключается приблизительно с той же целью, что и Twitter

<meta property=\"og:url\" content=\"https://site.ru/openssl-announce/2016-03/msg00002.php\" />
<meta property=\"og:type\" content=\"article\" />
<meta property=\"og:title\" content=\"[openssl-announce] OpenSSL Security Advisory\" />
<meta property=\"og:description\" content=\"Public mailing list archive for [openssl-announce] OpenSSL Security Advisory.\" />
<meta property=\"og:site_name\" content=\"short description\" />
<meta property=\"og:image\"  content=\"https://site.ru/assets/social_logo.png\" />

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

Мета-теги для индексирования

Даже если какая-то страница закрыта от анализа для поисковиков с помощью robots.txt, поисковики все еще могут ее индексировать. Вы можете внести окончательную ясность, используя мета-теги, четко указывающие поисковику, что эту страницу нужно или не нужно индексировать:

<meta name=\"robots\" content=\"index, follow\">
<meta name=\"robots\" content=\"noindex, follow\">

Исключение ошибки 404

Вообще-то вам стоит избегать мертвых страниц или битых ссылок, но если речь идет о сайте, которому несколько лет, вы практически гарантировано получите несколько 404 ошибок.

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

$ wget --spider -r -p http://www.site.ru 2>&1 | grep -B 2 ' 404 '
--2016-03-09 22:08:14--  https://www.site.ru/three-tiers-package-managers/
Reusing existing connection to www.site.ru:443.
HTTP request sent, awaiting response... 404 Not Found

Проверка сайта на любые HTTP состояния, отличные от 200

В идеале проверка состояний на вашем сайте не должна давать результатов, отличных от HTTP/200. Вы можете проверить это очень просто:

$ wget --spider -r -o ~/crawl_results.log -p http://www.site.ru 2>&1

Результат выведется в файл crawl_results.log и будет выглядеть следующим образом:

$ cat  ~/crawl_results.log
...
--2016-03-09 22:13:16--  https://www. site.ru/
Reusing existing connection to www.cronweekly.com:443.
HTTP request sent, awaiting response... 200 OK
2016-03-09 22:13:16 (114 MB/s) - 'www.cronweekly.com/index.html' saved [17960]

Геолокация по вашему IP

Если вы планируете работать на российскую аудиторию, ваш сайт должен иметь хостинг в России. Система WHOIS определяет ваше расположение, основываясь на IP вашего сайта. Для поисковиков результаты местных запросов также основываются именно на этих данных. Поэтому, если вы ориентированы на Россию, обратитесь к отечественному хостингу, если на Японию к японскому и т.д.

Если вы планируете охватить несколько регионов, вам придется позаботиться о деталях:

  • CDN, который создаст зеркала вашего сайта;
    • Установка собственного прокси-сервера на нескольких языках и перенаправление запросов на соответствующий сервер.

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

Обслуживание сайта: ошибка 503

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

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /maintenance.html [R=503,L]
ErrorDocument 503 /maintenance.html
# Make sure no one caches this page
Header Set Cache-Control \"max-age=0, no-store\"

Все запросы будут перенаправлены на страницу /maintenance.html.

По материалам ma.ttias.be