Все ли CMS одинаково полезны?
На сегодняшний день сеть интернет буквально забита всякими продающими ресурсами. Оно и не удивительно - любой современный человек понимает все прелести, предоставляемые мировой паутиной. И потому, каждый, мало-мальски уважающий себя предприниматель, буквально считает своим долгом разместить в сети информацию о себе любимом и своем не менее любимом бизнесе. И уж этот мега-ресурс обязательно попытается что-нить впарить каждому случайно зашедшему серферу. И никак иначе.
Отдельной группой стоят так называемые мани-мэйкеры. Это люди, у которых нет бизнеса в "реале" и которые живут (или пытаются жить) только с доходов, заработанных в сети. Если для "обычных" коммерсантов личный сайт - это скорее дань моде, показатель престижа, приносящий как правило весьма небольшое дополнение к основному источнику дохода, то для манимейкера интернет - основное "поле боя" за прибыль. И потому современный мани-мейкер зачастую имеет в своем распоряжении десятки самых разных ресурсов в разных секторах сети, каждый из которых занимается своим делом: от вполне реальной торговли реальными товарами до виртуальной (но не менее прибыльной) "торговли воздухом".
Справиться со всем этим "хозяйством" дело совсем не простое. Особенно, если учесть произошедшие в последнее десятилетие огромные прорывы в области алгоритмов ранжирования сайтов поисковыми системами. Десять лет назад, достаточно было соорудить сайт на HTML в обычном "Блокноте" (можно даже без картинок), разместить его где-нибудь - все равно где, ткнуть искалку в него носом и все - посещаемость этому ресурсу обеспечена. Не высокая, но стабильная.
Сегодня же для того, чтоб сайт "понравился" поисковику, вэб-мастеру приходится трудиться день и ночь. Причем каждая искалка имеет свой неповторимый "характер" и потому не существует универсального способа нравиться всем и каждому - к каждому поисковику нужен индивидуальный подход. А когда количество подконтрольных сайтов переваливает за пару десятков у мани-мэйкера начинается настоящая головная боль.
Естественно, как спрос порождает предложение, так и на каждую проблему рано или поздно находится решение. Сегодняшний успешный мани-мэйкер просто обязан быть "вооружен" до зубов различного рода утилитами, скриптами, статистическими данными и т.д. и т.п. Благо, сейчас в этом хламе недостатка нет. Чай не первый год уже воюют.
Но самое главное среди всего этого бесценного стаффа - сайтовые движки. Ибо все изыскания, все идеи, решения, принятые на основе анализа статистики посещаемости своих ресурсов, прибыли и убытков, все то ценное, что только может посетить несчастную опухшую голову мани-мейкера в конечном итоге выливается в одно и тоже - изменения, производимые на подконтрольных сайтах.
А учитывая объемы и совершенно ужасную структуру всего этого сетевого хозяйства, становится понятно, что ни о каких масштабных (и уж тем более быстрых) изменениях не стоит и мечтать, если под рукой нет удобного инструмента для управления этими сайтами, блогами, порталами, шопами, дорами, сателлитами и прочей, приносящей такие желанные монетки, шнягой.
Вот тут на первое место и выходят всякие CMS (Content Management System - системы управления содержимым сайта).
Существует их превеликое множество самых разных сортов и видов. Различаются они в основном функциональностью, направленностью и размерами. Есть как "заточенные" под какой-то один вид "деятельности" (блог, форум или магазин), так и универсального характера. Размеры тоже колеблются в очень широких пределах.
Так, например, Joomla после установки на сервер "сожрет" около 10-15 мегабайт (и это только пустой мотор, без единого документа, не имеющий ни одной страницы). Зато один раз основательно пропотев при установке, потом пользоваться ей можно обучить даже неандертальца, т.к. знать всякие сетевые заморочки типа HTML или CSS для работы с этой CMS совсем не нужно - система достаточно грамотная, чтобы понять, что от нее хочет очередной сайто-строитель.
В то же время nano-CMS от Lasto представляет собой шедевр минимализма - установленная копия занимает чуть более 60 килобайт. Естественно, ожидать от такого движка глубоко интеллектуального подхода не приходится. Все, что он делает - это просто прикручивает кусок HTML-ного шаблона к пользовательскому контенту, получая таким образом готовую страницу сайта. Ну а что еще можно ожидать от мотора за 2 рубля? Не Бог весть какой, но для кого-то и этого будет вполне достаточно.
В общем выбрать есть из чего. И постоянно появляются все новые и новые. Значит развитие идет, следовательно есть к чему стремиться. А это означает, что существующие все же далеко не так хороши, как того хотелось бы потребителям. О как.
Большинство разработчиков "серьезных" CMS едины в одном: они ориентируются на неподготовленного пользователя своих продуктов. И потому стараются максимально упростить жизнь такому ламеру. Концепцию можно было бы назвать "Pay-and-Play" - никаких сетевых знаний и умений иметь вовсе не обязательно, поставил и пользуйся на здоровье. К сожалению, на этом прелести всех опробованных мной сайто-моторов и заканчивались.
Дальше - только недостатки:
Первый и самый главный недостаток - практически никакая SEO-оптимизация.
Давно известно, что искалки совершенно по-разному относятся к статическим страницам сайта и к динамическому (изменяющемуся) контенту. Одним нравится одно, другим другое, но как-то так сложилось, что наиболее теплые чувства поисковики испытывают именно к статике. А вот страницы, что генерирует большинство CMS'ов, как раз являются динамическими.
Вторым аспектом гарантированной беззаветной любви search engines к сайту является физическое расположение контента внутри страницы. Тут многое зависит от дизайна (надеюсь про верстку DIV'ами слышали?). Но даже при таком подходе, движек обычно накладывает некоторые ограничения и поэтому гибкости и свободы в расположении контента на странице все равно недостаточно.
Все это означает, что поисковые системы конечно же найдут и проиндексируют сайт на таком движке, но вот восторга, переходящего в эйфорию, они от этой индексации не испытают. Для обычного информационного сайта это, возможно, и не очень важно, но для настоящего мани-мэйкера попадание в топ серпа искалок - первоочередная причина ночной мигрени. И исправить положение не так-то просто (если вообще возможно). Часто выходит так, что для приведения генерируемых CMS страниц к более-менее удобоваримому, с точки зрения SEO, виду, надо переписать половину движка. А оно нам надо?
Второй недостаток - размеры.
Как уже говорилось выше, типовая CMS, имеющая достаточно возможностей для удовлетворения потребностей рядового киберсанта, "весит" примерно 3-8 мегабайт. Это пустой мотор. Когда же он начнет наполняться контентом, свободное место на хосте станет исчезать не по дням, а по часам. А если учесть, что рядовому мани-мейкеру нужно иметь пару десятков сателлитов или доров - относительно небольших сайтов, полный размер контента которых не переваливает за 1-2 мегабайта, то становится понятно, что разворачивать такого "монстра" ради пары мегабайт реальной информации совсем не хочется. Здесь бы подошло что-то ультра простое, маленькое и шустрое.
Третий недостаток - скорость работы.
Большая CMS умеет много чего делать, но чем больше функций, фишек и примочек заложили в нее разработчики, тем тормознее она будет. Факт. И опять же этот факт идет в разрез с требованиями зарабатывателя сетевых денег. Процесс "законного отнимания банковских билетов" предусматривает пропускание через свой сайт десятков тысяч посетителей за сутки и каждый из них должен быть "обслужен" максимально быстро, ибо ленивы и капризны оне. А потому скорость - важная составляющая любого манимейкерского сайта.
Четвертый недостаток - использование баз данных.
Практически 99% CMS используют БД. Оно и понятно - скорость, удобство, простота. Но вот когда встает проблема размещения десятков мини-сайтов, то эти положительные качества волшебным образом трансформируются в отрицательные.
Смотрите сами, для сайта, который будет содержать 4-5 сотен страниц совсем не обязательно покупать полу-гектарный хостинг. Скорее наоборот, следует купить самый дешевый и маленький, метров на 5-7. Этого вполне будет достаточно. Но вот хостер - скотина такая - для таких малых объемов не дает доступа к БД: "Нужен MySQL? покупай 300 мегабайт!"
Результат - переплата за заведомо лишнее место на сервере только из-за того, что мотор сайта не может обойтись без MySQL. Кроме того, если сайт может обходиться без использования БД, то резервное копирование сводится к простому копированию файлов с сервера (обычному скачиванию, которым каждый из нас занимается чуть ли не каждый день).
Пятый недостаток - сложная смена дизайна.
Опять же, если человеку требуется только один сайт (например личный блог, форум или магазин), то вполне можно обойтись стандартными шаблонами дизайна. В крайнем случае можно несколько дней попотеть и прикрутить свой уникальный дизайн. Но вот если количество сайтов начинает измеряться десятками, то создание персонального дизайна для каждого из них становится настоящим кошмаром.
Шестой недостаток - излишняя навороченность.
Для популяризации и распространения своей CMS создатели должны наделить ее максимумом возможностей, сделать как можно более универсальной. В результате возникает "эффект продуктов Microsoft" - от версии к версии ОНО становится все больше и больше, хотя работу выполняет туже самую, что и раньше.
Вторым последствием такой универсальности является блокировка работы посторонних скриптов, расположенных на том же хосте/домене. Иногда из-за этого приходится отказываться от использования, в общем-то не плохой, CMS. Это печально, но исправить положение в большинстве случаев не представляется возможным.
Выходит что, если для сайта-дора нужен движек, который просто будет "держать" несколько сотен статичных страниц, то в этом движке становятся абсолютно лишними всякие функции голосования, комментирования, а также блоги, форумы, магазины, порталы и прочая шняга. В результате имеем китайский складной мега-ножик с кучей встроенной фигни, из которой используется только штопор, но в котором не хватает так нужной нам отвертки и всунуть ее в этот набор никак нельзя.
Седьмой недостаток - полное (или почти полное) отсутствие анализа работы.
Может я чего-то упустил, но ни один из виденных мной движков не давал сколько-нибудь полной (и полезной) статистики работы сайта. Большинство CMS не утруждают себя даже тупым подсчетом количества посетителей. Про всякие поисковые запросы, источники трафика и анализ популярности страниц можно даже не вспоминать. Поставил CMS - зарегистрируй сайт в куче каталогов, обвешай страницы счетчиками и будет тебе счастье. Только не горячись, когда увидишь, что показания всех этих счетчиков различаются так же, как жизнь, которую показывают в телевизоре, и зрелище реалий за окном.
Потому, что одним для учета посетителя требуется загрузка банера (rambler), другие используют для этого блоки java-script (liveinternet). А если серфер запретил загрузку картинок или выполнение java-скриптов, то он остается невидимым для таких счетчиков. Этакий призрачный серфер. Кроме того, ни один из приклеенных к страницам счетчиков не покажет вам, сколько и каких ботов посетило ваш сайт и какие именно страницы они нюхали и когда это произошло.
Следовательно даже при наличии десятка счетчиков реальной картины увидеть все равно не удастся, можно лишь что-то куда-то усреднять и строить догадки. Но на догадках много денег заработать может только гидрометцентр, обычного же мани-мейкера подобное поведение быстро превратит в "бывшего мани-мейкера".
Восьмой недостаток - сложность расширения.
Написание дополнительных модулей к любому софту - занятие довольно муторное. CMS'ы тут не исключение. Было бы очень здорово, если бы движку можно было подсунуть любой (ну или почти любой) PHP-файл и он (движек) смог бы с этим файлом нормально ужиться. Но, к сожалению, обычно выходит так, что проще найти другую CMS, уже имеющую нужную функциональность, чем доработать используемый движек. Ибо очень капризны оне.
Девятый недостаток - отсутствие ограничивающих мер.
Максимум, что доводилось встречать в CMS - ограничение на доступ к некоторым частям сайта для определенных групп пользователей. Это здорово, но имеет, так сказать, прикладной характер. Огромную пользу от этой штуки можно поиметь, например, в блоге, магазине или форуме.
Мани-мейкера же скорее интересует системное применение этих запретов. А именно: запрет на доступ к сайту с определенных IP-адресов или указанных хостов. Так же ему необходимы средства отслеживания нежелательных запросов и меры борьбы с ними. Например, блокирование частичного или полного выкачивания сайта с помощью разных даунлоадеров, противодействие попыткам автоматического воровства информации другими CMS'ами и т.д.
Все описанное показывает как сложно сделать выбор среди десятков CMS, тем более, что на практике выбора практически и нет. Каждая из виденных мной CMS обладала минимум пятью из описанных мной девяти недостатков. Вывод напрашивается сам собой - надо писать свой CMS!
И вот, что я хочу от него добиться:
- Максимальная оптимизация под поисковые системы ("управляемое" расположение контента в странице, облегченный дизайн, генерация псевдо-статических страниц)
- Минимальные размеры как движка, так и хранимых на сервере данных.
- Максимально высокая скорость работы. Оптимизация всех операций, кэширование, индексация данных для ускоренного доступа.
- Отсутствие необходимости использования баз данных (MySQL). Все данные будут храниться в обычных файлах на сервере.
- Максимально упрощенная схема смены дизайна. В идеале к движку можно будет прикрутить абсолютно любую "морду".
- Модульность архитектуры. Есть ядро (основа движка) и есть набор абсолютно независимых друг от друга модулей, которые можно отключать/подключать по мере необходимости, уменьшая размер CMS и увеличивая скорость ее работы.
- Статистика всего, что только можно получить с помощью PHP. Для подсчета посетителей не будут использоваться ни загрузка картинок, ни java-script'ы. Вся необходимая информация будет браться прямо с сервера хоста.
- Анализ обращений, с определением автоматических грабберов контента и прочих бесполезных инициаторов запросов.
- Максимально упрощенная схема создания дополнительных модулей расширения функциональности. Все должно быть предельно просто и позволять очень быстро адаптировать практически любой скрипт для работы "под движком".
- Средства ограничения доступа с сайту. Блокировка как отдельных доменов, так и целых под-сетей. Возможность определения и блокировки запросов от программ-качалок, грабберов контента, сайт-даунлоадеров и прочих нежелательных пожирателей трафика.
- Возможность легкой модернизации ядра (например, при необходимости адаптации для работы с MySQL)
- Возможность "мирного" сосуществования с другими скриптами в пределах одного хоста/домена.
- Максимальная оптимизация под поисковые системы ("управляемое" расположение контента в странице, облегченный дизайн, генерация псевдо-статических страниц)
В завершение скажу, что работа по созданию этого чуда уже начата. Более того, оно уже дышит и даже пытается встать на ноги. :)
Надеюсь, что эта поделка не станет очередным серым типовым CMS'ом, а окажется полезным так активно расширяющейся армии сетевых бизнесменов.