Требования
Список требований, по которым сравниваются движки и темы. Важность показывает, насколько требование нужно проекту: 3 — очень важно, 0 — не учитывается. Ни одно требование не отсекает вариант сразу — варианты сравниваются по всем требованиям вместе.
Полезные инструменты
- TOP-10 Hosting — как выбрать хостинг для сайта — Подбор и сравнение хостинга под требования движка: версия PHP, база данных, тип хостинга (виртуальный, VPS, выделенный сервер), цена.
- Meta Tags and Hreflang Checker — title, meta, link, canonical, robots и X-Robots-Tag; hreflang в head и в HTTP-заголовке Link: неверные коды языка и региона, неполные URL, нет ссылки на себя, дубли, нет x-default, noindex и чужой canonical у альтернатив. С опцией проверки альтернатив открывает до 8 языковых версий и проверяет обратные ссылки. Не проверяет
<html lang>и XML-sitemap.
Как считается готовность для мультиязычного проекта
Все проверки в этой базе — для мультиязычных проектов: вики и сайта на нескольких языках. Для каждого варианта (движок + тема) берутся последние результаты проверок. За «да» и «плагин» требование получает полный балл, за «доработку» — 75, 50 или 25 % в зависимости от объёма работы (небольшой, средний, большой), за «нет» — ноль. Каждое требование умножается на свою важность из требований проекта. Процент — это доля набранных баллов среди проверенных требований. Рядом показано, сколько требований вообще проверено: высокий процент при малом числе проверок ещё ничего не гарантирует. Требования со знаком «?» и результаты плагина, поддержка которого темой не подтверждена, в расчёт не входят. Цвет: зелёный — от 80 %, жёлтый — от 50 %, красный — ниже; серый с пометкой «мало данных» — если проверено меньше 40 % важности требований. Балл считается отдельно для каждого профиля проекта (например, «вики» и «сайт»). Балл подсказывает, но решение остаётся за мнением автора.
Требования проекта: Мультиязычный сайт
| languages | default en, others uk ru pt |
|---|---|
| url | en → / pt → /pt/ ru → /ru/ uk → /uk/ |
| author_language | ru |
| environment | php=8.5 php_sapi=php-fpm web=nginx |
| budget | ? |
Мультиязычность
| Требование | Важность: вики | Важность: сайт | Как проверять | Откуда взялось |
|---|---|---|---|---|
Материал можно начать на неосновном языкеml-author-any-lang | 3 | 3 | Создать статью сразу на ru при основном en. Не должно быть пустой заглушки en, статья не должна пропадать из списков и навигации. | Grav — нужна заглушка основного языка |
Рубрики, теги и меню независимы по языкамml-taxonomy-per-lang | 2 | 2 | Создать рубрику только на ru. Она не должна требовать записи на en и не должна показывать данные en. | Grav — рубрики подтягиваются из основного языка |
Переключатель языков показывает только существующие переводыml-switcher-existing | 3 | 2 | Страница переведена на 2 из 4 языков. В переключателе только 2 языка, нет ссылок на главную другого языка. | Astro Starlight; Hugo Hextra (lang-link ведёт на главную языка) |
hreflang только на существующие переводыml-hreflang-existing | 3 | 2 | Посмотреть <link rel="alternate" hreflang> на странице с частичным переводом. | Astro Starlight |
Нет автостраниц с контентом основного языкаml-no-fallback-pages | 3 | 2 | Нет локализованного URL с текстом основного языка; если он есть, то с noindex и canonical на оригинал. | Astro Starlight (isFallback) |
Основной язык в корне, остальные с префиксомml-default-root | 2 | 2 | en на /, остальные на /uk/ /ru/ /pt/; hreflang для pt — pt-BR. | требование проекта |
У каждого перевода свой slugml-translated-slugs | 1 | 1 | /en/about-us/ и /ru/o-nas/ — одна связанная страница. | требование проекта (есть в ProcessWire) |
Перевод может иметь тот же slug, что и оригиналml-same-slug | 1 | 2 | Создать /hostinger/ и /ru/hostinger/ как перевод друг друга (названия брендов, термины). | в бесплатном Polylang запрещено, в Polylang Pro разрешено |
Атрибут lang в нужном форматеml-html-lang | 1 | 1 | <html lang> выводит код языка как задано в профиле (например ru, а не ru-RU); формат правится без правки ядра. | WordPress выводит `ru-RU`, исправляется кодом в functions.php |
Тема поддерживает выбранный плагин мультиязычностиtheme-i18n-compat | 0 | 3 | В документации темы явно заявлена поддержка именно этого плагина (для WordPress — Polylang), и на деле меню, виджеты, шаблоны и опции темы работают на каждом языке, строки темы переводятся. Поддержка WPML не считается: многие темы поддерживают WPML, но не Polylang. | от темы WordPress требуется поддержка Polylang; часто встречаются темы только под WPML |
Переводы интерфейса для en, uk, ru, pt-BRml-ui-strings | 2 | 1 | Строки темы и движка переводятся файлами; есть готовые или их легко добавить. | требование проекта |
Контент доступен для автоматического перевода ИИml-ai-translatable | 3 | 3 | Перевод можно создать скриптом (файлы или API), а не только руками в админке; связь переводов сохраняется. | рабочий процесс — статьи пишутся на ru, затем ИИ переводит |
Статьи, навигация и поиск
| Требование | Важность: вики | Важность: сайт | Как проверять | Откуда взялось |
|---|---|---|---|---|
Управление боковым менюsidebar-control | 3 | 1 | Есть ли боковое меню и что в нём (весь сайт или только текущий раздел); можно ли параметром во frontmatter скрыть статью или рубрику из меню и навигации; можно ли отключить меню на отдельной странице. | в вики часто нужно скрыть отдельные статьи или рубрики из меню и убрать меню на некоторых страницах |
Оглавление статьиtoc-control | 3 | 1 | Где стоит оглавление (справа, слева, сверху) и как выглядит на телефоне; задаётся ли глубина заголовков; отключается ли на отдельной странице параметром; переведена ли его подпись на языки сайта. | для вики очень важно, как сделано оглавление и где оно расположено |
Перелинковка как в DokuWikiinternal-links | 2 | 1 | Образец — DokuWiki: ссылка пишется по имени страницы ([[раздел:страница]]), без пути к файлу и URL; ссылка на несуществующую страницу видна сразу и из неё можно создать страницу; у каждой страницы есть список «Ссылки сюда». «да» — так же удобно, как в DokuWiki; «доработка» — стандартные ссылки Markdown по пути к файлу или своя схема движка; «нет» — только полные URL вручную. | другого движка с такой же удобной перелинковкой, как в DokuWiki, не знает; у большинства современных движков ссылки в формате Markdown, это неудобно, но стало стандартом |
Таксономии (теги, рубрики, свои классификаторы)taxonomies | 2 | 1 | Выводит ли тема теги и рубрики в статье, есть ли оформленные страницы списков, поддерживаются ли свои классификаторы (например, «ОС», «сервис») без правки шаблонов. | в Hugo таксономии задаёт сам движок, от темы зависит их вывод |
Поиск по сайтуsite-search | 3 | 1 | Записать, как устроен поиск: где выполняется (в браузере, на сервере, во внешнем сервисе), на чём построен, как строится индекс и сколько весит, ищет ли по началу слова, словоформам, с опечатками, понимает ли кириллицу и ищет ли только в текущем языке. «да» — работает без внешних сервисов и настройки, понимает все языки проекта и выдаёт только статьи на языке страницы; «доработка» — нужно подключать отдельно или в выдачу попадают статьи на других языках (для мультиязычного сайта это ошибка). | описание поиска должно быть понятным и одинаковым для всех движков и тем |
Гибкость поискаsearch-replaceable | 2 | 1 | Три вопроса: можно ли заменить встроенный поиск (плагином или настройкой); понимает ли поиск языки сайта и формы слов; можно ли выбрать, где искать (названия, описания, весь текст, свои поля). «да» — всё это без правки кода; «доработка» — часть или через свой код; «нет» — ничего из этого. В примечании — что именно есть. | поиск на вики нужен; у разных движков и тем он настраивается очень по-разному |
Подсветка кодаcode-highlight | 3 | 1 | Подсвечиваются ли нужные языки (bash, PHP, Python, nginx, YAML, SQL, PowerShell); где идёт подсветка — при сборке или в браузере; есть ли кнопка «копировать», номера строк, выделение строк. | в вики много примеров кода |
Пошаговые инструкцииcontent-steps | 2 | 1 | Есть ли готовый блок «шаги» с нумерацией, внутри которого можно писать текст и код. | инструкции в вики пишутся по шагам |
Свой код в шаблоны без правки темы (Inject Partials)theme-inject-partials | 3 | 2 | В теме есть готовые пустые шаблоны-заготовки (в head, до и после статьи, в подвале и т.п.): создаёшь в проекте файл с тем же именем — и он встраивается на все страницы. Тема при этом не правится и обновляется без потери своих правок. | очень удобно; образец — Inject Partials в Hugo Book, extend_head в PaperMod |
Генерация страниц из данных (pSEO)data-pages | 1 | 1 | Набор страниц из YAML/JSON без ручного создания файлов. | заметки hugo_vs_astro |
Визуальная админкаadmin-ui | 0 | 1 | Создание и редактирование записей в браузере без IDE. | Grav используется в других проектах ради плагина Admin |
SEO
| Требование | Важность: вики | Важность: сайт | Как проверять | Откуда взялось |
|---|---|---|---|---|
title, description и OG на уровне записиseo-meta | 2 | 2 | Задать для отдельной записи на каждом языке. | |
sitemap с языковыми версиямиseo-sitemap | 2 | 2 | sitemap.xml содержит все языки; есть xhtml:link alternate или отдельные sitemap по языкам. | |
Корректный canonicalseo-canonical | 2 | 2 | Самоссылающийся canonical, без дублей с параметрами и слешами. | |
Микроразметка schema.orgseo-schema | 2 | 1 | Article/BreadcrumbList в выводе или легко добавляется. | |
Полный контроль URLseo-url-control | 2 | 2 | Без принудительных /category/, дат и id в адресе. | |
Адреса латиницей, даже если текст на кириллицеseo-url-translit | 1 | 2 | Создать запись, рубрику и тег с названиями на украинском или русском. Адреса должны получиться латиницей (транслитерация), а не кириллицей, которая в адресной строке и в ссылках превращается в %D0%B7%D0%B4…. Отметить, для чего работает (записи, рубрики, теги) и нужен ли для этого плагин. | в DLE теги выводятся в адресе на том языке, на котором написаны, например https://news.kh.ua/tags/здоров'я/ |
Скорость (Core Web Vitals)seo-cwv | 2 | 2 | Lighthouse mobile на типовой статье, записать Performance и LCP. |
Хранение и окружение
| Требование | Важность: вики | Важность: сайт | Как проверять | Откуда взялось |
|---|---|---|---|---|
Работает без сервера БДno-db | 1 | 2 | Файлы (flat-file/SSG) или SQLite-файл. MySQL/PostgreSQL — no. | требование проекта |
Работает в окружении Nginx + PHP-FPM 8.5runtime-php | 0 | 3 | Установка и работа на PHP 8.5 без ошибок и deprecated в логе; правила Nginx без .htaccess. Для SSG — отдача статики через Nginx. | рабочее окружение проекта (минимум Nginx + PHP-FPM 8.5) |
Стоимость
| Требование | Важность: вики | Важность: сайт | Как проверять | Откуда взялось |
|---|---|---|---|---|
Стоимость (движок + тема + платные плагины)cost-total | 2 | 3 | Движок + фронт + обязательные плагины; указать модель (разово / в год / на сайт). |
Работа с ИИ
| Требование | Важность: вики | Важность: сайт | Как проверять | Откуда взялось |
|---|---|---|---|---|
Насколько хорошо ИИ работает с фреймворкомai-fluency | 2 | 3 | Типовая задача (новый шаблон страницы, переопределение partial, хук). Шкала 1–5: 5 — с первого раза без правок, 1 — выдумывает несуществующие API. | ограничитель выбора — чем популярнее фреймворк, тем лучше его знает ИИ |