С Drupal я работаю где-то с 2009 года, начинал с 6-й версии, а на момент написания статьи последняя уже 11-я. Поэтому повидал уже много чего и этот материал написан исключительно исходя из личного опыта.
Преимущества
Плюсов у Drupal предостаточно:
-
Бесплатная система управления с возможностями в разы превосходящими платные аналоги.
-
Универсальность. Практически не существует задач, с которыми невозможно было бы использовать Drupal. Исключение - узконаправленные задачи, для которых проще использовать фреймворки вроде Symfony или Laravel. Но со всеми шаблонными мейнстрим задачами, аля информационный сайт, блог, каталог, сайт услуг, представительство или интернет магазин - справляется на отлично.
-
Модульность: огромное количество расширений на любой вкус.
-
Огромное количество функций, доступных “из коробки”: админка, ЧПУ, кэширование, сущности, поля, регистрация пользователей, контроль доступа, комментарии, форма обратной связи, меню, поиск, статистика, системный лог, мультиязычность и многое другое.
-
Сущности, поля, таксономия и гибкая система отображения этого всего позволяют гибко настраивать сайт под большинство задач.
-
Views - они же “Представления” - мощный UI конструктор списков и выборок без необходимости изучать SQL синтаксис.
-
Блочная система - шаблон поделён на регионы, в каждом из которых можно выводить блоки контента в зависимости от различных условий: адрес страницы, роль пользователя, язык и тд.
-
Обработка изображений - можно "на лету" обрезать и/или масштабировать изображения для создания разных вариантов для превью в списках, полного просмотра и любых других ситуаций.
-
Мультиязычность - перевод интерфейса и контента на разные языки, поддержка поддоменов, подпапок или даже разных доменов для разных языков (переводов).
-
Неограниченное количество ролей пользователей и мощная система контроля доступа - можно настраивать разрешения для всего.
-
Twig для рендеринга - популярная и мощная система шаблонизации. В целом вся темизация-шаблонизация в друпале достаточно мощная, можно изменить каждую мелочь на сайте.
-
Composer позволяет легко управлять пакетами и обновлением системы.
-
Symfony компоненты под капотом (начиная с 8-й версии). Делает разработку очень гибкой, а функционал расширяемым не только за счет модулей.
-
API-first подход. Доступны апишки на любой вкус и цвет для более простой и гибкой разработки, а так же создания headless решений: Entity API, Form API, DB API, Batch API, Queue API, Cache API, Filter API и другие - https://www.drupal.org/docs/develop/drupal-apis
-
Система хуков (от англ hook - крюк), позволяющая переопределять огромное количество функций, как модулей, так и ядра. Простым языком хуки - это обычные PHP функции, названные по специальному шаблону, которые автоматом цепляет движок сайта и в зависимости от реализации или дополняет или полностью переопределяет какой-то функционал. Таким образом то, что нельзя настроить "мышкой", можно добить через хуки.
-
Импорт/экспорт конфигурации сайта позволяет деплоить на прод с минимумом телодвижений, как вручную, так например и через Deployer.
-
При грамотной настройке Drupal - весьма шустрая система управления.
-
Огромное и дружелюбное сообщество разработчиков, у которых можно спросить совет.
-
Вытекающий из предыдущего плюс - баги фиксятся быстро, но чаще это касается ядра. Кастомные модули - зона ответственности их авторов, но и для этих случаев народ пилит патчи, которые можно использовать до обновления модуля его создателем.
-
Открытый исходный код.
Неопределенные моменты
В этой категории вещи, которые задуманы с пользой, но несут в себе потенциальный вред, так как с одной стороны они делают что-то очень хорошее, а с другой они могут сильно усложнять жизнь.
-
Частые обновления ядра. С одной стороны это плюс, так как ведётся постоянная работа с уязвимостями, а с другой стороны большинство Drupal сайтов до сих пор работают на 7-й версии, которая вышла в 2011 году.

Еще не было ни одного раза на моей практике, когда переход на новую версию завершился успешно с первого раза без ошибок и избиения своего лица об клавиатуру. Связано это в основном с использованием кастомных тем и модулей, которые часто не успевают выпускать актуальные версии, поддерживаемые последним ядром.
Например, один из моих сайтов на 9-й версии уже устарел и ругается, что пора бы обновиться. Он отлично работает, приносит какой-то трафик, но при попытке обновления возникают ошибки с модулями и шаблоном, разбираться в которых мне лень, так как простого решения там нет (замены одного из ключевых модулей еще нет, обновится он возможно никогда), а проделанная работа не будет стоить потраченного на неё времнни.
Переход с 7 на 8 версию, где произошла смена парадигмы Друпала - это вообще забей. Что многие разработчики и сделали, что и подтверждает график выше. Там проще не переехать, а создать сайт с нуля на 8+ версии. -
Большое количество модулей. Да, это определенно плюс, дарарит большие возможности для расширения функционала. Но с каждой новой версией ядра модулей, которые забросили, становится всё больше.
Второй момент - бывает модуль делает настолько ничтожную вещь, стреляя из пушки по воробью, что проще было бы обойтись вообще без него, перенеся все мелочи в один "мега" кастомный модуль либо вообще в шаблон. Часто встречающаяся болезнь друпалистов, особенно начинающих - бездумная установка огромного количества модулей, что приводит к тормозам и прочим непредвиденным последствиям, например несовместимости разных модулей.
И третье - модули часто представляют из себя глючное недоразумение. Порой бывает нужно перепробовать пачку модулей, прежде чем найти рабочее решение. Либо написать самому с нуля. Так что вся эта масса из более чем 50 тысяч модулей на официальном сайте - просто пыль в глаза. Реалии таковы, что большинство из них не поддерживаются либо не протестированы должным образом.
Недостатки
-
Самый главный минус Drupal - это сплошной overhead. Чрезмерное усложнение всего и вся. Это относится, как к бэку, так и к пользовательскому интерфейсу.
Необоснованные запросы, сложная структура БД и сущностей, Views не всегда оптимизированы, все формы выглядят страшно, все эти хуки, переопределения и прочая билиберда.
В движке многое сделано в угоду универсальности и да, всё можно настроить и поменять под себя, но для этого скорее всего придётся писать дополнительный код, а это занимает время не только на реализацию, но и на банальное осознание, как это всё сделать.
Иногда быстрей и, уж точно чище и понятней, что-то написать с на голом Symfony, чем разбираться во всех этих тонкостях Drupal.
Чтобы было наглядней, ниже пример программного изменения мета title и description для кастомной страницы:/** * Implements hook_preprocess_html() for html templates. */ function mythemename_preprocess_html(array &$variables) { // Add META tag title + description for Basic Page node fields. // This assumes the 'body' field is present and populated. // Load the node entity from current route. $node = \Drupal::routeMatch()->getParameter('node'); if ($node) { // Check if node type is basic page. if ($node->getType() === 'page') { $variables['page']['#attached']['html_head'][] = [ [ '#tag' => 'meta', '#attributes' => [ 'name' => 'title', 'content' => $node->get('title')->value, ], ], 'title', ]; $variables['page']['#attached']['html_head'][] = [ [ '#tag' => 'meta', '#attributes' => [ 'name' => 'description', // Get 160 characters from Body field, strip tags 'content' => strip_tags(substr($node->get('body')->value, 0, 160)) . '...', ], ], 'description', ]; } } }
Ну ведь жесть!
И так в друпале повсюду. Что-то интуитивно понять тут просто невозможно, надо лезть в API, гуглить или обращаться за помощью на форумы или чаты (где не факт, что ответят и точно не сразу) или к ИИ. -
Совсем не коробочное решение. Поставил и забыл - это не про Drupal. В любом случае будет нужна настройка и глубокое понимание что и как работает. В зависимости от возможностей выбранного шаблона и установленных модулей можно в целом и мышкой “натыкать”, как в конструкторе собрать нужный сайт, но большое количество модулей еще сильнее усложняет и без того сложную систему.
-
Шаблон скорее всего потребует доработок, так как в стандартном виде почти все они выглядят убого и напихано много лишнего. Либо наоборот слишком минималистично. Но это, наверное, особенность любой CMS.
-
Шаблонизация хоть и мощная, но требует определенных навыков и знаний. Например, нужно знать правильный нейминг файлов шаблона. В этом помогает дебаг режим твига, который предложит вариации нейминга, чтобы друпал подхватил эти файлы автоматически. Но частенько этих вариаций не хватает и нужно опять прибегать к помощи хуков, чтобы пробросить так называемые "theme suggestions" и темизировать какую-то мелочь. Совсем не прямолинейный процесс. Готовьтесь к тому, что ради изменения какой-то кнопочки придётся играть в дичайшую многоходовочку.
-
Уже ставшая мемом кривая обучения Drupal. Сначала ничего не понятно, а потом не понятно еще больше.

-
Несмотря на активное сообщество и если Вы не специалист, стоимость поддержки обходится дороже, так как разработчиков гораздо меньше, чем для аналогов.
-
Необходимо знание английского. Для меня это не проблема, но имейте ввиду, что 90% сообщества общается на английском и вся документация написана на нём же. Да, есть переводы, но они создаются не синхронно.
-
Блокирующие баги, особенно на фазе активной разработки и при использовании контрибных модулей, на которые уходит тонна времени, даже не на исправление (часто решение простое), а банально на понимание, что тут вообще происходит.
-
Популярность не очень. От сухих цифр никуда не убежишь.
По данным CMSmagazine.ru:
- Wordpress занимает 2-е место: 9936 проектов и 823 партнёров.
- Drupal на 7 месте: 3113 проектов и 157 партнёров.
По данным компании iTrack, проанализировавшей 5 465 652 доменов зоны RU:
-
Wordpress занимает 42,87% рынка и находится на первом месте среди бесплатных систем управления.
-
Drupal - 1,75% (около 96 тысяч сайтов) и находится так же на 7 месте.
Данные по Wordstat, статистика запросов в Яндексе на декабрь-январь 2025:
- "wordpress" - 145 200 запросов,
- "drupal" - 10 453 запросов.
По данным Google trends, за последний год запрос "drupal" занимает всего 2-6% по сравнению с объемами поиска "wordpress":

Популярность не является прямым недостатком, но это своего рода голоса пользователей за какую-то систему. Хотя у друпала из-за своей сложности здесь никогда не было шансов.
▲Для каких сайтов подходит Drupal, а для каких нет
Drupal идеально подходит для создания:
- блога или информационного сайта,
- государственного портала,
- интернет магазина, сайта услуг или каталога,
- корпоративного портала,
- мультиязычных сайтов,
- для решений, требующих интеграций с внешними API, CRM системами и тд.
Не подходит для:
- быстрой разработки,
- малостраничных сайтов и лендингов, не требующих частого обновления,
- простых интернет магазинов (для этого лучше использовать узконаправленные CMS),
- при небольших бюджетах на разработку,
- узконаправленных сайтов, требующих много кастомного функционала, для которых универсальность Drupal будет излишней (лучше использовать самопис).
Аудитория владельцев сайтов на друпал - это:
- веб разработчики,
- крупные компании и корпорации,
- государственные структуры,
- образовательные учереждения,
- команды с большим штатом редакторов и авторов, которым нужна гибкость прав доступа и удобное управление стадиями публикации контента.
Заключение
Drupal - это мощная, но сложная система управления сайтом с высоким порогом входа. Она создана для технарей, а не для “домохозяек”. Если Вы хотя бы базово не знакомы с PHP и Twig и собираетесь создавать сайт сами - в друпал лучше не лезть.
Но даже если Вы веб-программист, то с нуля самому разобраться во всём в Друпале точно не выйдет и я всем советую посмотреть какой-нибудь курс молодого бойца, прежде чем начать работать.
Огромное количество плюсов, большое и активное сообщество, а так же совеременные ИИ-помощники (которые заменят часы гуглежа) в целом перекрывают большинство минусов этой системы.
Если разобраться в Drupal, было бы желание, то он может стать мощным инструментом разработки. Сравнивая с фреймворками, то неоспоримое преимущество друпала в том, что не надо тратить время на банальные вещи, вроде регистрации пользователей, работой с сущностями, роутингом, правами доступа, созданием списков и тд - все это уже реализовано и доступно сразу.
Но вместе с мощностью бонусом идут ограничения системы и необходимость разбираться в весьма запутанной архитектуре. В задачах чуть сложней простых я постоянно натыкаюсь на мысль, что проще и быстрей было бы реализовать какую-то фичу с нуля, чем возиться и разбираться в том, как это можно реализовать друпал-стайл.
Drupal я использую в основном для контентных сайтов.
▲
Добавить комментарий