SEO на MODX: возможности и настройка

MODX Revolution — редкая CMS, где SEO-специалист не борется с системой, а получает от неё ровно то, что попросит. Здесь нет навязанной разметки, нет «магии ядра», которая подставит в код неожиданный div, нет плагина, дописывающего в title лишний хвост. Шаблон — чистый HTML, который вы пишете сами, до последнего символа. Обратная сторона той же медали: MODX из коробки не делает ничего. Ни ЧПУ, ни sitemap, ни canonical, ни robots.txt — всё это придётся включить и настроить руками. В этой статье разбираем, как выжать из MODX максимум и не наступить на грабли, о которые спотыкается большинство проектов, а если задача горит — SEO-продвижение мы возьмём на себя целиком.
Коротко
- MODX не навязывает вёрстку: шаблон — это ваш HTML без единого лишнего тега. Для технического SEO это лучший старт среди распространённых CMS.
- ЧПУ включаются тремя системными настройками плюс правилами в .htaccess — иначе сайт живёт на адресах вида index.php?id=42.
- Метатеги делаются на TV-полях с фолбэком через фильтры вывода, а не отдельным SEO-модулем: pdoTools закрывает большинство задач без сторонних дополнений.
- Кэш MODX двухуровневый: кэш ресурса и кэш сниппетов. Некэшируемые вызовы через — главная причина медленных MODX-сайтов.
- Sitemap собирается pdoSitemap с фильтрацией по searchable и published — статический файл в MODX не нужен.
- Мультирегиональность решается либо контекстами с поддоменами, либо папками; контексты дают полную изоляцию настроек, включая base_url и hreflang.
- Главная плата за гибкость — квалификация. На MODX нельзя «поставить плагин и забыть»: любая ошибка в шаблоне сразу становится SEO-проблемой.
Почему MODX объективно удобен для SEO
Разговор о SEO на любой CMS сводится к одному вопросу: сколько усилий нужно, чтобы получить на выходе тот HTML, который вы задумали. На большинстве систем ответ неприятный. Движок отдаёт свою разметку, тема добавляет свою, плагины — свою, и SEO-специалист неделями воюет с чужим кодом, вычищая мусорные обёртки, лишние h1 и хлебные крошки, которые размечены не тем типом.
MODX устроен принципиально иначе. Шаблон в MODX — это просто HTML-документ, в который вы расставляете плейсхолдеры вида SEO на MODX: возможности и настройка или вызовы сниппетов . Всё, что не является плейсхолдером, отдаётся браузеру и роботу байт в байт. Нет темы, которая решает за вас. Нет ядра, которое подмешивает свои скрипты. Если в исходном коде страницы появился лишний тег — его туда положили вы, и вы знаете, где именно.
Практический смысл этого простой. Когда нужно вынести критический CSS в head, вы просто выносите его в head. Когда нужно, чтобы h1 был ровно один и стоял до навигации, вы так и верстаете. Когда нужна микроразметка Schema.org на карточке товара, вы пишете JSON-LD прямо в шаблоне и подставляете в него нужные поля — без плагина-прослойки, который умеет только пять предустановленных типов. Задачи внутренней оптимизации сайта, которые на других системах требуют переопределения шаблонов ядра, здесь решаются правкой одного файла в админке.
Вторая сильная сторона — модель данных. Любому ресурсу можно добавить произвольное количество TV-полей (Template Variables) любого типа: текст, textarea, чекбокс, список, изображение, набор изображений. Это значит, что структура данных проектируется под семантику, а не под ограничения CMS. Нужны отдельные поля под title, description, canonical, приоритет в sitemap, флаг noindex, региональная привязка — заводите шесть TV и получаете полный контроль.
Главное про MODX
MODX даёт свободу, но не даёт готовых решений. Ни одна SEO-настройка не включена по умолчанию — ни ЧПУ, ни sitemap, ни canonical, ни sitemap.xml. Проект на MODX либо настроен грамотно и работает лучше конкурентов, либо не настроен вообще и сливает трафик на ровном месте. Середины здесь почти не бывает.
ЧПУ: включение и типичные ошибки
Из коробки MODX отдаёт адреса вида site.ru/index.php?id=42. Такой URL индексируется, но не несёт ключей, не читается человеком и провоцирует дубли: одна и та же страница доступна и по id, и по алиасу. Как устроены нормальные адреса и почему они важны, подробно разобрано в материале про ЧПУ и человекопонятные URL; здесь — конкретика по MODX.
Три системные настройки, которые всё решают
ЧПУ в MODX включаются в разделе «Система → Настройки системы». Ключевых параметра три, и работают они только вместе.
| Параметр | Значение | Что делает |
|---|---|---|
| friendly_urls | Да | Включает генерацию человекопонятных адресов вместо index.php?id= |
| friendly_alias_urls | Да | Заставляет использовать алиас ресурса, а не его числовой id |
| use_alias_path | Да | Включает вложенность: адрес отражает структуру каталога (/uslugi/seo/) |
| automatic_alias | Да | Автоматически генерирует алиас из заголовка при создании ресурса |
| container_suffix | / | Суффикс для контейнеров: слеш на конце вместо .html |
| friendly_urls_strict | Да | Отдаёт 404 на неверный регистр и мусорные хвосты вместо дубля с кодом 200 |
| xhtml_urls | Нет | Отключает экранирование амперсандов в ссылках, ломающее часть URL |
Отдельная ловушка — use_alias_path. Если он выключен, все ресурсы живут в корне: /kupit-divan/ вместо /katalog/divany/kupit-divan/. Для маленького сайта это терпимо, для каталога — катастрофа, потому что URL перестаёт отражать структуру сайта, а поисковик теряет сигнал о вложенности разделов. Включать эту настройку на живом проекте с трафиком нельзя без подготовки: все адреса поменяются разом, и без карты 301-редиректов вы обнулите позиции. Порядок действий — сначала выгрузка текущих URL, потом карта соответствий, потом переключение и одновременная заливка 301-редиректов.
Транслитерация: обязательный дополнительный компонент
Русские заголовки MODX по умолчанию превращает в алиасы с кириллицей или обрезает их. Нужен компонент транслитерации — в экосистеме это translit (плагин, ставится из репозитория) либо встроенные средства современных сборок. После установки в настройке friendly_alias_translit выбирается схема транслитерации (для русского — russian). Проверка простая: создайте ресурс «Купить диван в Москве» и убедитесь, что алиас стал kupit-divan-v-moskve, а не набором процентов от URL-кодирования кириллицы.
Правила в .htaccess
Одних настроек мало: веб-сервер должен понимать, что запрос к /uslugi/seo/ нужно передать в index.php. В корне MODX лежит файл ht.access — его переименовывают в .htaccess. Внутри раскомментируйте RewriteBase (если сайт в подпапке), задайте канонический хост — с www или без — и принудительный HTTPS. Именно здесь склеивается зеркало: правило должно быть одно, отдавать 301 и вести на выбранную версию хоста и протокола. Как не потерять позиции при переходе на защищённый протокол — в разборе HTTPS и SEO.
Метатеги: TV-поля вместо SEO-модуля
Здесь MODX расходится с логикой WordPress и Битрикса. Не нужно искать «тот самый SEO-плагин» — правильнее спроектировать поля самому. Стандартная схема, которую мы разворачиваем на проектах.
Набор TV-полей
- seo_title (text) — title страницы. Отдельно от pagetitle, потому что H1 и title решают разные задачи и почти никогда не должны совпадать дословно.
- seo_description (textarea) — description для сниппета.
- canonical_url (text) — принудительный canonical для страниц фильтров и пагинации.
- noindex (checkbox) — флаг закрытия страницы от индексации.
- h1 (text) — заголовок первого уровня, если он отличается от pagetitle в меню.
Ключевая механика — фолбэк через фильтры вывода. Заполнять seo_title на тысяче карточек вручную никто не будет, поэтому в шаблоне пишется конструкция с подстановкой значения по умолчанию: если TV пустое, берётся pagetitle плюс шаблонный хвост с названием компании и городом. В синтаксисе MODX это модификатор :default= или :is=. Так вы получаете гарантированно непустой уникальный title на каждой странице, а руками правите только приоритетные посадочные. Как формулировать сами теги, чтобы они собирали клики, — в статье про title и description.
Типичная ошибка
Хвост в title вида «— купить в Москве недорого, цены от производителя» на всех тысячах карточек. Формально уникальность есть, фактически — переспам и обрезанный сниппет. Шаблон фолбэка должен быть коротким: заголовок плюс бренд. Всё остальное — руками на важных страницах.
Что даёт pdoTools
pdoTools — не «плагин для SEO», а набор сниппетов, заменяющих штатные getResources, Wayfinder и Breadcrumbs, работающих в разы быстрее за счёт прямых запросов через xPDO вместо перебора объектов. Для SEO важны конкретные компоненты пакета:
pdoMenu
Строит навигацию честными тегами a href с реальными ЧПУ. Поддерживает ограничение глубины и исключение ресурсов — так закрывают служебные разделы от лишних ссылок.
pdoCrumbs
Хлебные крошки по дереву ресурсов. Микроразметку BreadcrumbList пишете в чанке-обёртке сами — никаких ограничений на формат.
pdoResources
Выборки товаров, статей, услуг. Поддерживает сортировку, фильтры по TV и tpl-чанки — вся вёрстка листингов под вашим контролем.
pdoSitemap
Генерирует sitemap.xml на лету из дерева ресурсов с учётом published, deleted и searchable. Статический файл не нужен.
Отдельно стоит pdoPage — пагинация. Он умеет отдавать корректные ссылки постраничной навигации и параметр страницы в URL, что критично для правильной обработки листингов роботом. Механика настройки пагинации без потери индексации разобрана в материале про пагинацию и SEO.
Sitemap.xml на MODX без костылей
Карта сайта в MODX делается за пять минут и почти никогда не делается правильно. Схема такая: создаётся новый ресурс с алиасом sitemap.xml, тип содержимого переключается на XML, шаблон — пустой, галка «Использовать HTML-редактор» снимается, «Показывать в меню» снимается. В поле содержимого — вызов pdoSitemap с параметрами.
Создайте ресурс sitemap.xml
Алиас — sitemap.xml, тип содержимого — XML, шаблон — «пустой». Обязательно снимите «Использовать HTML-редактор», иначе редактор искорёжит XML-разметку при сохранении.
Вызовите pdoSitemap кэшируемо
Вызов через квадратные скобки без восклицательного знака. Карта на тысячу страниц генерируется небыстро — кэш здесь обязателен, иначе каждый запрос робота будет класть базу.
Исключите служебные ресурсы
Параметр exclude — id корзины, поиска, страницы благодарности, личного кабинета, служебных контейнеров. Всё, чего не должно быть в индексе, не должно быть и в карте.
Снимите searchable у мусорных страниц
pdoSitemap уважает флаг «Доступен для поиска». Это второй контур защиты: снятая галка убирает ресурс и из карты, и из внутреннего поиска.
Проверьте отдачу заголовков
Откройте site.ru/sitemap.xml и убедитесь, что приходит Content-Type: application/xml и код 200. Если браузер показывает XML как текст — не переключён тип содержимого ресурса.
Пропишите путь в robots.txt и вебмастерах
Директива Sitemap в robots.txt плюс добавление карты в Яндекс Вебмастере и Search Console. Без этого робот найдёт её позже и медленнее.
Важный нюанс с lastmod. pdoSitemap по умолчанию берёт дату editedon ресурса. Если у вас работает автоматическая правка ресурсов скриптом (пересчёт остатков, импорт цен), lastmod будет обновляться на всём сайте каждую ночь. Робот быстро перестанет доверять этому сигналу. Решение — либо отключить вывод lastmod, либо привязать его к отдельному TV, которое меняется только при реальной правке контента. Общие принципы — в руководстве по sitemap.xml, а настройка директив — в инструкции по robots.txt. Кстати, robots.txt в MODX тоже удобно делать ресурсом с типом содержимого text/plain — тогда его правят контент-менеджеры из админки, а не по FTP.
Кэш и скорость: где MODX теряет секунды
MODX быстр, пока вы не сломали ему кэш. И ломают его почти все. Разберём механику.
Два уровня кэширования
Первый уровень — кэш ресурса. При первом запросе MODX собирает страницу и кладёт готовый HTML в файловый кэш. Все последующие запросы отдаются из файла почти без обращений к базе. Второй уровень — кэш вызовов. Каждый тег в шаблоне может быть кэшируемым или нет. Разница в одном символе: кэшируется и попадает в готовый HTML страницы, с восклицательным знаком выполняется при каждом запросе заново.
Восклицательный знак — самый дорогой символ в MODX. Один некэшируемый pdoResources с выборкой на 500 товаров превращает страницу, отдававшуюся за 40 мс из кэша, в страницу с 300 мс на запросы к базе. Достаточно поставить его на меню в общем шаблоне — и весь сайт разом теряет кэш ресурса, потому что страница с некэшируемыми вызовами всё равно требует прохода через парсер.
| Что выводится | Как вызывать | Почему |
|---|---|---|
| Меню, крошки, футер | — кэшируемо | Меняется раз в месяц. Кэшировать обязательно. |
| Листинг каталога | — кэшируемо | pdoPage сам управляет кэшем по страницам пагинации. |
| Форма обратной связи | — некэшируемо | Токен формы и капча уникальны для сессии. |
| Корзина, счётчик товаров | — некэшируемо | Зависит от сессии пользователя. Кэшировать нельзя. |
| Результаты поиска и фильтров | Некэшируемо | Зависит от параметров запроса. |
Правило: некэшируемым делается только то, что физически зависит от пользователя или запроса. Всё остальное — кэшируется. Если персональный блок в общем шаблоне один (корзина в шапке), правильное решение — вынести его в отдельный AJAX-запрос и оставить весь шаблон кэшируемым. Разница на живых проектах — кратная, и она напрямую отражается на Core Web Vitals, в первую очередь на TTFB и LCP.
Дополнительные рычаги производительности
- Отключить cache_disabled в проде. Настройка cache_disabled должна быть в «Нет». Звучит очевидно, но на половине аудитов мы находим сайты, где кэш выключили при отладке и забыли включить.
- Сжатие ресурсов. Настройки compress_css и compress_js объединяют и минифицируют файлы, подключённые через регистрацию скриптов. Работает только для того, что подключено штатно, а не хардкодом в шаблоне.
- Кэш парсера. Настройка cache_scripts кэширует скомпилированные сниппеты — включать обязательно.
- Chunk вместо файла. Каждый вызов сниппета — это подключение файла. На странице с полусотней мелких вызовов накладные расходы заметны; выносите повторяющуюся статику в чанки.
- Изображения. MODX не оптимизирует картинки сам. Нужен pThumb или ImagePlus для ресайза и WebP на лету — механика описана в разборе оптимизации изображений.
Отдельно про хостинг. MODX чувствителен к версии PHP и к дисковой подсистеме, потому что кэш файловый. На дешёвом shared-хостинге с медленным диском вы не увидите обещанной скорости даже при идеальном кэше. Связь сервера с позициями разобрана в материале про хостинг и SEO, а общие рычаги ускорения — в статье про скорость загрузки сайта.
Дубли и canonical: где MODX плодит копии
Гибкость MODX имеет цену: система разрешает открыть один ресурс десятком способов и не запрещает это по умолчанию. Типовые источники дублей на MODX-проекте:
- Доступность по id. При включённых ЧПУ страница часто остаётся доступна и по index.php?id=42. Лечится настройкой friendly_urls_strict и правилом в .htaccess.
- Главная по двум адресам. site.ru/ и site.ru/index.php — классика. Закрывается 301-редиректом в .htaccess.
- Слеш и его отсутствие. Определитесь с container_suffix и приведите всё к одному виду редиректом. Смешение /uslugi и /uslugi/ — гарантированные дубли.
- Регистр. /Uslugi/ и /uslugi/ на Linux-сервере — две разные страницы. friendly_urls_strict отдаёт на второй вариант 404 вместо копии.
- Фильтры и сортировки. Параметры GET порождают бесконечные комбинации URL. Каждая такая страница должна иметь canonical на базовую категорию — либо, если фильтр коммерчески значим, становиться полноценной посадочной с уникальным title.
- Пагинация. Страницы 2, 3, 4 не должны быть копиями первой ни по title, ни по canonical.
Canonical в MODX прописывается в шаблоне head одной строкой: берётся TV canonical_url, а при его пустоте фолбэком подставляется полный URL текущего ресурса через https://seo-masters.ru/blog/seo-na-modx. Это даёт корректный canonical на каждой странице без единого плагина. Полная механика — в разборе canonical и дублей страниц, а специфика фильтров каталога — в материале про фасетную навигацию.
На MODX не бывает «неожиданных» дублей. Каждый дубль на MODX-сайте — это строчка, которую кто-то не написал в .htaccess или в шаблоне. Хорошая новость: значит, каждый из них закрывается за один вечер.
Мультирегиональность: контексты против папок
MODX — одна из немногих CMS, где мультирегиональность решается архитектурно, а не костылём. Инструмент называется контексты. Контекст — это изолированное пространство со своим деревом ресурсов и, что важнее, со своим набором системных настроек: base_url, site_url, site_start, cultureKey. Фактически один экземпляр MODX обслуживает несколько независимых сайтов из одной админки.
Схема с поддоменами на контекстах
Классика для регионального продвижения: msk.site.ru, spb.site.ru, ekb.site.ru. Каждый поддомен — отдельный контекст со своим site_url и своим деревом. Роутинг настраивается через сниппет-обработчик в правилах контекста, который смотрит на HTTP_HOST и переключает контекст. Плюсы очевидны: полная изоляция контента, свои цены и телефоны, независимая привязка региона в Яндекс Вебмастере, отдельная внутренняя перелинковка. Минус — контент нужно наполнять для каждого региона, а на десяти поддоменах с одинаковыми текстами вы получите не рост, а региональные дубли.
Схема с папками
Альтернатива — /msk/, /spb/ внутри одного домена. Проще в реализации (обычные контейнеры в дереве), весь ссылочный вес копится на одном хосте, не нужно возиться с SSL для поддоменов. Минус — привязка региона в Вебмастере на уровне папок работает хуже, чем на уровне поддомена. Что выбрать под конкретный бизнес — подробно в материале про региональное SEO.
| Критерий | Контексты + поддомены | Папки в одном контексте |
|---|---|---|
| Изоляция настроек | Полная: свой base_url, cultureKey, шаблоны | Нет, настройки общие |
| Привязка региона | Точная, на уровне хоста | Ограниченная |
| Ссылочный вес | Дробится между поддоменами | Копится на одном домене |
| Сложность внедрения | Высокая: роутинг, SSL, дубли шаблонов | Низкая |
| Риск дублей | Высокий при копировании текстов | Высокий при копировании текстов |
| Кому подходит | 10+ регионов, разные прайсы и склады | 2–5 регионов, единый прайс |
Для многоязычных проектов контексты дают ещё один бонус: в каждом задаётся cultureKey, а hreflang собирается в шаблоне перебором контекстов. Правило неизменно: hreflang должен быть взаимным (каждая версия ссылается на все остальные и на себя) и содержать x-default.
Чек-лист настройки MODX под SEO
Последовательность, по которой мы принимаем MODX-проект в работу. Порядок не случаен: каждый следующий пункт опирается на предыдущий.
ЧПУ и зеркала
friendly_urls, friendly_alias_urls, use_alias_path — включены. Транслитерация работает. .htaccess склеивает www/без-www и гонит на HTTPS одним 301-редиректом без цепочек.
TV-поля под метатеги
seo_title, seo_description, canonical_url, noindex заведены и привязаны к нужным шаблонам. В шаблоне прописан фолбэк — пустых title на сайте физически быть не может.
Canonical на каждой странице
Строка в head с фолбэком на полный URL ресурса. Фильтры и пагинация указывают на базовую категорию либо имеют собственный уникальный canonical.
Sitemap.xml и robots.txt ресурсами
Оба сделаны ресурсами MODX с правильным типом содержимого. Служебные страницы исключены. Директива Sitemap прописана, карта добавлена в вебмастера.
Ревизия кэша
Поиск по шаблонам всех вхождений восклицательного знака в тегах. Каждый некэшируемый вызов обоснован сессией или параметром запроса. Остальные — снимаются.
Заголовки и структура
Ровно один H1 на страницу, иерархия H2–H3 без пропусков уровней. В MODX это целиком ответственность шаблона — проверяется просмотром исходного кода.
Микроразметка
JSON-LD прямо в шаблоне с подстановкой полей ресурса: Organization на главной, BreadcrumbList на всех, Product или Article по типу страницы.
404 и коды ответа
error_page настроен на реальный ресурс, отдающий код 404, а не 200 с текстом «страница не найдена». unauthorized_page — отдельно. Проверка кодов ответа обязательна.
Скорость
pThumb и WebP на изображениях, compress_css и compress_js включены, кэш парсера работает, PHP актуальной версии, OPcache на сервере включён.
Финальный краулинг
Обход сайта краулером: битые ссылки, цепочки редиректов, дубли title, пустые description, коды ответа. Это точка приёмки — до неё проект не считается настроенным.
Минусы MODX, о которых честно
Было бы нечестно закончить на комплиментах. У MODX есть реальные ограничения, и их нужно знать до выбора платформы.
Порог входа. На MODX нельзя посадить контент-менеджера без обучения и надеяться, что он не сломает шаблон. Здесь нет визуального конструктора страниц уровня Tilda — и это осознанный компромисс, о котором мы пишем в сравнении SEO на Tilda. Проекту на MODX постоянно нужен разработчик, который понимает синтаксис тегов и логику кэша.
Экосистема меньше. Компонентов в разы меньше, чем плагинов у WordPress. Часть популярных решений поддерживается силами энтузиастов и обновляется нерегулярно. Если нужен модуль под редкую задачу, скорее всего, его придётся писать. Сравнение подходов — в материалах про SEO на WordPress и SEO на 1С-Битрикс.
Всё нужно делать руками. То, что на других CMS ставится галочкой, здесь пишется в шаблоне. Это плюс для качества и минус для сроков. Стартовые сроки настройки MODX-проекта выше, зато техдолга на выходе меньше.
Кэш требует дисциплины. Один неаккуратный восклицательный знак разработчика — и производительность падает без единой ошибки в логах. Проблема не диагностируется сама: сайт просто медленный.
Вывод простой. MODX — отличный выбор для корпоративных сайтов, каталогов услуг, проектов с нестандартной структурой данных и для тех, кто готов вкладываться в качество технической базы. Он плохой выбор для проекта без бюджета на разработку, потому что MODX не прощает «сделаем как-нибудь, потом поправим». Если сайт только проектируется, обсудите платформу на этапе создания сайта: правильно выбранная CMS экономит месяцы. Примеры MODX-проектов, которые мы вывели в ТОП, есть в портфолио, а пока техническая база настраивается и сайт ждёт переиндексации, трафик разумно подстраховать контекстной рекламой.
Частые вопросы
Технически MODX даёт больше контроля: чистый HTML без навязанной вёрстки, произвольные поля, полная свобода в микроразметке. WordPress даёт быстрый старт за счёт готовых плагинов, но взамен привносит чужую разметку и накладные расходы. Практический ответ: при равной квалификации команды MODX-сайт технически чище и быстрее, при слабой команде WordPress безопаснее, потому что плагин закроет базовые вещи автоматически. Выбор платформы вторичен по отношению к тому, кто с ней работает.
В большинстве случаев нет. TV-поля под title, description и canonical плюс фолбэки через фильтры вывода закрывают задачу лучше любого универсального модуля и без накладных расходов. Отдельные компоненты имеют смысл, когда нужны массовые шаблоны генерации метатегов по правилам для большого каталога — тогда посмотрите в сторону специализированных решений экосистемы. Но начинать нужно с TV.
Почти всегда причина одна — сломанный кэш. Ищите в шаблонах теги с восклицательным знаком: , . Каждый такой вызов выполняется при каждом запросе и лишает страницу кэша. Вторая по частоте причина — выключенная настройка cache_disabled, оставшаяся с отладки. Третья — неоптимизированные изображения без pThumb. Проверьте эти три вещи прежде, чем менять хостинг.
Создайте ресурс с алиасом sitemap.xml, тип содержимого — XML, шаблон — пустой, снимите галку HTML-редактора и «Показывать в меню». В содержимое поместите кэшируемый вызов pdoSitemap с параметром exclude, где перечислены id служебных страниц. Проверьте, что по адресу отдаётся код 200 и заголовок application/xml, затем пропишите путь в robots.txt и добавьте карту в Яндекс Вебмастер и Search Console.
Контекст — изолированное пространство со своим деревом ресурсов и своими системными настройками, включая base_url и cultureKey. Для SEO это готовый механизм мультирегиональности и мультиязычности: один экземпляр MODX обслуживает msk.site.ru и spb.site.ru как независимые сайты из одной админки, с раздельной привязкой регионов и своими шаблонами. Главный риск — копирование одинаковых текстов по регионам: это даёт не рост, а региональные дубли.
Включаются настройки friendly_urls, friendly_alias_urls и use_alias_path плюс переименование ht.access в .htaccess. Опасность — в use_alias_path: при его включении на живом сайте меняются все адреса разом. Порядок безопасного перехода такой: выгрузите текущие URL краулером, составьте карту соответствий старый-новый, подготовьте 301-редиректы, включите настройку и залейте редиректы одновременно, затем отслеживайте переиндексацию в вебмастерах. Без карты редиректов вы обнулите накопленные позиции.
Можно, но переезд — самая рискованная операция в SEO. Обязательны: полная выгрузка старых URL, карта 301-редиректов на новые адреса один-к-одному, сохранение текстов и метатегов, перенос структуры без «улучшений» на первом этапе и контроль индексации в первые недели. Меняйте либо CMS, либо структуру — но не то и другое сразу. Детально механика описана в материале про миграцию сайта без потери трафика.
Минимальный набор: pdoTools (меню, крошки, выборки, sitemap, пагинация), транслитерация для русских алиасов, pThumb или ImagePlus для ресайза изображений и WebP. Для интернет-магазина добавляется miniShop2. Всё остальное — по задаче. Обратите внимание: чем меньше компонентов, тем быстрее сайт, поэтому ставить «на всякий случай» не нужно.
Настроим и продвинем ваш сайт на MODX
Разберём ЧПУ, кэш, метатеги, дубли и sitemap, доведём техническую базу MODX до идеала и приведём трафик из Яндекса и Google. Прозрачный договор, отчёты каждую неделю.
- Пакет «Старт» от 55 000 ₽/мес
- Пакет «Стандарт» 75 000 ₽/мес
- Пакет «Премиум» 95 000 ₽/мес
- Бесплатный аудит и прогноз
- Договор с гарантией результата
- Отчёты каждую неделю
Комментарии (14)
Кирилл
Фраза про то, что восклицательный знак — самый дорогой символ в MODX, должна висеть в рамке над столом у каждого разработчика. Полез в шаблоны после статьи и нашёл в общем хедере. Пять лет так жили.
Наталья_В
Спасибо за таблицу с системными настройками, особенно за friendly_urls_strict — про неё нигде толком не пишут. У нас как раз сайт открывался и по /Uslugi/, и по /uslugi/, я думала это нормально и так у всех.
AdminSEO Мастер
Наталья, не у всех, но у очень многих — это классика MODX. Включайте friendly_urls_strict и сразу после этого прогоните сайт краулером: если где-то в шаблонах ссылки прописаны руками с другим регистром, они начнут отдавать 404. Проверить это лучше до того, как заметит робот.
Ольга П.
Подход с TV-полями вместо SEO-модуля выглядит логично, но у меня контент-менеджер и так путается в админке. Не превратится ли это в шесть незаполненных полей на каждой карточке?
AdminSEO Мастер
Ольга, для этого в статье и описан фолбэк через :default= — незаполненное поле не создаёт проблемы, title всё равно соберётся из pagetitle и бренда. Менеджеру достаточно заполнять seo_title только на приоритетных посадочных, остальное закроет шаблон. Плюс TV можно сгруппировать в отдельную вкладку, чтобы не мешались на главном экране.
vladimir77
Нюанс с lastmod и ночным импортом цен — это прямо про нас. Каждое утро вся тысяча страниц с новой датой. Спасибо, теперь понятно, почему робот на это забил.
Дмитрий
Спорно про «MODX технически чище WordPress». Чище он у того, кто умеет. У большинства заказчиков сайт делал фрилансер за 30 тысяч, и там ни canonical, ни sitemap. На WP хотя бы плагин базу закроет.
AdminSEO Мастер
Дмитрий, справедливо, и в статье ровно об этом же в разделе про минусы: платформа вторична по отношению к тому, кто с ней работает. MODX не прощает «сделаем как-нибудь», и без бюджета на разработку это действительно плохой выбор. Мы бы сформулировали так: MODX поднимает потолок качества, но не поднимает пол.
Ирина
Сделала robots.txt ресурсом с типом text/plain, как в статье. Мелочь, а теперь не бегаю к разработчику по FTP из-за каждой строчки.
Сергей_бизнес
У нас четыре региона и единый прайс. По вашей таблице выходит, что папки, а подрядчик третий месяц продаёт контексты с поддоменами. Теперь есть чем аргументировать.
Максим
А что если use_alias_path нужно включить на сайте, где уже есть трафик, но полной выгрузки старых URL нет — сайт большой и часть страниц никуда не линкуется? Как собрать карту редиректов, чтобы ничего не потерять?
AdminSEO Мастер
Максим, краулер видит только связанное дерево, поэтому источники берите шире: выгрузка страниц из Яндекс Вебмастера и Search Console, отчёт по посадочным из Метрики за год и логи сервера. Плюс у вас есть база MODX — список алиасов и id можно выгрузить прямо из таблицы ресурсов, это даст полный перечень независимо от перелинковки. Если хотите, приходите на бесплатный аудит, мы такую карту собираем на старте проекта.
Анна Т.
Про хвост в title «купить в Москве недорого, цены от производителя» на всех карточках — узнала свой сайт и стало неловко. Иду переписывать шаблон фолбэка.
Пётр_Казань
Перевели корпоративный сайт с самописа на MODX два года назад. Первые месяцы было больно, зато сейчас любую правку в шаблоне делаю сам за десять минут. За год спокойно вышли на пару тысяч визитов в месяц из поиска, без магии — просто структура и метатеги в порядке.
Лариса
А почему в списке обязательных компонентов нет ничего для редиректов? Или их только через .htaccess?
AdminSEO Мастер
Лариса, зеркала и общие правила (www, HTTPS, слеш) всегда лучше держать в .htaccess — это быстрее и не требует запуска PHP. Компоненты для редиректов удобны, когда карту ведут контент-менеджеры и адресов сотни. Главное правило одно: никаких цепочек, каждый старый URL ведёт на конечный новый одним 301.
Егор
Только новичкам совет: не забудьте снять галку HTML-редактора на sitemap.xml. Я забыл и полдня не мог понять, откуда в XML взялись теги p.
Марина_К
Чек-лист из десяти пунктов забрала целиком, буду сверяться при приёмке от подрядчика. Особенно пункт про финальный краулинг как точку приёмки — раньше принимали на глаз.
Тимур
Хороший разбор, но про cache_disabled прямо в точку. У нас его выключил разработчик при отладке в феврале, нашли только в мае, когда сайт начал ощутимо тупить под нагрузкой.