Мы работаем с поисковой оптимизацией интернет-изданий уже три года. В начале 2017 два сайта перезапустились на Single Page Application, на фреймворке Angular 2, чтобы ускорить загрузку страниц.
Домены и названия изданий не можем назвать из-за NDA. Условимся, что site1.ru – глянцевое издание для мужчин, а site2.ru – для женщин.
Вкратце о SPA (Single Page Application) для тех, кто не сталкивался. Большинство сайтов в интернете – статичные, есть сайты с динамической подгрузкой – сделанные на AJAX. А есть SPA, где страница строится на стороне пользователя, а не сервера, и это ускоряет взаимодействие. Такой тип работы фронтенда используют
Разработчики ценят Single Page Application за уменьшение времени переходов между страницами, нагрузки на устройство и сервер.
Страницы после перезапуска сайтов действительно стали загружаться быстрее:
Издание, тип страницы |
Время загрузки по webpagetest.org |
site2.ru, главная |
-34,5 сек. |
site2.ru, страница рубрики |
-21,87 сек. |
site2.ru, страница статьи |
-10,08 сек. |
site1.ru, главная |
+25,15 сек. |
site1.ru, страница рубрики |
-5,32 сек. |
site1.ru, страница статьи |
-4,46 сек. |
Но далеко не всегда такие технологии успешно работают в связке с поисковыми системами.
Чем отличаются сайты на Single Page Application от традиционных
Сайты на Single Page Application сложно индексировать. Контент, который видит пользователь, отсутствует в пригодном для индексирования виде, – он подгружается отдельно через JavaScript. В итоге страницы не попадают в поиск, поскольку поисковый робот не видит контент, либо индексируется только главная страница.
Чтобы выработать рекомендации для перезапуска site1.ru и site2.ru, мы искали сайты, которые работали изначально на SPA или перешли на него и получили в итоге больше трафика, чем было. Таких примеров не нашли и обратились к справке поисковых систем.
Яндекс
Google
Теоретически, можно определять user-agent и отдавать им разные варианты: «Яндексу» и Mail.ru – с ?_escaped_fragment_=, Google – без. Динамические версии тогда будут отличаться наличием или отсутствием , но нам это показалось лишним усложнением.
В итоге мы дали разработчикам рекомендации использовать ?_escaped_fragment_= в URL и метатег в коде динамической страницы для всех поисковых систем.
Сайты перезапустили, частично внедрив рекомендации и несколько позже исправив технические ошибки. Трафик не только не вырос – он упал.
На site1.ru в январе 2017 г. небрендированный трафик увеличился на 78,42% по сравнению с тем же месяцем прошлого года. Сайт перезапустили 17 февраля. В мае 2017 трафик ушел в минус на 2,55%.
На site2.ru трафик упал более резко и драматично. В феврале 2017 г. был прирост небрендированного трафика на 23,64% по сравнению с 2016 г. Сайт перезапустили 10 марта. В мае 2017 трафик ушел в минус на 29,27% (по сравнению с 2016 г.).
Корень всех бед – некорректный рендер страниц и использование ?_escaped_fragment_=.
HTML-версии обновлялись редко – раз в одну-две недели. Контент выходит, ссылки на новые статьи появляются на страницах рубрик и главной, но долго индексируются, поскольку бот просто не видит их на неактуальных HTML-снимках. В итоге, недополучили трафик по свежим материалам.
У некоторых архивных материалов и страниц-тегов HTML-версия была пустой – такие страницы просто выпали из поиска и, соответственно, перестали приносить трафик.
Сайты медленно индексировались не только из-за задержки рендера рубрик и главной страницы.
Отказались от ?_escaped_fragment_= и по адресу динамической страницы стали отдавать ботам Яндекс, Google и Mail.ru сразу HTML-версию страницы.
На site1.ru также внедрили HTTP-заголовки Last-Modified и If-Modified-Since.
Вкупе это положительно повлияло на обход страниц ботом.
Бот успевает обойти больше страниц, и трафик вырос (см. период с июня по октябрь).
Прежде чем решить, использовать ли SPA, взвесьте за и против. Подумайте, так ли важны конкретно для вас его преимущества, есть ли время и кадры на оперативную реализацию технических задач. Если да, то почему бы и нет – нюансы вы уже знаете.