CMS vs SSG
Все кто впервые задумывается о бизнесе в интернете обычно стоит перед выбором:
- Решиться на серьёзные затраты, нанимая разработчиков и дизайнеров
- Начать изучать основы HTML и CSS самостоятельно
- Использовать различные CMS (Content Management System)
Что же выбрать CMS или SSG
Первый вариант зависит от бюджета, а 2ый и 3ий более привлекательны в силу наименьших затрат, это понятно. Но из 2 и 3 варианта многие выбирают именно CMS (Wordpress/Joomla), не подозревая, что есть в природе такой зверь, как SSG (Static Site Generator). А он между прочим имеет огромные преимущества и активно захватывает свою нишу. Например данный блог создан на Jekyll - самом популярном статическом генераторе с 2015 года!
Плюсы SSG
-
Минимальные нагрузки
Многие CMS приложения предлагают встроенные (или в виде плагинов) системы кэширования, чтобы обеспечить генерирование страниц и использование их повторно, если необходимо. Это эффективно, но лишние действия все равно имеют место быть: например, при проверке файлов кэша и повторной генерации страниц.
В то же время статические сайты предварительно кэшируют страницы, и срок жизни такого кэша вечен. Файлы также могут быть сжаты для еще меньшей нагрузки. Вот и получается, что при использовании одного и того же шаблона статический сайт всегда будет работать лучше, чем сайт построенный на CMS. Мой сайт на google pagespeed выдаёт отличный результат
-
Высокая безопасность
Что нужно для установки WordPress:
- совместимая операционная система типа Ubuntu или CentOS
- веб-сервер — например, Apache или NGINX
- PHP с необходимыми расширениями
- MySQL
- сам WordPress
- шаблон (тема) Все это должно быть установлено и настроено. На самом деле WordPress — не самая прихотливая штука, ведь существуют приложения, у которых зависимостей в разы больше, но даже этого списка достаточно, чтобы при обновлении всего одной из перечисленных частей списка, сломалось все.
В то же время, статический сайт — очень легкий и может быть размещен на любом сервере, который в состоянии отдавать файлы. И вам больше ничего не нужно устанавливать, настраивать и обновлять.
-
Надёжность
CMS — это целый комплекс, с огромным количеством перемещаемых частей и «точек отказа». Запуская сайт на вордпрессе, не зависимо от того, колько времени он уже проработал, вы точно хотя бы раз столкнетесь с этой страшной фразой «Failed to establish a database connection». Опыт подсказывает, что непредвиденные проблемы в CMS могут возникнуть в результате внезапного скачка трафика, из-за чего может рухнуть база данных или разорваться активные соединения.
В это же время, обслуживание статического сайта менее напряженное, так как сервер просто должен отдавать HTML файлы. Конечно, в этой ситуации тоже можно положить сервер, но это будет сложнее: нужно в разы больше одновременных запросов.
-
Высокая безопасность
Можно выделить море причин, по которым кто-то решит атаковать ваш сайт: угон трафика, мошенническая реклама, ссылки и пр.
CMS сам дает поле для таких атак. Самым очевидным тонким местом является форма входа: она безопасна настолько, насколько безопасен самый слабый пароль одного из пользователей. Имейте в виду, что код любой страницы выполняется на сервере, что уже предполагает потенциальные дыры — например, отправку спама через контактную форму. Поначалу это может быть не очевидным, ведь лучшие преступники долго остаются незамеченными.
У статического сайта очень мало или вообще нет функциональности на стороне сервера. Вы не можете получить доступ с помощью скриптов или за счет дыр в безопасности базы данных. У кого-то, возможно, и получится получить доступ с помощью SSH или FTP, но им нужно будет очень постараться, чтобы принести вред больше, чем порча страниц или загрузка файлов. Быстрая команда «git status» или, на крайний случай, простая проверка папки сможет быстро выявить следы несанкционированного доступа. Вам просто будет необходимо изменить пароли, удалитьвесь сайт полностью и восстановить все заново.
-
Управление контентом
Вы неделями разрабатываете симпатичные темы для CMS, но как только сайт переходит в пользование клиенту, все ломается за считанные минуты. Было такое? Использовать CMS не всегда легко, так как она предоставляет некоторую власть при редактировании контента. Вы, конечно, можете ограничить или заблокировать права на установку плагинов для клиента, но это никак не помешает ему изменить шрифты, добавить странных, красивых на его взгляд, цветов, залить плохую фотографию и каким-то образом исказить макет.
В случае статического сайта чаще всего используются Markdown файлы. Их использование ограничивает возможности пользователей, в результате они делают меньше ошибок, и страница отображается в первозданном виде. А для удобного редактирования файлов можно пользоваться удобным сервисом StackEdit.
-
Контроль версий и тестирование
Содержание базы данных непостоянно. CMS позволяет пользователям добавлять, изменять или удалять содержимое по их желанию. Вы можете создавать резервные копии баз данных, но даже если делать это регулярно, все равно существует шанс потерять часть данных.
Статический сайт более безопасен, если, конечно, предположить, что весь контент хранится в Markdown файлах и вы используете систему контроля версий типа Git. И даже после сохранения измененных файлов сделанные изменения можно легко «откатить». Тестирование тоже упрощаетсч, т.к. сайт может быть собран и просмотрен где угодно, даже на компьютере клиента.
Потратив чуть больше усилий, вы можете сделать систему для разворачивания сайта на промежуточном сервере, а после добавления и апрува нового содержимого, можно будет автоматически переносить на главный сервер.
-
Гибкость
CMS, как правило, ограничивает ваши возможности, потому что все привязано к конкретным полям в базе данных. Если вы захотите добавить виджет, например, Twitter на какие-то страницы, нужен будет плагин, шорткод или что-то еще.
В статическом сайте можно вставить виджет непосредственно в файл в виде фрагмента кода. Есть совсем небольшие ограничения, т.к. вы освобождены от тех, что накладывает CMS.
Минусы SSG в сравнении с CMS
-
Отсутствие классической “админки”
То есть нет интерфейса для редактирования “как в Word” или безумного WYSIWYG-редактора. Посты нужно писать в файлах определённого типа, в определённом формате вручную. Поиск удобного решения этой проблемы - в процессе. В данный момент тестируется сервис CloudCannon, который предоставляет админку вместе с хостингом, но не русифицирован. Так же есть плагин Jekyll Admin
-
Родовое отсутствие динамического контента
Вместо динамических модулей приходится использовать сторонние сервисы, такие как:
- UserVoice.com - для обратной связи
- Formspree.io - для форм отправки запросов на почту
- Algolia.com - для продвинутого поиска (стандартный может не подойти)
- HyperComments.com - для функции комментирования
И конечно же интернет-магазин на SSG не запустишь, но это уже другая ниша. Если же решать вопрос создания небольшого сайта для портфолио фотографа или сайта-визитки агентства услуг - то Jekyll подойдёт идеально!
Пишите мне в telegram @klimovrv