3

WebTech

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

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

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

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

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

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

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

1.5–4
версии, с которых переносим
×2–4
скорость страниц
1:1
сохранение адресов или 301
0
заброшенных расширений
Расширения заменяем
Данные переносим, логику реализуем своим кодом
Мультиязычность
Структурой, а не набором дублей страниц
SEF-роутинг
Карта адресов и 301-редиректы
Актуальный PHP
Вместо версий, которые не поддерживаются

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

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

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

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

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

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

Расширения без поддержки

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

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

Обновление Joomla = отдельный проект

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

Что делаем: В Laravel обновление фреймворка не переписывает приложение: бизнес-логика отделена, а релизы проверяются тестами.

Скорость страдает от расширений

Каждое расширение добавляет свои запросы и запросы-дубли; страница собирается из десятков обращений к базе, а кеш маскирует проблему.

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

Мультиязычность через копии

Языковые версии часто сделаны дублями материалов, поэтому контент расходится, а структура адресов запутывается.

Что делаем: Языковые версии — это одно содержимое с локализованными полями, а не копии. Менеджер правит один материал вместо двух.

Админка неудобна для контента

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

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

VirtueMart и K2 тянут назад

Магазин или каталог на VirtueMart, контент на K2 — оба расширения устарели, а данные в них хранятся в собственных таблицах без нормальной схемы.

Что делаем: Каталог и контент переносим в нормализованную схему Laravel: товары, категории, заказы, материалы и связи между ними.

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

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

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

Контент

  • Материалы и категории
  • Меню и структура разделов
  • Медиафайлы и галереи
  • Контакты и формы
  • Мультиязычные версии

Каталог (VirtueMart и аналоги)

  • Товары и категории
  • Цены и скидки
  • Заказы и покупатели
  • Производители
  • Отзывы

Данные расширений

  • K2-материалы и поля
  • Каталоги и справочники
  • Формы и заявки
  • Пользователи и права

SEO

  • SEF-адреса и карта URL
  • Метаданные и заголовки
  • Sitemap и robots
  • Микроразметка
  • Редиректы и старые адреса
Честно

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

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

Разобрать вашу систему
  • Расширения один в один: данные переносим, код пишем заново под ваши процессы.
  • Шаблон и позиции модулей: собираем чистую вёрстку, похожую визуально.
  • Структуру таблиц Joomla и VirtueMart: схема проектируется заново.
  • Механизм мультиязычности через дубли материалов.
  • Устаревшие библиотеки и версии PHP, которые уже не поддерживаются.
Риски

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

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

Данные в расширениях

K2 и VirtueMart хранят контент в своих таблицах, часто с дублями. Разбираем схему и связи перед переносом.

SEF-адреса и дубли

У материалов бывает несколько адресов и алиасов. Собираем карту URL из базы и логов, закрываем редиректами.

Мультиязычность

Если она сделана копиями, нужно решить, какая версия источник правды. Уточняем с редакцией до переноса.

Заявки и формы

История форм обычно не сохраняется. Переносим то, что есть, и сразу настраиваем попадание заявок в 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 недели

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

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

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

  • Инвентаризация расширений — первый шаг: для каждого решаем, реализуем нативно, заменяем сервисом или отказываемся.
  • Контент переносим с ручной выборочной проверкой: в Joomla часто встречается разметка из редактора разных лет.
  • Каталог (если есть) переносим отдельным этапом со сверкой цен и заказов.
  • Адреса закрываем редиректами до переключения трафика, а не после.
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 и маркетплейсами.

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

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

  • Сайт на актуальной Joomla с минимумом расширений и без кастомной логики.
  • Планируется только визуальное обновление шаблона.
  • Функциональность устраивает и развивать её не планируется.
Форматы работ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1С-Битрикс

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

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

WordPress

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

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

OpenCart

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

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

MODX

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

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

Yii (1 и 2)

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

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

CodeIgniter

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

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

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

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

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

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

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

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

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

С какой версии Joomla можно мигрировать?

С любой: 1.5, 2.5, 3.x и 4.x. Разница в объёме работы: чем старее версия, тем больше расширений и тем выше шанс, что часть данных придётся восстанавливать по таблицам расширений. На аудите мы смотрим структуру базы и список компонентов.

Что будет с VirtueMart?

Товары, категории, цены, заказы и покупатели переносятся в нормализованную схему Laravel. Логика расчёта, доставки и скидок описывается заново под ваши правила: в VirtueMart она собрана из настроек и плагинов, и «как было» не всегда означает «как нужно».

Как переносится мультиязычный сайт?

Мы отказываемся от дублей материалов: одна сущность с локализованными полями и правильным hreflang. Это убирает расхождения между языковыми версиями и упрощает правки: вместо двух материалов редактор ведёт один. Адреса языковых версий сохраняем или закрываем редиректами.

Сохранятся ли позиции в поиске?

Да, при переносе адресов. Мы собираем карту URL из базы Joomla и логов, сохраняем совпадающие адреса и закрываем 301-редиректами остальные, включая адреса пагинации, категорий K2 и карточек VirtueMart. После переключения контролируем индексацию и позиции.

Сколько времени занимает переезд с Joomla?

Аудит и карта данных — 1–2 недели, проектирование схемы — 2–3 недели, перенос и разработка разделов — от 8 недель, переключение и стабилизация — 2–3 недели. Срок зависит от числа расширений с данными и объёма каталога.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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