SEOшник, SPAси
Всем привет! Работаю в SEO очень давно. Еще с тех самых пор, когда в вебе не было тех самых проблем, которые плодятся как кролики вместе с новыми JavaScript фреймворками. Поймите меня правильно: я с большим уважением отношусь к инновациям и терпеливо (стиснув зубы) читаю новости о появлении очередной новой среды для front-end разработки.
Что еще о себе? Ах да, последние несколько лет консультирую на запад(UK), владею своей фермой, где выращиваю веб сайты под аффилиатки. В общем, не хайпую на python, презираю JS(как вы поняли из предыдущего абзаца ) и считаю PHP гениальнейшей штукой для веба(еще раз спасибо старику Расмусу Лердорфу).
*Здесь и далее мнение автора может не совпадать с вашим мнением. Это нормально.
Определения для понимания сути проблемы:
SSR (Server Side Rendering, рендеринг на сервере) - технология, позволяющая запускать JavaScript на сервере, возвращая на клиент готовый результат в виде статического HTML;
CSR (Client Side Rendering, рендеринг на клиенте) - рендеринг приложения на стороне клиента (в браузере), обычно с помощью DOM;
SPA (single page application, одностраничное приложение) - веб-приложение, которое работает путем загрузки веб-страницы вместе с необходимым кодом;
DNA - причина, по которой не могу сказать название проекта о котором пойдет речь.
Предыстория истории
Дано:
SPA (стартап), который с пеленок хочет быть enterprise уровня(Jira, Atlasian, в команде Project Manager, Product Manager, Business Analyst и т.д.) - все по взрослому. Основа - веб проект на VueJS(backend на Java+Spring).
После запуска проекта оказывается, что его “не видно” в поиске. Причем не видно от слова “совсем”. По стандартному запросу site:whereareyouhoney.com Google выплевывает пустоту. “Такое возможно?” - зададут вопрос повелители синих слоников и я пойму их удивление. Инновации, призванные упрощать жизнь иногда порождают проблемы.
Команда стартапа некоторое время пытается разобраться в проблеме самостоятельно, потом нанимает первого SEOшника, потом второго(благо сейчас очень много курсов, где учат выводить сайты в топ 10 за неделю).
*Сарказм, но: автор не пытается унизить коллег и не сомневается в их компетенции(на самом деле - сомневается), а хочет обратить внимание начинающих SEO специалистов на то, что кроме маркетинга с его KPI, ROI и т.д. еще нужно понимать техническую часть веба.
Итак, спустя несколько месяцев кропотливой работы - результат равен нулю. Специалисты по поисковой оптимизации собирают для проекта «семантическое ядро», пишут рекомендации по тегам h1(что в общем-то нужно и важно), но суть не меняется. Проклятый google не видит проекта, на котором уже более 1000 страниц!!!
Как вы поняли, данное SPA рендерилось на клиенте(CSR). Т.е. приложение прилетало в браузер, где собиралось и начинало свою жизнь. Тот, кто следит за новостями от Google, может в этот момент не поверить вышесказанному и напомнить о существовании Chromium, который работает с Javascript и, в общем, умеет рендерить. И на самом деле, при определенных условиях это так. Я проводил тесты и лично видел как в поиске появлялись данные микроразметки Schema.org, размещенные в стороннем JS файле. В данном конкретном случае все не работало по нескольким причинам:
В приложении не было урлов(соответственно отсутствовал файл sitemap.xml). Т.е. все страницы приложения располагались по сути на главной странице сайта(по адресу www.allpageshere.com), а кэш Google бережно хранил девственно белую простынь пустого экрана.
На всех логических страницах были одинаковые title и description, что давало краулерам Google повод задуматься о том, что они посетили некий лендинг с очень большим файлом JS внутри.
Решение данной проблемы изобрели вместе с изобретением Javascript - это реализация серверного рендеринга(SSR). Однако, хочу заметить, что знать о проблеме - не значит ее решить. На работающем проекте реализация SSR заняла, внимание: 6 месяцев!!! (еще 2 месяца сверху ушли на мелкие фиксы).
После внедрения рендеринга со стороны сервера проект стал прирастать на 100+ запросов в ТОП-50 в неделю. За 3 месяца на проекте в ТОП-50 было уже 3000+ запросов. Из них 30+ добрались до ТОП10.
*Конечно, все это произошло не только благодаря SSR, а из-за комплекса внешних и внутренних работ.
Выводы из случившегося
В данном кейсе я не рассматриваю способы реализации серверного рендеринга. Об этом вы можете почитать здесь или здесь. Я хочу обратить внимание на то, что легкомысленный подход к оптимизации веб проекта enterprise уровня для поисковиков может вылиться в итоге в крупную сумму для инвестора. По крайней мере на данном временном отрезке развития технологий, поскольку существующая проблема через 3-4 года будет не актуальна. Не знаю как она решится: возможно, введут некий sitemap для SPA или еще чего, - главное ребята из Google(и не только) над этим уже работают. Пока же, товарищи маркетологи и прочие СТО и СЕО, помните: работаете с Javascript - убедитесь, что вы - рендеритесь.
Как-то так.