NetPeak Biz Tech    


Как сделать SPA-сайты SEO-Friendly?

Как сделать SPA-сайты SEO-Friendly?

< >

Сайт на Ajax: как отдельным страницам попасть в выдачу В последнее время в работе специалистов Netpeak Agency много сайтов, использующих AJAX-технологии, а также сайтов написанных на JavaScript фреймворках. Без дополнительной оптимизации они не готовы к продвижению в поисковых системах. Поэтому я детально опишу, что такое SPA-сайты, как они работают, и как можно сделать Single Page Application SEO-Friendly.

Статья будет полезна SEO-специалистам и владельцам сайтов, которые хотят перейти на Single Page Application, но не решаются, потому что SPA могут «поссориться» с поисковыми системами.

Что такое SPA

SPA (Single Page Application) — одностраничное JavaScript приложение, которое запускается и работает в браузере. В отличии от «традиционного» сайта, архитектура на SPA-сайтах построена так, что рендеринг страницы полностью происходит на стороне клиента, а не на стороне сервера.

В браузере пользователя запускается JavaScript-приложение, а все необходимое содержимое страниц динамически загружается с помощью AJAX. Навигация по сайту происходит без перезагрузки страниц. За счет такой архитектуры, SPA-сайты работают быстрее, чем «традиционные» сайты.

Рассмотрим детальнее, как происходит загрузка и рендеринг содержимого на SPA-сайтах:

  1. Пользователь запрашивает HTML содержимое сайта.
  2. В ответ приходит JavaScript-приложение.
  3. Приложение определяет, на какой странице находится пользователь, и какое содержимое ему нужно отобразить.
  4. С помощью AJAX пользователь получает необходимый контент: CSS, JS, HTML и текстовый контент.
  5. JavaScript-приложение обpaбатывает полученные данные и отображает их в браузере.
  6. При навигации по сайту обновляется не вся страница, а только необходимое содержимое.

Плюсы SPA-сайтов:

  • высокая скорость работы;
  • быстрая разработка;
  • создание версий для разных платформ на основе готового кода (desktop и mobile приложения).

Минусы SPA-сайтов:

  • JavaScript не обpaбатывается большинством поисковых систем;
  • SPA-сайты не работают без включенного JS в браузере;
  • их нельзя анализировать на предмет ошибок популярными программами и инструментами (например, Netpeak Spider).

Популярные JavaScript фреймворки:

Истории бизнеса и полезные фишки

Какие поисковые системы индексируют SPA-сайты

На сегодняшний день только поисковый робот Google умеет рендерить содержимое SPA-сайтов, так как использует для рендеринга инструменты на базе Chrome 41. ASK.com использует выдачу Google. Для остальных поисковых систем необходимо наличие контента в коде в формате HTML.


Оптимизация индексации SPA-сайтов

Роботы Google и Yandex могут проиндексировать Single Page Application, если структура сайта соответствует определенным правилам. При этом для Яндекса необходимо обязательное наличие полной HTML-копии страницы. Читайте больше про seo продвижение Single Page Application.

Для Google нужно использовать только правильный формат URL. Летом 2018 Google перестанет индексировать HTML-копии страниц, а будет использовать только рендеринг.

(!) Нельзя запрещать индексирование JS и CSS файлов для поисковых роботов Google. Ограничив их индексацию, Google не сможет проиндексировать содержимое SPA-сайтов.

Существует два способа «заставить» поисковых роботов индексировать AJAX-страницы:

  1. Использовать «?_escaped_fragment_=».
  2. Отдавать роботу HTML-копии определяя его по user-agent.

Использование «?_escaped_fragment_=»

Этот способ подразумевает генерацию HTML-копий страниц (снимков) по отдельному URL с использованием параметра «?_escaped_fragment_».

Использование URL c «#!»

Если адреса AJAX страниц формируются с помощью «#» (хеш), значит нужно заменить их на «#!» (хешбенг). Например, с https://example.com/#url на https://example.com/#!url.

Google просканирует содержимое по основному URL, а робот Яндекса, обнаружив в URL «#!», запросит снимок страницы. Он заменит «#!» на «?_escaped_fragment_=» и просканирует ее по адресу https://example.com/?_escaped_fragment_=url.

Примеры адресов c «#!» и HTML-копий страниц:

  • https://example.com/home#!page → https://example.com/home?_escaped_fragment_=page;
  • https://example.com/index/#!main → https://example.com/index/?_escaped_fragment_=main;
  • https://example.com/#!home/index → https://example.com/?_escaped_fragment_=home/index.

Использование «традиционных» URL

Если на сайте используются «традиционные» URL (https://example.com/url), необходимо указать на всех страницах мета-тег:

<meta name=\"fragment\" content=\"!\">

Google просканирует содержимое по основному URL, а робот Яндекса, обнаружив на странице мета-тег , запросит HTML-копию страницы. Также добавит в URL параметр «?_escaped_fragment_=» и просканирует ее по адресу https://example.com/url?_escaped_fragment_=

Для популярных фреймворков есть готовые решения, которые заменяют «#!» на «традиционные» URL, например, HTML5 mode для Angular.

(!) В HTML-копии документа мета-тег размещать не следует: в этом случае страница не будет проиндексирована.

(!) На страницах HTML-копий canonical должен либо отсутствовать, либо вести сам на себя.

Например, на странице https://example.com/home?_escaped_fragment_= должен быть указан следующий canonical:

<link rel=\"canonical\" href=\"https://example.com/home?_escaped_fragment_=\" />

 

Отдавать HTML-копии страницы по основному URL

Этот способ подходит для SPA-сайта с «традиционными» URL. В чем суть: поисковый робот, запрашивая страницу по основному URL, вместо динамической версии получает HTML-копию страницы.

Определить поискового робота можно по User-Agent. К примеру, по списку роботов Яндекса.

Рендеринг HTML-копий

Для того, чтобы поисковые системы смогли проиндексировать содержимое, необходимо реализовать создание HTML-копий страниц.

HTML-копии — это отрендеренные версии страниц SPA-сайта. Например, содержимое исходного кода страницы SPA-сайта выглядит так:

<html lang=\"ru\"><head> <title>Single Page Applicationtitle> <meta name=\"fragment\" content=\"!\">head><body> <script type=\"text/javascript\" src=\"/assets/js/app.min.js?554997697\">script>body>html>


А вот отрендеренная HTML-копия этой страницы:

<html lang=\"ru\"><head> <title>TITLE страницыtitle> <meta name=\"keywords\" content=\"ключевые слова\"> <meta name=\"description\" content=\"Описание страницы \"> <meta name=\"viewport\" content=\"width=device-width,maximum-scale=1,initial-scale=1,user-scalable=0,shrink-to-fit=no\"> <link rel=\"canonical\" href=\"https://site.com/\"> <link href=\"/favicon.ico\" type=\"image/x-icon\" rel=\"shortcut icon\"> <meta name=\"robots\" content=\"index, follow\"> <link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"/style.css\">head><body> <div>СОДЕРЖИМОЕ СТРАНИЦЫdiv>body>html>


Для создания HTML-копий страниц можно:

  1. Использовать рендеринг на своих серверах.
  2. Использовать рендеринг на аутсорсе.
  3. Использовать изоморфный JavaScript.

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

Рендеринг на своих серверах

Подходит для крупных проектов. Для рендеринга HTML-копий на своих серверах можно использовать следующие инструменты:

Рендеринг на аутсорсе

Подходит для небольших проектов. Для рендеринга HTML-копий на сторонних серверах можно использовать такие инструменты:

Изоморфный JavaScript

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

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

Обработка 404 страниц

Рендеринг страницы на SPA-сайтах происходит на стороне клиента, поэтому без дополнительных доработок код ответа несуществующей страницы будет 200 ОК.

SPA-сайты должны корректно обpaбатывать несуществующие страницы и отдавать в качестве заголовка страницы 404 ошибку.

Настройка Google ***ytics

Стандартный код Universal ***ytics выполняется при загрузке каждой новой страницы, а SPA-сайты подгружают контент динамически, «имитируя» переход между страницами. Для того, чтобы Google ***ytics корректно обpaбатывал переходы на страницах, необходимо сделать так, чтобы счетчик Universal ***ytics активировался каждый раз, когда на сайте меняется URL.

Настроить Google ***ytics для SPA-сайтов можно, используя Tag Manager и триггер «History» или — передавая данные вручную.

С помощью Tag Manager и триггера «History»

Использование HTML5 History API на SPA-сайтах позволяет настроить корректную работу счетчика Google ***ytics в GTM с помощью триггера «History». Каждый раз при обновлении истории (смены URL, Title), тег Google ***ytics будет активироваться повторно.

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

Передача данных вручную

Каждый раз, когда в строке браузера меняется URL, необходимо передавать об этом информацию в Google ***ytics.

Чтобы обновить счетчик, нужно использовать комaнду «set» и указывать новое значение переменной «page»:

ga(\\\'set\\\', \\\'page\\\', \\\'/new-page.html\\\') ;

Теперь все последующие обращения будут привязаны к новому URL. Чтобы передать информацию о просмотре страницы, нужно использовать комaнду «send» и указывать значение «pageview» сразу после обновления счетчика:

ga(\\\'send\\\', \\\'pageview\\\') ;

Более подробную информацию можно узнать в справке Google ***ytics для одностраничных приложений.

Выводы

SPA-сайты — это настоящее и будущее, поэтому не нужно бояться брать в работу такие проекты. Single Page Application можно «подружить» с поисковыми системами. Чтобы ваш SPA-сайт был дружелюбен как к SEO, так и к пользователям, я рекомендую:

  1. Использовать «традиционные» URL.
  2. Использовать изоморфные приложения или рендеринг HTML-копий.
  3. Настроить правильную отдачу заголовка «404 Not Found».
  4. Настроить корректную работу Google ***ytics.



Комментарии:

Как работает программатик-баинг

Небольшая wiki о программатик-баинг и RTB. Объяснение алгоритма, обзор рынка, мнения экспертов....

30 08 2026 10:58:11

Продвижение мобильных приложений: анализируем данные в Search Console

Продвижение мобильных приложений: анализируем данные в Search Console Отслеживаем эффективность приложения в Search Console на примере OLX.KZ...

29 08 2026 9:38:41

Что такое вечные ссылки и как продвигать сайт с их помощью

Что такое вечные ссылки и как продвигать сайт с их помощью Ссылки называются вечными, потому что их внедряют один раз и навсегда, но это не значит, что такие ссылки однажды не удалят (что поведет к потере трафика). Узнать больше!...

28 08 2026 17:29:31

Sitemap.xml или карта сайта — руководство для новичков

Sitemap.xml или карта сайта — руководство для новичков Подробно рассказываем, как создать, внедрить и проверить XML-карту сайта....

27 08 2026 21:42:36

Как сделать покупателя более платежеспособным и нарастить объемы продаж в eCommerce

Как сделать покупателя более платежеспособным и нарастить объемы продаж в eCommerce Большинство покупателей предпочитают безналичный расчет, желают иметь разные варианты оплаты. Как их наличие или отсутствие влияет на средний чек?...

26 08 2026 18:12:43

Как сэкономить время специалиста при работе с крупным проектом — на примере OLX

Как сэкономить время специалиста при работе с крупным проектом — на примере OLX Убираем человеческий фактор при сборе отчетов по контекстной рекламе...

25 08 2026 12:13:46

Гайд по системе умных заметок Zettelkasten — настройка, воркфлоу, лайфхаки

Гайд по системе умных заметок Zettelkasten — настройка, воркфлоу, лайфхаки Как настроить программу Obsidian для удобной и быстрой работы по системе Zettelkasten....

24 08 2026 9:13:39

Строительство и ремонт — чтобы сайт в этой нише продавал, достаточно просто...

Строительство и ремонт — чтобы сайт в этой нише продавал, достаточно просто... Персональная стратегия продвижения онлайн с помощью SEO и контекстной рекламы....

23 08 2026 11:48:31

«Эмоциональный интеллект в бизнесе» Дэниела Гоулмана

«Эмоциональный интеллект в бизнесе» Дэниела Гоулмана Как развить в себе такой EQ, как хочется, и далее использовать его для достижения успеха. Рецензия на книгу Дэниела Гоулмана «Эмоциональный интеллект в бизнесе»....

22 08 2026 15:14:46

Кейс: учим поисковый движок распознавать грамматические ошибки

Кейс: учим поисковый движок распознавать грамматические ошибки Что поможет написать объявление без грамматических ошибок? В недрах агентства Netpeak рождается новый полезный сервис...

21 08 2026 8:37:27

Как перейти на украинскую версию сайта по умолчанию и не потерять трафик

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

20 08 2026 3:22:25

Apple тайно рекламирует приложения в гугле? Что это значит.

Apple тайно рекламирует приложения в гугле? Что это значит. Давайте разбираться, в чем именно обвиняют техногиганта разработчики и действительно ли такую рекламу считают циничной....

19 08 2026 5:25:31

Как подготовить описание приложения в GooglePlay? Шпаргалка

Как подготовить описание приложения в GooglePlay? Шпаргалка Блиц-инструкция и рекомендации по созданию эффективных описаний для мобильных приложений...

18 08 2026 14:15:53

Как провести контент-аудит сайта — пошаговое руководство

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

17 08 2026 17:37:56

5 примеров автосообщений для сайта

5 примеров автосообщений для сайта Как улучшить конверсию сайта: идеи для маркетологов...

16 08 2026 13:38:33

Как работает экосистема Netpeak Group — интервью каналу «Точка G»

Как работает экосистема Netpeak Group — интервью каналу «Точка G» Узнай, как бэкофис группы помогает развиваться компаниям, и выиграй iPhone — подбери крутое название для нашей группы....

15 08 2026 6:49:30

Главные инструменты увеличения продаж в интернет-магазине

Главные инструменты увеличения продаж в интернет-магазине Знания основных принципов конверсионности сайта, этапов воронки продаж важны для того, чтобы наладить процессы, рост продаж в любом бизнесе. Узнать больше!...

14 08 2026 7:32:54

Проверка уникальности контента

Проверка уникальности контента Почему важно знать детали создания и защиты уникального контента? Потому что это позволит защитить ваш сайт от санкций поисковых систем из-за неуникального контента...

13 08 2026 11:54:28

Как повысить ROMI email-маркетинга на 63%, сократив базу контактов на 40%

Как повысить ROMI email-маркетинга на 63%, сократив базу контактов на 40% История о предсказательной аналитике системы автоматизации маркетинга, онлайн-магазине и ненужных письмах....

12 08 2026 17:47:57

Мобильное приложение для ecommerce — как правильно рассчитать ресурсы при разработке, чтобы повысить продажи

Несколько полезных советов перед запуском. Tрaнcпорт и путешествия, ритейл, медиа и развлечения — тематики, в которых чаще используют мобильные приложения. Есть и другие факторы популярности приложений. Узнать!...

11 08 2026 6:46:56

Как увеличить количество звонков с сайта: кейс Callback от Ringostat

Как увеличить количество звонков с сайта: кейс Callback от Ringostat Callback от Ringostat: пример того, как увеличить конверсии с помощью формы заказа обратного звонка...

10 08 2026 17:55:14

Как грамотно предупредить о файлах cookie на сайте

Как грамотно предупредить о файлах cookie на сайте Как создать и внедрить баннеры об использовании куки-файлов с помощью Google Tag Manager и OneTrust...

09 08 2026 7:59:18

Как и зачем переводить рекламные кампании на украинский — эксперимент и полезные формулы

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

08 08 2026 7:39:19

Google Ads — как работает планировщик ключевых слов

Подобрать нужные слова поможет проверка Google Рекламы....

07 08 2026 14:42:38

Что делать, если приложение удалили из Google Play или App Store

Что делать, если приложение удалили из Google Play или App Store Есть ли шанс на апелляцию...

06 08 2026 16:55:14

Как настроить Google ***ytics — инструкция для новичков

Как настроить Google ***ytics — инструкция для новичков Шаги, которые необходимо выполнить для правильного сбора и анализа данных сайта...

05 08 2026 16:50:56

С чего начать обучение SEO и как понять, что это «твоё»

С чего начать обучение SEO и как понять, что это «твоё» Как определить, что SEO-продвижение не будет в тягость, что и кого читать начинающему специалисту...

04 08 2026 11:22:56

Обновление Firebase ***ytics: настраиваем аналитику мобильных приложений и применяем новые фишки

Обновление Firebase ***ytics: настраиваем аналитику мобильных приложений и применяем новые фишки Мониторинг мобильных просмотр статистики Firebase в отчетах Google ***ytics и связь Firebase ***ytics с Google Рекламой...

03 08 2026 16:38:43

Netpeak в гостях у Leo Burnett Ukraine

Netpeak в гостях у Leo Burnett Ukraine В семье Leo Burnett - 7750 человек из 84-х стран мира. В Украине всего - 90 творческих единиц....

02 08 2026 11:21:24

10 трендов email-маркетинга в 2022 году

10 трендов email-маркетинга в 2022 году All about internet mail. Примеры того, что стоит внедрить в рассылках почты онлайн....

01 08 2026 3:34:38

Дропшиппинг: как за два месяца снизить стоимость привлечения лида на 25%

Дропшиппинг: как за два месяца снизить стоимость привлечения лида на 25% Дропшип предполагает минимум затрат со стороны предпринимателя. Например, не нужно думать о логистике, держать склад. Можно минимизировать и траты на рекламу. Узнать как!...

31 07 2026 2:23:40

5 советов для специалистов по контекстной рекламе

5 советов для специалистов по контекстной рекламе Полезные советы для тех, кто делает контекст своими ручками :)...

30 07 2026 2:22:45

SEO-продвижение интернет-магазина по продаже аксессуаров для путешествий: ROMI 743%

SEO-продвижение интернет-магазина по продаже аксессуаров для путешествий: ROMI 743% Результаты грамотного внедрения технического SEO-аудита...

29 07 2026 21:11:57

Как запустить рекламную кампанию Call-Only для мобильных устройств

Как запустить рекламную кампанию Call-Only для мобильных устройств Учим правильно платить за верхние строчки показов объявления: настройка быстрых звонков из поисковых объявлений «Только номер телефона» Google Ads...

28 07 2026 15:23:44

Как редизайн повысил доход от SEO — кейс по юзабилити

Как редизайн повысил доход от SEO — кейс по юзабилити Считаем SEO-эффект от нового дизайна сайта и работы над usability...

27 07 2026 14:59:57

Кейс по рекламе в прайс-агрегаторах в тематике «гаджеты и аксессуары»: ROMI 869%

Кейс по рекламе в прайс-агрегаторах в тематике «гаджеты и аксессуары»: ROMI 869% Мир гаджетов на Android и IOS. ROMI (возврат маркетинговых инвестиций) по валовой прибыли: 764%....

26 07 2026 9:29:28

Кейс по снятию автоматического фильтра Яндекса: возврат трафика за 44 дня

Кейс по снятию автоматического фильтра Яндекса: возврат трафика за 44 дня На одном из проектов был успешный рост трафика и транзакций, но в следующем месяце видимость по Яндексу снизилась до 30% и продолжала жестоко падать. ТИЦ упал с 450 до 425....

25 07 2026 22:30:12

Продажа мебели онлайн — проблемы и решения от SEO и PPC-экспертов

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

24 07 2026 3:50:17

Правила здорового сна от Мэтью Уокера

Правила здорового сна от Мэтью Уокера Привыкли к недосыпу и жизни «на кофе»? Вы, конечно же, понимаете, что это не дело. Но осознаете ли насколько? Если нет, почитайте....

23 07 2026 18:13:11

Кейс по контекстной рекламе сайта купальников и нижнего белья марки Victoria’s Secret: ROMI 255%

Кейс по контекстной рекламе сайта купальников и нижнего белья марки Victoria’s Secret: ROMI 255% Наибольшее количество онлайн транзакций было получено по брендовым запросам женского белья...

22 07 2026 4:17:39

Как ускорить сайт с помощью сервиса CDN — краш-тест Айри

Как ускорить сайт с помощью сервиса CDN — краш-тест Айри Как трафик CDN повлиял на систему интернет-магазина — палим кейсы...

21 07 2026 16:20:55

Как небольшому медийному агентству выйти на новый уровень?

Как небольшому медийному агентству выйти на новый уровень? Мы хотим купить комaнду с компетенциями в сфере медиабаинга, чтобы объединить силы для развития онлайн-рынка...

20 07 2026 16:43:54

Funnel Based модель атрибуции в OWOX BI — руководство по настройке

Funnel Based модель атрибуции в OWOX BI — руководство по настройке Как настроить многокaнaльную модель атрибуции для своего бизнеса....

19 07 2026 10:35:29

17 шагов к эффективному бренду, или Крутая зеленая ворона. Рецензия на книгу «Zag»

17 шагов к эффективному бренду, или Крутая зеленая ворона. Рецензия на книгу «Zag» Семнадцать крутых шагов к эффективному бренду Заг — это авторский неологизм от слова зигзаг (англ. zigzag). Он подразумевает движение в другом направлении....

18 07 2026 13:11:55

Как связать Microsoft Power BI и Google BigQuery

Как связать Microsoft Power BI и Google BigQuery Как визуализировать данные Google BigQuery в Power BI? Пошаговая инструкция от руководителя отдела веб-аналитики Netpeak Алексея Селезнева...

17 07 2026 3:33:47

Как привлечь клиентов в 2021 году. Способы лидогенерации, о которых вы могли не знать

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

16 07 2026 15:46:43

Отделяем мух от котлет в контент-маркетинге

Отделяем мух от котлет в контент-маркетинге Пpaктическая информация о том, что и куда нужно постить....

15 07 2026 12:37:23

Продвижение Telegram-канала с помощью агентства Netpeak: чтоооооо???

Продвижение Telegram-канала с помощью агентства Netpeak: чтоооооо??? Новая услуга для бизнесов, которым большое количество подписчиков не приносит продаж...

14 07 2026 22:48:42

Дополнительные ценности Netpeak — что вы получаете при заказе [SEO 2.0] вместе с поисковым продвижением

Дополнительные ценности Netpeak — что вы получаете при заказе [SEO 2.0] вместе с поисковым продвижением В коробку [SEO 2.0] вместе с самим поисковым продвижением входят дополнительные ценности Netpeak: унифицированные действия по увеличению продаж, улучшения удобства работы и преимущества бренда Netpeak...

13 07 2026 21:55:21

Как прогнозировать цены с помощью машинного обучения

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

12 07 2026 14:59:54

Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::