Региональный SEO-аудит каталога Битрикс: как один запрос к базе показал, что каталог разрезан пополам
Structured Answer: Региональный SEO в 1С-Битрикс (в решениях Аспро — через свойство привязки карточек к регионам) ломается молча: со стороны витрины ошибку не видно, а региональный поддомен недополучает ассортимент. На реальном проекте — магазин с сетью из 25 региональных поддоменов — один аналитический запрос к базе показал: из 158 активных карточек полных только 70, у 38 не хватает ровно одного конкретного региона, и ещё 50 привязаны к единственному региону и наполняются фидами. Чинится точечно — одной операцией для «дырявой» группы, без массовой правки. Мораль: региональность — не настройка «сделал и забыл», а данные, которые нужно периодически сверять.
Региональность — одна из самых дорогих механик B2B-интернет-магазинов на Битриксе: сеть поддоменов по городам, у каждого свои товары, цены и выдача. И одна из самых хрупких: привязка карточек к регионам живёт в свойстве инфоблока, и когда контент-менедж завёл товар мимо, фид перезалил данные или регион добавили позже остальных — карточка просто исчезает с поддомена. Без ошибок в админке, без писем от мониторинга.
Как выглядит «региональность» и почему она ломается молча
В решениях Аспро карточки каталога привязываются к регионам через свойство инфоблока (типа «список» или привязка к инфоблоку регионов). Витрина поддомена показывает карточки, у которых в этом свойстве есть её регион. Логика простая — и именно поэтому дыры в ней не видны:
- карточка активна, у неё есть цена, она в поиске основного домена;
- на региональном поддомене её просто нет;
- никто не ошибся — просто регион не проставили, проставили не весь или фид перезаписал привязку.
Клиент видит симптом третьими руками: «а почему у нас в Самаре нет вот этих позиций?» — или не видит вообще, потому что не знает, что должно быть.
Кейс: 158 карточек и три состояния
Разбираю реальный проект: строительный интернет-магазин, 25 регионов, поддомены по городам, часть карточек наполняется фидами поставщиков. Повод — вопрос от клиента про один из регионов. Вместо ручного пересчёта витрины — один запрос к базе: для каждой активной карточки посчитать, сколькими регионами она привязана, и сгруппировать.
Результат:
| Группа | Карточек | Регионов у каждой | Что это значит |
|---|---|---|---|
| Полные | 70 | все 25 | Здоровая часть каталога |
| «Дырявая» ветка | 38 | 24 | У всех не хватает ровно одного региона |
| Региональная ветка | 50 | только 1 | Наполняются фидами, регион один и тот же |
Итого 158 активных карточек — и каталог фактически разрезан пополам по одному региону: у 38 карточек «основной» ветки не хватает именно его, а 50 карточек «региональной» ветки существуют только в нём. Симптом «в половине карточек нет текста» от контент-менеджера — это те же 50 фидовых позиций: фид приносит товар и цену, но не описания.
Показательно, что дыра у всех 38 карточек одинаковая: это след одной операции в прошлом — регион завели позже, ветку каталога скопировали без него. Одна причина, 38 следствий, минус половина ассортимента на поддомене.
Сам запрос
Идея аудита — считать не товары, а число регионов на карточку. Концептуально для Битрикса это выглядит так:
SELECT
cnt.regions,
COUNT(*) AS cards
FROM (
SELECT be.ID, COUNT(bep.VALUE) AS regions
FROM b_iblock_element be
JOIN b_iblock_element_property bep
ON bep.IBLOCK_ELEMENT_ID = be.ID
AND bep.IBLOCK_PROPERTY_ID = :REGION_PROPERTY_ID
WHERE be.ACTIVE = 'Y'
AND be.IBLOCK_ID = :CATALOG_IBLOCK_ID
GROUP BY be.ID
) cnt
GROUP BY cnt.regions
ORDER BY cnt.regions;
На выходе — таблица из кейса выше: сколько карточек с 25 регионами, сколько с 24, сколько с 1. Дальше уточняющий запрос по конкретной группе — и видно, какого именно региона не хватает (сравнив со справочником регионов) и какие именно карточки затронуты. Весь аудит занимает минуты; ручная проверка витрины не дала бы ничего — с поддомена «неправильные» карточки просто не видны.
Важная оговорка про боевые базы: запрос только читает. Любые правки привязки — отдельным шагом, с бэкапом и после сверки списка.
Чинить — точечно, а не массово
У решения этого кейса есть нюанс, который спас от большой ошибки. Интуитивное «проставим все регионы всем 88 не-полным карточкам» здесь было бы вредным:
- 38 «дырявых» — правятся одной операцией: добавить недостающий регион. Ровно одна INSERT-операция по списку ID, список — из уточняющего запроса.
- 50 фидовых — трогать нельзя: при следующей загрузке фид перезапишет ручную привязку, и работа пропадёт. Их судьба решается на уровне фида или постановкой задачи поставщику данных.
То есть половина «проблемных» карточек вообще не чинится руками — и без аудита это неочевидно.
Что это даёт SEO
Прямые следствия дыры в привязке:
- региональный поддомен показывает половину ассортимента — тоньше выдача, меньше страниц в индексе, ниже конверсия регионального трафика;
- каталог несимметричен: одинаковые по смыслу товары ведут себя по-разному в регионах — алгоритмы это замечают;
- контент-план по регионам строится на неполной картине: «в половине карточек нет текста» — это не забывчивость, а отдельная ветка каталога со своим источником данных.
После точечного фикса ассортимент поддомена выравнивается, а дальнейший контроль — тот же запрос раз в квартал и после каждой крупной загрузки фидов.
Вывод
Региональность в Битриксе — это данные, а не настройка. Данные дрейфуют: фиды, новые ветки каталога, человеческий фактор. Аудит в один запрос дешевле, чем месяц недобора трафика по региону, — а делается за минуты, если знать, куда смотреть.
Мы включаем такие сверки в регулярное обслуживание проектов с региональной сеткой: аудит привязок, контроль фидовых веток, мониторинг ассортимента поддоменов. Если у вас сеть региональных сайтов на Битриксе и вы не уверены, что все товары доезжают до всех городов, — напишите, прогоним аудит по вашему каталогу.
📞 +7 (906) 311-77-69 · ✉ hello@automata.sale · 💬 Telegram: @automatasale
ИП Урядов Евгений Евгеньевич · ИНН 645112058391 · ОГРНИП 312645301900058 Работаем по России, Беларуси и Казахстану
Частые вопросы
Как часто нужно проверять региональную привязку каталога?
Хотя бы раз в квартал и обязательно после массовых обновлений: фиды данных, заведение новых карточек и правки контент-менеджеров регулярно ломают привязку. Ошибка не видна со стороны витрины — только сравнением данных в базе.
Можно ли решить проблему массово — скопировать все регионы во все карточки?
Нет. Во-первых, карточки, которые наполняются фидами поставщиков, перетрут ручную привязку при следующей загрузке. Во-вторых, региональные поддомены должны отличаться по ассортименту — если везде одинаковый набор, исчезает смысл региональности и растёт риск каннибализации.
Почему это не находит обычный SEO-аудит?
Аудитор со стороны видит витрину и выдачу, а дыра живёт в данных: карточка существует, активна, но на конкретном поддомене её нет. Нужен доступ к базе и один аналитический запрос — тогда картина видна целиком, за минуты.
Что нужно, чтобы провести такой аудит на своём проекте?
Доступ к базе или админке, идентификатор свойства привязки к регионам и список активных регионов. Дальше один запрос с группировкой — и вы видите, сколько карточек полные, сколько с дырами и сколько «прилипли» к единственному региону.
Работаю удалённо — цены и условия для вашего города: