Почему я отказался от WordPress и создал собственную CMS
Я годами использовал WordPress, но в итоге стал тратить больше времени на обслуживание платформы, чем на управление своим сайтом. Зависимости плагинов, раздутость конструкторов страниц, обходные решения для повышения производительности, проблемы совместимости и постоянное обеспечение безопасности превращали простые изменения в повторяющиеся технические проекты.
WordPress по-прежнему может быть практичным выбором для многих сайтов. Однако для AlexanderMirvis.com создание специализированной CMS стало привлекательнее, чем дальнейшее расширение и обслуживание набора сторонних компонентов.
Если кратко: мне были нужны легковесный публичный сайт, удобная административная панель, прямой контроль над архитектурой и встроенная поддержка публикаций, SEO, медиафайлов, перенаправлений, создания контента с помощью ИИ и платных обращений.
Почему WordPress стал для меня проблемой
Чистая установка WordPress может быть легковесной. Трудности начинаются, когда сайту требуются инструменты SEO, перенаправления, формы, безопасность, кэширование, оптимизация изображений, платежи и другие рабочие функции. Каждое требование может привести к появлению очередного плагина, экрана настроек, цикла обновлений и потенциальной проблемы совместимости.
В конечном счёте система управления контентом может превратиться в систему управления зависимостями. Именно тогда WordPress стал восприниматься мною не столько как инструмент, сколько как постоянная обязанность по техническому обслуживанию.
Зависимости плагинов и совместимость
Экосистема плагинов WordPress — одновременно его главное преимущество и одна из самых серьёзных сложностей. Она предоставляет огромный набор функций, но также может сделать сайт зависимым от программного обеспечения, которое поддерживают не связанные друг с другом разработчики.
Обновление WordPress может повлиять на плагин. Обновление PHP может выявить ещё одну проблему совместимости. Смена темы может изменить макет. Отказ от обновлений тоже не является долгосрочным решением, особенно когда речь идёт об исправлениях безопасности.
Постоянно возникает вопрос: Что сломает это обновление?
Раздутость конструкторов страниц
Такие конструкторы страниц, как Elementor, WPBakery, Divi, конструкторы на основе Gutenberg и системы, привязанные к конкретным темам, могут упростить визуальный дизайн. Но они также могут создавать значительный объём разметки, CSS, JavaScript, элементов-обёрток, конфигурационных данных и содержимого базы данных для макетов, которые в ином случае могли бы быть относительно простыми.
Я не хотел, чтобы заголовок, три абзаца и кнопка требовали нескольких уровней специфического для конструктора вывода и конфигурации.
Обходные решения для повышения производительности
Когда сайт на WordPress начинает работать медленно, обычной реакцией часто становится установка дополнительного программного обеспечения: кэширования, оптимизации, минификации, отложенной загрузки JavaScript, объединения CSS, обработки изображений или интеграции с CDN. Эти инструменты могут помочь, но они также создают дополнительные настройки и исключения, когда оптимизация нарушает работу части сайта.
Я дошёл до того, что настраивал программное обеспечение для компенсации издержек производительности, вызванных другим программным обеспечением. Я хотел, чтобы публичная часть сайта оставалась быстрой и простой благодаря самой архитектуре.
Постоянное обеспечение безопасности
WordPress широко распространён, поэтому его установки часто становятся целью автоматизированных атак. Ядро WordPress, темы, плагины, заброшенные компоненты, обработчики загрузок, XML-RPC, учётные записи администраторов и доступ к базе данных — всё это может требовать внимания.
WordPress можно защитить, но работа не заканчивается после первоначальной настройки. Чем больше набор тем и плагинов, тем больше кода и обновлений необходимо контролировать.
Что я создал вместо него
Я создал собственную CMS для AlexanderMirvis.com. Она не предназначена для поддержки всех возможных типов сайтов. Она спроектирована с учётом функций публикации и администрирования, которые действительно нужны этому сайту.
Система управляет следующим:
- Страницы и публикации
- Категории, подкатегории, теги и навигация
- Медиафайлы, изображения публикаций и встроенные изображения
- Метаданные, структурированные данные, карты сайта и настройки индексирования
- Понятные URL-адреса и перенаправления
- Пользователи, разрешения, редакции, черновики и планирование публикаций
- Пользовательские плагины с контролируемыми разрешениями
- Создание контента и SEO-процессы с помощью OpenAI
- Платежи Stripe и платные обращения за консультацией
Поскольку я контролирую архитектуру, публичный сайт может оставаться легковесным, а административные функции — находиться внутри CMS.
Быстрая и простая главная страница
Главная страница намеренно спроектирована так, чтобы оставаться быстрой и простой. Ей не нужен конструктор страниц, который вычисляет множество уровней конфигурации макета при каждом посещении. CMS управляет контентом и администрированием, не заставляя публичную главную страницу нести ненужную функциональность конструктора.
Контролируемая расширяемость
Проблема заключается не в самих плагинах. Проблема — в утрате контроля над цепочкой зависимостей.
Моя CMS поддерживает пользовательские плагины там, где это уместно, но я контролирую кодовую базу, разрешения и административный доступ. Управление плагинами ограничено соответствующим административным уровнем. Инструменты для работы с контентом на основе ИИ также отделены от исполняемого серверного кода, поэтому OpenAI не может переписывать PHP-файлы или изменять систему аутентификации.
Публикация и управление контентом
Управление страницами
В CMS я могу создавать черновики, публиковать страницы или планировать их публикацию, делать контент приватным, менять заголовки, редактировать понятные URL-адреса, загружать изображения публикаций, вставлять медиафайлы в текст, напрямую редактировать HTML и сохранять историю редакций.
У каждой страницы также есть собственные настройки SEO, благодаря чему отдельный плагин только для редактирования метаданных не требуется.
Публикации с категориями и подкатегориями
Статьи организованы в архиве публикаций. CMS поддерживает категории и подкатегории, позволяя создать понятную структуру, например:
/publications/technology/cybersecurity/article-title/
Для публикаций поддерживаются категории, подкатегории, теги, отрывки, изображения публикаций, даты публикации, черновики, приватный статус, публикация по расписанию, встроенные медиафайлы, история редакций и редактируемые понятные URL-адреса.
Если URL-адрес публикации изменяется, CMS может сохранить прежнее расположение с помощью перенаправления 301.
Медиатека
Встроенная медиасистема позволяет мне загружать и повторно использовать изображения, назначать изображения публикаций, вставлять медиафайлы в страницы и публикации, а также указывать подходящий альтернативный текст.
Мне удалось создать загрузчик изображений, не превратив его в набор уведомлений об обновлении тарифа и ежемесячных подписок.
Навигация, боковые панели и виджеты
Навигация управляется независимо от иерархии контента. Я могу добавлять, удалять и переупорядочивать пункты меню, создавать ссылки на внутренние страницы или публикации, а также внешние ссылки. CMS также включает функции боковых панелей и виджетов для повторно используемых компонентов сайта.
Редакции, планирование и управление публикациями
История редакций, публикация по расписанию, управление черновиками, приватный контент, даты публикации, категории, подкатегории, теги и изображения публикаций являются частью одной системы. Это необходимые мне функции управления контентом без присоединённой к ним посторонней функциональности.
Встроенные SEO и перенаправления
Одной из моих главных целей было сделать SEO частью архитектуры CMS, а не добавлять его позже с помощью крупного плагина.
Каждая страница и публикация поддерживает:
- Пользовательский SEO-заголовок и метаописание
- Фокусное ключевое слово или ключевую фразу
- Редактируемый слаг и канонический URL-адрес
- Настройки index и noindex
- Директивы follow и nofollow
- Метаданные Open Graph и изображения для социальных сетей
- Структурированные данные
- Предварительный просмотр результатов поиска
CMS также управляет понятными URL-адресами, robots.txt, XML-картой сайта и перенаправлениями. Когда страница или публикация перемещается, система может сохранить её прежний понятный URL-адрес.
Интеграция OpenAI внутри CMS
OpenAI интегрирован непосредственно в редакционный процесс. Мне не нужно копировать статью в другой инструмент, переносить рекомендации обратно, а затем вводить ту же информацию в отдельный SEO-плагин.
SEO-анализ на уровне страницы
Для каждой страницы и публикации можно запустить анализ на основе OpenAI, охватывающий поисковое намерение, подбор ключевых слов, заголовки, удобочитаемость, глубину контента, метаданные, структуру и другие возможности оптимизации.
Создание метаданных
На основе содержимого страницы OpenAI может рекомендовать SEO-заголовок, метаописание, фокусное ключевое слово, отрывок, теги и понятный URL-адрес.
Улучшение контента
Система может предлагать улучшения заголовков, подзаголовков, вступлений, структуры абзацев, внутренней организации, подбора ключевых слов, метаданных, тегов, отрывков и URL-адресов. Затем предложенные изменения можно применить в редакторе CMS.
Редакционные команды на естественном языке
CMS также включает общий интерфейс команд для ИИ. Например, я могу отправить запрос:
Оптимизируй эту статью для услуг консультирования по кибербезопасности в Нью-Йорке. Улучши вступление, перепиши заголовки H2, создай более эффективные SEO-заголовок и метаописание, предложи релевантные теги и улучши URL-адрес.
Содержимое страницы уже доступно CMS, что уменьшает необходимость копировать и вставлять данные между несколькими инструментами.
Комплексный SEO-анализ сайта с помощью ИИ
Центр SEO-анализа всего сайта на основе ИИ может проверять более широкий набор контента, а не анализировать только одну страницу за раз. Он может выявлять слабые заголовки, отсутствующие описания, дублирующиеся метаданные, поверхностный контент, пересечение ключевых слов, конфликты поисковых намерений, потенциальную каннибализацию ключевых слов и другие возможности оптимизации.
Это помогает обнаруживать страницы, которые могут конкурировать друг с другом, и определять контент, требующий первоочередного внимания.
Stripe и платные обращения
Stripe интегрирован непосредственно в CMS. Учётные данные Stripe API, цены, валюта, проверка вебхуков и статус обращений управляются из административной панели.
В моей текущей конфигурации для обращения за консультацией может требоваться платёж в размере $20. CMS проверяет платёж на стороне сервера, прежде чем сообщение становится доступным.
Платные обращения отображаются в системе администрирования CMS. Неоплаченные заявки остаются заблокированными, а завершённые платежи Stripe проверяются перед открытием доступа к обращению.
Это позволяет не объединять отдельные плагины контактной формы, платежей, вебхуков и интеграций для одного рабочего процесса.
Безопасность и администрирование
Я хотел, чтобы безопасность была заложена в архитектуру, а не добавлялась впоследствии с помощью очередного набора плагинов.
CMS включает:
- Подготовленные выражения для базы данных
- Защиту от CSRF
- Безопасное хеширование паролей
- Контролируемые сеансы
- Загрузки с проверкой MIME-типа
- Блокировку загрузки исполняемых файлов
- Защищённые конфигурационные файлы
- Секреты на основе переменных окружения
- Заголовки безопасности
- Проверку подписи вебхуков Stripe
- Разделение разрешений ИИ для работы с контентом и исполняемого серверного кода
OpenAI может помогать с контентом, метаданными, SEO и структурированными действиями CMS. Он не может решить в 3:00 утра, что файлу config.php нужна творческая переработка.
Адаптивное администрирование
Административный интерфейс основан на Bootstrap и адаптируется к настольным компьютерам, ноутбукам, планшетам и мобильным устройствам. Я хотел, чтобы он воспринимался как специализированное приложение, а не как панель управления, в которой преобладают уведомления плагинов и предложения обновить тариф.
Полезен ли WordPress по-прежнему?
Да. WordPress остаётся полезным, широко поддерживаемым и разумным выбором для многих компаний. Он позволяет быстро запускать сайты, многие разработчики хорошо с ним знакомы, а плагины доступны почти для любого распространённого требования.
Однако для меня обслуживание окружающей экосистемы в конечном счёте стало более утомительным, чем создание необходимой функциональности. Мне были нужны скорость, контроль над архитектурой, понятные URL-адреса, структурированные публикации, управление медиафайлами, встроенное SEO, перенаправления, Stripe, контролируемые плагины и прямая интеграция с OpenAI.
Теперь AlexanderMirvis.com работает на CMS, спроектированной с учётом этих требований, без рулетки плагинов WordPress, избыточности конструкторов страниц и постоянного цикла установки программного обеспечения для компенсации недостатков другого программного обеспечения.
И да, сайт работает быстро. Веб-сайт может двигаться быстро, если ему не приходится повсюду возить с собой цифровой эквивалент грузовика для переезда.

Комментарии
Оставить комментарий
No account is required. Your email address is required for payment/moderation records but is never displayed publicly. Comments are not eligible for approval until the $5.00 Stripe payment is verified, and payment does not guarantee approval.