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.



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

Кейс по таргетированной рекламе в тематике «женская одежда»: ROMI 76%

Кейс по таргетированной рекламе в тематике «женская одежда»: ROMI 76% Насколько классно продается женская одежда в интернете....

23 07 2026 7:23:40

Бесплатные обратные звонки — модель freemium в действии

Бесплатные обратные звонки — модель freemium в действии Бесплатные продукты для онлайн-бизнеса — история внедрения freemium модели в сфере виджетов обратных звонков....

22 07 2026 19:48:40

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

Семь улучшений агентства Netpeak за год: репутационный маркетинг, продвижение клипов и SEO для блогов О запуске новых услуг по SEO и PPC, обновлениях Netpeak Cloud и конференциях по интернет-маркетингу...

21 07 2026 12:53:42

Владимир Меркушев о фишках Казнета и рецепте успеха в сети

Об особенностях реализации интернет-проектов в Великобритании, России и Казахстане и фишках успешного ведения бизнеса онлайн мы побеседовали с Владимиром Меркушевым — руководителем интернет-проектов успешной казахстанской компании Kolesa.kz....

20 07 2026 20:45:35

Инфографика: как именно рулит контент

Инфографика: как именно рулит контент Консультант по маркетингу в зоне ru Екатерина Решетило написала пост о том, как правильно настроить стратегический контент-маркетинг для долгосрочных продаж...

19 07 2026 4:44:57

Особенности продвижения проектов B2B и B2C

Особенности продвижения проектов B2B и B2C Сравнительная хаpaктеристика B2B и B2C. Как строятся отношения с клиентом, какой объем рынка, особенности сервиса, на чем делать акцент при создании контента. Подробнее....

18 07 2026 22:53:44

Микроразметка: что нужно знать SEO-специалисту о словарях и синтаксисе

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

17 07 2026 3:52:18

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

Как растёт рынок электромобилей и почему экология здесь не главное: на примере Honda Почему популярность электромобилей растет и как это связан с продажей углеродных квот...

16 07 2026 17:34:37

Как быстро собрать данные из блока People also ask в Google

Мануал для SEO-специалистов, как автоматизировать сбор данных из блока People also ask (Пользователи также ищут). Это блок, который показывается в верхней части страницы результатов поиска. Он нужен, чтобы уточнить запрос пользователя....

15 07 2026 2:30:30

Отслеживание поведения пользователей на разных устройствах при помощи User-ID

Отслеживание поведения пользователей на разных устройствах при помощи User-ID Одно из фундаментальных обновлений Universal ***ytics...

14 07 2026 18:30:37

Маркетинг без бюджета. Как привлечь посетителей на молодой сайт

Маркетинг без бюджета. Как привлечь посетителей на молодой сайт Бесплатно рекламировать и привлечь первых посетителей/клиентов вполне реально своими силами...

13 07 2026 10:48:52

Особенности регионального продвижения сайтов

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

12 07 2026 9:32:18

Как исключить спам в Google ***ytics, или Кто портит ваши данные

Как исключить спам в Google ***ytics, или Кто портит ваши данные Что делать, если вы столкнулись со спамом в отчетах Google ***ytics? Значит ли это, что кто-то имеет доступ к вашему аккаунту, или что кто-то специально влияет на данные сайта в GA? Как они это делают? И как исключить подобные данные из отчетов?...

11 07 2026 1:46:55

Core Web Vitals: что это такое и как работает

Core Web Vitals: что это такое и как работает В мае прошлого года Google анонсировал выход нового Core Web Vitals. Что это и как будет работать рассмотрим в статье...

10 07 2026 21:48:28

Почему в США зарплаты СЕО приводят к дополнительным налогам?

Почему в США зарплаты СЕО приводят к дополнительным налогам? Как борьба с зарплатным неравенством становится трендом...

09 07 2026 4:33:19

Как создать рекламную кампанию в Bing Ads — подробное руководство

Как создать рекламную кампанию в Bing Ads — подробное руководство Инструкция о том, как создать новую кампанию в Bing Ads или импортировать существующую из Google Рекламы? Как добавить способ оплаты? Читайте о первых шагах настройки рекламы в Bing...

08 07 2026 12:17:58

Список Telegram-ботов для SMM-специалиста

Список Telegram-ботов для SMM-специалиста Лайфхаки, как упростить работу с соцсетями от специалиста агентства Netpeak и ежедневной работы SMM-специалиста. Телеграм-боты, которые облегчат рутину и сэкономят время. Узнать больше!...

07 07 2026 16:34:32

«Лучший питч — продукт, клиенты и доходы». Интервью с Виталием Гончаруком о маркетинге Augmented Pixels

«Лучший питч — продукт, клиенты и доходы». Интервью с Виталием Гончаруком о маркетинге Augmented Pixels СЕО of Augmented Pixels рассказал нам о принципах ведения бизнеса в Украине и США, о ненужности бизнес-планов и креативных питчей, а также о способе стать лучшим программистом...

06 07 2026 15:42:41

Библиотеки JavaScript для Google ***ytics: в чем разница между ***ytics.js, gtag.js и ga.js

Библиотеки JavaScript для Google ***ytics: в чем разница между ***ytics.js, gtag.js и ga.js Почему стоит внимательно относиться к выбору библиотеки JavaScript....

05 07 2026 2:52:28

Как улучшить UX/UI сайта — семь советов по юзабилити

Как улучшить UX/UI сайта — семь советов по юзабилити Эти советы будут полезны вебмастерам, которые хотят сделать шаблон сайта самостоятельно...

04 07 2026 2:43:28

Лучшие примеры ошибки 404

Лучшие примеры ошибки 404 Ошибка на странице 404 может выглядеть креативно. Страница не найдена и не может быть найдена, потому что она в розыске, утеряна, украдена ниндзей, путь заснежен и дороги дальше нет, а принцесса находится в другом замке. О чем это?...

03 07 2026 17:55:16

Что такое триггер в маркетинге

Что такое триггер в маркетинге Триггер — способ ненавязчивого воздействия на потенциального клиента путем использования психологических приемов в текстах, заголовках и остальном контенте...

02 07 2026 11:26:15

Как запустить R и R Studio в Google Cloud Platform

Как запустить R и R Studio в Google Cloud Platform Используем возможности Google Cloud Platform в работе с R...

01 07 2026 16:29:53

Как стать специалистом по контекстной рекламе

Как стать специалистом по контекстной рекламе Менеджер, маркетолог, дизайнер программист? Делимся секретами нетпик, каким должен быть специалист по рекламе...

30 06 2026 15:56:13

IOS 14: Что это значит для рекламодателей Facebook

IOS 14: Что это значит для рекламодателей Facebook Реклама будет не настолько персонализирована, как сейчас....

29 06 2026 16:23:50

Как Octopus Events и Netpeak организовали офлайн-конференцию летом 2020-го — кейс

Как мы проводили самую летнюю конференцию в условиях постлокдayна, пандемии и неизвестности....

28 06 2026 2:45:52

Как найти приоритетные запросы для продвижения и избавиться от проблемных страниц — нанокейсы SEMPRO 2016

Как найти приоритетные запросы для продвижения и избавиться от проблемных страниц — нанокейсы SEMPRO 2016 Дмитрий Шахов, Алексей Чекушин и другие эксперты поделились своим опытом решения сложных вопросов SEO на примере больших проектов....

27 06 2026 22:58:35

Дополнение Google ***ytics для Google Taблиц — подробное руководство

Стартовый урок о том, как настроить визуализацию данных из Google ***ytics с помощью Google Spreadsheets...

26 06 2026 19:12:40

Как настроить рекламу в Facebook Messenger, Instagram Direct и даже WhatsApp

Как настроить рекламу в Facebook Messenger, Instagram Direct и даже WhatsApp Что нужно знать перед запуском рекламы в мессенджерах....

25 06 2026 18:43:17

Как проходила первая интернатура в Serpstat: опыт отдела Quality Assurance

Как проходила первая интернатура в Serpstat: опыт отдела Quality Assurance HR-советы компаниям, которым нужно найти больше трех джунов в проект...

24 06 2026 6:34:28

Как написать follow up, чтобы от него был результат?

Памятка для всех, кому важно сохранить детали переговоров....

23 06 2026 17:45:57

На что обратить внимание при выборе движка для сайта

На что обратить внимание при выборе движка для сайта Готовые коробочные решения — отличная идея, которая решает много задач, а ещё это относительно недорого. Но такой вариант подойдет далеко не всем. Узнать больше!...

22 06 2026 9:32:12

Как увеличить продажи с помощью местных экспертов от Google — советы локальному бизнесу

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

21 06 2026 15:52:15

Безопасность PBN — как защитить сайты и серверы от взлома

Безопасность PBN — как защитить сайты и серверы от взлома В помощь вебмастерам, которые поддерживают работу PBN....

20 06 2026 13:55:33

Сколько стоил клик в Google Ads и Facebook в Украине во втором квартале 2019 года

Сколько стоил клик в Google Ads и Facebook в Украине во втором квартале 2019 года Данные по 24 миллионам кликов в 24 тематиках и 391 городу...

19 06 2026 4:44:32

«Чёрная пятница» для интернет-магазинов США и Рунета

«Чёрная пятница» для интернет-магазинов США и Рунета Игроков интернета России, Уанета и Казнета зарубежные сайты coблaзняют семизначными результатами продаж во время «черной пятницы» и «киберпонедельника»....

18 06 2026 6:27:16

Как мы увеличили ROMI на 433% в рентабельных рекламных кампаниях: кейс интернет-магазина ФК «Динамо» (Киев)

Как мы увеличили ROMI на 433% в рентабельных рекламных кампаниях: кейс интернет-магазина ФК «Динамо» (Киев) Фубольный клуб. Как увеличить ROMI (возврат маркетинговых инвестиций) в рекламных кампаниях — рассказываем на примере киевского интернет-магазина «Динамо»...

17 06 2026 10:50:13

Удача — это выбор

Удача и везение — не случайность. Это выбор. Любопытные эксперименты профессора Ричарда Вайсмена инсайде...

16 06 2026 8:56:44

Как запустить онлайн марафон? Бесплатные и платные методы

Как собрать свой онлайн марафон на 500 или 1000 человек? Сколько это стоит и какие сервисы использовать. Давайте разбираться....

15 06 2026 18:35:39

Деньги или карма: что делать, когда клиенту не нужен интернет-маркетинг

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

14 06 2026 22:34:24

Как найти тему для срача — на примере vc.ru

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

13 06 2026 19:27:23

Сколько стоил клик в Google Ads и Яндекс.Директ в Казахстане во втором квартале 2018 года

Сколько стоил клик в Google Ads и Яндекс.Директ в Казахстане во втором квартале 2018 года Данные о стоимости клика в наиболее популярных рекламных интернет-площадках страны....

12 06 2026 21:35:19

История успеха vchasno.ua: разработали карты коммуникаций и триггерные цепочки писем

История успеха vchasno.ua: разработали карты коммуникаций и триггерные цепочки писем Готовые триггерные письма и сценарии позволяют быстро запустить триггеры после реализации технических заданий разработчиком....

11 06 2026 4:11:50

Что делать с бизнесом, когда нужен взрывной рост и позиция лидера ниши

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

10 06 2026 10:47:56

Техноанархизм и chindogu как источник идей

Техноанархизм и chindogu как источник идей Чтобы сделать что-то лучше, иногда надо довести это до абсурда. Так думают приверженцы теории «странных изделий» — chindogu...

09 06 2026 14:24:45

Исповедь SEO-специалиста

Интернет-маркетинг это не просто способ заработать. Про работу sео оптимизатора в Netpeak из первых уст...

08 06 2026 1:11:52

Кейс Pandora.kz. Как email принес 30% от общего дохода по всем каналам продаж.

Кейс Pandora.kz. Как email принес 30% от общего дохода по всем каналам продаж. Как прокачать email, когда рассылки уже работают....

07 06 2026 19:11:42

Знакомство с Яндекс.Вебмастер: полезные фишки и советы новичкам

Знакомство с Яндекс.Вебмастер: полезные фишки и советы новичкам Не Google единым. Нужные и важные знания по Яндекс.Вебмастер....

06 06 2026 16:32:40

Итоги Всемирного дня шопинга: рост продаж в 11 раз в Украине и самые популярные товары

Итоги Всемирного дня шопинга: рост продаж в 11 раз в Украине и самые популярные товары Впереди ещё черная пятница и новогодние праздники. И успех массовых распродаж можно повторить....

05 06 2026 9:11:34

Аукцион рекламы в Facebook: всё, о чем вы стеснялись спросить

Аукцион рекламы в Facebook: всё, о чем вы стеснялись спросить Рекламные аукционы Фейсбук заточены поднимать объявление с наивысшей итоговой ценностью — это главное отличие от классических аукционов...

04 06 2026 6:20:48

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