Как сделать SPA-сайты SEO-Friendly? > NetPeak - Независимость и осознанность
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.



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

myTarget: 10 фишек для продвижения мобильных приложений

myTarget: 10 фишек для продвижения мобильных приложений Look-alike аудитории, таргетинг на участников групп, ограничение стоимости установки и другие вкусные фишки myTarget...

12 12 2024 19:50:17

Советы от Google для бизнеса — как вести себя в период неопределенности

Рекомендации от Google для бизнеса о поведении в период распространения коронавируса....

11 12 2024 1:20:23

Как PPC-специалисту жить в этом несовершенном мире?

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

10 12 2024 0:30:53

Как привлечь целевой трафик на сайт: кейсы по подбору ключевых фраз с помощью Serpstat (ex. Prodvigator)

Как привлечь целевой трафик на сайт: кейсы по подбору ключевых фраз с помощью Serpstat (ex. Prodvigator) Как использовать расширенное семантическое ядро для увеличения целевого трафика....

09 12 2024 4:49:30

Как работать с Яндекс.Вебвизор 2.0

Как работать с Яндекс.Вебвизор 2.0 Бета-версия помогает записывать действия пользователей на сайте и благодаря этому улучшать удобство использования сайта и в перспективе растить продажи. Узнать больше!...

08 12 2024 6:47:29

Карантин 2020 — как сохранить здоровую психику

Карантин 2020 — как сохранить здоровую психику Самопомощь по тревоге во время карантина и экономического кризиса...

07 12 2024 13:29:39

Как быстро снизить стоимость конверсий в нише элитных автоуслуг — кейс Аверс-центр

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

06 12 2024 5:56:37

Отчеты Google ***ytics — подробное руководство с объяснениями

Отчеты Google ***ytics — подробное руководство с объяснениями То, чего нет в справке — подробный обзор отчетов Google ***ytics: в режиме реального времени, по аудитории, источникам трафика, поведению, конверсии. Узнать больше!...

05 12 2024 21:19:29

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

План продвижения мобильного приложения — подробный чек-лист Уже сейчас в Google Play и App Store миллионы приложений. Как сделать так, чтобы приложение получило достаточное количество установок и приносило доход? Читайте об этом далее и изучайте наглядную инфографику!...

04 12 2024 17:38:18

Сколько стоил клик в Google Ads в четвертом квартале 2016 — исследование Netpeak

Сколько стоил клик в Google Ads в четвертом квартале 2016 — исследование Netpeak Алексей Селезнев проанализировал 29 млн кликов, и в этой статье вы прочитаете, как дорого обходятся рекламодателям клики в Google Ads....

03 12 2024 5:36:50

RFM-анализ: три параметра для сверхточной сегментации базы email-рассылок

RFM-анализ: три параметра для сверхточной сегментации базы email-рассылок RFM — это аббревиатура слов Recency, Frequency, Money — новизна, частота, деньги. То есть считаем, как давно клиент купил товар в последний раз, сколько всего покупок он сделал и сколько денег принес нам за все время заказов....

02 12 2024 12:46:16

Офлайн — новый онлайн? Зачем онлайн-бизнес открывает торговые точки

Офлайн — новый онлайн? Зачем онлайн-бизнес открывает торговые точки Как бизнес подстраивается под новые привычки покупателей в стиле фиджитал и O2O2O....

01 12 2024 20:47:59

14 неочевидных и пpaктически применимых фишек круглого стола SaaS Nation 2017

14 неочевидных и пpaктически применимых фишек круглого стола SaaS Nation 2017 Советы от Agorapulse, Smarp, Readdle, Competera, Leadfeeder, Smartly, Toggl, Grammarly, .Io Media, MacPaw, Depositphotos, Promorepuplic, OWOX, Serpstat, Quokka и TemplateMonster для развития SaaS-продуктов...

30 11 2024 7:12:59

От разработки сайта до ROMI 1070% за два года — кейс Dressa

От разработки сайта до ROMI 1070% за два года — кейс Dressa Что бывает, когда работа над продвижением сайта начинается до его выхода в паблик....

29 11 2024 19:10:47

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

Как выбрать трекер для мобильного приложения — часть вторая Трекеры теперь на любой вкус: за лидерство в сфере аналитики и трекинга в мире мобильных приложений все еще конкурируют более десяти различных систем. Как не растеряться в обилии инструментов?...

28 11 2024 1:59:58

Спарта, поза гирлянды и микрочип: реклама июня-2021

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

27 11 2024 19:19:54

Как написать кейс — руководство для технарей на примере кейса Citrus и Netpeak в блоге Google

Как написать кейс — руководство для технарей на примере кейса Citrus и Netpeak в блоге Google Как написать годный кейс и победить страх чистого листа...

26 11 2024 3:28:50

Портрет украинского фрилансера — исследование Freelancehunt.

Портрет украинского фрилансера — исследование Freelancehunt. Ежегодный прирост рынка фриланса в Украине составляет в среднем 35%. В прошлом году зарегистрировано более 200 тысяч проектов на общую сумму 385 млн гривен....

25 11 2024 2:22:40

Как внедрить аналитику бизнес-процессов с минимальными тратами — антикризисный мануал

Как внедрить аналитику бизнес-процессов с минимальными тратами — антикризисный мануал Как внедрить Business Intelligence для малого и среднего бизнеса....

24 11 2024 4:37:33

Techtober: что показали Apple, Google и Samsung.

Techtober: что показали Apple, Google и Samsung. Apple, Google и Samsung — давайте вспомним новинки месяца....

23 11 2024 23:11:59

Как разработать эффективное поисковое объявление по новым правилам Google — адаптивное поисковое объявление

Как разработать эффективное поисковое объявление по новым правилам Google — адаптивное поисковое объявление Происходит все большая автоматизация рекламы от Google. И это хорошо....

22 11 2024 21:28:37

Закон о языках и ваш сайт: как создать украинскую версию и где искать удачные кейсы

Закон о языках и ваш сайт: как создать украинскую версию и где искать удачные кейсы Рекомендации и мнения экспертов по одной из самых противоречивых тем украинского интернет-прострaнcтва....

21 11 2024 21:13:13

Кейс Videonabliudenie.eu: рост количества звонков на 107% за 6 месяцев

Кейс Videonabliudenie.eu: рост количества звонков на 107% за 6 месяцев Повышение эффективности продаж через звонки с помощью call tracking....

20 11 2024 12:15:45

Как работают смарт-баннеры в Яндекс.Директ — кейс интернет-магазина товаров для сада и огорода

Как работают смарт-баннеры в Яндекс.Директ — кейс интернет-магазина товаров для сада и огорода Решили написать про новый формат рекламы — баннерный...

19 11 2024 9:19:28

SEO growth hacking. Как находить идеи и внедрять точки кратного роста

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

18 11 2024 17:42:57

Как настраивать представления в Google ***ytics — подробное руководство

Как настраивать представления в Google ***ytics — подробное руководство Представление — это уровень доступа в аккаунте Google ***ytics. На уровне представления можно предоставить или ограничить доступ пользователей к отчетам и аналитическим инструментам...

17 11 2024 7:30:50

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

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

16 11 2024 7:33:36

Мобильные приложения: как собрать данные на этапе MVP, чтобы было с чем идти к инвестору

Мобильные приложения: как собрать данные на этапе MVP, чтобы было с чем идти к инвестору Как протестировать MVP мобильного приложения, получить обратную связь и сформировать гипотезы...

15 11 2024 12:35:43

Serpstat 2.0: как внутренняя разработка выросла в All-in-One SEO Platform

Serpstat 2.0: как внутренняя разработка выросла в All-in-One SEO Platform Короткая история Serpstat — от сервиса «для своих» до международной SEO-платформы....

14 11 2024 9:46:25

Макс Бурцев (Arriba) про большие идеи для брендов

Суть бренда на одном дыхании: о рекламе с любовью. Изначально под большой идеей мы пониманием ту пользу, которую несет бренд в окружающий его мир. Помимо этого, большая идея — это те «рельсы», по которым будут ехать все коммуникации бренда в течение нескольких лет...

13 11 2024 6:33:22

17 полезных кейсов от спикеров 8P

17 полезных кейсов от спикеров 8P Нашим решением было трaнcлировать хотя бы часть опыта спикеров 8P, составив дайджест лучших, на их взгляд, кейсов, о которых они узнали за этот год....

12 11 2024 13:11:35

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

Мобильное приложение для бизнеса: на что обратить внимание до того, как заплатить разработчику Вам нужно приложение или мобильная версия сайта? Как вы собираетесь монетизировать приложение? И другие важные вопросы, на которые нужно ответить до разработки....

11 11 2024 2:56:18

Бархатная оптимизация исходящих ссылок

Бархатная оптимизация исходящих ссылок Качественные исходящие ссылки и исходящий мусор, который только вредит репутации сайта. Находим и отсеиваем....

09 11 2024 20:28:45

Кейс по продвижению детских товаров в Google Рекламе: ROMI 23%

Кейс по продвижению детских товаров в Google Рекламе: ROMI 23% Полем битвы стала тематика кроваток, игрушек и прочих детских товаров, основным оружием в бою — контекстная реклама....

08 11 2024 15:10:38

Как работать с перформанс-рекламой

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

07 11 2024 1:52:55

PPC на украинском. Как языковой закон влияет на контекстную рекламу

PPC на украинском. Как языковой закон влияет на контекстную рекламу Языковой закон требует, чтобы общение бизнеса с клиентами шло на украинском языке, если нет просьбы о другом приемлемом варианте. Что это означает для РРС, читайте дальше....

06 11 2024 21:28:49

Топ-25 телеграм-каналов о веб-дизайне, на которые стоит подписаться

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

05 11 2024 19:28:33

Как с помощью коллтрекинга снизить стоимость конверсии на 47% — кейс в тематике «металлопластиковые окна»

Как с помощью коллтрекинга снизить стоимость конверсии на 47% — кейс в тематике «металлопластиковые окна» Как обнаружить слабые места бизнеса и улучшить продажи с помощью технологии Call Tracking....

04 11 2024 5:54:53

Сколько стоил клик в Google Ads в Украине в четвертом квартале 2020 года — исследование Netpeak

Данные, приведенные в исследовании, могут помочь в составлении медиапланов по продвижению в интернете. Читать дальше....

03 11 2024 18:25:41

Как работать с репутацией медицинского бренда в интернете — кейс Synevo

Как работать с репутацией медицинского бренда в интернете — кейс Synevo Как работать с негативом и что делать, чтобы его было меньше/не было вовсе....

02 11 2024 20:26:49

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

Как работать с закладками в Power BI — подробное руководство В этой статье я покажу пример визуальной работы с закладкой и пошагово разберу процесс их создания и применения для удобства визуализации данных...

01 11 2024 21:56:49

Что объединяет в себе понятие ремаркетинг

Что объединяет в себе понятие ремаркетинг Подробнейшая статья об эффективном использовании ремаркетинга. Мотаем на ус!...

31 10 2024 3:20:23

Как я работаю дома с двумя детьми — хроники безумного папы

Как я работаю дома с двумя детьми — хроники безумного папы Опыт сотрудника отдела маркетинга Netpeak. Дочке Маше — 10 лет, сыну Егору — почти 4 года. Мы по-прежнему не очень продуктивны в таких условиях, но все же накопили больше опыта, чем те люди, которые сейчас внезапно столкнулись с удаленной работой...

30 10 2024 10:11:56

Как связать CRM с системой Сall Tracking — кейсы для руководителя, менеджера и маркетолога

Как связать CRM с системой Сall Tracking — кейсы для руководителя, менеджера и маркетолога Лучшая работа по перехвату инициативы у конкурентов в аналитике продаж...

29 10 2024 21:32:49

Десять фишечек юзабилити — примеры, которые стоит почерпнуть

Десять фишечек юзабилити — примеры, которые стоит почерпнуть Семинар с примерами юзабилити решений от Twitter, Airbnb, Amazon и других компаний....

28 10 2024 4:47:51

Запросы not provided — как получить больше информации

Запросы not provided — как получить больше информации Отслеживаем в статистике Google ***ytics посетителей пришедших через защищенное соединение в поиске Google....

27 10 2024 9:55:44

Как использовать регулярные выражения в Google ***ytics и Google Tag Manager

Как использовать регулярные выражения в Google ***ytics и Google Tag Manager Как поможет Regex Engines в работе с Google ***ytics и преимущества использования Regex в Диспетчере тегов Google. Узнать больше....

26 10 2024 2:46:59

Once upon a time… 22 правила сторителлинга от Pixar

Как рассказывать истории...

25 10 2024 14:51:45

Что такое веб-архив и как им пользоваться

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

24 10 2024 2:25:23

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