Налаштування мультирегіональності сайту 1С-Бітрікс
Мультирегіональність — це коли Москва видить одні ціни та контент, Єкатеринбург — інші, а пошуковик індексує обидва варіанти окремо. У Бітриксі це досягається кількома підходами з різними компромісами за складністю реалізації та SEO-результатом.
Три архітектурних підходи
Поддомени: msk.example.com, ekb.example.com. Кожен поддомен — окремий сайт у мультисайтовій інсталяції (b_lang). Чисте рішення з SEO-точки зору — різні URL для різних регіонів. Складніше в підтримці: контент потрібно синхронізувати між сайтами або використовувати спільні інфоблоки з фільтрацією за прив'язкою до сайту.
Директорії: example.com/msk/, example.com/ekb/. Технічно простіше: один сайт, різні розділи інфоблока. SEO гірше, ніж поддомени, але прийнятно при правильній налаштуванні geotargeting в Яндекс.Вебмастері.
GET-параметр або cookie: example.com/?region=msk. Поганий вибір для SEO — один URL, різний контент, пошуковик не може розрізнити.
Для серйозних проектів — поддомени. Для дрібних — директорії.
Реалізація через поддомени в мультисайтовості
Створіть кілька сайтів у Бітриксі (b_lang): msk з SERVER_NAME = msk.example.com, ekb з SERVER_NAME = ekb.example.com. У кожного сайту свій мовний код та свої налаштування.
Інфоблоки у Бітриксі прив'язуються до сайтів через таблицю b_iblock_site. Інфоблок може бути спільним для всіх сайтів або окремим для кожного. Для каталогу товарів зазвичай один спільний інфоблок, а регіональні ціни управляються через прайс-листи (b_catalog_price з прив'язкою до груп користувачів).
Регіональні ціни: створюєте типи цін у каталозі (/bitrix/admin/cat_price_type.php) — «Москва», «Регіони». Користувач при переході на регіональний сайт автоматично потрапляє в групу з потрібним типом ціни. Логіка присвоєння групи — в OnAfterUserAuthorize та при кожній зміні регіону.
Визначення регіону користувача
Автоматичне визначення через IP + вручну через «попап вибору міста». Модуль sale містить клас \Bitrix\Sale\Location\LocationTable та таблицю b_sale_location з ієрархією міст/регіонів. Але для геопозиціювання за IP Бітрікс не надає вбудованого рішення — використовуйте сторонні сервіси (MaxMind GeoIP, Sypex Geo, DaData).
Типова схема: при першому візиті визначаєте регіон за IP через зовнішній API або локальну базу GeoIP, показуєте попап «Ваше місто — Єкатеринбург? Так / Вибрати інше», зберігаєте вибір в сесію та cookie з тривалим TTL.
$regionId = $_COOKIE['user_region'] ?? detectRegionByIp($_SERVER['REMOTE_ADDR']);
$_SESSION['REGION_ID'] = $regionId;
// Перенаправляємо на потрібний поддомен якщо не збігається
SEO-налаштування для мультирегіонального сайту
У Яндекс.Вебмастері для кожного поддомену налаштуйте геопривязку: Москва → msk.example.com, Єкатеринбург → ekb.example.com. Це дозволяє пошуковику ранжувати регіональні версії за відповідними регіонами.
Тег hreflang для регіональних варіантів на російській мові не потрібен (він для мов, не регіонів). Але canonical — потрібен: якщо один URL доступний з обох поддоменів, вкажіть canonical на основний.
У Бітриксі canonical встановлюється в шаблоні через $APPLICATION->SetPageProperty('canonical', 'https://msk.example.com' . $APPLICATION->GetCurPage()).
Регіональні телефони та адреси
Контент, специфічний для регіону — телефони, адреси офісів, умови доставки. Це або параметри сайту в b_option з суфіксом регіону, або окремий інфоблок «Офіси» з прив'язкою до регіону через властивість. Компонент на сторінці контактів фільтрує офіси за поточним сайтом/регіоном.







