Сравнение WordPress и Joomla

  •   12.09.2017
  •   1 комментарий
  •   WordPress

Раньше я работал с Joomla. Теперь я работаю с WordPress. И в этой статье я буду преимущественно ругать Джумлу и хвалить Вордпресс. Но перед тем хочу прояснить пару моментов…

Сравнение WordPress и Joomla

— WordPress лучше, чем Joomla!
— Чем лучше?
— Чем Joomla!

вариация на тему старого анекдота

Момент первый. Я работал с Joomla много лет. Очень много лет. Работал с самой первой версии, с тех самых пор, как она только отделилась от Mambo (кто-то еще помнит, что была такая CMS?). Работал со всеми версиями, вплоть до последней. Был энтузиастом и следил за ее развитием, в том числе за ответвлениями типа Joostina (и даже в свое время сваял для них логотипчик, отпилив лишнее от логотипа Joomla). Говорю это не для того, чтобы похвалиться собой (хотя и для этого тоже 😀 ). Хочу донести до читателя, что я хорошо знаком с Joomla и знаю, о чем говорю.

Момент второй. Я отдаю себе отчет в том, что WordPress несовершенен. Я знаю, что у него множество проблем с кодовой базой. Собственно, именно начитавшись про эти проблемы и делая выбор между WordPress, Joomla и Drupal — я и выбрал много лет назад Джумлу. Про Drupal я тоже иногда буду вспоминать в этой статье, но в тот момент откинул его по причине более высокого порога вхождения (и вот об этом решении как раз не жалею, хотя причины сегодняшнего его неиспользования уже другие). Так или иначе — у какого движка нет проблем? Идеальной CMS/CMF не существует, а учитывая преимущества Вордпресса (он чертовски удобен и приятен в использовании) — я сегодня готов закрыть глаза на некоторые его недостатки.

Ну а с WordPress меня в итоге свел счастливый случай. Я спокойно делал сайты на Joomla и в ус не дул, но вот в какой-то момент один из клиентов поставил жесткое условие — делать сайт только на WordPress, поскольку к нему привыкли тамошние контент-менеджеры, а переучивать их никто не хотел. Другой важной/срочной работы у меня на тот момент не было, поэтому решил взяться. И взялся. И офигел. Не сразу, а постепенно. По мере погружения в процесс разработки все больше офигевал от того, насколько все ладно устроено в этом Вордпрессе, особенно в сравнении с Joomla (и с Drupal). Но обо всем по порядку…

Установка и обновление системы

Я так давно последний раз устанавливал Joomla, что уже забыл, как выглядит этот процесс 🙂 В любом случае, помню, как меня поразила установка WordPress-а в два клика. Еще не успел ничего подумать, а система оказывается уже установлена и работает.

Теперь про обновление. До какого-то момента обновление Joomla было совсем нетривиальным процессом. Ну да оставим те смутные времена и обратимся к дню сегодняшнему. Для обновления до последней (в том числе минорной) версии в Joomla нужно зайти в админку, нажать на специальную кнопочку и насладиться процессом, откинувшись на спинку кресла. Казалось бы, разве может быть проще? Может. WordPress просто присылает мне письмо на почту: «Ваш сайт обновлен до версии XX». Занавес.

Такое ли это важное преимущество? Спросите об этом у Joomla-разработчиков, сайты которых были взломаны с использованием уязвимости нулевого дня. И да, в 21-м веке хорошо, если CMS умеет обращаться с такой простой штукой, как cron.

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

Юзабилити разработчика и контент-менеджера

В этом пункте что-то хорошее можно написать только про WordPress, потому что в Drupal и Joomla юзабилити нет, как говорят французы — все сделано через жопу. Правда, сайты на Drupal я не разрабатывал, но с его админкой мне поработать пришлось, так что тоже могу сравнивать. Главная проблема — неочевидность. Многие вещи можно сделать, только точно зная, как они делаются. А интуитивный подход часто приводит к проблемам, которые потом нужно разгребать. Например, часто неопытные сайтостроители меняют однотипные настройки сущностей (типа пунктов меню) по отдельности, потому что добраться до них легче всего (о глобальных настройках догадываются не все). В WordPress в этом плане все гораздо проще и логичнее.

Хочется отдельно сказать по поводу восприятия системы. Глядя в админку WordPress-а мое чувство прекрасного радуется. Глядя в админку Joomla и Drupal мое чувство прекрасного плющит и корежит. Хорошо, когда у разработчиков CMS есть чувство вкуса. И да, это имеет значение.

Двойная авторизация в Joomla

Не двухфакторная, а именно двойная — во фронтэнде и бэкэнде. Зачем? Что, нельзя залогиниться один раз? Можно. Пример WordPress это доказывает — залогинившись в админке, я автоматом залогинен в лицевой части сайта. Опять же — логично, просто, понятно, удобно. Это WordPress, детка.

Блокировка контента в Joomla

Кто это вообще придумал? Нет, я понимаю, идея здравая — если кто-то работает над конкретной статьей, то лучше бы не дать другим пользователям лезть в процесс редактирования, иначе чья-то работа будет потеряна. Но почему (черт возьми, почему?!) эти блокировки не снимаются автоматом? Если человек просто закрыл вкладку со статьей (а так поступает большинство неопытных пользователей Joomla), то статья остается заблокированной для редактирования другими пользователями. Навсегда! (Тут демонический закадровый смех.) Ну или по крайней мере до тех пор, пока админ ее не разблокирует вручную.

Как эту проблему решает WordPress? Очень просто. Работаешь со статьей? Предупредим об этом других пользователей, пытающихся открыть эту же статью на редактирование. Закрываешь вкладку, не сохранив изменения? Спросим, стоит ли их сохранить. Закрываешь вкладку, сохранив изменения? Все, WordPress понимает, что ты закончил работать со статьей, и начинает пускать туда других пользователей.

Юзабилити посетителя сайта

Здесь можно сказать примерно то же самое, что и о юзабилити админки. Стандартные формы, диалоги, элементы управления и навигации (не привязанные к стилям шаблона, именно стандартные) в Joomla и Drupal чудовищны. Правило близости? Нет, не слышали. Ожидаешь одного, происходит другое. Кстати, Drupal в этом плане даже хуже, чем Joomla. Нажал на кнопочку и с удивлением понял (если понял), что оказывается она относится к форме в совершенно другой части страницы. Даже по стилю построения фраз в диалогах становится понятным, что все это делалось разработчиками для разработчиков, но никак не для простых посетителей сайта.

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

CCK (конструкторы контента)

Вообще, CCK — термин из мира Drupal. «Content Construction Kit», или «конструктор контента» по-русски. Но этот термин прижился и при обсуждении других CMS.

Собственно, с друпаловским CCK я плотно не работал, поэтому рассуждать на его тему не буду. Зато я работал с конструкторами контента в Joomla. Их здесь целый зоопарк, и ни одного (на мой взгляд) нормального. Скорее всего, это связано с недостатками самой Joomla. Те конструкторы, которые пытаются как можно плотнее встроиться в структуру Joomla — как правило ущербны. Ну а те, функционал которых можно назвать интересным — часто вообще представляют собой чуть ли не отдельную CMS, и в итоге чем разбираться с ними (привет, Seblod!) — легче разобраться с какой-нибудь CMS посложнее (типа Drupal-а), в итоге в них вообще теряется смысл.

А что в WordPress?
А в WordPress есть ACF. При произнесении этих трех магических букв я начинаю мурлыкать, а губы расплываются в улыбке. Advanced Custom Fields. Я обожаю этот плагин, он прекрасен. И именно он во многом делает для меня разработку сайтов на WordPress безумно приятной. Возможно, чуть позже напишу про него отдельную статью.

SEO дружественность

Вот с SEO в Joomla полный капец.

Отдельно стоит поговорить о дублировании страниц. Пожалуй, это самая главная проблема в Joomla. Дубли. Их уйма, и это ужас. Во-первых, дубли формируются самой системой, когда на одну и ту же страницу можно попасть из разных мест (и соответственно по разным URL-ам). Во-вторых (подумайте только!) достаточно написать после адреса сайта ID материала (статьи) и после него любой бессвязный набор символов — и вы попадете по этому URL-у на статью. Не 404-я ошибка, не редирект, а статья! По любому бессвязному адресу, и их может быть вообще неограниченное количество! В итоге в индекс поисковиков попадает такое количество хлама, что просто ужас. Google пытается как-то с этим разобраться и склеить дубли (кстати, не всегда адекватно), но даже он захлебывается. В этом можно убедиться, посмотрев, какая каша хранится в индексе Гугла по Joomla-сайтам. Думаю, не нужно объяснять, насколько все это плохо с точки зрения продвижения сайта в поисковиках.

А что WordPress? А WordPress умничка. Грамотная и гибко настраиваемая система формирования URL-ов. Смотришь в индекс Google, и глаза радуются — каждая страница представлена в единственном экземпляре, все четко и красиво.

Кстати, о системе URL-ов. В последних версиях Joomla появились хоть как-то работающие ЧПУ (человекопонятные урлы). Но даже они ущербные. Они привязаны к меню (что само по себе странно) и имеют вид адрес-сайта/пункт-меню/название-статьи, и эта структура без костылей не меняется. А что в ней плохого, вроде ладненько все? Плохо то, что гибкости нет — если вы перенесете статью в другую категорию, то сменится содержащий ее пункт меню (который часто привязан к категории) и ее URL. В WordPress-е же из коробки можно сделать (и я так всегда делаю), чтобы адрес статьи имел вид адрес-сайта/название-статьи, без лишних промежуточных сущностей (посмотрите для примера на URL этой страницы). И все, проблемы больше нет.

Еще момент. Хочешь сделать мультиязычный сайт? Прекрасно. До этого у тебя был одноязычный сайт со сложившейся структурой URL-ов, проиндексированный поисковиками? Джумле пофиг, меняем всю структуру, делая старые URL-ы нерабочими. И хотя этот вопрос решается довольно просто, по дефолту Joomla все ломает. Почему, почему дефолтные варианты настроек такие дебильные странные, а чтобы выбрать оптимальные опции — нужно копаться в дремучих дебрях админки?

А еще для WordPress есть плагин Yoast SEO, который позволяет вывести оптимизацию сайтов на новый уровень.

Безопасность

Говорят, что сайты на WordPress часто ломают. Это правда. Так же, как часто ломают сайты на Joomla. Это недостатки популярных CMS, и тут Joomla и WordPress пожалуй практически на равных. За исключением одной детали — под WordPress я смог найти один хороший плагин для минимизации рисков.

Называется этот плагин Shield Security, изначально я ставил его как защиту от спама, но потом обнаружил в нем кучу других полезных функций. В частности, касаемо потенциального взлома — он умеет проверять все файлы ядра на соответствие тому, что выложено на wordpress.org, а также отлавливать левые файлы. В зависимости от настроек он либо сразу удаляет все левое, либо просто сообщает о проблеме на почту админу.

Под Joomla подобные решения тоже вроде как есть, но при ближайшем рассмотрении они (по моему опыту) оказываются костыльными и неудобными в работе.

Сторонние расширения и шаблоны/темы

Тысячи их — как платных, так и бесплатных. Что для Joomla, что для WordPress — тут они тоже примерно на равных. Хотя, по моему субъективному мнению, качество дополнений для WordPress в среднем все же выше, чем для Joomla. В обоих случаях для того, чтобы найти изумруды, приходится продираться через тонны хлама, но те самые изумруды в WordPress получше, как показывает мой опыт.

При желании могу найти множество других плюсов Вордпресса и минусов Джумлы, но на этом пока остановлюсь.

Что, у WordPress прям совсем нет недостатков?

Есть. Про кодовую базу уже писал выше. WordPress — изначально блоговый движок, и с этим связаны многие его ограничения и то, что некоторый дополнительный функционал притянут за уши. Например, я не люблю делать на WordPress магазины. Под WordPress написан специальный плагин для этих целей — WooCommerce, и альтернатив ему практически нет. Это целый комбайн, и к нему самому уже написаны вагон с тележкой сопутствующих расширений. Но вот не зашел он мне, не нравится с ним работать. Начинаю с ним работать, и почему-то сразу вспоминаю Джумлу 🙂

А вот как движок для создания контентных сайтов — WordPress прекрасен. Особенно если снабдить его пачкой must-have плагинов. О некоторых из них я уже упомянул в этой статье, а об остальных расскажу в одной из следующих заметок.