Миграция базы данных сайта
Миграция базы данных — технически самый рискованный этап инфраструктурной работы. Потеря данных или недоступность сайта во время переноса имеют прямые финансовые последствия: один час простоя интернет-магазина может обернуться десятками тысяч рублей упущенной выручки, а повреждение таблиц с заказами — невосполнимым ущербом для репутации. Опытные инженеры знают: 80% проблем возникает из-за неучтённых зависимостей, несовместимости версий СУБД или отсутствия тестового отката. Наша команда выполняет миграции под ключ с гарантией целостности и минимальным простоем, опираясь на более чем десятилетнюю практику и десятки успешных проектов. Мы не просто копируем данные — мы проектируем безопасный переход с нулевым риском для бизнеса.
Как выбрать стратегию миграции в зависимости от downtime?
Выбор стратегии диктуется размером БД, допустимым временем простоя и требованиями к согласованности. Ниже — сравнение трёх основных подходов.
| Стратегия |
Downtime |
Сложность |
Риск потери данных |
| Maintenance window (дамп + перенос) |
Часы |
Низкая |
Средний (ручной дамп) |
| Online migration (репликация) |
Секунды |
Высокая |
Низкий (автоматическая синхронизация) |
| Blue-Green (параллельная БД) |
Нулевой |
Очень высокая |
Очень низкий (двойная запись) |
Maintenance window — простейший метод: сайт переводится в режим обслуживания, делается дамп, переносится на новый сервер, затем запуск. Приемлемо для БД до 10 GB в ночное время. Online migration использует репликацию: для MySQL — Percona XtraBackup или binlog replication; для PostgreSQL — pglogical или pg_basebackup + WAL shipping. Blue-Green требует параллельной работы двух БД — приложение пишет в обе, затем переключение мгновенно.
Что входит в работу по миграции БД?
- Аудит текущей БД: схема, объём, зависимости, скорость записи/чтения. Анализируем типы индексов, наличие триггеров и хранимых процедур.
- Разработка плана миграции с выбором стратегии, тестовым прогоном в изолированной среде и rollback-сценарием.
- Настройка репликации (если применимо) с мониторингом задержки.
- Выполнение переноса в окно обслуживания с минимальным влиянием на пользователей.
- Валидация целостности — сравнение количества строк, контрольных сумм, проверка приложения.
- Документация и обучение — передача схемы, конфигов, инструкций по обслуживанию.
Мы разрабатываем детальный план для каждого проекта, включая тестовый прогон на копии данных. Это снижает риски до минимума.
Почему online-миграция сокращает downtime в 10 раз?
При maintenance window время простоя складывается из дампа, переноса и восстановления. Для БД 50 GB это может занять 4–5 часов. Online-миграция с pglogical сводит downtime к секундам: вы просто переключаете приложение на новый сервер после полной синхронизации. Экономия времени достигает 90%. Кроме того, online-миграция позволяет непрерывно синхронизировать изменения до момента переключения, исключая потерю данных. Этот метод особенно эффективен для высоконагруженных проектов, где каждый час простоя стоит дорого.
Как происходит валидация после миграции?
После переноса мы автоматически сравниваем критические таблицы:
for table in users posts orders products; do
src=$(mysql -h source -u root -p -se "SELECT COUNT(*) FROM mysite.$table")
dst=$(mysql -h target -u root -p -se "SELECT COUNT(*) FROM mysite.$table")
if [ "$src" != "$dst" ]; then
echo "MISMATCH: $table: $src vs $dst"
else
echo "OK: $table: $src rows"
fi
done
Также проверяем контрольные суммы для текстовых полей и тестируем функциональность приложения в течение 24 часов. Если обнаружено расхождение — немедленно откатываем изменения по заранее подготовленному сценарию. Гарантия целостности данных закреплена в договоре.
Ориентировочные сроки
| Размер БД |
Maintenance window |
Online migration |
| до 1 GB |
2–10 мин |
1–5 дней (планирование + выполнение) |
| 1–10 GB |
10–60 мин |
1–5 дней |
| 10–100 GB |
1–8 часов |
1–5 дней |
| 100 GB+ |
Не рекомендуется |
1–5 дней |
Сроки включают подготовку, тестовый прогон и резервное копирование. Стоимость рассчитывается индивидуально после оценки проекта.
Типичные ошибки при миграции и как их избежать
- Несовместимость версий СУБД: проверьте версии MySQL/PostgreSQL на source и target. Разные мажорные версии могут сломать индексы.
- Потеря триггеров и процедур: используйте флаги
--routines --triggers в mysqldump или --no-owner в pg_dump.
- Отсутствие rollback-плана: всегда делайте полный дамп перед началом и храните его 48 часов после миграции.
Пример команды для MySQL
# Дамп с блокировкой для консистентности
mysqldump \
--single-transaction \
--routines \
--triggers \
--events \
--hex-blob \
--default-character-set=utf8mb4 \
-u root -p mysite_db \
| gzip > /backup/mysite_$(date +%Y%m%d_%H%M%S).sql.gz
Пример команды для PostgreSQL
# Кастомный формат (быстрее, сжатый, параллельное восстановление)
pg_dump \
-U postgres \
-d mysite_db \
-F custom \
-f /backup/mysite_$(date +%Y%m%d).dump \
--verbose
Согласно рекомендациям PostgreSQL, логическая репликация (pglogical) обеспечивает минимальную задержку. Оцените свой проект — свяжитесь с нами для бесплатной консультации. Мы подготовим план миграции, выполним тестовый прогон и обеспечим бесшовный переход. Закажите миграцию под ключ: получите предложение в течение 24 часов.
Редизайн и миграция сайта: смена CMS, сохранение SEO
Клиент пришёл через 6 недель после самостоятельного редизайна: «Мы переехали с WordPress на Tilda, трафик упал на 70%». Открываю Google Search Console — 847 страниц отдают 404, URL-структура полностью изменилась, не было ни одного 301-редиректа. Яндекс ещё не переиндексировал новый сайт, позиции рухнули. Восстановление заняло 4 месяца и обошлось в потерю выручки около 2 млн рублей за квартал. Наш опыт — более 7 лет и 80+ успешных миграций, гарантируем сохранение позиций при правильном подходе.
Почему миграции ломают SEO
Поисковики проиндексировали конкретные URL. Если /catalog/shoes/nike-air-max-270 превратился в /products/nike-air-max-270 без 301-редиректа — весь ссылочный вес страницы, весь трафик, все позиции уходят в никуда. Google говорит, что 301 передаёт ~99% PageRank, но на практике позиции восстанавливаются за 2–8 недель, а не мгновенно.
Чаще всего SEO ломают не из злого умысла, а потому что разработчик не думает о URL-структуре как о публичном API. Вот типичные поломки:
| Проблема |
Причина |
Решение |
| Дублированный контент |
Новый сайт открывается параллельно со старым |
Отключить индексацию dev-версии, настроить canonical |
| Потеря метаданных |
Title и description остались в старой CMS |
Экспорт через API, массовый импорт с проверкой |
| Изменение canonical |
Пагинация и фильтры сбросились |
Зафиксировать до разработки, внедрить в шаблон |
| Скорость просела |
Тяжёлые секции, неоптимизированные изображения |
Оптимизировать LCP, CLS, TTFB до запуска |
Как восстановить трафик после неудачной миграции?
Если трафик упал — действуйте немедленно:
- Краул нового сайта на 404 и сравнение с предмиграционным списком URL.
- Создание редиректов для всех потерянных страниц с трафиком >0.
- Проверка структурированных данных и мета-тегов на тестовой выборке.
- Ежедневный мониторинг Coverage в Search Console и позиций по топ-50 запросам.
- Если спустя 2 недели трафик не восстанавливается — глубокий аудит редиректов (транзитивность, цепочки, циклы).
В нашей практике такой случай: крупный интернет-магазин потерял 50% трафика при переезде с Битрикса на React + Strapi. За три дня восстановили 95% редиректов, через 3 недели трафик вернулся на 90% от исходного.
Предмиграционный аудит: что нельзя пропустить
До начала разработки нового сайта нужно:
- Полный краул текущего сайта через Screaming Frog или Sitebulb. Получить список всех индексируемых URL с трафиком из Google Search Console.
- Выгрузить все страницы с органическим трафиком >0 за последние 6 месяцев — это приоритет для редиректов.
- Зафиксировать все внешние ссылки (backlinks) на конкретные страницы — Ahrefs, Semrush.
- Сфотографировать текущие позиции по ключевым запросам — база для сравнения после миграции.
- Сохранить Core Web Vitals из Search Console за предыдущие 90 дней.
Таблица для фиксации:
| Этап аудита |
Инструмент |
Критичность |
| Сбор URL |
Screaming Frog + GSC |
Высокая |
| Трафик по страницам |
Google Analytics / Search Console |
Высокая |
| Внешние ссылки |
Ahrefs / Majestic |
Средняя |
| Позиции |
Яндекс.Wordstat / Serpstat |
Средняя |
| Core Web Vitals |
GSC CrUX |
Высокая |
Свяжитесь с нами для детального предмиграционного аудита — мы поможем выявить все риски и составить план действий.
Маппинг URL и редиректы
Для проекта с 200+ страницами создаём таблицу маппинга: старый URL → новый URL → статус (301, объединён с другой страницей, удалён). Каждая строка проходит проверку: реально ли контент переехал именно сюда.
В Laravel редиректы через конфигурационный файл и middleware, не через .htaccess — это быстрее и управляемо. Для WordPress → Next.js: редиректы настраиваются в next.config.js (статические) и на уровне Nginx/CDN для динамических. Старый .htaccess на shared хостинге с 500+ строками редиректов — особый ад. Каждый редирект проверяется последовательно, производительность падает. Переносим в Nginx map директиву или Redis-кэш для динамического поиска. Подробнее в Wikipedia: HTTP 301.
Миграция контента из разных CMS
WordPress → Headless CMS (Contentful, Strapi, Sanity):
WordPress REST API или WP All Export для экспорта постов, метаполей, медиафайлов. Скрипт миграции на Node.js: парсим экспорт, трансформируем структуру, загружаем через API CMS. Медиафайлы перегружаем в новое хранилище, обновляем ссылки в контенте. Типичная проблема — shortcodes в контенте WordPress ([gallery id="123"]): нужен парсер и трансформация в новый формат.
1С-Битрикс → современный стек:
Битрикс хранит контент в нестандартных таблицах с IBLOCK_ELEMENT_PROPERTY. Прямой SQL-экспорт через phpMyAdmin или Bitrix API. Трансформация — самая долгая часть из-за специфики структуры данных Битрикса.
Тяжёлые WYSIWYG → структурированный контент:
Годы редактирования в FCKEditor/TinyMCE оставляют inline-стили, нестандартные теги, сломанные атрибуты. HTML sanitize + трансформация в Markdown или Portable Text (Sanity) с ручной проверкой проблемных страниц.
| CMS |
Инструменты миграции |
Сложность |
Риски |
| WordPress |
WP All Export, WP-CLI, REST API |
Средняя |
Shortcodes, meta fields |
| 1C-Битрикс |
Bitrix API, SQL-экспорт |
Высокая |
Сложная структура, свойства инфоблоков |
| Joomla |
J2XML, прямая выгрузка из БД |
Высокая |
Устаревшие расширения |
| Tilda/Readymag |
Экспорт через API (ограничен) |
Средняя |
Нет полного доступа к контенту |
SEO-сохранение технических элементов
Структурированные данные (Schema.org) — если на старом сайте были Product, Article, BreadcrumbList разметки, они должны быть и на новом. Google Search Console → Enhancement reports покажут потерю rich snippets.
Sitemap XML: генерируется автоматически, отправляется в GSC через день после запуска. Старый sitemap остаётся до полной переиндексации.
hreflang для мультиязычных сайтов: если теги потерялись при миграции, через несколько недель начнутся конфликты между языковыми версиями в выдаче.
Open Graph и Twitter Card мета-теги — часто забывают при смене шаблона, страницы перестают корректно отображаться при шаринге в соцсетях.
Запуск и мониторинг первых недель
DNS propagation: переключение DNS занимает до 48 часов, планируйте запуск с запасом. Cloudflare как DNS-провайдер — propagation занимает минуты, не часы.
После запуска ежедневно мониторим: Search Console → Coverage (ошибки индексации), Analytics → органический трафик, сравнение с аналогичным периодом прошлого года, краулинг сайта на 404-ошибки.
Первые 2 недели — критический период. Если трафик падает на 30%+ — немедленный аудит редиректов и сравнение с предмиграционным краулом.
Чек-лист на запуск (спойлер)
- [ ] Все 301 редиректы работают и не образуют цепочек
- [ ] Sitemap отправлен в GSC и Яндекс.Вебмастер
- [ ] Прописаны canonical на всех страницах
- [ ] Проверено отображение Open Graph / Twitter Card
- [ ] Скорректированы robots.txt и мета-теги noindex
- [ ] Core Web Vitals в зелёной зоне (LCP <2.5s, CLS <0.1, INP <200ms)
Что входит в работу
Результаты, которые вы получаете:
- План миграции с маппингом URL и редиректов в формате Excel/Google Sheets.
- Настроенные 301 редиректы на серверном уровне (Nginx/Cloudflare/Vercel).
- Перенесённый контент с проверкой целостности: изображения, мета-поля, ссылки.
- Структурированные данные (Schema.org) на новом сайте, идентичные старым или улучшенные.
- Отчёт по SEO: динамика позиций через 1, 3 и 6 недель после запуска.
- Мониторинг Coverage в Search Console с уведомлениями об ошибках.
- Гарантия сохранения позиций: если трафик падает более чем на 15% в течение первого месяца — бесплатный аудит и коррекция.
Сроки и ориентиры
- Редизайн с миграцией небольшого сайта (до 100 страниц): 4–8 недель.
- Миграция e-commerce с 500+ страниц товаров: 8–16 недель.
- Только техническая часть миграции (редиректы, метаданные) без редизайна: 1–3 недели.
Стоимость рассчитывается индивидуально по объёму. Средняя экономия клиента за счёт сохранения трафика после миграции — от 300 000 до 500 000 рублей в год.
Получите консультацию по вашему проекту — мы ответим в течение дня. Закажите предмиграционный аудит вашего сайта и получите точную смету с планом редиректов. Свяжитесь с нами, чтобы обсудить детали.