3

WebTech

Личный кабинет

Проекты, коммерческие предложения, документы и отчёты — в одном месте.

Войти Зарегистрироваться Забыли пароль?
MODX → Laravel

Миграция с MODX на Laravel без потери данных и трафика

MODX давал свободу в вёрстке, но вся логика оказалась в сниппетах и шаблонах: чтобы понять, как работает страница, нужно прочитать десяток вставок PHP, разбросанных по шаблонам.

Переводим сайт на Laravel: контент становится моделями, логика — сервисами с тестами, а разработчику больше не нужно разбирать, какой сниппет что меняет на этой конкретной странице.

Или сразу: +7 (495) 368-39-51 Telegram Пн–Пт, 10:00–19:00 МСК

Evo/Revo
обе ветки поддерживаем
×2–4
скорость рендеринга страниц
1:1
сохранение URL или 301
тесты
на ключевые сценарии
Логика из шаблонов
Сниппеты и вставки PHP собираем в сервисы
TV → модель
Поля становятся нормальными атрибутами
Разработчиков больше
Laravel знает рынок, MODX — единицы
SEO переносим
Адреса, метаданные, редиректы

Аудит и оценка миграции

Посмотрим вашу систему, данные и интеграции. Скажем, сколько это займёт, что переносится, а что придётся делать заново.

Бесплатный аудит и медиаплан — без обязательств.

Почему уходят

MODX: что перестаёт устраивать

Каждый пункт — не «мода на новый фреймворк», а конкретная проблема, которая стоит денег или времени. Проверьте, сколько из них про вас.

Логика размазана по сниппетам

Вызовы собираются из сниппетов, чанков и вставок PHP: поведение страницы зависит от порядка и параметров вставок, и его невозможно увидеть целиком.

Что делаем: Логику переносим в сервисы и классы: один вход, понятные зависимости, тесты на сценарии. Поведение страницы перестаёт быть загадкой.

TV-параметры вместо схемы данных

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

Что делаем: Проектируем нормальные модели и связи: типы, обязательные поля, валидация, понятные связи между разделами каталога.

Разработчиков почти нет

Найти специалиста по MODX сложно, а разобраться в чужой сборке сниппетов — отдельная работа, за которую мало кто берётся.

Что делаем: Laravel — массовая технология: команду можно расширять и менять без поиска редких специалистов. Документация передаётся вместе с проектом.

Обновления ломают вставки

После обновления MODX или PHP часть сниппетов перестаёт работать: они написаны под старые версии языка и библиотек.

Что делаем: Переводим на актуальный PHP и поддерживаемые зависимости. Обновления проверяются тестами на стенде, а не обнаруживаются на проде.

Кеш вместо оптимизации

Скорость держится на кешировании результатов сниппетов: при изменении данных кеш нужно сбрасывать, иначе посетители видят устаревшее.

Что делаем: Нормальные запросы с индексами, кеш данных в Redis и инвалидация по событиям. Данные обновляются там, где меняются.

Менеджер сайта пугает сотрудников

Админка MODX требует понимания дерева ресурсов и TV: контент-менеджеры боятся что-то сломать и обращаются к разработчику по мелочам.

Что делаем: Делаем админку под задачи: понятные разделы, предпросмотр, роли и права. Контент правится без участия разработчика.

Карта переноса

Что переносим: MODX → Laravel

Переносится не «сайт», а данные, логика и связи между ними. Ниже — что именно описывается и переносится, чтобы новая система работала как старая, только быстрее.

Контент

  • Ресурсы и дерево страниц
  • Шаблоны и чанки как структура
  • TV-параметры как поля модели
  • Медиафайлы
  • Мультиязычные версии, если есть

Логика

  • Сниппеты и их поведение
  • Плагины и события
  • Формы и обработчики
  • Правила вывода каталогов
  • Пользовательские запросы

Данные и интеграции

  • Каталог, если используется
  • Пользователи и доступы
  • Формы заявок и история
  • Внешние API и обмены

SEO

  • Карта адресов и ЧПУ
  • Метаданные и заголовки
  • Sitemap и robots
  • Микроразметка
  • Редиректы
Честно

Что не переносится один в один

Мы не обещаем «то же самое, только на Laravel»: часть вещей переносится смыслом, а не кодом. Об этом лучше знать до старта, чем обнаружить в процессе.

Разобрать вашу систему
  • Сниппеты и плагины как код: их логика переписывается, а не копируется.
  • Менеджер MODX и дерево ресурсов: контент-менеджеры получают новую, более понятную админку.
  • TV-параметры как механизм: они становятся полями моделей с типами и валидацией.
  • Чанки и вставки PHP в шаблонах: заменяются Blade-шаблонами и компонентами.
  • Кеширование результатов сниппетов: заменяется кешем данных и инвалидацией по событиям.
Риски

MODX: риски и как мы их закрываем

У каждой системы свои ловушки. Мы называем их заранее и описываем, как закрываем — до того, как они превратятся в сюрприз в середине проекта.

Логика в сниппетах без документации

Часть сниппетов писалась «на бегу». Восстанавливаем поведение по коду, шаблонам и вопросам сотрудникам.

Дерево ресурсов с дублями

Страницы-клоны и устаревшие разделы, на которые ведут ссылки. Разбираем карту до переноса, чтобы не тащить мусор.

TV с неочевидным смыслом

Названия полей не совпадают с назначением. Уточняем у контент-менеджеров, иначе поля перенесутся «как есть» и запутают всех.

Формы без сохранения истории

Заявки часто уходят только письмом. В новой системе они попадают в базу и CRM с журналом обработки.

План

Как проходит миграция

Шесть этапов, каждый заканчивается проверяемым результатом. Бизнес продолжает работать: старый контур не выключается, пока новый не докажет, что считает и отдаёт данные правильно.

  1. 01 1–3 недели

    Аудит и карта системы

    Разбираем текущую систему: схема данных, точки входа, интеграции, задачи по расписанию, реальные бизнес-правила. На выходе — карта системы и оценка объёма.

  2. 02 2–3 недели

    Архитектура и план переноса

    Проектируем схему данных на Laravel, выбираем стратегию перехода, описываем этапы, критерии приёмки и план по SEO-редиректам.

  3. 03 2–6 недель

    Стенд и перенос данных

    Поднимаем новый контур, переносим данные, сверяем суммы, связи и справочники. Разрабатываем модули, начиная с тех, что дают деньги.

  4. 04 по ситуации

    Параллельная работа

    Новый и старый контуры работают одновременно: разделы переключаются по одному после сверки. Пользователи не замечают переезда.

  5. 05 2–5 дней

    Переключение трафика

    Переводим домен, включаем 301-редиректы по карте URL, проверяем sitemap, счётчики и цели. Контролируем индексацию и ошибки.

  6. 06 2–4 недели

    Стабилизация и передача

    Следим за метриками, правим найденное, обучаем команду, передаём документацию, доступы и регламенты.

Особенности плана: MODX

  • Инвентаризация сниппетов обязательна: список вызовов по шаблонам показывает реальную функциональность сайта.
  • Контент переносим с ручной проверкой выборки: TV-поля часто заполнены непоследовательно.
  • Формы и заявки переносим в первую очередь — это прямые обращения, терять их нельзя.
  • Админку собираем вместе с контент-менеджерами: они лучше знают, каких полей не хватает.
SEO и трафик

Трафик из поиска не должен просесть

Главный страх при переезде — потерять позиции. Поэтому SEO-часть мы делаем до переключения и контролируем после, а не «посмотрим, что будет».

Карта URL до переезда

Собираем все адреса старой системы из базы, sitemap и логов: карточки, категории, пагинация, фильтры, старые ЧПУ.

301-редиректы 1:1

Совпадающие адреса сохраняем, остальные закрываем постоянными редиректами — без «главной страницы вместо товара».

Метаданные и заголовки

Переносим title, description, H1 и тексты, а не генерируем заново: поиск уже знает эти страницы.

Микроразметка

Товары, хлебные крошки, отзывы, FAQ — разметка сохраняется и валидируется заново на новом контуре.

Sitemap и robots

Актуальная карта сайта, корректные правила обхода, отсутствие закрытых от индексации нужных страниц.

Счётчики и цели

Метрика, аналитика, цели и события переносятся и проверяются до переключения, чтобы не потерять статистику.

Мониторинг после релиза

Следим за ошибками 404/500, индексацией и позициями первые недели — редиректы и обход проверяются на живом трафике.

Стек

На что переводим: Laravel и вокруг

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

Laravel 12

Ядро приложения: маршруты, сервисы, очереди, планировщик, тесты.

Livewire 3

Интерфейсы без перезагрузок: админка, таблицы, формы, фильтры.

PostgreSQL или MySQL

Нормализованная схема, индексы под реальные запросы, реплики для отчётов.

Redis

Кеш, сессии и очереди вместо файлового кеша и cron-скриптов.

Horizon и очереди

Фоновые задачи с повторами, приоритетами и мониторингом.

Тесты и CI/CD

Покрытие критичных сценариев, отдельные окружения, релизы и откаты в одну команду.

Наблюдаемость

Логи, метрики и алерты: видно ошибки и деградацию до жалоб пользователей.

API и интеграции

Явные контракты обмена с 1С, платежами, доставкой, CRM и маркетплейсами.

Когда миграция не нужна

Мы не берём проект, если переход не окупается: иногда дешевле починить текущую систему или обновить её. Честный ответ экономит вам бюджет.

  • Сайт небольшой и статичный: миграция дороже, чем его пересборка на Laravel «с нуля» по макету.
  • MODX используется только как генератор статических страниц без каталога и интеграций.
  • Нет задачи развивать функциональность — достаточно поддерживать текущее.
Форматы работ

Как можно начать

Можно взять только аудит и план — и внедрять своими силами. Можно мигрировать этапами. Можно переписать систему целиком. Выбор зависит от состояния кода и от того, сколько бизнес готов ждать.

Аудит и план миграции

Нужно понять объём работ, риски и стоимость до принятия решения.

  • Карта системы и данных
  • Схема данных на Laravel
  • План этапов и критерии приёмки
  • План SEO-редиректов
  • Оценка сроков и бюджета
фиксированная стоимость Аудит можно внедрять своими силами
Обсудить
Чаще всего берут

Миграция этапами

Система работает и останавливать бизнес нельзя: переносим модулями, начиная с прибыльных.

  • Всё из аудита
  • Перенос данных и модулей
  • Разработка на Laravel
  • Параллельная работа контуров
  • Переключение и редиректы
проектная смета Оплата по этапам
Обсудить

Полный рерайт

Система деградировала, поддержка дороже развития: переписываем и запускаем параллельно.

  • Всё из миграции этапами
  • Новая архитектура целиком
  • Новый интерфейс и админка
  • Перенос истории
  • Обучение команды
проектная смета Срок от 12 недель
Обсудить

Сопровождение после миграции

Нужна уверенность после запуска: правки, мониторинг и развитие по данным.

  • Мониторинг и инциденты
  • Доработки по приоритетам
  • Развитие функциональности
  • Консультации команды
  • Отчёт по метрикам
по SLA Ежемесячно
Обсудить
Другие системы

Переносим и с других платформ

Ищем свою систему в списке или разбираем нетиповой случай: самописные решения, старые версии фреймворков и внутренние системы тоже переносим.

1С-Битрикс

Битрикс годами закрывает задачи, но теперь каждая правка стоит как отдельный проект: обновления ломают кастомизации, каталог тормозит, а разработчика, который разберётся в чужой сборке, найти всё сложнее.

Смотреть страницу

WordPress

WordPress быстро запускается, но со временем превращается в сборку из десятков плагинов, где обновление ломает сайт, а входная дверь для взлома — любой устаревший модуль.

Смотреть страницу

OpenCart

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

Смотреть страницу

Joomla

Joomla держится на расширениях сторонних авторов: часть из них заброшена, часть несовместима с новыми версиями PHP, а переход между мажорными версиями Joomla сам по себе превращается в отдельный проект.

Смотреть страницу

Yii (1 и 2)

Yii был быстрым и удобным, но Yii 1 остался в эпоху PHP 5, а Yii 2 теряет поддержку и разработчиков: развивать проект становится дороже, а находить людей — сложнее.

Смотреть страницу

CodeIgniter

CodeIgniter 2 и 3 — это PHP 5, сырые SQL-запросы, самописные хелперы и отсутствие нормальной структуры: проект работает, но развивать его с каждым годом дороже.

Смотреть страницу

Самописная система

Самописная система работает годами, но её понимает один человек: логика размазана по файлам на тысячи строк, документации нет, а любая правка грозит неожиданным последствием.

Смотреть страницу

Модернизация легаси

Стратегии модернизации, восстановление логики, работа с системой без документации.

Открыть страницу
Вопросы

Частые вопросы про миграцию

Вы работаете и с MODX Evolution, и с Revolution?

Да. В Evolution логика почти целиком живёт в сниппетах, в Revolution добавляются элементы и настройки — подход к переносу различается, но результат один: нормальные модели данных и сервисы на Laravel. На аудите мы смотрим, какая ветка используется и насколько она закастомизирована.

Что будет с TV-параметрами?

Они становятся полями моделей: получают тип (текст, число, связь, файл), обязательность и валидацию. Это позволяет нормально искать, фильтровать и выводить данные, а контент-менеджеру — видеть понятную форму, а не список произвольных полей.

Сохранится ли текущая структура адресов?

Мы сохраняем адреса там, где новая структура совпадает, и закрываем 301-редиректами всё остальное. Карта URL собирается из дерева ресурсов и логов: в MODX часто есть страницы с несколькими адресами и устаревшие разделы, на которые всё ещё ведут ссылки.

Насколько сложнее поддерживать Laravel, чем MODX?

Для контент-менеджера — проще: админка делается под его задачи. Для разработчика — привычнее: стандартный фреймворк с документацией, тестами и большим сообществом. Сложность MODX в том, что уникальная сборка сниппетов понятна только её автору.

Можно ли перенести сайт частями?

Да. Обычно начинаем с разделов, которые дают трафик и заявки (услуги, каталог, формы), а блог и второстепенные страницы переносим следом. Старый сайт остаётся доступным до полного переключения, чтобы можно было сверять данные.

Как переносится база данных при миграции?

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

Как гарантируется, что трафик из поиска не просядет?

Карта URL собирается до переезда: из базы, sitemap и логов сервера. Совпадающие адреса сохраняются один в один, остальные закрываются 301-редиректами. Метаданные, заголовки и микроразметка переносятся, а не генерируются заново. После переключения мы следим за ошибками, индексацией и позициями — обычно это 2–4 недели наблюдения.

Что происходит с интеграциями: 1С, платежи, доставка, CRM?

Каждая описывается до разработки: что передаётся, как часто, что считается успехом и как видеть ошибки. В новой системе обмены становятся явными: журнал синхронизации, повторные попытки, алерты. Платёжные модули подключаем на тестовых аккаунтах до переключения трафика.

Можно ли обойтись без полного переноса?

Да. Варианты: укрепить текущую систему (закрыть уязвимости, добавить тесты, навести порядок в бэкапах), вынести отдельный модуль на Laravel и связать через API или шину, либо рефакторить по частям. На аудите мы говорим прямо, какой путь дешевле — иногда это отказ от полного переноса.

Сколько стоит миграция?

Стоимость зависит от объёма данных, числа интеграций, количества кастомной логики и требований к сохранению SEO. Аудит и план миграции фиксируются по цене заранее, дальше проект считается этапами с понятным результатом на каждом. По объёму работ миграция сопоставима с разработкой нового проекта — но с сохранением данных, истории и трафика.

Что будет с сотрудниками, которые работают в старой системе?

Мы меняем систему, а не процессы: админка собирается под их задачи, а обучение входит в проект. Обычно новая админка нравится больше: понятные формы, живые таблицы, отчёты без участия разработчика. Для сложных мест пишем короткие инструкции.

Кому принадлежат код и данные после миграции?

Вам. Код, схема данных, документация, доступы и инфраструктура оформляются на вас с самого начала. Мы не удерживаем проект в своём контуре: его можно передать другой команде, а документация описывает систему так, чтобы ей мог заняться любой PHP-разработчик.

Что нужно от нас для старта?

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

Следующий шаг

Разберём вашу систему

Посмотрим код, базу и интеграции. Скажем, что переносится, что придётся делать заново, сколько это займёт и как сохранить трафик. Без обязательств.

Телефон
+7 (495) 368-39-51 Пн–Пт, 10:00–19:00 МСК
Что будет после заявки
Свяжемся в течение 15 минут в рабочее время, зададим несколько вопросов о системе и данных, после чего пришлём план миграции со сроком и сметой.
Что подготовить
Доступ к коду и базе (или их копиям) и контакт человека, который знает процессы. Этого достаточно для предметной оценки.

Заявка на аудит миграции

Опишите систему, объём данных и что критично сохранить — вернёмся с планом, сроком и сметой.

Не передаём данные третьим лицам и не звоним с рекламой.