Есть у меня на сопровождении крупная федеральная сеть фастфуда: несколько десятков городов, у каждого свой поддомен. В 2026 году мы перевезли всю сеть со старого стека на SPA + SSR. Двумя волнами. Результат я снимал дважды: через три месяца и через полгода. Ниже методика, цифры по каждому городу и одна находка, которой я не ждал: вторая волна случайно стала контрольной группой для первой.
Есть проекты, где переезд делают на растущем сайте, и любая просадка видна сразу. У нас было сложнее. Спрос в нише падает уже два года, трафик едет вниз вместе с рынком, а переехать надо, ничего не сломав.
Сразу расставлю точки: год к году трафик действительно снижается, и снижался ещё до переезда. Это падение рынка, а не косяк сайта или техники. Поэтому задача была не «показать рост», а доказать, что переезд не сделал хуже. По факту данные показали больше: на поиске новый стек переломил тренд.
Если лень читать всё
Первые три месяца после переезда, 7 доменов первой волны, год к году с выравниванием по дню недели:
- Общий трафик как падал на -48% к прошлому году, так и падает (-49,6% после). Переезд не навредил, а это и была цель-минимум.
- Поиск переломился: падение сократилось с -50% до -32%. Яндекс дал +23,1 п.п. к тренду, Google +10,0 п.п.
- Перелом виден в первый же месяц. Апрель: -28% против -50% в марте.
- Три города вышли в плюс по Яндексу: +18,8%, +16,0% и +2,4%.
- Видимость выросла у 9 из 13 пар «домен × поисковик» по TopVisor.
Контрольная точка через полгода, данные по 18 сентября 2026:
- Эффект удержался. Поиск идёт на -33% к прошлому году против -50% до переезда, это +16,6 п.п. к тренду (Яндекс +19,5, Google +11,0).
- Остальные города переехали только 19-20 мая, и в апреле они работали контрольной группой. Их динамика в апреле не изменилась, у переехавших переломилась. DiD с контролем: +20,8 п.п. по поиску.
- Вторая волна повторила перелом: поиск у 23 городов вышел с -38% на -8% год к году, Яндекс в плюс (+12,6%).
Что за проект
Партнёр – крупная федеральная сеть фастфуда с доставкой, название не раскрываю по условиям NDA. Каждый город живёт на своём поддомене вида {город}.домен.ru, всего их несколько десятков. По сути это десятки независимых в индексации сайтов на одной CMS, и любой риск переезда умножается на число регионов.
На первом этапе мы перевели на новый стек 8 поддоменов. В анализе год к году участвуют 7 из них, по ним есть данные за оба года. В таблицах и на графиках они обозначены буквами A-G. Восьмой запустился в 2026-м, истории за прошлый год у него нет. Остальные города сети переехали второй волной 19-20 мая 2026 года. До этого они служили контрольной группой, после стали независимой проверкой результата. Про них ниже.
Почему трафик падает и почему это не пессимизация
Прежде чем оценивать переезд, нужно честно зафиксировать фон. Трафик сети снижается год к году уже несколько лет. Это не санкция и не пессимизация, и доказать это проще всего по Google Search Console за сопоставимый период (данные по России):
Средняя позиция сайта улучшилась вдвое, с 18,4 до 9,2. CTR тоже вырос: 19,0% → 20,4%. При этом показы упали на 27,2%, клики на 21,8%. Если бы сайт понижали алгоритмы, падала бы позиция. Здесь наоборот: ранжирование стало лучше, а объём сжался. Ушёл сам спрос.
Знаю, что скажет скептик: «Средняя позиция улучшилась механически, просто выпали мусорные показы на дальних позициях». Проверил и это. Пересчитал позицию по неизменной корзине запросов, то есть только по тем, что показывались в оба года, с постоянными весами. По небрендовым запросам позиция улучшилась с 15,6 до 9,5: главный категорийный запрос 15,0 → 7,9, второй по объёму 20,4 → 8,7, «доставка + категория» 33,4 → 13,9. Это данные по всем регионам.
Отдельно отмечу, что большая часть запросов по крупнейшим регионам вышла в топ-5, например по крупнейшему городу сети главный категорийный запрос 21 → 7, второй – 14 → 2. Рост ранжирования реальный, а не артефакт усреднения.
Показательны и брендовые запросы. Название бренда стабильно на первой позиции (1,05 → 1,14), но кликов по нему стало меньше на 23%. Люди просто реже ищут бренд.
Спрос падает по всей нише, и это видно по Вордстату:
Главный коммерческий запрос ниши по всей России за два года сжался почти вдвое. За март-июнь спрос -42,5% год к году. Причём доля этого запроса среди всех запросов Яндекса тоже снизилась почти вдвое, так что падение реальное, а не следствие изменений в базе Вордстата.
Для проверки взял и вторую категорию меню. Её главный запрос падает синхронно: -39,3% год к году за тот же период. Когда обе главные категории проседают одинаково, это спрос всей ниши, а не проблема отдельного запроса.
Ещё одно возражение, которое я проверил: а не ушла ли из Google сама аудитория? Нет. По StatCounter доля Google в поиске по России за март-сентябрь даже немного выросла: 25,0% в 2025-м против 26,6% в 2026-м. Яндекс Радар на сентябрь 2026 даёт Google 26,2%. Внутри сети та же картина: у переехавших доменов доля Google в поисковых визитах выросла с 42,8% до 46,5%. Так что падение кликов из Google при росте позиции – это спрос в нише, а не отток аудитории.
Отсюда вывод для методики. Оценивать переезд по абсолютным цифрам «до/после» внутри одного года на таком фоне некорректно: календарные пики спроса и нисходящий тренд рынка исказят картину. Поэтому считаем год к году.
Почему переезды обычно стоят трафика
Риски, которые я держал в голове на старте:
- Смена URL. Любой несохранённый ЧПУ равен потерянным позициям и сигналам.
- Обнуление поведенческих факторов при смене вёрстки и шаблонов.
- Рендеринг для роботов. Если контент уезжает в клиентский JavaScript, а серверного HTML нет, робот получает пустую страницу.
- Скорость. JS-интенсивные одностраничники регулярно проседают по Core Web Vitals.
Под каждый риск мы сформулировали требование к разработке ещё до начала работ.
Откуда и куда переезжали
Старый стек – полностью SSR, классический серверный рендеринг. Сервер отдаёт готовый HTML, и робот, и пользователь сразу получают контент. Это легко проверить: в исходном коде страницы старой версии виден весь контент без выполнения JavaScript.
Новый стек – SPA + SSR с гидратацией. В основе одностраничное приложение, но с серверным рендерингом. Робот по-прежнему получает полный серверный HTML и ничего не теряет в индексации, а после загрузки управление перехватывает SPA. Именно SPA-слой и был главной зоной риска, поэтому главным условием стало сохранить серверный рендеринг для роботов.
Что заложили в техническое задание
- Все URL сохраняются, включая региональные поддомены.
- SSR или гибрид SSR + SSG с гидратацией: робот получает полный HTML без JavaScript.
- Мета-теги, canonical, микроразметка и JSON-LD одинаковы на сервере и на клиенте.
- Параметры скролла и навигации в SPA не плодят дубли, canonical чистый.
- Город SSR определяет по поддомену сам.
- Серверный рендер укладывается в 500 мс.
- Релиз канареечный, с мониторингом Search Console и готовностью к откату.
На практике канарейка была двухступенчатой. Сначала новая версия выкладывалась на технические поддомены с canonical на старую, это нужно было в том числе для продуктовых A/B-тестов. Затем прошёл пилот на отдельных боевых поддоменах с проверкой рендеринга, микроразметки, canonical и мета-тегов. После пилота его планово откатили, закрыли все замечания и только потом провели финальный переезд.
Хронология работ
| Период | Этап |
|---|---|
| Июнь 2025 | ТЗ на переезд «Ключевые принципы переезда»: сохранение URL, серверный рендеринг, идентичность SEO-атрибутов |
| Июль-август 2025 | Разработка нового фронта; первая SEO-проверка dev-версии, список доработок |
| Октябрь 2025 | Стратегия канареечного запуска: новая версия на технических поддоменах с canonical на старую; обязательные условия – мета-теги и рендеринг |
| Ноябрь-декабрь 2025 | Пилот на отдельных поддоменах: проверка рендеринга, микроразметки, canonical, мета-тегов; правки по итогам |
| Январь 2026 | Плановый откат пилота; план финального переезда |
| Февраль-март 2026 | Финальная подготовка: robots.txt + Clean-param, перезаливка H1, чек-лист по предрелизным стендам |
| 31 марта 2026 | Переключение на новый стек: первая волна 4 города, затем ещё 3 |
| Апрель 2026 | Пост-мониторинг и фиксы; экспресс-оценка; настройка передачи виртуальных просмотров в Метрику (заработала 6 мая) |
| 19-20 мая 2026 | Вторая волна: остальные города сети переведены на новый стек |
| Май-июль 2026 | Детальный анализ год к году: перелом поискового тренда |
| Сентябрь 2026 | Контрольная точка «+6 месяцев»: эффект удержался, вторая волна повторила перелом |
По календарю: от ТЗ в июне 2025-го до первого переключения прошло меньше года, а вся сеть оказалась на новом стеке ещё через семь недель. Полтора месяца между волнами и сделали этот кейс интересным, о чём дальше.
Как я считал эффект (и почему не «просто выросли»)
Нужно было отделить эффект переезда от календарных пиков спроса и от общего тренда рынка. Два приёма:
- Год к году с выравниванием по дню недели. Сравниваю 127 пар дней: окно 01.03-05.07.2026 против 02.03-06.07.2025. Окна намеренно сдвинуты на один день, чтобы дни недели совпали (оба начинаются с воскресенья), иначе пятничные пики исказили бы сравнение. Праздники есть в обоих годах и взаимно компенсируются. Для контрольной точки то же окно расширено до 202 пар: 01.03-18.09.2026 против 02.03-19.09.2025.
- Difference-in-differences, он же DiD. Считаю YoY-динамику отдельно до переезда (март) и после (апрель и дальше). Разница между ними и есть чистый эффект переезда поверх фонового тренда.
Две оговорки для строгости. Первая: в июльском анализе я сравнивал переехавшие домены только с ними же самими, с их мартовским трендом. Группы городов, которые в тот же период остались на старом стеке, для сравнения тогда ещё не было. Допущение подкреплял GSC: ранжирование не деградировало. К сентябрю такая группа появилась сама собой. Остальные города переехали только 19-20 мая, поэтому апрель даёт чистое сравнение переехавших с непереехавшими. Вторая оговорка про периметры источников: Метрика в расчётах покрывает 7 переехавших поддоменов, GSC выше – весь домен со всеми поддоменами. Цифры из разных источников не обязаны совпадать между собой.
Результат: перелом поискового тренда
Падение началось задолго до переезда, около -48% уже в марте. После переключения поисковый тренд заметно выправился.
| Метрика | YoY до | YoY после | Эффект |
|---|---|---|---|
| Весь трафик | −47,8% | −49,6% | −1,7 п.п. |
| Поиск | −49,7% | −31,6% | +18,1 п.п. |
| Яндекс | −56,0% | −33,0% | +23,1 п.п. |
| −39,8% | −29,9% | +10,0 п.п. |
Читается прямо. Общий трафик продолжил падать тем же темпом, то есть переезд его не усугубил. А поиск после переезда стал падать почти вдвое медленнее: -31,6% против -49,7%. По Яндексу разрыв к тренду +23,1 пункта, по Google +10,0.
Важная деталь для атрибуции: перелом случился в первый же месяц. В апреле падение поиска составило -27,6% против -49,7% в марте. Реакция на переключение видна сразу, до каких-либо других изменений на проекте.
По доменам эффект положительный у всех
| Домен | Поиск, до | Поиск, после | Эффект | Яндекс после |
|---|---|---|---|---|
| Город A | −55,7% | −46,3% | +9,4 п.п. | −54,6% |
| Город B | −38,5% | −21,5% | +16,9 п.п. | −9,3% |
| Город C | −49,7% | −25,9% | +23,7 п.п. | −19,4% |
| Город D | −36,5% | −3,8% | +32,7 п.п. | +18,8% |
| Город E | −47,4% | −13,5% | +33,9 п.п. | +2,4% |
| Город F | −22,8% | +1,8% | +24,6 п.п. | +16,0% |
| Город G | −49,7% | −20,8% | +28,9 п.п. | −8,1% |
Эффект в поиске положительный у всех семи доменов, от +9 до +34 п.п. к тренду. Три домена после переезда вышли в плюс по Яндексу, то есть по этому источнику они не просто замедлили падение, а превзошли уровень прошлого года. Город F и по совокупному поиску ушёл в плюс: +1,8%.
Видимость по доменам
Отдельно от трафика смотрел видимость по позициям. TopVisor, срез 21.02-07.05.2026, до и после переезда, в пунктах:
Рост у 9 из 13 пар. Заметнее всего прибавили B, C и D в Яндексе, G и E в Google.
Полгода спустя: эффект держится, а вторая волна его повторила
Первый анализ я делал по трём месяцам. В сентябре снял контрольную точку по той же методике, расширив окно до 202 пар дней: 01.03-18.09.2026 против 02.03-19.09.2025. За это время случилось главное для чистоты эксперимента: 19-20 мая на новый стек переехали остальные города сети.
Так у меня появились две группы. Первая волна: 7 доменов, переезд 31 марта и 1 апреля. Вторая волна: 23 города с сопоставимыми данными за оба года, переезд 19-20 мая. Из второй волны я убрал города, открытые в 2026-м, и совсем маленькие домены, у них статистика шумит.
Первая волна: эффект держится полгода
| Метрика | YoY до (март) | YoY после (апрель – 18 сентября) | Эффект |
|---|---|---|---|
| Весь трафик | −47,8% | −45,8% | +2,0 п.п. |
| Поиск | −49,7% | −33,1% | +16,6 п.п. |
| Яндекс | −56,0% | −36,5% | +19,5 п.п. |
| −39,8% | −28,8% | +11,0 п.п. |
На горизонте пяти с половиной месяцев эффект почти не размылся. По поиску +16,6 п.п. к тренду против +18,1 в первом анализе, по Яндексу +19,5, по Google +11,0. Общий трафик по-прежнему идёт вровень с рынком: -47,8% до переезда и -45,8% после.
| Месяц 2026 | Поиск | Яндекс | |
|---|---|---|---|
| Март (до переезда) | −49,7% | −56,0% | −39,8% |
| Апрель | −27,6% | −29,3% | −25,6% |
| Май | −32,2% | −31,2% | −33,5% |
| Июнь | −34,7% | −38,0% | −30,5% |
| Июль | −33,9% | −40,1% | −25,7% |
| Август | −40,7% | −46,8% | −32,8% |
| Сентябрь (1-18) | −26,0% | −30,9% | −20,0% |
Помесячно все шесть месяцев после переезда лучше мартовской базы. Самым слабым вышел август (-40,7%), самыми сильными апрель (-27,6%) и первая половина сентября (-26,0%). Разброс между месяцами есть, но ни один не вернулся к -50%.
| Домен | Поиск, до | Поиск, апрель – сентябрь | Эффект | Яндекс после |
|---|---|---|---|---|
| Город A | −55,7% | −48,9% | +6,8 п.п. | −60,2% |
| Город B | −38,5% | −20,3% | +18,2 п.п. | −8,0% |
| Город C | −49,7% | −27,3% | +22,4 п.п. | −24,3% |
| Город D | −36,5% | −6,0% | +30,5 п.п. | +16,1% |
| Город E | −47,4% | −14,9% | +32,5 п.п. | +1,8% |
| Город F | −22,8% | +4,7% | +27,5 п.п. | +20,1% |
| Город G | −49,7% | −22,4% | +27,3 п.п. | −3,3% |
По доменам эффект остался положительным у всех семи, от +7 до +33 п.п. к тренду. Те же три города держатся в плюсе по Яндексу: F +20,1%, D +16,1%, E +1,8%.
Слабее всех город A, крупнейший в первой волне – на него приходится 40% поиска: Яндекс -60,2% год к году. Без него первая волна выглядит совсем иначе: поиск -16,2% против -43,1% до переезда, Яндекс -0,7%, то есть на уровне прошлого года. Почему именно этот город, я пока не разобрался, это отдельная история. Но стек тут вряд ли виноват: остальные шесть доменов на том же стеке по Яндексу вышли на прошлогодний уровень.
Вторая волна: контрольная группа, которая потом сама стала экспериментом
Пока остальные города сидели на старом стеке, они работали контрольной группой. Смотрим апрель, первый месяц первой волны на новом стеке. У переехавших падение поиска сократилось с -49,7% до -27,6%. У непереехавших практически ничего не изменилось: -38,8% → -37,5%.
Классический DiD с контролем даёт +20,8 п.п. по поиску (Яндекс +24,6, Google +14,2). Почти в точности то, что я получил в июле без контрольной группы (+18,1). Это закрывает главную оговорку первого анализа: рынок в апреле не «сам выправился», иначе выправились бы и непереехавшие города.
| Метрика | 1-я волна: март → апрель | Контроль: март → апрель | DiD |
|---|---|---|---|
| Весь трафик | −47,8% → −46,6% | −42,5% → −47,5% | +6,2 п.п. |
| Поиск | −49,7% → −27,6% | −38,8% → −37,5% | +20,8 п.п. |
| Яндекс | −56,0% → −29,3% | −31,7% → −29,6% | +24,6 п.п. |
| −39,8% → −25,6% | −47,1% → −47,1% | +14,2 п.п. |
В таблице хорошо видно, что у контроля по Google не сдвинулось вообще ничего: -47,1% в марте и те же -47,1% в апреле. По Яндексу контроль колебался в пределах двух пунктов. Весь сдвиг апреля пришёлся на переехавшие домены.
Затем 19-20 мая вторая волна переехала сама. И повторила перелом. До переезда (март-апрель) её поиск шёл на -38,2% к прошлому году, после (июнь и до 18 сентября) на -7,7%. Яндекс вышел в плюс: +12,6% год к году. Google с -47,1% до -31,5%. Май, когда переезд шёл, из сравнения исключён. Эффект в поиске положительный у всех 23 доменов, 17 из них вышли в плюс по Яндексу.
| Метрика | YoY до (март-апрель) | YoY после (июнь – 18 сентября) | Эффект |
|---|---|---|---|
| Весь трафик | −44,9% | −19,8% | +25,1 п.п. |
| Поиск | −38,2% | −7,7% | +30,5 п.п. |
| Яндекс | −30,7% | +12,6% | +43,3 п.п. |
| −47,1% | −31,5% | +15,6 п.п. |
У второй волны сдвинулся даже общий трафик: с -44,9% до -19,8%. У первой волны такого не было. Отчасти это города поменьше, где поисковый трафик составляет большую долю всего, отчасти лето. Точно раскладывать не берусь.
| Месяц 2026 | Поиск | Яндекс | |
|---|---|---|---|
| Март | −38,8% | −31,7% | −47,1% |
| Апрель | −37,5% | −29,6% | −47,1% |
| Май (переезд 19-20) | −29,2% | −18,0% | −42,6% |
| Июнь | −17,3% | −2,3% | −35,6% |
| Июль | −1,3% | +20,5% | −27,0% |
| Август | −12,7% | +7,9% | −36,3% |
| Сентябрь (1-18) | +9,6% | +38,0% | −22,4% |
Помесячно картина зеркальна первой волне, только сдвинута на полтора месяца: март и апрель без изменений, в мае переезд, с июня падение сокращается, в июле поиск уже почти на уровне прошлого года (-1,3%), а Яндекс в плюсе на +20,5%.
У второй волны эффект даже сильнее, чем у первой. Две правдоподобные причины, обе гипотезы. К маю стек уже был отлажен на первой волне: виртуальные просмотры, robots.txt, мета-теги. И города второй волны меньше, конкуренция в их выдаче ниже. Но важнее другое: перелом воспроизвёлся на независимой группе доменов и ровно в месяц их переезда.
Видимость за лето: без движения
Видимость по TopVisor за май-сентябрь эффекта не показывает ни в одну сторону. У первой волны медианное изменение -4,1 пункта, и это в пределах шума: между соседними замерами видимость в Яндексе у этих проектов гуляет на 3-10 пунктов. У остальных городов после переезда видимость в Google выросла у 15 из 25 доменов (медиана +5,0), в Яндексе медиана -4,0.
По позициям картина ровная, но противоречия с трафиком здесь нет: эффект лежит там, куда видимость по ядру не смотрит. В Google сдвинулись сами позиции, только не в ядре TopVisor из 260-300 категорийных запросов на город, где половина и так в топ-10, а по всей массе запросов: в Google Search Console средняя позиция улучшилась с 18,4 до 9,2, по неизменной корзине небрендовых – с 15,6 до 9,5. В Яндексе позиции и правда не двигались: по Вебмастеру у второй волны средняя позиция показа до и после переезда 5,1 → 5,2, показов больше всего на 4%. Зато кликов больше на 28%, потому что CTR вырос с 21,7% до 26,6%. У крупнейшего города первой волны, который уже жил на новом стеке, CTR за те же месяцы снизился на 3,5 п.п., так что общим сдвигом выдачи это не объяснить. Что именно в новом стеке подняло кликабельность в Яндексе, по этим данным не видно; первые кандидаты – сниппеты и скорость на мобильных.
Про поведенческие метрики после переезда
Сразу после переезда часть поведенческих показателей в аналитике заметно просела. Выглядело тревожно: неужели мы где-то так жёстко накосячили? После проверки выяснилось, что проблема не в реальных показателях, а в настройке отслеживания событий.
- Глубина просмотра упала из-за SPA. Без настройки виртуальных событий Метрика фиксировала один заход вместо реальных 5-7 шагов. После настройки передачи виртуальных просмотров показатели выправились.
- Структурный сдвиг трафика разбавил средние. Выросла доля коротких сессий, они утянули вниз средние, но поведение целевой аудитории не изменилось.
Практический урок: оценивать поведенческие сразу после релиза SPA по «сырым» данным нельзя. Да и в принципе учитывайте эту особенность при переезде.
Выводы
- Переезд на новый стек во время падения рынка – управляемый риск. Главное не сделать хуже. Общий трафик после переезда снижался тем же темпом, что и до: -47,8% → -49,6% за три месяца, -45,8% за полгода. Вреда переезд не добавил.
- На поиске же переезд наоборот переломил тренд, и эффект держится. За три месяца +18,1 п.п. к тренду, за полгода +16,6, по Яндексу +19,5. Эффект положителен у всех семи доменов, перелом виден с первого месяца, три домена держатся в плюсе по Яндексу.
- Вторая волна подтвердила результат независимо. Пока остальные города были на старом стеке, они не выправлялись (DiD с контролем +20,8 п.п.). После своего переезда 19-20 мая они повторили перелом: поиск с -38% до -8% год к году, Яндекс в плюс.
- Снижение трафика – это падение рынка, а не пессимизация. Позиция улучшилась вдвое, в том числе по неизменной корзине небрендовых запросов (15,6 → 9,5), а спрос в нише рухнул на 42,5% год к году. Сайт при этом теряет медленнее рынка (клики -21,8%). Спрос техническим переездом не чинится, надеюсь, это читателям и так понятно.
- Мерить эффект нужно год к году и через DiD. Сравнение «до/после» внутри одного года на фоне падающего рынка и календарных пиков спроса вводит в заблуждение. А лучший контроль – параллельная группа. Если переезд идёт волнами, непереехавшие домены и есть ваш контроль, не упускайте этот шанс.
Короче, даже на фоне затяжного падения рынка корректно проведённый переезд на SPA + SSR не усугубляет ситуацию, а на поиске способен переломить динамику. У нас это подтвердилось дважды, на двух волнах, и с чистым контролем в апреле 2026 года.
Считаю эффект переезда, релиза или фильтра честно: год к году, с контрольной группой и воспроизводимым расчётом.