qwelp.seomaster · Руководство по подключению
Документация
SEO Master: полное руководство по установке, настройке и использованию. Версия 1.0.0.
SEO-инструменты сайта
SEO страниц и общие шаблоны
Все функции доступны в существующих разделах SEO Master. Сохранённые правила и страницы продолжают использоваться.
| Задача | Где настроить |
|---|---|
| Город, склонения, поиск, внешние ссылки | Настройки → Общие |
| Значения сайта, инфоблока и раздела по умолчанию | Настройки → Дополнительно → SEO по умолчанию |
| Пользовательский блок robots.txt | Настройки → Sitemap |
| Реальные обращения к отсутствующим URL | Мониторинг SEO → Журнал 404 |
| Сокращение цепочки | Редиректы → открыть запись → Проверить цепочку |
Автоматические склонения
- Укажите город в настройках, если он нужен в текстах.
- В шаблоне выберите макрос с падежом или добавьте его из примера ниже. Исходное название должно быть в именительном падеже.
- Проверьте результат на странице. Для необычного названия при необходимости добавьте исключение в настройках.
Купить {section|acc} в {city|prep}
Каталог {section|gen}
[[Купить|Заказать]] {values|acc}Падежи: nom — именительный, gen — родительный, dat — дательный, acc — винительный, ins — творительный, prep — предложный. Например, «мужские куртки» → «мужских курток», «хлопок» → «хлопка», «средство для посуды» → «средства для посуды». Латинские бренды и дополнения после предлогов сохраняются. Варианты [[…|…]] стабильны для одного URL.
Исключения и лицензия
Автоматический разбор предназначен для названий каталога, а не произвольных предложений. Неоднозначные и редкие названия могут потребовать исключения. Это необязательная корректировка: шесть форм через |, каждая строка — отдельное название. Полное совпадение фразы имеет приоритет.
Москва|Москвы|Москве|Москву|Москвой|МосквеИспользуется локальная библиотека Morphos 3.2.30, лицензия MIT. Коммерческое распространение разрешено с сохранением уведомления об авторских правах и текста лицензии. Они включены в модуль; точная версия и изменения описаны в THIRD_PARTY_NOTICES.md. Внешние API и словари не загружаются.
Один шаблон для одного или ста городов
SEO Master умеет склонять город самостоятельно. Qwelp Location нужен только для подстановки текущего города посетителя. Устанавливать оба модуля обязательно не требуется: каждый работает отдельно. Готовить сто правил и сто наборов склонений не нужно.
- Откройте «Qwelp → SEO Master → Настройки → Общие», выберите сайт и заполните «Город по умолчанию»: например, Москва, без предлога и в именительном падеже. Это одно название, а не список.
- Если на сайте есть совместимый Qwelp Location, появится флажок «Брать город из Qwelp Location». Включите его, если нужны разные города, и сохраните настройки. Список городов и их выбор на сайте настраиваются в самом Qwelp Location. Без флажка используется только город по умолчанию.
- В заголовке или SEO-тексте обычного правила либо в общих SEO-шаблонах вставьте пример ниже и сохраните. Общие шаблоны находятся в «Настройки → Дополнительно → SEO по умолчанию». Предлог пишется в тексте шаблона.
Доставка в {city|prep}
Товары для жителей {city|gen}| Текущий город | Первый шаблон | Второй шаблон |
|---|---|---|
| Москва | Доставка в Москве | Товары для жителей Москвы |
| Казань | Доставка в Казани | Товары для жителей Казани |
Опция выключена по умолчанию и сохраняется отдельно для каждого сайта. Она не включает интеграцию с Qwelp Search и не требует её: настройка поиска независима.
Какой город будет использован
| Ситуация | Результат |
|---|---|
| Qwelp Location отсутствует или флажок выключен | Город по умолчанию из SEO Master. |
| Модули доступны, флажок включён и сохранён | Текущий город, который возвращает Qwelp Location: выбранный посетителем либо определённый настройками Location. |
| Location удалён, недоступен или вернул пустое название | Город по умолчанию; SEO Master продолжает работать. |
| Совместимый интерфейс Location недоступен | Пояснение вместо флажка. Обновите или восстановите Location; до этого используется город по умолчанию. |
| Location не вернул город и город по умолчанию пуст | Макрос города даст пустую строку. Заполните резервный город, если он нужен в шаблонах. |
Если Location временно отсутствует, прежнее сохранённое предпочтение сохраняется. После восстановления совместимого модуля оно снова применяется. Чтобы постоянно использовать один город, снимите доступный флажок и сохраните форму.
Все падежи и необязательные исключения
| Макрос | Падеж | Москва | Казань |
|---|---|---|---|
| {city} или {city¦nom} | Именительный | Москва | Казань |
| {city¦gen} | Родительный | Москвы | Казани |
| {city¦dat} | Дательный | Москве | Казани |
| {city¦acc} | Винительный | Москву | Казань |
| {city¦ins} | Творительный | Москвой | Казанью |
| {city¦prep} | Предложный | Москве | Казани |
Обычно «Необязательные исключения склонений» оставляют пустыми. Если автоматическая форма не подходит, раскройте этот блок под городом и добавьте одну строку для нужного названия: все шесть форм через вертикальную черту, в порядке из таблицы. Сохраните настройки. Исключение действует и на город из Location.
Москва|Москвы|Москве|Москву|Москвой|Москве
Казань|Казани|Казани|Казань|Казанью|КазаниЭто примеры формата: добавлять их при правильном автоматическом результате не требуется. Каждое название размещайте на новой строке. Склоняется название, а не целое предложение; предлог «в», «из» или «к» задавайте в шаблоне.
Где меняется город и нужно ли запускать обновление
Текущий город применяется при открытии страницы к заголовкам, метатегам, текстовым полям Open Graph, хлебным крошкам и SEO-тексту обычных правил и общих шаблонов. Заполненные ручные значения сохраняют свой приоритет.
| Действие или область | Что происходит |
|---|---|
| Посетитель меняет город в Location | При следующем открытии страницы шаблон получает текущий город. Пересчёт правил и обновление поискового индекса для этого не нужны. |
| Включение или выключение флажка Location | Достаточно сохранить настройки. Отдельная генерация городов не запускается. |
| Изменение города по умолчанию или исключений | Сохраните настройки. Если штатный SEO-поиск включён, его обновление ставится в фоновую очередь. |
| Сохранённые страницы профилей | Остаются готовыми текстами. Чтобы применить изменённый город по умолчанию или исключения, отдельно пересоздайте и опубликуйте профиль. Ручные переопределения сохраняются. |
| URL, canonical и сгенерированные ссылки | Не меняются от выбора города посетителем. |
| Генерация, административный предпросмотр и фоновая индексация SEO Master | Используют город по умолчанию, а не город посетителя. Сохранённые профильные и ручные тексты читаются как сохранены. |
Этот режим подставляет название в существующую страницу. Он не создаёт сто отдельных адресов или SEO-посадочных по городам.
Если флажка нет или на странице остаётся прежний город
- В «Настройки → Общие» выберите нужный сайт и прочитайте состояние Location. Флажок доступен только при установленном совместимом модуле; одной установки SEO Master для этого недостаточно.
- Убедитесь, что флажок сохранён, а Location возвращает нужный город. Имя в поле «Город по умолчанию» при переключении посетителем не меняется: это резервное значение.
- Уточните источник текста. Ручной текст и опубликованный снимок профиля не заменяются текущим городом. Подстановка должна находиться в обычном правиле или общем шаблоне.
Для разработчика: компонент SEO-текста включает сайт и итоговый текст в ключ кеша. Композит использует существующий ключ города Qwelp Location; если другой провайдер не обеспечивает такое разделение, SEO Master возвращается к городу по умолчанию. Если сторонний кешируемый компонент сохраняет SEO-текст внутри себя, его ключ также должен учитывать город. Формы названия повторно используются только в пределах запроса; отдельная фоновая обработка всех городов не нужна.
Наследование и отдельные страницы
Приоритет: заполненные поля отдельной страницы → ручные значения страницы профиля → шаблон правила или профиля → шаблон раздела → инфоблока → сайта. Пустое поле наследует значение. Источник общих шаблонов виден в правиле и профиле. Для другого раздела выберите область в настройках. Сохранённые снимки профилей автоматически не пересоздаются.
В разделе «Страницы» задаются исходный URL, необязательный красивый адрес, метаданные, HTML-текст и целевые запросы. Значимые GET-параметры сохраняются. ЧПУ проверяется с учётом канонизации и занятого диапазона пагинации. Смена существующего ЧПУ создаёт 301 со старого адреса. Аудит открывается из карточки; он учитывает режим canonical=root.
Проверки, 404 и поиск
Публикацией и проверкой снимков управляйте в профиле. Полный аудит и виджет используют общий механизм получения и разбора ответа. Служебные запросы SEO Master не учитываются как посетители журнала 404. Существующие счётчики не пересчитываются задним числом. Журнал хранит максимум 10 000 адресов на сайт; IP и исходный User-Agent не сохраняются. Из строки 404 открывается обычная форма редиректа с заполненным источником.
Индекс SEO-страниц и Qwelp Search
SEO Master добавляет отдельные SEO-страницы в штатный поисковый индекс Битрикса под своим модулем. Поиск на сайте должен использовать этот источник, чтобы показать результаты. Это не отправка страниц в Яндекс или Google и не переиндексация товаров.
Интеграция с Qwelp Search: совместимый установленный модуль определяется автоматически. В настройках выбранного сайта включите штатный индекс SEO-страниц, отметьте «Показывать SEO-страницы в Qwelp Search» и сохраните. Интеграция по умолчанию выключена. В подсказках появится до 5 посадочных, на странице поиска — до 10 в отдельном блоке «Подборки и страницы». Используется общий SEO-индекс; перестраивать товарный поиск не нужно. После первого сохранения дождитесь фоновой индексации. Отключение только интеграции сохраняет страницы в штатном поиске Битрикса. Без любого из модулей второй работает самостоятельно. Если обработчик старой версии недоступен, настройка предложит обновить Qwelp Search. Для собственных шаблонов поиска добавьте вывод группы pages/PAGES; штатные шаблоны уже поддерживают её. Блоговый поиск по отдельной области контента не меняется.
Какие страницы входят: активные записи с типом «URL» и флажком «Включить в поиск по сайту», а также страницы действующей публикации профиля с товарами. Исключённые, закрытые от индексации и не прошедшие проверку адреса пропускаются. Черновики профиля не индексируются.
| Действие | Нужно ли нажимать «Обновить индекс SEO-страниц» |
|---|---|
| Включить опцию и сохранить настройки | Нет. Первый запуск ставится в очередь автоматически. |
| Сохранить отдельную страницу, опубликовать или снять профиль, изменить его опубликованную страницу | Нет. При включённой опции обновление ставится в очередь автоматически. |
| Изменить общие SEO-шаблоны, город или исключения склонений | Нет. При включённой опции запускается фоновое обновление. Сохранённый снимок профиля при этом не пересоздаётся. |
| Создать обычное правило | Не требуется после каждого правила. Само правило не создаёт отдельную запись в поисковом индексе и не запускает его обновление. Добавьте нужный URL с разрешением поиска либо опубликуйте профиль. |
| Изменить правило, влияющее на текст уже индексируемого URL, изменить страницу вне SEO Master или повторить работу после ошибки | Да. Кнопка обновляет только разрешённые SEO-страницы выбранного сайта. Сначала сохраните состояние флажка. |
Пример: правило «Красные платья» задаёт SEO для подходящих адресов. Чтобы посадочная появилась отдельным результатом штатного поиска, сохраните её как URL с флажком «Включить в поиск по сайту» или опубликуйте соответствующую страницу профиля. Для появления этой посадочной в Qwelp Search включите интеграцию в настройках выбранного сайта; общий SEO-индекс обновляется по тем же событиям.
Очередь обрабатывают агенты Битрикса; новая версия появляется не мгновенно. При фоновом обновлении актуальный статус виден после повторного открытия настроек, при ручном запуске — у кнопки. Обычное перестроение сохраняет результаты до их замены; изменённая или снятая с публикации отдельная страница удаляется отдельно. Выключение опции с сохранением удаляет из штатного индекса записи SEO Master выбранного сайта, не затрагивая индекс товаров Qwelp Search.
robots.txt и внешние ссылки
Редактор в настройках Sitemap меняет только пользовательский блок выбранного сайта. Директива Sitemap и остальные строки сохраняются. Для внешних ссылок можно добавить nofollow, noreferrer, target=_blank с noopener и исключения по доменам. Существующие значения rel сохраняются.
Обзор
После установки: добавьте \Qwelp\SeoMaster\Output::applyMeta(); в шаблон сайта после работы компонентов каталога. Настройки отдельных страниц и общие SEO-шаблоны применяются автоматически в конце страницы. Вызов нужен для интеграции правил каталога и своевременного вывода зависимых блоков.
Назначение
SEO Master управляет SEO-правилами для каталога, ручными мета-переопределениями, редиректами, sitemap.xml, канонизацией URL, красивыми URL пагинации, SEO-текстом и блоками перелинковки.
Как найти правило для существующей страницы
Откройте «Правила и ссылки → Страницы и ссылки», выберите сайт и вставьте полный URL или путь в поле «Адрес страницы или ссылки фильтра». Нажмите «Найти настройки». Результат показывает название и номер правила, применимые профиль и отдельную SEO-запись, а также кнопки их редактирования. Более общее применяемое правило показывается с пояснением; профиль, который только охватывает раздел, не выдаётся за источник SEO этой страницы.
Например, посадочная по производителю может использовать правило «Обувь — Производитель» без отдельной записи на каждый адрес. Надпись «Записей в списке: 0» в нижней таблице относится только к сохранённым SEO-записям и страницам профилей, а не к результату поиска правила. Если отдельные настройки не найдены, проверьте сайт, адрес и условия правил; страница всё равно может использовать общие шаблоны или настройки сайта. Для распознанного фильтра без точного правила доступно его создание с заполненными условиями. Поиск сам ничего не создаёт, не запускает аудит и не проверяет наличие страницы HTTP-запросом.
Разделы меню
Основные разделы: Обзор, Правила и ссылки, Проверка сайта, Адреса и редиректы, Индексация, Настройки, Документация. Основа модуля — правила фильтра: условия, SEO-шаблоны и красивые URL. Внутри «Правила и ссылки» находятся массовое создание правил, массовая правка шаблонов, генерация по профилю и каталог URL. Профиль нужен для отдельного набора страниц с проверкой и публикацией; запускать оба способа не требуется.
| Раздел | Для чего нужен |
|---|---|
| Правила | Маски TITLE/H1/DESCRIPTION/KEYWORDS, SEO-текст, canonical/noindex, URL-шаблоны фильтра, перелинковка и генерация ссылок по правилам. |
| Страницы | Точные переопределения для URL, разделов и элементов: мета-теги, Open Graph, canonical, noindex и свойства конкретных ссылок. |
| Редиректы | Ручные 301/302/410-правила, проверка URL, CSV-импорт и экспорт. |
| Sitemap | Источники URL, генерация XML, статистика последнего файла, история запусков, агенты Битрикса и robots.txt. |
| Редиректы → Канонизация URL | Автоматические редиректы для схемы, www, слешей, index.php, регистра URL и ручных правил редиректа. |
| Адреса и редиректы → Пагинация | Настройка красивых URL вида /page-2/ для страниц пагинации каталога. |
| Настройки | Каталоговые инфоблоки, домен для абсолютных URL, вывод canonical, глобальные свойства ссылок, базовые sitemap/redirects параметры. |
Важно: модуль не правит шаблоны сайта автоматически. Публичный вывод мета-тегов, SEO-текста и перелинковки подключается в шаблоне проекта явно.
Поддержка: Marketplace-модуль qwelp.seomaster. Разработчик: Qwelp. Документация и обращения: https://high-craft.com
Генерация страниц
Страницы и ссылки по свойствам
Профиль создаёт SEO-страницы из реальных сочетаний свойств товаров и связывает их переходами. Новые значения автоматически входят в следующий расчёт. Ручные заголовки, адреса и исключения сохраняются отдельно.
- Откройте Квэлп → SEO Master → Правила и ссылки → Генерация по профилю. Создайте профиль, выберите сайт, каталог и разделы. При необходимости включите подразделы и исключите отдельные ветки.
- На вкладке «Структура свойств» выберите свойства. Отметьте одиночные страницы на диагонали матрицы, пары ниже диагонали. Сочетания из трёх и более свойств добавьте отдельно и задайте максимальную глубину.
- Заполните шаблоны, настройте ссылки и Sitemap. Нажмите «Сохранить и рассчитать». На вкладке страниц проверьте результат и сравнение с действующей публикацией, затем нажмите «Опубликовать».
Для выбора свойств используйте поиск по названию или коду. Выбранные свойства остаются справа; крестик убирает свойство из схемы вместе с его сочетаниями. Настройки значений раскрываются ниже. В шаблонах нажмите «…» справа от поля: откроется выпадающее меню с поиском и группами макросов поверх формы. Закрыть его можно кликом снаружи, кнопкой × или Escape. Выберите макрос: он вставится на место курсора или заменит выделенный текст. Чтобы изменить шаблон отдельной ветки, сначала снимите «Наследовать» у нужного поля.
В настройках свойства реальные значения выбираются галочками, в том числе для текстовых свойств вроде «Материал». В режиме «Все значения» снимайте галочки у исключений; новые значения войдут в следующий расчёт автоматически. В режиме «Только выбранные значения» отметьте нужные варианты, например хлопок и лён. Поле поиска проверяет весь справочник или значения активных товаров, а «Показать ещё» загружает следующую порцию по 50 значений. Выбор сохраняется при поиске и подгрузке. «Отметить показанные» и «Снять показанные» действуют только на загруженные строки текущего поиска.
Текущий выбор и исключения можно раскрыть отдельно и убрать ненужные значения из списков. Ручной ввод остаётся дополнительным способом и по умолчанию свёрнут; в режиме «Все значения» список ручного выбора отключён. Общая страница с условием «ИЛИ» доступна только в режиме «Только выбранные значения». Сохраните профиль, выполните расчёт и опубликуйте результат. Справочник общий для каталога: страницы создаются только для разрешённых сочетаний с подходящими товарами в выбранных разделах. Изменение галочек само по себе не скрывает товары на сайте.
Что означает разрешённое сочетание
Это набор свойств для отдельной SEO-страницы, а не список их конкретных значений. Например, «Материал» даёт страницы по хлопку и льну; «Материал + Тип изделия» — по хлопковым футболкам и льняным рубашкам; тройка с цветом — по чёрным хлопковым футболкам. Значения берутся из товаров, пустые сочетания не создаются.
Отметьте одиночное свойство на диагонали таблицы, пару — ниже диагонали на пересечении её свойств. Тройки добавьте отдельно. Пара не включает одиночные страницы или тройки автоматически. Максимальная глубина ограничивает размер выбранного сочетания, но сама не добавляет новые сочетания.
Удаление профиля
Нажмите «Удалить профиль» в списке или внутри профиля и подтвердите действие. Удаляются настройки, все расчёты, страницы, связи и ручные правки этого профиля. Опубликованный профиль прекращает задавать SEO, ссылки и адреса страниц; его страницы больше не попадают в новый Sitemap. Товары и разделы каталога сохраняются. Ранее созданные 301-редиректы остаются в разделе «Редиректы»: проверьте их назначения отдельно. Если профиль изменён в другой вкладке, сначала обновите список.
Как растёт структура
Например, свойства «Тип», «Материал», «Цвет» дают страницы «Куртки», «Хлопок», «Куртки из хлопка», «Чёрные куртки из хлопка». Профиль создаёт только выбранные сочетания, для которых есть доступные анонимному посетителю активные товары. Пустые сочетания не публикуются.
| Настройка | Результат |
|---|---|
| Все значения | Новое значение свойства появится при следующем расчёте. |
| Выбранные значения | Используются только указанные значения. Можно объединить их в одну страницу с условием «ИЛИ». |
| Исключённые значения | Исключение сохраняется при каждом пересчёте. |
| Шаблон сочетания | Переопределяет только выбранные поля общего шаблона. Остальные поля наследуются. |
Пример шаблонов
Во вкладке «Шаблоны» замените TYPE и MATERIAL на коды выбранных свойств. Коды видны в структуре. Общий шаблон адреса для любых сочетаний:
Адрес: #SECTION_URL##FILTER_PATH#/
H1: {TYPE} из {MATERIAL}
Title: {section}: {values}
Текст ссылки: {values}В настройках каждого свойства выберите источник значения адреса: автоматически (код, иначе название), NAME, CODE или XML_ID. Списки и справочники не имеют CODE: используется название. Для строк — исходный текст. Русский текст переводится в латиницу; обычные значения не получают хеш-суффикс. Если текст нельзя представить латиницей, используется value с коротким идентификатором. Совпадение адресов разных страниц останавливает расчёт: уточните шаблон или источник значения. Уже опубликованные адреса сохраняются при смене шаблона и источника.
Свой шаблон ссылок
Шаблон вводится в одну строку; кнопка «…» справа вставляет макросы. Ниже расположены пять разделителей: основной (имя свойства и значение), свойства, значения, пробелы и спецсимволы. Они применяются к автоматически собранным частям адреса, а символы, введённые непосредственно в шаблон, остаются как есть. Для отдельной ветки снимите «Наследовать разделители», чтобы задать свои; само поле URL наследуется отдельно. Пустой разделитель удаляет соответствующий символ.
- На вкладке «Шаблоны» выберите ветку «Материал + Тип изделия» и снимите наследование поля адреса.
- Введите
#SECTION_URL##VALUE:TYPE#/#VALUE:MATERIAL#/. Например, получится/catalog/odezhda-muzhskaya/rubashka/khlopok/. - Сохраните и пересчитайте. Проверьте новые страницы до публикации.
#VALUE:КОД# вставляет только значение; #FILTER_PATH# добавляет остальные свойства с их псевдонимами. Шаблон должен учитывать все свойства своей ветки. Дополнительно доступны #CATALOG_BASE_PATH#, #SITE_DIR#, #SECTION_CODE_PATH#, #SECTION_CODE#, #SECTION_ID# и #IBLOCK_ID#. Кнопка «…» вставляет макрос на место курсора. Внутреннее условие фильтра не меняется при выборе другого источника URL.
Управление ссылками
Выберите переходы: добавить одно свойство, заменить одно выбранное значение или убрать одно свойство и перейти к более общей странице. Остальные условия сохраняются. Страница не ссылается сама на себя, одинаковые адреса не дублируются.
| Режим | Поведение |
|---|---|
| Автоматический | Только автоматические переходы. Ручные исключения и настройки существующих автоматических ссылок учитываются. |
| Смешанный | Автоматические переходы и вручную добавленные ссылки. |
| Ручной | Только вручную добавленные ссылки. |
| Отключён | Блок ссылок не выводится, настройки сохраняются. |
В списке страниц нажмите «Страница и ссылки»: измените текст, порядок, позицию или исключите конкретный переход. «Вернуть авто» удаляет ручные настройки этого перехода. Позиции «Сверху» и «Снизу» используют существующие свойства VIEW_TOP и VIEW_BOTTOM компонента вывода ссылок.
Для обычных страниц фильтра, не созданных профилем, вывод ссылок разрешается отдельной настройкой. В новом профиле она выключена. Другие разделы и прежние правила сохраняют своё поведение, пока на них не опубликован профиль.
Ручные правки и публикация
Снимите «Наследовать» только у нужного поля. Пустое ручное значение очищает поле; включение наследования возвращает шаблон. Ручные настройки страницы и ссылок сразу применяются к её действующей публикации, даже если редактор открыт из нового расчёта. Сам расчёт и изменения шаблонов вступают в силу после публикации.
«Исключить страницу из профиля» убирает SEO профиля, исходящие и входящие ссылки и запись в Sitemap. Сохранённый адрес продолжает открываться. Чтобы закрыть индексацию, отдельно задайте «Индексация → Запретить». Смена адреса доступна для опубликованной страницы: сначала показывается план, после подтверждения создаётся 301 со старого адреса. Занятый адрес использовать нельзя.
Фоновый пересчёт и ограничения
Расчёт идёт небольшими порциями штатным агентом Битрикса. На установке без регулярного запуска агентов используйте кнопку продолжения расчёта или настройте общий запуск агентов Битрикса. Процесс можно поставить на паузу, продолжить или отменить. Ошибка и превышение лимита страниц не заменяют действующую публикацию.
Автообновление раз в сутки и автоматическая публикация включаются отдельно. До их включения изменения проверяет администратор. Сохраняются действующий и три последних завершённых расчёта; старые опубликованные и отменённые снимки удаляются порциями, ручные настройки остаются.
Один раздел одного сайта обслуживается одним опубликованным профилем. Поддерживаются дискретные строки, списки, ссылки на элементы/разделы и справочники. Числовые диапазоны не входят в этот режим. Для числовых групп используйте отдельное дискретное свойство. Максимум: 20 свойств, глубина 10, 512 выбранных сочетаний, 100 000 страниц, 100 выводимых ссылок. Устанавливайте лимит по размеру конкретного каталога.
Проверка результата
- Откройте несколько одиночных и составных страниц: заголовок, адрес и ссылки должны соответствовать фильтру.
- Поменяйте H1 вручную, исключите одну ссылку и добавьте товар с новым значением. Пересчитайте: новые страницы появятся, ручные правки сохранятся.
- После публикации проверьте публичный вывод и следующий файл Sitemap. В Sitemap входят только опубликованные, доступные и разрешённые к индексации страницы; priority и changefreq берутся из профиля.
Публикация, история и проверка
Блок «Сейчас на сайте» показывает действующую редакцию и число SEO-страниц. История позволяет отдельно просматривать новые черновики и опубликованный результат. Старые результаты доступны только для чтения. Автоматическая очистка порциями сохраняет действующую публикацию и три последних завершённых результата, включая готовые черновики; незавершённые и приостановленные запуски не удаляются.
Проверка показывает проблемные адреса, причины и действия прямо на вкладке «Страницы и публикация». Незавершённую проверку можно продолжить после возврата на страницу; после изменения данных или истечения срока проверки её запускают заново. Пустая генерация может означать отсутствие подходящих сочетаний. Она не публикуется автоматически; ручная публикация требует отдельного подтверждения и успешной проверки.
Разделы выбираются флажками с поиском и сохранением выбранных значений. Список страниц имеет нумерацию и размер страницы 20, 50 или 100 записей.
Единый каталог и приоритет полей
Откройте «Страницы»: в одном списке доступны опубликованные страницы профилей и отдельные SEO-записи. Выберите сайт, источник и URL или название профиля. При совпадении адреса видны оба источника, а основная кнопка открывает приоритетную запись. В профиле перекрытые поля показаны только для чтения; остальные можно менять без потери прежних значений. Для массового включения, отключения и удаления отдельных записей используйте ссылку под списком. Черновики остаются в профилях, динамические правила — в разделе правил.
Почему адрес в списке отличается от открытого фильтра
До публикации строка «SEO-адрес после публикации» показывает будущий красивый URL, например /catalog/belts/material-kozha/. Это пока текст, а не ссылка на действующую страницу. «Открыть обычный фильтр» рядом ведёт к товарам через штатный адрес /filter/…/apply/. После успешной проверки и публикации в строке появляется ссылка «SEO-адрес на сайте».
Общий шаблон #SECTION_URL##FILTER_PATH#/ создаёт красивые адреса без filter, is и apply. Отдельно включите одиночные свойства и нужные пары в матрице сочетаний. Внутренний запрос фильтра сохраняет исходные значения каталога, например «кожа»; латиница используется в красивом адресе. Поддерживаются вложенные и короткие адреса разделов, заданные шаблоном URL инфоблока. Исправление применяется и при чтении уже созданных результатов; заново генерировать их только ради этого не нужно. Перед публикацией повторите проверку. Сами настройки и состояние публикации при обновлении не меняются.
Зачем нужна проверка перед публикацией
Проверка обращается к исходной странице каталога: она должна быть доступна, содержать доступные товары и подтверждать ожидаемые условия фильтра. Красивый адрес также проверяется на занятость другой страницей. Это предотвращает публикацию адреса подборки, который открывает весь раздел, другой фильтр или ошибку.
«Не получено подтверждение условий фильтра» означает отсутствие служебных данных SEO Master в ответе страницы. Это не то же самое, что «Условия фильтра на странице не совпали с профилем»: второе сообщение означает, что данные получены, но отличаются. В первом случае причина может быть в распознавании адреса раздела или подключении модуля, даже если галочки фильтра выбраны правильно. При подстановке #SITE_DIR# повторные слеши шаблона раздела нормализуются, как в каталоге Битрикса.
После исправления причины нажмите «Проверить заново». Сохранённые прошлые ошибки не исчезают сами и не требуют пересоздания правил. Публиковать результат можно после успешной проверки; обходить её не следует.
Настройки
Где настраивать модуль
| Настройки → Общие | Подключение каталогов, базовый путь и домен. |
|---|---|
| Настройки → Дополнительно | Словарь форм слов, журнал 404, поисковый индекс, внешние ссылки и способ показа SEO-инструментов на сайте. Включайте по необходимости. |
| Настройки → Свойства ссылок | Общие метки ссылок; значения задаются в конкретных ссылках правила. |
| Настройки → Дополнительно → SEO по умолчанию | Наследуемые SEO-шаблоны сайта, инфоблока и раздела. Индивидуальные заполненные поля имеют приоритет. |
| Индексация | Все параметры Sitemap, источники, генерация, журнал и robots.txt в одном разделе. Редактор robots.txt меняет только блок выбранного сайта. |
| Адреса и редиректы | Ручные перенаправления, их общий выключатель, canonical, нормализация URL и пагинация. |
Сохранение одного блока не очищает настройки на других экранах. В штатных настройках модулей Битрикс остаётся вкладка «Доступ».
Мета-теги
Подключение вывода
Добавьте вызов после компонентов каталога, обычно в начале local/templates/{TEMPLATE}/footer.php:
if (\Bitrix\Main\Loader::includeModule('qwelp.seomaster')) {
\Qwelp\SeoMaster\Output::applyMeta();
}Размещение в footer важно: компоненты Bitrix часто выставляют title после подключения header, поэтому SEO Master должен применить финальные значения последним.
Что применяет модуль
SetPageProperty('title')для браузерного title.SetTitle()для H1 страницы.SetPageProperty()для description, keywords, robots и Open Graph.AddHeadString()для вывода<link rel="canonical">.
Приоритет
Сначала подбирается правило для URL фильтра или раздела, затем применяются точные настройки из раздела «Страницы», если для текущего URL найдено ручное переопределение. Canonical из точного переопределения используется, когда ранее не был выставлен canonical правила или pretty URL.
Pretty URLs
Pretty URLs для фильтра
Если у правила заполнен URL_TEMPLATE, модуль может построить короткий URL фильтра, сопоставить его со стандартным smart-filter URL и использовать этот адрес как canonical. Для стандартных URL фильтра модуль может отдавать 301 на красивый URL, если правило и шаблон позволяют однозначно собрать адрес.
Макросы URL-шаблона
| Макрос | Что подставляется |
|---|---|
#FILTER_PATH# | Все активные свойства фильтра в формате сегментов. Учитывает алиасы свойств и не дублирует свойства, уже использованные через #VALUE:CODE#. |
#VALUE:CODE# | Значения одного свойства без имени свойства. CODE указывайте в верхнем регистре, например #VALUE:BRAND_REF#. |
#SITE_DIR# | Корневая папка текущего сайта. |
#SERVER_NAME# | Значение SITE_SERVER_NAME, если оно задано. |
#SECTION_CODE#, #SECTION_CODE_2#, #SECTION_CODE_PATH# | Код текущего раздела. В текущей реализации #SECTION_CODE_PATH# возвращает тот же код раздела, а не всю цепочку. |
#SECTION_ID#, #SECTION_ID_2#, #IBLOCK_ID# | ID раздела и инфоблока из найденного контекста каталога. |
Не зашивайте домен и путь /catalog/, если они зависят от сайта установки. Для Marketplace-безопасности используйте настройки, SITE_DIR и макросы.
Новые адреса ЧПУ и шаблоны ссылок автоматически переводят кириллицу в латиницу. Например, «хлопок» становится «khlopok». При ручном вводе нового адреса страницы с кириллицей форма предложит латинский вариант. Для уже существующей страницы используйте поле ЧПУ: оно сохраняет связь с исходным адресом.
Кириллические значения строковых свойств, например материал «Хлопок», получают латинские ссылки. Модуль восстанавливает исходное значение фильтра по данным каталога. Латиница в адресе не меняет язык названия в заголовке, описании или SEO-тексте. Например, kitay%20%22gun%20dzhoy%20li%22 в адресе сопоставляется с производителем «Китай "Гун Джой Ли"». Закодированные пробелы и кавычки разбираются до поиска исходного значения; это же значение передаётся фильтру товаров. Сами названия брендов и производителей модуль не переводит — они берутся из каталога. Это работает и при пустом шаблоне правила, и в стандартных ссылках фильтра, перелинковке и пагинации. Для значений с неоднозначной транслитерацией автоматическая подмена отклоняется.
Свойства ссылок
Глобальные свойства ссылок
Свойства ссылок настраиваются в «Настройки → Свойства ссылок» и используются всеми правилами. В форме списка правил есть кнопка «Свойства ссылок», которая ведет сразу на эту вкладку настроек.
| Код | Служебный идентификатор свойства. Разрешены латинские буквы, цифры и подчеркивание; код нормализуется в верхний регистр. |
|---|---|
| Название | Человекочитаемая подпись, которую видит администратор при разметке ссылок. |
| Активно | Определяет, показывать ли свойство у сгенерированных ссылок по умолчанию. |
При генерации ссылок по правилам SEO Master берет глобальный список свойств. Для конкретной ссылки или точного переопределения страницы можно сохранить собственные значения, если нужна ручная корректировка.
Старая вкладка «Свойства ссылок» внутри одного правила больше не является основным местом настройки. Общий справочник находится снаружи правила, чтобы свойства были едиными для всего модуля.
Перелинковка
Перелинковка
Публичный блок выводится компонентом qwelp:seomaster.crosslinks. Компонент читает последнее сработавшее правило из Output::applyMeta(), а если оно еще не запускалось, пытается подобрать правило самостоятельно по текущему URL.
$APPLICATION->IncludeComponent(
"qwelp:seomaster.crosslinks",
".default",
[
"VISIBLE_LIMIT" => "18",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600",
],
false
);- Для правила должен быть включен блок перелинковки.
- Для обычной перелинковки источником служит группа самого правила или выбранные группы-источники.
- Для автоматической перелинковки включите её флажок и заполните два отдельных списка «Первая характеристика» и «Вторая характеристика», например «Бренд» и «Материал». Повторный выбор той же характеристики недоступен. Сохранение автоматического режима требует ровно две разные доступные характеристики; при ошибке форма откроет эту вкладку. Во время загрузки списка дождитесь её окончания.
- На странице бренда автоматические ссылки добавляют подходящие материалы; если выбраны оба значения, меняется одно из них. Остальные фильтры сохраняются, сочетания без товаров не показываются. Пустой выбор групп оставляет только автоматические ссылки; выбранные группы добавляют обычные. Для всего раздела используйте правило раздела без условий по свойствам.
- В простом автоматическом режиме используется одна пара характеристик. Сохранение правила обновляет связанные кеши; вручную пересоздавать ссылки после выбора пары не требуется. Сохранённый HTML Композита обновляется фоновым заданием.
- Стандартный компонент поставляет собственные стили: ссылки разделены интервалом 16 px и переносятся на следующую строку с промежутком 8 px. Длинное название переносится внутри ссылки. Оформление работает без шаблона Shoplight; цвета и шрифт наследуются от сайта. Ссылки сверх
VISIBLE_LIMITраскрываются кнопкой «Показать ещё». - В стандартном шаблоне названия с
"выводятся с обычными кавычками:Россия "Модница". Разметка в названии остаётся текстом; адрес ссылки и значения фильтра не меняются. - Анкоры и заголовок блока поддерживают маски
{section},{property:CODE},{values}и другие маски мета-тегов. - Для правил вида «раздел × свойство» генератор раскрывает значения и не выводит ссылки на пустые товарные подборки.
SEO-текст
SEO-текст
Поле SEO_TEXT_MASK хранит текстовый или HTML-шаблон для страницы фильтра. Маски раскрываются тем же движком, что и мета-теги.
$APPLICATION->IncludeComponent(
"qwelp:seomaster.seotext",
".default",
[
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600",
],
false
);- Если после раскрытия масок текст не содержит HTML, компонент сам разобьет его на абзацы
sl-seo-text__paragraphи экранирует содержимое. - Если в маске уже есть HTML, он выводится как администраторский HTML. Не вставляйте в такие маски непроверенный пользовательский ввод.
- Компонент ничего не выводит, если правило не найдено или поле
SEO_TEXT_MASKпустое.
Маски
Маски мета-тегов, SEO-текста и анкоров
| Маска | Описание |
|---|---|
{section} | Название текущего раздела. |
{section.code} | CODE текущего раздела. |
{property:CODE} | Все выбранные значения свойства через запятую. Для списочных свойств выводятся подписи enum-значений. |
{property:CODE.first} | Первое выбранное значение свойства. |
{property:CODE.count} | Количество выбранных значений конкретного свойства. |
{values} | Все выбранные значения фильтра через запятую. |
{values.count} | Общее количество выбранных значений фильтра. |
{page} | Номер страницы пагинации. Для первой страницы возвращает пустую строку. |
{site} | Название сайта из настроек модуля main. |
Группы
Группы правил
Группы позволяют держать правила в древовидной структуре и использовать эту структуру как источник для перелинковки.
Откройте «Правила»: группы отображаются папками рядом с правилами. Действия «Добавить группу» и меню папки позволяют создать или изменить группу. После сохранения и отмены возвращается тот же список с выбранным сайтом и папкой.
- Группа назначается на вкладке «Основное» в форме правила.
- Листинг правил поддерживает папочную навигацию и хлебные крошки.
- В общем списке удаление папки удаляет также её вложенные группы и правила. Перед подтверждением проверьте состав папки.
- Мастер генерации правил может создавать группы по разделам каталога.
Кеш
Кеш и инвалидация
Модуль использует тегированный кеш для правил, словарей свойств, страниц, редиректов, sitemap и перелинковки.
| Тег | Что сбрасывает |
|---|---|
seomaster_rules_iblock_{id} | Правила инфоблока, словари свойств и связанные вычисления. |
seomaster_page_element_{id} | Мета-переопределения конкретного элемента. |
seomaster_page_section_{id} | Мета-переопределения конкретного раздела и sitemap при изменении раздела. |
seomaster_redirects_all | Все ручные редиректы. |
seomaster_sitemap_meta | Источники, состояние и метаданные генерации sitemap. |
Инвалидация выполняется при сохранении правил, страниц, редиректов, при изменении элементов/разделов инфоблока и после обновления sitemap.
Sitemap
Sitemap
Раздел «Sitemap» генерирует sitemap.xml, показывает статус файла, метрики последней генерации и историю запусков.
Источники URL
| Статические URL | Список фиксированных адресов, например главная страница, контакты, бренды или служебные страницы. |
|---|---|
| Разделы инфоблока | URL разделов активного инфоблока по SECTION_PAGE_URL. |
| Элементы инфоблока | URL активных элементов по DETAIL_PAGE_URL. Для каталога статистика делит товары на простые и товары с торговыми предложениями. |
| SEO-правила | Литеральные URL_TEMPLATE без нерешенных макросов. |
| Ссылки из правил | Реальные URL, сгенерированные активными SEO-правилами. Включаются отдельной галочкой «Добавлять ссылки из правил». |
Если ручные источники не настроены, модуль берет главную страницу и инфоблоки из настройки «Каталоговые инфоблоки». Если ручные источники есть, базовые источники разделов и товаров из выбранных каталоговых инфоблоков все равно добавляются, если их еще нет среди источников.
Метрики
| Разделы | Количество URL разделов инфоблоков в сгенерированном файле. |
|---|---|
| Товары | Количество URL элементов инфоблоков. |
| Простые товары | Товары без торговых предложений. |
| Товары с ТП | Товары, у которых найдены торговые предложения. |
| Товары по правилам | Сумма товаров в ссылках, созданных активными правилами SEO Master. |
| Разделы по правилам ссылок | Уникальные разделы, встречающиеся в ссылках из правил. |
Если старая запись журнала не содержит метрик, но XML-файл существует, админка пытается восстановить статистику по текущему файлу.
Автоматизация
- Фоновые задачи выполняются стандартными агентами Битрикса. Отдельная cron-команда модуля не нужна.
- Агент генерирует sitemap небольшими шагами и сохраняет прогресс. Администратор сайта при необходимости самостоятельно переводит агенты Битрикса на cron.
- Инвалидация может помечать sitemap устаревшим после изменения элементов и разделов инфоблока.
- При ошибках можно отправлять уведомления по email.
Во вкладке «Служебные» правила задайте приоритет ссылок от 0 до 1. В редакторе отдельной ссылки можно указать свой приоритет; пустое поле наследует значение правила. Это значение sitemap, отдельное от приоритета срабатывания правила. Дата lastmod учитывает обновление правила и ручные изменения страницы. Простая пересборка карты и переключение замка дату не меняют. Вывод lastmod управляется существующей настройкой карты сайта.
Редиректы
Редиректы
Раздел «Редиректы» хранит ручные правила, которые применяются публичным обработчиком до вывода страницы, если глобальный переключатель редиректов включен в настройках.
| Статусы | 301 постоянный редирект, 302 временный редирект, 410 страница удалена. |
|---|---|
| Тип совпадения | Точное совпадение, префикс или регулярное выражение. |
| Лимит regex | До 500 активных regex-правил на сайт. Лимит проверяется при сохранении, включении и CSV-импорте; runtime-список кешируется отдельно для каждого сайта. |
| Query string | Правило может сохранять исходные GET-параметры при переносе на новый URL. |
| Тестер | Позволяет проверить, какое правило сработает для введенного URL. |
| CSV | Импорт и экспорт таблицы редиректов для массового обслуживания. |
Редиректы применяются только к публичным GET-запросам. Админка и служебные пути Bitrix не должны попадать под пользовательские правила.
Канонизация
Канонизация URL
Канонизация URL — это отдельный механизм 301/302-редиректов, который приводит входящий адрес к единому виду. Он не заменяет тег <link rel="canonical">, который выводится через Output::applyMeta().
| HTTPS | Перенаправляет HTTP-запросы на HTTPS. Включайте только после проверки SSL. |
|---|---|
| www | Может удалять или добавлять префикс www. Вариант «Не трогать» оставляет оба домена рабочими. |
| Слеш в конце | Добавляет слеш к URL без расширения файла. |
| Повторные слеши | Схлопывает адреса вида /foo//bar/. |
| index.php | Убирает index.php из адреса раздела. |
| Нижний регистр | Переводит путь URL в нижний регистр. Используйте осторожно, если на сайте есть коды с заглавными буквами. |
| Ручные правила | Подключает таблицу редиректов SEO Master как часть канонизации. |
| HTTP-статус | Для постоянной канонизации обычно используется 301. |
Включайте правила постепенно и проверяйте, что сайт не попал в редирект-петлю.
Массовое создание правил
Массовое создание правил
Откройте «Правила → Массово создать правила», чтобы добавить самостоятельные правила по разделам и свойствам каталога. Результат появится в списке «Правила», где его можно редактировать. Для наборов SEO-страниц с проверкой и публикацией используйте «Генерация страниц»: предварительно запускать этот мастер не требуется. Удаление профиля не удаляет созданные мастером правила.
- Выберите сайт, инфоблок и существующие разделы каталога.
- Выберите охват: только выбранные разделы, выбранные с дочерними или конечные дочерние разделы с активными товарами.
- Выберите свойства умного фильтра. Мастер показывает свойства, доступные в настройках умного фильтра выбранного инфоблока/раздела.
- Выберите типы правил: базовые правила разделов и/или правила «раздел × свойство».
- Нажмите «Проверить без создания»: мастер ничего не сохранит, но покажет новые правила, дубли и ошибки.
- Создайте правила, затем вручную уточните отдельные маски, URL-шаблоны и перелинковку там, где это нужно.
Создание доступно только после актуальной проверки и подтверждения. Любое изменение формы требует повторной проверки. Существующие правила не дублируются, один запуск ограничен 500 правилами.
Кнопка «Перегенерировать правило» использует сохранённые условия и шаблоны. Подтвердите действие: обработка идёт порциями, с отображением прогресса. Сохранённые вручную ссылки отмечены закрытым замком и сохраняют свои данные. Снятие замка оставляет текущие данные до следующей перегенерации; тогда ссылка снова получает значения шаблона. Повторное ручное сохранение закрывает замок. Сначала сохраните изменения самого правила.
Пагинация
Пагинация каталога
Раздел «Пагинация» настраивает преобразование стандартных параметров вида ?PAGEN_1=2 в красивые URL, например /catalog/elektronika/page-2/. Вкладки «Тест» больше нет: на странице остались только рабочие настройки.
| Включить красивые URL | Главный переключатель обработчика пагинации. |
|---|---|
| Шаблон пути | Шаблон с обязательным макросом #NUM#. Пример: page-#NUM#/. |
| Разделы, где применяется | Список префиксов путей через запятую или перенос строки. Каждый префикс должен начинаться и заканчиваться слешем. |
| Canonical | self — каждая страница указывает на себя; root — все страницы пагинации указывают на первую страницу раздела. |
| Номер пагинации | Какой параметр обрабатывается: PAGEN_1, PAGEN_2 и так далее. Обычно нужен 1. |
При отключении обработчика шаблоны Bitrix и urlrewrite.php не меняются.
Техническое
Техническая структура
| Слой | Классы |
|---|---|
| Entity | RulesTable, RuleGroupsTable, PagesTable, RedirectsTable, SitemapSourceTable, SitemapLogTable |
| Repository | RuleRepository, RuleGroupRepository, PageRepository, RedirectRepository |
| Service | RuleService, RuleGroupService, PageService, RedirectService, PaginationService, RuleGeneratedLinksService, StructuralRuleGenerator |
| Filter engine | UrlParser, UrlBuilder, RuleMatcher, MetaResolver, PrettyUrlMatcher, SectionResolver |
| Sitemap | Generator, XmlWriter, StepState, SourceFactory, IblockSectionSource, IblockElementSource, RuleGeneratedLinksSource |
| Handlers | CanonicalizationHandler, PaginationHandler, EventHandlers |
AJAX-контроллеры
Контроллеры доступны только администраторам и защищены стандартной авторизацией/CSRF Bitrix. Пространство имен задается в .settings.php.
qwelp:seomaster.rule | list, get, save, delete, toggle, test |
|---|---|
qwelp:seomaster.page | list, get, save, delete |
qwelp:seomaster.redirect | list, get, save, delete, toggle, test, exportCsv |
qwelp:seomaster.sitemap | status, start, step, cancel, listLog, logDetails, listSources, saveSource, deleteSource, togglePage, toggleIblock |
BX.ajax.runAction('qwelp:seomaster.rule.test', {data: {uri: '/catalog/elektronika/filter/brand-is-sony/apply/'}})
BX.ajax.runAction('qwelp:seomaster.redirect.test', {data: {uri: '/old-page/'}})
BX.ajax.runAction('qwelp:seomaster.sitemap.start', {data: {}})
BX.ajax.runAction('qwelp:seomaster.sitemap.step', {data: {}})Сверено с документацией модуля 11.10.2026. Примеры PHP предназначены для вашего сайта на 1С-Битрикс.