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.



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

Как получать деньги из YouTube

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

12 07 2026 0:26:59

App Campaign for Engagement. Как работать с кампаниями на взаимодействие с приложением в Google Ads

Человек скачал ваше приложение, воспользовался им один раз и … забыл. Что с этим делать, читайте в Netpeak Journal....

11 07 2026 9:22:33

Как приводить трафик на молодой сайт: результаты обсуждения темы на Quora

Как приводить трафик на молодой сайт: результаты обсуждения темы на Quora Повышение посещаемости на сайте: контент, seo, ppc и многое другое...

10 07 2026 21:13:15

Пасхалки Google — интересные и полезные возможности поисковика, о которых вы не знали

Пасхалки Google — интересные и полезные возможности поисковика, о которых вы не знали Забавные и полезные штуки от Google и как их найти...

09 07 2026 19:24:35

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

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

08 07 2026 3:54:36

Кейс по рекламе в прайс-агрегаторах в тематике «бытовая техника»: ROMI 817%

Кейс по рекламе в прайс-агрегаторах в тематике «бытовая техника»: ROMI 817% Пример удачной рекламы. История о том, как маленький региональный магазин может получать хорошую прибыль с прайс-агрегаторов...

07 07 2026 21:32:43

Как работает Brand Lift — исследуем эффективность видеорекламы на YouTube

Как работает Brand Lift — исследуем эффективность видеорекламы на YouTube Недавно у меня закончилась видеокампания на ютуб, по которой удалось собрать исследование Brand Lift. Хочу поделиться инсайтами...

06 07 2026 15:20:22

«Звездочки» нужны только для повышения CTR поисковой выдачи?

«Звездочки» нужны только для повышения CTR поисковой выдачи? Публикуем тему с закрытого аналитического форума Netpeak про «звездочки» как инструмент оценки релевантности контента....

05 07 2026 14:42:49

Примеры писем интернет-магазинов: лучшие e-mail письма и рассылки клиентам после покупки

Примеры писем интернет-магазинов: лучшие e-mail письма и рассылки клиентам после покупки Как надолго завоевать доверие покупателя с помощью грамотного email-маркетинга? Примеры обращений к клиенту в рассылках, текст писем для привлечения и благодарности за покупку....

04 07 2026 15:35:18

Как отписаться от рассылки SMS

Как отписаться от рассылки SMS Как бесплатно отключить смс уведомление. Плюс — подсказки для маркетологов: как снизить негативное отношение к бренду. То есть, как красиво предоставить возможность отписаться от смс клиентам, и не слить бюджет на ненужные сообщения. Узнать больше!...

03 07 2026 22:45:22

10 онлайн способов улучшить контент

10 онлайн способов улучшить контент Как преодолеть онлайн писательский ступор, разобраться с рутиной и освободить время для экспериментов...

02 07 2026 1:56:58

Портрет SEO-специалиста 2019: результаты опроса Serpstat

Профессиональный уровень SEO-специалиста в штатных комaндах редко определяется конкретной категорией (Junior, Midle, Senior). Но большинство считает себя мидлами. Узнать больше!...

30 06 2026 15:34:27

Пять важных «зачем» в работе PPC-специалиста над продвинутыми проектами

Пять важных «зачем» в работе PPC-специалиста над продвинутыми проектами Сакральные знания о контекстной рекламе для экспертов и тех, кто с ними сотрудничает....

29 06 2026 18:49:37

Что такое внутренние дубли страниц и как с ними бороться?

Что такое внутренние дубли страниц и как с ними бороться? Анализ содержимого сайта показывает: Url разные, а контент страниц одинаковый. Думаете, ничего страшного? Но одинаковый контент может попасть под фильтры поисковых систем. Чтобы этого не произошло, надо знать, как избавляться от внутренних дублей...

28 06 2026 14:29:50

Теги alternate, hreflang, media, type — зачем и как их использовать

Теги alternate, hreflang, media, type — зачем и как их использовать О важных для разметки сайта тегах — alternate, hreflang, media, — и как их грамотно использовать при продвижении....

27 06 2026 21:43:35

Создаем спрос на бренд с помощью видеорекламы — кейс в тематике «металлопластиковые окна»

Создаем спрос на бренд с помощью видеорекламы — кейс в тематике «металлопластиковые окна» Как продвинуть бренд в конкурентной тематике? Читаем новый кейс по видеорекламе....

26 06 2026 11:16:17

Как настроить динамический ремаркетинг в Google Рекламе без Google Merchant Center

Как настроить динамический ремаркетинг в Google Рекламе без Google Merchant Center Создаем фид товаров, настравиваем код и списки динамического ремаркетинга для интернет-магазинов в странах, где отсутствует Google Merchant Center....

25 06 2026 5:44:34

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

Главные секреты планировщика ключевых слов Google Небольшой набор секретов по работе с Планировщиком ключевых слов гугла...

24 06 2026 23:41:37

Что такое XML-feed: как его создать и отредактировать

Что такое XML-feed: как его создать и отредактировать XML-фид представляет собой файл с кодом на языке XML, ссылку на который используют в различных сервисах...

23 06 2026 3:15:18

Оформляем товарную страницу: пять фишек для интернет-магазинов

Оформляем товарную страницу: пять фишек для интернет-магазинов Пять простых фишек для повышения привлекательности карточки товара....

22 06 2026 18:31:52

10 полезных приемов работы в Редакторе AdWords

10 полезных приемов работы в Редакторе AdWords Как специалисту сэкономить время для создания и оптимизации кампаний, проверки орфографии и другие фишки. Советы из пpaктики....

21 06 2026 9:38:10

Как настроить прослушивание кликов в Google Tag Manager 2.0

Как настроить прослушивание кликов в Google Tag Manager 2.0 Бонус в статье: как собрать аудитории для ремаркетинга на брошенную корзину...

20 06 2026 11:48:18

Алгоритмы Инстаграм 2021 — как работает ранжирование в ленте, сториз, Explore, Reels

Алгоритмы Инстаграм 2021 — как работает ранжирование в ленте, сториз, Explore, Reels Как посты и ролики Reels становятся первыми в ленте, сториз, попадают в рекомендации. Instagram впервые напрямую рассказали о том, как оценивают контент....

19 06 2026 4:41:41

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

Пост по мотивам видео Мэтта Каттса из Google. Из первых рук, как говорится....

18 06 2026 16:30:38

Как обнаружить и снять лишнюю ссылочную массу

Как обнаружить и снять лишнюю ссылочную массу Ссылки нужно не только наращивать, но и постоянно посещать и мониторить качество уже существующих....

17 06 2026 5:25:17

Как устроен маркетинг в OLX.ua — рассказывает Marketing Director Алексей Ломоносов

Не стучитесь к Алексею на ФБ с предложением что-то придумать для бренда. У Ломоносова целый тред таких непрочитанных сообщений. Узнать больше....

16 06 2026 19:31:49

Search Console Insights — как проанализировать контент на сайте

Search Console Insights — как проанализировать контент на сайте Каковы интересы вашей аудитории, как люди находят ваш контент. Рассказываем обо всех возможностях от Search Console Insights....

15 06 2026 13:15:35

Instagram: что нужно внедрить в 2020 году

Список рекомендаций для SMM-специалистов. Статья будет полезна SMM-менеджерам, проектным менеджерам, а также владельцам бизнеса, которые предпочитают самостоятельно ставить комaнде задачи и отслеживать выполнение целей....

14 06 2026 4:55:20

Как бизнесу сэкономить на digital-услугах в кризис: 6 рабочих способов

Как бизнесу сэкономить на digital-услугах в кризис: 6 рабочих способов Разбираем на примерах коллабораций, подрядчиков из регионов и тендендерных площадок...

13 06 2026 17:58:25

Как подготовить и написать предложение блогеру в Instagram

Как подготовить и написать предложение блогеру в Instagram Чтобы эффективно продвигать товар или услугу в Instagram, необходимо повысить охват целевой аудитории. Одно из возможных решений — привлечение блогеров. Казалось бы, достаточно предложить платное размещение рекламы…...

12 06 2026 8:38:14

120 пунктов продающей мобильной версии сайта — чек-лист

120 пунктов продающей мобильной версии сайта — чек-лист Пора сделать так, чтобы мобильная версия сайта приносила прибыль....

11 06 2026 1:29:56

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

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

10 06 2026 0:22:29

Как перевести свой аккаунт с Google ***ytics на Universal ***ytics

Как перевести свой аккаунт с Google ***ytics на Universal ***ytics Читайте простой мануал о том, как перейти на Universal ***ytics и не поломать весь сбор данных...

09 06 2026 18:39:31

Бизнес в Китае: история и реалии мирового лидера Tencent

Бизнес в Китае: история и реалии мирового лидера Tencent Tencent — китайская компания, мировой лидер в сфере игр. Все о создании компании, доходах, прибыли, инвестициях. Особенности ведения бизнеса в Китае — в пересказе статьи Паки Маккормик. Читать дальше!...

08 06 2026 3:49:33

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

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

07 06 2026 6:22:47

Интересные Telegram-каналы о бизнесе

Интересные Telegram-каналы о бизнесе От идеи для стартапа до плана развития и масштабирования бизнеса. Познавательные, полезные каналы, которые помогут реализовать смелые бизнес-цели. Узнать больше!...

06 06 2026 18:47:50

Как настроить динамические объявления в Яндекс.Директ

Объясняем по пунктам, как создать и правильно настроить DSA c таргетингом на фид и содержание сайта...

05 06 2026 23:23:59

Азы типографики — нескучно о шрифтах

Азы типографики — нескучно о шрифтах Нужно подобрать красивый шрифт? Готический или народный? Стандартный или фирменный? Как выбрать — рассказывает профессионал...

04 06 2026 22:11:41

Как сделать отчет для поиска перспективных товаров

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

03 06 2026 22:14:18

Как настроить email-маркетинг с нуля до окупаемости инвестиций за один месяц. Кейс Mechta.kz

Как настроить email-маркетинг с нуля до окупаемости инвестиций за один месяц. Кейс Mechta.kz Рост дохода в шесть раз, ROMI +500% за пять месяцев....

02 06 2026 10:33:50

40+ сервисов для работы с текстом — для копирайтеров, редакторов и других создателей контента

40+ сервисов для работы с текстом — для копирайтеров, редакторов и других создателей контента Подборка онлайн-платформ и программ для работы с текстом и изображениями....

01 06 2026 16:38:57

Небольшие IT компании

Небольшие IT компании Любопытная подборка "маленьких" гигантов: компании и сервисы, чья аудитория превышает 10 миллионов пользователей, а также несколько интересных фактов о каждом из них. Узнать больше!...

31 05 2026 11:24:52

Как собрать данные из Google Search Console и построить отчетность с помощью Python и Google BigQuery

Как сохранить статистику переходов из органики Google, а также автоматизировать отчетность: подробное руководство для технического специалиста....

30 05 2026 18:16:29

Апдейты поисковых алгоритмов Google, Яндекса и ручные санкции — мануал для вебмастеров

Апдейты поисковых алгоритмов Google, Яндекса и ручные санкции — мануал для вебмастеров Почему сайт упал в выдаче и какой апдейт алгоритма поисковика на это повлиял...

29 05 2026 4:34:37

Как редактировать скрипты Google Ads

Как редактировать скрипты Google Ads Пpaктика: где искать шаблоны скриптов, как их редактировать и какие есть меры предосторожности при работе со скриптами....

28 05 2026 20:36:45

Какие товары загружать на маркетплейсы — аналитика Hubber

Какие товары загружать на маркетплейсы — аналитика Hubber Специалисты дропшиппинг-платформы делятся данными по самым продаваемым товарам на крупных онлайн-площадках. Информация для масштабирования бизнеса. Читать!...

27 05 2026 6:14:54

Как перенести кампании в Google Рекламу и Яндекс.Директ — подробное руководство для новичков

Как перенести кампании в Google Рекламу и Яндекс.Директ — подробное руководство для новичков Не хотите настраивать объявление в Google Рекламе и Яндекс.Директ по отдельности? Узнайте, как сделать экспорт кампании и сэкономить время....

26 05 2026 7:24:43

Двенадцать веселых докладов TED Talks на различные темы

Двенадцать веселых докладов TED Talks на различные темы Идеи, достойные распространения. Какие доклады TED Talks повлияли на нетпиковцев....

25 05 2026 2:37:37

Почему мертвецы ставят «лайки» в Facebook?

Почему мертвецы ставят «лайки» в Facebook? Темная сторона лайков или правда о продвижении постов в Facebook...

24 05 2026 9:46:11

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