Вы планируете миграцию сайта на новую CMS? Без тщательного аудита существующего контента легко потерять SEO-трафик и перенести сотни ненужных страниц. Наш опыт — более 5 лет и 100+ успешных миграций для сайтов от 200 до 50 000 страниц. Мы поможем провести полную инвентаризацию, технический SEO-аудит, оценить качество каждого URL и составить план переноса. Оценим ваш проект за 1 день.
Более 70% миграций без предварительного аудита контента приводят к падению органического трафика на 30–50% в течение первых трёх месяцев.
— Search Engine Land
Аудит контента — это инвентаризация и анализ всех материалов на текущем сайте. Он даёт ответы на вопросы: что переносить, что обновлять, а что удалять. Без аудита вы рискуете потерять до 40% органического трафика из-за битых ссылок и дублей. Кроме того, миграция без аудита часто приводит к переполнению новой CMS устаревшим контентом, что увеличивает время загрузки и усложняет поддержку. В худшем случае вы теряете позиции в поиске на 3–6 месяцев. Наш подход позволяет сократить этот риск до минимума. Средний проект экономит до 200 000 рублей на этапе переноса.
Зачем нужен аудит контента перед миграцией?
Аудит контента — это инвентаризация и анализ всех материалов на текущем сайте. Он даёт ответы на вопросы: что переносить, что обновлять, а что удалять. Без аудита вы рискуете потерять до 40% органического трафика из-за битых ссылок и дублей. Наш краулер на Python обрабатывает сайт в 3 раза быстрее, чем ручное копирование всех URL.
Как проводится инвентаризация контента?
Мы начинаем с краулинга сайта. Основной инструмент — Screaming Frog SEO Spider. Он позволяет быстро собрать метаданные. Настраиваем его так:
Configuration → Spider → Crawl all subdomains
Включить: JS rendering (для SPA)
Экспорт: All tabs → Save as CSV
Результат — CSV с полями: URL, Title, Meta Description, H1, Status Code, Indexability, Word Count, Inlinks, Outlinks. Для более глубокого анализа используем Python-краулер:
import scrapy
from scrapy.crawler import CrawlerProcess
class ContentAuditSpider(scrapy.Spider):
name = 'content_audit'
start_urls = ['https://company.com']
custom_settings = {
'DEPTH_LIMIT': 10,
'DOWNLOAD_DELAY': 0.5,
'FEEDS': {'audit_results.csv': {'format': 'csv'}}
}
def parse(self, response):
yield {
'url': response.url,
'status': response.status,
'title': response.css('title::text').get(''),
'h1': response.css('h1::text').get(''),
'meta_description': response.css('meta[name="description"]::attr(content)').get(''),
'canonical': response.css('link[rel="canonical"]::attr(href)').get(''),
'robots': response.css('meta[name="robots"]::attr(content)').get('all'),
'word_count': len(' '.join(response.css('main *::text').getall()).split()),
'internal_links': len(response.css('a[href^="/"]')),
'images_without_alt': len(response.css('img:not([alt])')),
'last_modified': response.headers.get('Last-Modified', b'').decode()
}
for link in response.css('a::attr(href)').getall():
yield response.follow(link, self.parse)
Почему важен анализ SEO-метаданных?
Экспорт из Google Search Console даёт данные по кликам, показам, CTR и позициям. Мы сопоставляем их с краулинговыми данными в Python:
import pandas as pd
crawl_data = pd.read_csv('audit_results.csv')
gsc_data = pd.read_csv('gsc_pages.csv')
merged = crawl_data.merge(gsc_data, on='url', how='left')
merged['has_seo_value'] = merged['clicks'] > 0
def classify_page(row):
if row.get('noindex') or row['status'] != 200:
return 'skip'
if row.get('clicks', 0) > 100 or row.get('inlinks', 0) > 5:
return 'migrate_priority_high'
if row.get('word_count', 0) < 100:
return 'review_thin_content'
if row.get('clicks', 0) > 0:
return 'migrate'
return 'archive'
Как классифицировать контент для миграции?
Каждая страница получает метку по таблице:
| Решение |
Критерии |
| Перенести |
Клики > 0, уникальный контент, актуально |
| Обновить при переносе |
Контент устарел, но есть SEO-вес |
| Объединить |
Дублирующие страницы на одну тему |
| Удалить + редирект |
Нет трафика, дубль, thin content |
| Не переносить |
Тестовые страницы, архив, служебные URL |
Таблица метрик для приоритизации:
| Метрика |
Порог |
Действие |
| Клики в GSC |
> 100 |
Высокий приоритет |
| Входящие ссылки (inlinks) |
> 5 |
Высокий приоритет |
| Wordcount |
< 100 |
Thin content — на доработку |
| Status code |
4xx, 5xx |
Удалить или исправить |
Анализ медиафайлов и инвентарь метаданных
Проверяем, какие изображения используются, а какие висят мёртвым грузом. Пример команды для поиска неиспользуемых файлов:
find /var/www/uploads -type f | awk -F. '{print $NF}' | sort | uniq -c
Также находим страницы без meta description и с дублирующимися Title:
missing_meta = merged[merged['meta_description'].isna() | (merged['meta_description'] == '')]
duplicate_titles = merged[merged.duplicated(subset='title', keep=False)]
missing_meta[['url', 'title', 'h1']].to_csv('tasks_add_meta.csv', index=False)
Почему важно классифицировать контент?
Классификация позволяет сфокусироваться на ценных страницах и избежать переноса мусора. Это основа контент-стратегии и оптимизации контента. Без неё вы тратите бюджет на перенос тысяч бесполезных URL. Наша система меток (migrate, review, archive) сокращает объём переносимых данных на 50–70%.
Какие проблемы решает аудит контента?
- Потеря трафика: до 40% посетителей уходят после миграции без редиректов.
- Раздувание новой CMS: перенос ненужных страниц увеличивает время загрузки.
- Дубликаты и тонкий контент: ухудшают индексацию и позиции.
Наш аудит позволяет сэкономить до 60% бюджета на миграцию за счёт отсеивания мусора.
Что входит в работу по аудиту контента
Мы предоставляем полный пакет результатов:
- Инвентаризация: полный список всех URL с метаданными.
- SEO-аудит: выявление технических проблем (битые ссылки, дубликаты, отсутствие мета-тегов).
- Классификация контента: каждому URL присваивается метка (перенести, объединить, удалить, обновить).
- Отчёт: сводная статистика, детальные таблицы по каждому URL, рекомендации по приоритетам.
- Экспорт: данные в формате CSV, готовые для импорта в Google Sheets или Excel.
- Доступы к консоли: настройка интеграции с Google Search Console для отслеживания после миграции.
- Поддержка: консультации по вопросам переноса в течение 2 недель после передачи отчёта.
Наши гарантии и опыт
Мы работаем с контент-аудитом более 5 лет. За это время провели 100+ миграций для сайтов от 200 до 50 000 страниц. Гарантируем точность данных и конфиденциальность. Используем сертифицированные инструменты: Screaming Frog SEO Spider и Google Search Console.
Свяжитесь с нами для бесплатной консультации. Закажите аудит контента под ключ — получите чёткий план переноса с минимальными рисками.
Редизайн и миграция сайта: смена 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 рублей в год.
Получите консультацию по вашему проекту — мы ответим в течение дня. Закажите предмиграционный аудит вашего сайта и получите точную смету с планом редиректов. Свяжитесь с нами, чтобы обсудить детали.