Тестируем SEO: долго, дорого, а вообще нужно ли?

Всем привет!

Меня зовут Гребенюк Гузель, я QA-руководитель группы тестирования в АЭРО. Мы занимаемся разработкой eCommerce- и data-решений для крупного бизнеса.

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

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

SEO —  «search engine optimization»  дословно в переводе означает «поисковая оптимизация».
Если кратко SEO — это набор стратегий и методов для улучшения видимости сайта в поисковой выдаче

b09bc38925b8a6e0965a38eae5285753.gif

Начнем с того почему и кому важно?

Рассмотрим в первую очередь участников процесса ИТ и Бизнес

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

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

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

SEO влияет непосредственно на многие важные бизнес показали: такие как рост трафика, на узнаваемость бренда, на поведенческие факторы, на конверсию и соответственно на рост прибыли

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

Еще один немаловажный поинт: SEO — это про оптимизацию затрат.

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

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

Давайте теперь разберем, что включает в себя техническое  seo: что, как и чем будем тестировать?

Начнем с Robots.txt

Когда поисковый робот приходит на сайт,   файл robots.txt является одним из первых документов, к которому он обращается.

  • Файл robots.txt должен быть всегда заполнен и отдавать код 200 ОК и иметь кодировку UTF-8

  • Он должен быть расположен в корневой директории сайта

  • Позволяет задать разные правила для разных поисковых роботов, через директиву
    User agent

  • Позволяет скрыть от индексации контент и определенные директории, которые не должны отражаться в поисковой системе. Для скрытия служит директива Disallow.

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

  • Директива Sitemap: Содержит путь-ссылку на сайтмап

Проверить просто наличие файла роботса  недостаточно, нужно его обязательно проверить через валидатор, например валидатор яндекса
https://webmaster.yandex.ru/tools/robotstxt/

d7c749baf30e8260bc32f9e9fc3d55e5.jpeg

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

Следующий ключевой файл это Sitemap.xml 

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

Такая карта нужна как правило:
— сайтам с большим количеством страниц
— сайтам, на которых есть страницы с глубокой вложенностью

Технические требования к sitemap.xml

  • Размер файла XML-карты не должен превышать 50 МБ.

  • Число URL в одном файле рекомендуется делать не более 50 000. Если необходимо больше — сделать вторую часть сайтмапа.

  • Адреса в sitemap.xml должны быть абсолютными.

  • В карту сайта должны попадать только страницы со следующими параметрами:

    • имеют код ответа 200;

    • не подпадают под запрещающую директиву в роботс;

    • не имеют мета-тега ноиндекс;

    • являются каноническими.

  • Сайтмапы должны располагаться в том же домене, что и включённые в неё страницы.

  • Sitemap должны быть автообновляемыми: url автоматически удаляются из XML-карты при их удалении с сайта и так же добавляются. Достаточно настроить перегенерацию файла раз в сутки (например, ночью, когда сайт испытывает наименьшую нагрузку).

  • Все страницы сайта должны быть распределены между несколькими файлами sitemap.xml по смыслу

  • Карта сайта должна открываться в браузере по ссылке /sitemap.xml. Для этого в gateway настроен роутинг (аналогично файлу robots.txt).

  • Файлов может быть несколько: это значит что основная ссылка может  вести на некоторую разводящую страницу которая как правило делится на страницу которая содержит:

    • ссылки на категории с товарами- листинги

    • отдельно страницу только с товарами

    • и, например, на контентные страницы

    Также как и для роботса, для сайтмапа есть инструмент проверки, тут обращаю внимание что так как сайтмап зачастую имеет вложенности, стоит проверить их все https://webmaster.yandex.ru/tools/sitemap/ 

a94fb51bbe346c6a513403b96bf012ba.jpeg

Мета тег robots

Этот тег не является обязательным, располагается тег robots на странице в верхней части :

он поможет сразу занести страницу в свою базу индексации  если на конкретную страницу перешли к вам по какой нибудь ссылке из поиска и также наоборот позволит быстрее выкинуть из страницу из индекса если она попала случайно

SEO настройки — Метатеги
Также как и роботс и сайтмап, одни из самых важных и обязательных настроек
Когда мы говорим про сео настройки подразумеваем метатеги
Как правило речь всегда идет о 4 настройках : h1, title, description, seotext

Тег </strong> выступает ключевым объектом оптимизации страницы для поисковых систем, прописывается в части <head> программного кода каждой из страниц сайта.</p> <p>Его содержимое отображается в заголовке веб-браузера и результатах поиска и указывает чему посвящена страница.</p> <p><strong>Тег description</strong> представляет собой краткое описание страницы, прописывается также в части <head>. Данный тег на прямую не влияет на ранжирование сайта, однако он влияет на формирование сниппета в выдаче и чем он более  информативней и привлекательней, тем больше на него кликнут и перейдут на ваш сайт<br /><strong><br />Тег H1</strong>  должен присутствовать на всех страницах <br />Как минимум на страницах категорий и карточках товара<br />Основное требование он должен быть уникальным <br />Значением h1 по умолчанию название — категории, карточки товара и т/д, </p> <p><strong>SEO текст</strong> — это блок, который содержит в себе обязательно seo текст и картинку опционально.</p> <p>В случае если имеются страницы пагинации, SEO текст должен присутствовать только на первой странице.<br />Для этого блока нет специального тега, но у вас должен быть функционал, куда сеошники смогут вывести свой seo текст. <br />Как правило, речь идет о некоторой админке или сервисе, мы обычно называем его seo модулем, который позволит во первых автоматически задать шаблон для всех типов страниц и во вторых, функционал который позволит для каждой страницы задать уникальную настройку</p> <p><strong>Canonical<br /></strong>Один желательных, но не обязательных тегов.<strong><br /></strong>Canonical — это тег, который в первую очередь применяется для того, чтобы исключить дубли из индексации. Он указывает поисковой системе, что в выдаче нужно показывать определённый URL вместо страницы-дубликата.<br />Как правило применяется для одинаковых или очень похожих страниц</p> <p>Следующий важный момент это микроразметки</p> <p>Микроразметка — это семантическая разметка сайта, позволяющие роботам подробнее изучить содержание вашего ресурса. Это универсальный язык, который понимает большинство поисковых систем. Мы остановимся на двух самых популярных.</p> <p><strong>Микроразметка Schema.org<br /></strong>Микроразметка Schema.org помогает описать множество сущностей и их свойств.<br />Мы используем его для описания <strong>описание продукта</strong>, <strong>хлебных крошек, описания рейтингов и отзывов</strong>.</p> <p>Например, микроразметка карточки товара позволит поисковым роботам понять, где указана цена на товар, где — описание, а где — изображение, где рейтинг и где отзывы Тогда он сможет правильно проанализировать информацию, определить, насколько информация на странице релевантна запросу пользователя и отобразить данные при формировании сниппетов.</p> <p><img src="https://habrastorage.org/r/w780q1/getpro/habr/upload_files/7e6/3e6/e19/7e63e6e19e718fbe797eac73855d5616.jpeg" alt="7e63e6e19e718fbe797eac73855d5616.jpeg" /></p> <p><br />Инструкция для настройки https://yandex.ru/support/webmaster/schema-org/intro-schema-org.html</p> <p><strong>Микроразметка OpenGraph </strong>это технология разметки страниц, которая помогает настроить их отображение в социальных сетях при публикации. Разметкой Open Graph пользуются ВКонтакте, WhatsApp, Telegram, Viber, Pinterest и многие другие</p> <p>Внедрив микроразметку Open.Graph, мы получаем: </p> <ul><li><p>упрощенный процесс репоста. Сниппет ссылки будет выглядеть как готовый пост, который можно разместить в соцсети, а не как ссылка, к которой нужно  добавить описание и картинку.</p></li><li><p>дополнительный трафик из соцсетей. Оформленные таким образом ссылки выглядят лучше и генерируют больше кликов.</p></li></ul> <p>https://yandex.ru/support/webmaster/open-graph/ здесь можно ознакомиться подробнее со всеми надлежащими настройками</p> <p>Ниже на скрине инструменты проверок микроразметок <strong><br /></strong>https://webmaster.yandex.ru/tools/microtest/ валидатор<br />https://developers.google.com/search/docs/appearance/structured-data? hl=ru</p> <p><img src="https://habrastorage.org/r/w780q1/getpro/habr/upload_files/7a1/843/fff/7a1843fffde02f3b71d2287405b25b69.jpeg" alt="7a1843fffde02f3b71d2287405b25b69.jpeg" /><img src="https://habrastorage.org/r/w780q1/getpro/habr/upload_files/11c/6f7/efe/11c6f7efe3f0ebc9c3fb081945018c16.jpeg" alt="11c6f7efe3f0ebc9c3fb081945018c16.jpeg" /></p> <p>Тут обращаю внимание, что можно проверить через урл и через вставку кода, но замороченность проверки  в том что вставка через код может быть затруднительна, код может быть большим, если например захотите скопировать целиком html  страницу, она может быть через чур огромной и просто не поместится в валидатор, если захотите скопировать кусочек, то тоже сложно скопировать корректно со всеми закрывающими дивами и т.д<br />Поэтому есть вариант проще, если проверка проводится на тестовом стенде и стенд закрыт http авторизацией, в ссылке использовать эти креды и проверить страницу целиком.<br />https://name: password@example.com/catalog/koshki/korm-koshki  </p> <p><strong>Проверка редиректов</strong></p> <p>Для сайта должно быть определено главное зеркало с «www» или без «www» и реализован 301-й редирект на используемый вариант. В файл хост прописано главное зеркало директивой Host: site.ru. </p> <p>Правила:  </p> <ul><li><p>Любые редиректы по умолчанию должны отдавать 301 код, если не сообщено иное. </p></li><li><p>Должен быть реализован 301-й редирект с http на https. </p></li><li><p>Не должно быть более двух редиректов, цепочек и рекурсий редиректов<br />url1 — > url2<br />url1 — > url3<br />Должно быть<br />url1 →url3 </p></li><li><p>Главная страница сайта должна быть доступна только по одному адресу «site.com», с других страниц «site.com/index.php», «site.com/index.html» должен быть установлен 301-й редирект. </p></li><li><p>Корректно настроен 301 редирект со старых URL-адресов сайта на новые (в случае изменения структуры URL и предоставления файла соответствия Заказчиком). </p></li><li><p>Для всех страниц сайта без слэш (/) настроить 301 редирект на страницы со слэш (/) </p></li></ul> <p>Для проверки можно использовать инструмент  https://bertal.ru/ </p> <p><strong>Страница 404, битые ссылки </strong></p> <p>Страница 404 — это автоматическая страница, которая открывается, если запрашиваемую страницу сайта невозможно найти. Данные страницы необходимо оформлять в общей стилистике сайта, с указанием ссылок для перехода на главную страницу. Рекомендуется отредактировать шаблон 404 ошибки, сделав его более информативным и функциональным. </p> <p>Любая страница — это документ, у документа должен быть только один адрес. Страницы с дублированным контентом должны быть закрыты от индексации тегами NOINDEX и nofollow, а также в robots.txt. </p> <p>Логические дубли. Такими дублями являются, например, страница товара, который можно отнести к разным категориям интернет-магазина. И эта страница доступна по разным УРЛ в разных категориях. Для устранения логических дублей необходимо выявить все одинаковые страницы, выбрать основной УРЛ и указать его в качестве канонического на остальных дублях этой страницы. </p> <p>Дубли страниц негативно воспринимаются поисковыми системами и мешают продвижению сайта. Из-за дублей поисковым системам трудно анализировать сайт, определять предназначение страниц и взаимосвязи между ними, что отражается на подсчете релевантности и как следствие ранжирования. </p> <p><strong>Источники формирования дублей:  </strong></p> <ul><li><p>умный фильтр может генерировать разные урлы, меняя очередность характеристик (небходимо настроить приоритет параметров);  </p></li><li><p>со слешом и без слеша в конце URL-адреса;  </p></li><li><p>с несколькими слешами в URL-адресе;  </p></li><li><p>с указанием расширений файла и без них (.php, .html);  </p></li><li><p>с указанием индексных страниц и без них (index.php, index.html);  </p></li><li><p>страницы в верхнем и нижнем регистрах; </p></li></ul> <p><strong>Скорость загрузки страниц </strong></p> <p>Высокая скорость загрузки страниц сайта очень важна для SEO по нескольким причинам. Это элемент юзабилити, влияющий на поведенческие факторы. Так как на данный момент больше 50% трафика идет с мобильных устройств, оптимизацию скорости загрузки нужно производить для всех типов устройств.<br />Увеличить скорость загрузки можно:  </p> <ul><li><p>оптимизацией тяжелых запросов; </p></li><li><p>введением кэширования запросов и статического контента; </p></li><li><p>оптимизацией изображений и их загрузки; </p></li><li><p>оптимизацией css стилей и js скриптов; </p></li></ul> <p>Для анализа и поиска критичных мест можно воспользоваться следующими инструментами<br />https://developers.google.com/speed/pagespeed/insights/   <br />https://developers.google.com/web/tools/lighthouse? hl=ru <br />https://gtmetrix.com/ </p> <p>Один из самых популярных валидаторов это Google LightHouse, он находится в инструменте разработчика,   с помощью него мы можем проверять  разные виды метрик, например,   оптимизацию по производительности.</p> <p>Анализирует скорость загрузки сайта, чтобы оценка была максимально приближена к реальной, рекомендуется запускать проверку в режиме инкогнито<br /></p> <p><img src="https://habrastorage.org/r/w780q1/getpro/habr/upload_files/fd2/ce2/598/fd2ce2598df6f3cfa99233851cb10bb2.jpeg" alt="fd2ce2598df6f3cfa99233851cb10bb2.jpeg" /></p> <p>Также с помощью инструмента можно проверить и SEO оптимизацию<br />Но лучше это делать с помощью целевых инструментов, этот инструмент оставить для быстрых проверок релизов<br /><strong><br />Особенности рендеринга страниц<br /></strong><br />Есть два варианта<br /><strong>CSR</strong> — Client Side Rendering. Рендеринг на клиенте — это рендеринг приложения в браузере с помощью DOM.<strong><br />SSR</strong> — Server Side Rendering. Рендеринг на сервере — это рендеринг клиентской части   приложения на сервере.<br />Рендеринг на стороне сервера (SSR) — это метод отрисовки веб-страницы на сервере, а не в браузере. Чтобы пользователь не смотрел на пустую страницу, ожидая, пока загрузится веб-приложение, файлы JavaScript или CSS, сервер отдаёт ему сгенерированный HTML.</p> <h4>Как связаны SSR и SEO</h4> <p>Боты поисковых систем могут легко сканировать статический HTML, но у них возникают проблемы с индексацией контента, созданного на JavaScript.</p> <p>При SSR поисковые системы эффективно индексируют и сканируют контент на отрендеренных страницах, поскольку он может отображаться до загрузки страницы и в формате статического HTML.</p> <p>Рендеринг на стороне сервера (SSR) и рендеринг на стороне клиента (CSR) — это два термина, которые описывают, как визуализируется веб-страница.</p> <p>Но в случае SSR есть нюансы при тестировании SEO, в этом случае мы должны смотреть именно тот html, который отдал нам сервер.<br />Его нужно искать в девтулсе во вкладке нетворк, далее в документс, именно там лежит сгенерированный на сервере html.<br />Соответственно, когда мы проверяем микроразметку и метатеги, мы должны проверять именно этот документ: сгенерированный html.</p> <p><strong>SEO модуль <br /></strong><br />Для работы с метатегами должен быть реализован функционал для заведения  и редактирования шаблонов и уникальных настроек для страниц.</p> <p>Он может быть представлен в виде, например, стандартного или кастомизированного модуля SEO  в Битриксе, либо вообще отдельного микросервиса со своей БД.</p> <p>Какой функционал должен покрывать этот инструмент: </p> <p>1. <strong>Создание шаблонов метатегов</strong> для разных типов страниц.<br />Должна быть возможность задать тайтл, дескрипшен, h1, seo текст для страниц категорий, для карточек товара, для контентных страниц и при необходимости и для страниц фильтра. Шаблоны нужны для того, чтобы ни одна страница не осталась без этих важных настроек.<br />2. Но при этом также должна быть <strong>возможность настроить уникальные настройки</strong> для каждой страницы.  Это бывает важно, когда речь идет о редизайне старого сайта, когда придет время переносить уже существующие настройки, данная структура будет содержать как раз всю информацию о настройках страниц, которые уже были проиндексированы поисковиком. В этом случае, при открытии сайта на проде, корректные настройки позволят поисковиками либо склеить старые страницы с новыми чпу урлами если они менялись , либо просто не дадут упасть в ранжировании, если урлы остались прежними.<br />3. Помимо перечисленных  метатегов — данный модуль может содержать <strong>метатеги роботс</strong> для настройки индексирования как по типам, так и по конкретным урлам<br />4. <strong>Тег каноникал</strong><br />5. Возможность <strong>уникальной настройки для микроразметки</strong><br />6. Тут стоит отдельно отметить, что зачастую требуется настроить <strong>набор переменных</strong>(так называемые шорткоды) для разных типов страниц<br />Они представляют собой, например, количество товаров в категории, название категории, товара, какие характеристики  товара и т/д<br />Также может быть отдельная настройка для страниц фильтра, т/к комбинаций с ними может быть великое множество, как правило их не добавляют в таблицу с урлами которые существуют физически, но при этом требуется и для таких страниц настраивать метатеги. Об этой части лучше уточнять изначально, потому что как правило бывают нюансы связанные именно с формированием и хранением урлов.<br />7. Также сео модуль может содержать функционал для <strong>настройки редиректов</strong><br />Работа функционала заключается в возможности добавить урл откуда, куда и с код с каким редиректим <br />8. Функционал проверки <strong>цикличных редиректов</strong></p> <p><img src="https://habrastorage.org/r/w780q1/getpro/habr/upload_files/2ec/a4a/429/2eca4a429cd9c72d32406e2ca9245eb6.jpeg" alt="2eca4a429cd9c72d32406e2ca9245eb6.jpeg" /></p> <p><br /><strong>Резюмируя всё выше сказанное: <br /></strong><br />Внедрение SEO на раннем этапе позволит команде производства: </p> <ul><li><p>Предотвратить технические ошибки, которые негативно скажутся на дальнейшем продвижении; </p></li><li><p>Сохранить и преумножить трафик пользователей; </p></li><li><p>Сэкономить  бюджет, потому что вносить правки и тестировать в процессе разработки намного проще и дешевле, чем исправлять уже готовый код; </p></li><li><p>Уменьшить количество возможных доработок после релиза сайта — сократит T2M<br /></p></li></ul> <p>Надеюсь мне удалось донести, что в SEO нет никакой магии)<br />Что это достаточно техничный функционал, который можно и нужно тестировать и даже можно заняться автоматизацией тестирования данного направления через интеграцию с API PageSpeed </p> <p><img src="https://habrastorage.org/getpro/habr/upload_files/30c/e26/00a/30ce2600a42c015a8d1e1ee65f658f9a.gif" alt="30ce2600a42c015a8d1e1ee65f658f9a.gif" /></p> <p class="copyrights"><span class="source">© <a target="_blank" rel="nofollow" href="https://habr.com/ru/articles/872076/?utm_source=habrahabr&amp;utm_medium=rss&amp;utm_campaign=872076">Habrahabr.ru</a></span></p> </div> <br> <!--<div align="left"> <script type="text/topadvert"> load_event: page_load feed_id: 12105 pattern_id: 8187 tech_model: </script><script type="text/javascript" charset="utf-8" defer="defer" async="async" src="//loader.topadvert.ru/load.js"></script> </div> <br>--> <div style="padding-left: 20px;"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2514821055276660" crossorigin="anonymous"></script> <!-- PCNews 336x280 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-2514821055276660" data-ad-slot="1200562049" data-ad-format="auto"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <!-- comments --> <noindex> <div style="margin: 25px;" id="disqus_thread"></div> <script type="text/javascript"> var disqus_shortname = 'pcnewsru'; var disqus_identifier = '1582652'; var disqus_title = 'Тестируем SEO: долго, дорого, а вообще нужно ли?'; var disqus_url = 'http://pcnews.ru/blogs/testiruem_seo_dolgo_dorogo_a_voobse_nuzno_li-1582652.html'; (function() { var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })(); </script> <!--<noscript>Please enable JavaScript to view the <a rel="nofollow" href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>--> <!--<a href="http://disqus.com" rel="nofollow" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>--> </noindex> </div> <br class="clearer"/> </div> <br class="clearer"/> <div id="footer-2nd"></div> <div id="footer"> <br/><br/> <ul class="horz-menu"> <li class="about"><a href="/info/about.html" title="О проекте">О проекте</a></li> <li class="additional-menu"><a href="/archive.html" title="Архив материалов">Архив</a> </li> <li class="additional-menu"><a href="/info/reklama.html" title="Реклама" class="menu-item"><strong>Реклама</strong></a> <a href="/info/partners.html" title="Партнёры" class="menu-item">Партнёры</a> <a href="/info/legal.html" title="Правовая информация" class="menu-item">Правовая информация</a> <a href="/info/contacts.html" title="Контакты" class="menu-item">Контакты</a> <a href="/feedback.html" title="Обратная связь" class="menu-item">Обратная связь</a></li> <li class="email"><a href="mailto:pcnews@pcnews.ru" title="Пишите нам на pcnews@pcnews.ru"><img src="/media/i/email.gif" alt="e-mail"/></a></li> <li style="visibility: hidden"> <noindex> <!-- Rating@Mail.ru counter --> <script type="text/javascript"> var _tmr = window._tmr || (window._tmr = []); _tmr.push({id: "93125", type: "pageView", start: (new Date()).getTime()}); (function (d, w, id) { if (d.getElementById(id)) return; var ts = d.createElement("script"); ts.type = "text/javascript"; ts.async = true; ts.id = id; ts.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//top-fwz1.mail.ru/js/code.js"; var f = function () { var s = d.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ts, s); }; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "topmailru-code"); </script> <noscript> <div style="position:absolute;left:-10000px;"> <img src="//top-fwz1.mail.ru/counter?id=93125;js=na" style="border:0;" height="1" width="1" alt="Рейтинг@Mail.ru"/> </div> </noscript> <!-- //Rating@Mail.ru counter --> </noindex> </li> </ul> </div> <!--[if lte IE 7]> <iframe id="popup-iframe" frameborder="0" scrolling="no"></iframe> <![endif]--> <!--<div id="robot-image"><img class="rbimg" src="i/robot-img.png" alt="" width="182" height="305" /></div>--> <!--[if IE 6]> <script>DD_belatedPNG.fix('#robot-image, .rbimg');</script><![endif]--> </div> <!--[if lte IE 7]> <iframe id="ie-popup-iframe" frameborder="0" scrolling="no"></iframe> <![endif]--> <div id="footer-adlinks"></div> <noindex> <!--LiveInternet counter--><script type="text/javascript"> document.write("<a rel='nofollow' href='//www.liveinternet.ru/click' "+ "target=_blank><img src='//counter.yadro.ru/hit?t45.6;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+ ";"+Math.random()+ "' alt='' title='LiveInternet' "+ "border='0' width='1' height='1'><\/a>") </script><!--/LiveInternet--> <!-- Rating@Mail.ru counter --> <script type="text/javascript"> var _tmr = window._tmr || (window._tmr = []); _tmr.push({id: "93125", type: "pageView", start: (new Date()).getTime()}); (function (d, w, id) { if (d.getElementById(id)) return; var ts = d.createElement("script"); ts.type = "text/javascript"; ts.async = true; ts.id = id; ts.src = "https://top-fwz1.mail.ru/js/code.js"; var f = function () {var s = d.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ts, s);}; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "topmailru-code"); </script><noscript><div> <img src="https://top-fwz1.mail.ru/counter?id=93125;js=na" style="border:0;position:absolute;left:-9999px;" alt="Top.Mail.Ru" /> </div></noscript> <!-- //Rating@Mail.ru counter --> <!-- Yandex.Metrika counter --> <script type="text/javascript"> (function (d, w, c) { (w[c] = w[c] || []).push(function () { try { w.yaCounter23235610 = new Ya.Metrika({ id: 23235610, clickmap: true, trackLinks: true, accurateTrackBounce: true, webvisor: true, trackHash: true }); } catch (e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = "https://mc.yandex.ru/metrika/watch.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "yandex_metrika_callbacks"); </script> <noscript> <div><img src="https://mc.yandex.ru/watch/23235610" style="position:absolute; left:-9999px;" alt=""/> </div> </noscript> <!-- /Yandex.Metrika counter --> <!-- Default Statcounter code for PCNews.ru http://pcnews.ru--> <script type="text/javascript"> var sc_project=9446204; var sc_invisible=1; var sc_security="14d6509a"; </script> <script type="text/javascript" src="https://www.statcounter.com/counter/counter.js" async></script> <!-- End of Statcounter Code --> <script> (function (i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.createElement(o), m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); ga('create', 'UA-46280051-1', 'pcnews.ru'); ga('send', 'pageview'); </script> <script async="async" src="/assets/uptolike.js?pid=49295"></script> </noindex> <!--<div id="AdwolfBanner40x200_842695" ></div>--> <!--AdWolf Asynchronous Code Start --> <script type="text/javascript" src="https://pcnews.ru/js/blockAdblock.js"></script> <script type="text/javascript" src="/assets/jquery.min.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/jquery/jquery.json.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/jquery/jquery.form.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/jquery/jquery.easing.1.2.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/jquery/effects.core.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/js/browser-sniff.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/js/scripts.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/js/pcnews-utils.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/js/pcnews-auth.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/js/pcnews-fiximg.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/js/pcnews-infobox.js"></script> </body> </html>