Когда мы берёмся за проект на Битриксе, первый вопрос — не "какой шаблон", а "как спроектировать структуру данных так, чтобы через год не переписывать фильтры"?
Один неудачный инфоблок с 30 свойствами — и b_iblock_element_property разрастается до миллионов строк. CIBlockElement::GetList выполняется 4 секунды, а фасетный индекс не спасает, потому что свойства-привязки не попали в b_catalog_sm_*. Переделать на проде — переписать шаблоны, фильтры, SEO-правила. Дешевле спроектировать один раз. Наш опыт показывает: правильная архитектура экономит до 40% бюджета на поддержку. Типичные последствия неправильной архитектуры — рост времени загрузки страниц, падение конверсии и перерасход бюджета на доработки.
Почему выбор типа хранения определяет производительность?
Это не абстрактный вопрос. От него зависит, какие компоненты будут работать "из коробки", а какие придётся писать с нуля. Ошибка на этапе проектирования может стоить месяцев переписывания кода.
Инфоблоки хранят свойства в EAV-таблице b_iblock_element_property. Для 5 000 товаров с 10 свойствами — 50 000 строк, MySQL справляется. Для 80 000 товаров с 25 свойствами — 2 000 000 строк, JOIN-ы при фильтрации дают секунды. Зато инфоблоки дают SEO-обвязку, визуальный редактор, компоненты каталога.
Highload-блоки — плоская таблица, колонка на свойство. Индексы эффективны, фильтрация 200 000 записей за 30-80 мс. Нет наследования свойств разделов, нет штатного SEO-модуля. Идеально для справочников (города, бренды).
D7 ORM (Bitrix\Main\ORM\Data\DataManager) — для сущностей, не вписывающихся в инфоблоки или HL-блоки. Заявки со связями, кастомные логи, агрегации. Полный контроль, но админка рисуется вручную.
| Критерий | Инфоблоки | Highload-блоки | D7 ORM |
|---|---|---|---|
| Скорость фильтрации 100К+ товаров | 1-3 с (с фасет.индексом 50-200 мс) | 30-80 мс | Зависит от запроса |
| Штатные компоненты каталога | Да | Нет | Нет |
| SEO-модуль | Да | Нет | Нет |
| Произвольные связи | Ограничены | По полю | Полноценные |
Как Битрикс сравнивается с WordPress и Laravel?
WordPress — тоже EAV через wp_postmeta, но без штатного e-commerce уровня. WooCommerce — плагин. Битрикс даёт модуль catalog с торговыми предложениями, типами цен, складским учётом, обменом с 1С через CommerceML. Для компаний, живущих в 1С:Предприятие, это решающий аргумент.
Laravel — фреймворк, не CMS. Свобода архитектуры, но каталог, корзина, права доступа, обмен с 1С пишутся с нуля. На проекте с бюджетом 4-6 месяцев и командой из 3 человек Laravel оправдан. Для корпоративного сайта, который нужен через 2 месяца, Битрикс быстрее. Не лучше — быстрее при типовых задачах.
Принципиальное отличие — компонентный подход. bitrix:catalog.section — готовая связка контроллер + модель + кеширование. Подключается в шаблон, настраивается через $arParams, кастомизируется в template.php. Бизнес-логика — в result_modifier.php или в кастомном модуле local/modules/. Шаблон — в local/templates/. Не в ядре, никогда в ядре.
Как мы обеспечиваем производительность до первого коммита?
Оптимизировать после запуска дорого. Вот что закладываем в архитектуру:
Кеширование — три уровня: управляемый кеш компонентов, общий кеш (memcached/Redis), композитный сайт. Композит отдаёт HTML без инициализации ядра — время ответа падает с 200 мс до 15-30 мс.
Статика — CDN для /upload/, /bitrix/js/, /bitrix/css/. WebP через CFile::ResizeImageGet(). Lazy loading. Вынос статики на CDN снимает 40-60% нагрузки с веб-сервера.
База данных — составные индексы на часто фильтруемые свойства. EXPLAIN на каждый тяжёлый запрос. Для каталогов свыше 50 000 товаров — фасетные индексы (Bitrix\Catalog\Model\SmartFilter), фильтрация из 3 секунд превращается в 50 мс.
PHP — OPcache с JIT на PHP 8.1+, realpath_cache_size=4096K. Проверка через панель "Производительность" → "PHP".
Кейс: ускорение каталога в 6 раз
Для клиента с каталогом 120 000 товаров и 40 свойствами мы перевели фильтрацию с инфоблоков на Highload-блоки с фасетными индексами. Время загрузки страницы каталога упало с 4.2 с до 0.7 с. Дополнительно настроили композитный кеш для неавторизованных пользователей — первый байт стал 25 мс. Экономия на поддержке составила до 30% годового бюджета.
Подробнее о композитном режиме читайте в официальной документации.
Что входит в работу
- Анализ требований и проектирование архитектуры данных
- Разработка дизайна и адаптивная вёрстка
- Создание кастомных компонентов и модулей
- Интеграция с 1С (CommerceML), платёжными системами, службами доставки
- Настройка кеширования, CDN, композитного режима
- Тестирование (функциональное, нагрузочное, безопасность)
- Документация и обучение администраторов
- Гарантийная поддержка 12 месяцев
Этапы и сроки
- Аналитика и проектирование (1-2 недели) — спецификация инфоблоков, интеграций, прототипы
- Дизайн (1-3 недели) — UI/UX, дизайн-система
- Разработка (3-8 недель) — спринты по 2 недели, демо на staging
- Тестирование (1-2 недели) — PageSpeed, Lighthouse, WebPageTest
- Запуск (3-5 дней) — деплой, мониторинг, стабилизация
| Масштаб проекта | Сроки |
|---|---|
| Корпоративный сайт, 10-20 страниц | 6-10 недель |
| Каталог с фильтрацией, до 10 000 товаров | 8-14 недель |
| Интернет-магазин с 1С | 12-20 недель |
| B2B-портал с кабинетом | 14-24 недели |
Сроки корректируются после анализа требований. Стоимость рассчитывается индивидуально — слишком много переменных для шаблонных цифр.
Типичные ошибки в проектах на Битрикс
- Бизнес-логика в
template.php. Расчёт скидок, проверка прав — выносим вresult_modifier.phpили сервисный класс модуля. - Прямые SQL-запросы (
$DB->Query()) вместо D7 ORM. Теряется кеширование, типобезопасность, инъекции. - Один гигантский
init.phpна 2000 строк. Переносим в модуль с автозагрузкой. - Кеш без тегов. Используем
SetResultCacheKeys()иCIBlock::clearIblockTagCache(). - Обновление ядра без staging. Всегда staging, потом прод.
Наши инженеры имеют сертификацию 1С-Битрикс и 10+ лет коммерческого опыта. Мы гарантируем качество и соблюдение сроков.
Закажите сайт на Битрикс — получите консультацию и оценку проекта за 2 дня. Свяжитесь с нами, чтобы обсудить детали.







