Старый магазин на WooCommerce тормозит, клиенты жалуются на медленные страницы, а вы тратите часы на обновление плагинов. Переезд на Shopify — это переход на SaaS-платформу с управляемой инфраструктурой: встроенный CDN, автоматическое масштабирование, Shopify Payments и App Store. За 7 лет мы перенесли более 50 магазинов — от 200 до 50 000 товаров. Гарантируем сохранение позиций в поиске и корректный перенос всех данных. Но просто скопировать данные нельзя — нужен аккуратный перенос с сохранением SEO и бизнес-логики.
Данные, доступные для переноса
| Тип данных |
Поддерживается |
Инструменты |
| Товары |
Да (с вариантами, изображениями, метафилдами) |
Matrixify, LitExtension, API |
| Коллекции |
Да (ручные и автоматические) |
Matrixify |
| Клиенты |
Да (с историей заказов) |
LitExtension |
| Заказы |
Да (только для чтения) |
LitExtension, API |
| Блог |
Да |
Matrixify |
| 301-редиректы |
Да |
Matrixify |
Также переносятся SEO-поля, метаданные, изображения и контент. Кастомные функции (скидки, доставка) требуют доработки через Shopify Functions.
Инструменты миграции
| Инструмент |
Тип |
Поддерживаемые данные |
Сложность |
| Shopify Importer |
Встроенный |
Только товары (CSV) |
Низкая |
| Matrixify (Excelify) |
Приложение |
Товары, коллекции, клиенты, заказы, метафилды, редиректы |
Средняя |
| LitExtension |
Сервис |
50+ CMS, заказы, клиенты, SEO |
Низкая (техподдержка) |
Matrixify обходится дешевле при большом объёме, но требует ручной настройки. LitExtension дороже, но автоматизирует перенос заказов и паролей. Для магазинов с кастомами используем связку Matrixify + REST API.
Как мы переносили магазин бытовой техники: кейс из нашей практики
Недавно переносили магазин бытовой техники с WooCommerce на Shopify — 8000 товаров, 15 000 клиентов, история заказов за 3 года. Использовали Matrixify + Shopify REST API. Сначала экспортировали данные из WooCommerce через CSV. Вот скрипт для базового экспорта товаров:
import csv
import json
import mysql.connector
conn = mysql.connector.connect(host='localhost', user='root', password='pass', database='wordpress')
cursor = conn.cursor(dictionary=True)
cursor.execute("""
SELECT p.ID, p.post_title, p.post_content, p.post_status,
pm_price.meta_value as price,
pm_sku.meta_value as sku
FROM wp_posts p
LEFT JOIN wp_postmeta pm_price ON pm_price.post_id = p.ID AND pm_price.meta_key = '_price'
LEFT JOIN wp_postmeta pm_sku ON pm_sku.post_id = p.ID AND pm_sku.meta_key = '_sku'
WHERE p.post_type = 'product' AND p.post_status = 'publish'
""")
products = cursor.fetchall()
with open('shopify_import.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.DictWriter(f, fieldnames=[
'Handle', 'Title', 'Body (HTML)', 'Vendor', 'Published',
'Variant SKU', 'Variant Price', 'Variant Inventory Qty'
])
writer.writeheader()
for product in products:
handle = product['post_title'].lower().replace(' ', '-')
writer.writerow({
'Handle': handle,
'Title': product['post_title'],
'Body (HTML)': product['post_content'],
'Vendor': 'Default',
'Published': 'TRUE' if product['post_status'] == 'publish' else 'FALSE',
'Variant SKU': product['sku'] or '',
'Variant Price': product['price'] or '0',
'Variant Inventory Qty': '100',
})
Затем через Matrixify импортировали коллекции и клиентов. Для заказов использовали Shopify API, так как Matrixify не восстанавливает заказы как завершённые. После миграции скорость загрузки страниц снизилась с 4 до 1.5 секунд, трафик сохранился на уровне 98%. По данным анализа, 301-редиректы передают до 90% ссылочного веса.
Хотите такой же результат? Закажите консультацию для оценки вашего магазина.
API-миграция (Shopify Admin API)
Для кастомных данных (скидки, теги) используем REST API:
import shopify
import requests
shopify.ShopifyResource.set_site(f"https://{API_KEY}:{API_SECRET}@{SHOP_NAME}.myshopify.com/admin/api/latest")
for product_data in source_products:
product = shopify.Product()
product.title = product_data['title']
product.body_html = product_data['description']
product.vendor = product_data['brand']
product.variants = [{
'sku': product_data['sku'],
'price': str(product_data['price']),
'inventory_quantity': product_data['stock'],
'inventory_management': 'shopify',
}]
product.save()
# Загрузить изображение
if product_data.get('image_url'):
image = shopify.Image({'product_id': product.id})
image.src = product_data['image_url']
image.save()
Почему важны 301-редиректы?
После смены URL структура меняется: было /catalog/category/product, стало /products/product. Без 301-редиректов Google теряет трафик. Типичная ошибка — забыть про редиректы для страниц категорий и фильтров. Настраиваем CSV для импорта:
Redirect: Path,Redirect: Target
/catalog/computers/laptop-model-x,/products/laptop-model-x
/catalog/phones/samsung-galaxy-s24,/products/samsung-galaxy-s24
Импорт через Matrixify или вручную в Admin → Online Store → Navigation → URL Redirects. Мы гарантируем, что после миграции трафик останется на прежнем уровне.
Как подготовить CSV для импорта: пошаговая инструкция
- Экспортируйте данные из старой CMS в CSV-файл.
- Проверьте соответствие полей: Handle, Title, Body HTML, Variant SKU, Variant Price, Variant Inventory Qty.
- Удалите лишние символы и продублированные строки.
- Импортируйте через Matrixify или штатный импортёр Shopify.
- Проверьте ошибки в логах импорта и исправьте.
Что делать с кастомными функциями?
Кастомная логика скидок, доставки и налогов не переносится автоматически. Для этого используем Shopify Functions или настраиваем приложения. Например, сложные правила скидок требуют переписывания на языке Shopify Flow. Интеграции с 1С и CRM подключаются через Shopify API.
Какие данные не переносятся автоматически?
Официальная документация Shopify рекомендует: все кастомные функции, интеграции и налоги требуют отдельной настройки.
Сколько времени занимает миграция?
| Этап |
Длительность |
| Анализ и проектирование |
1–2 дня |
| Экспорт и трансформация |
1–3 дня |
| Импорт и редиректы |
1–2 дня |
| Тестирование и запуск |
2–3 дня |
Для магазина до 5000 товаров с клиентами и настройкой темы — 5–10 дней. Крупный магазин с переработкой функциональности — от 3 до 6 недель. Стоимость рассчитывается индивидуально после аудита.
Что входит в работу
- Полная выгрузка данных из старой CMS
- Чистка и приведение к формату Shopify
- Импорт товаров, клиентов, заказов
- Настройка коллекций и метафилдов
- Создание 301-редиректов по карте URL
- Тестовый заказ и проверка всех сценариев
- Обучение команды работе в Shopify
Свяжитесь с нами для предварительного аудита вашего магазина — оценим объём работ и подберём оптимальный инструмент. Получите консультацию, чтобы избежать потери трафика и времени.
Редизайн и миграция сайта: смена 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 рублей в год.
Получите консультацию по вашему проекту — мы ответим в течение дня. Закажите предмиграционный аудит вашего сайта и получите точную смету с планом редиректов. Свяжитесь с нами, чтобы обсудить детали.