Настройка Google Business Profile для 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка Google Business Profile для 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1181
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    813
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка Google Business Profile для 1С-Битрикс

Google Business Profile (бывший Google My Business) определяет, что пользователь видит в Knowledge Panel справа от результатов поиска по названию компании. Несоответствие данных между сайтом и профилем Google — одна из немногих SEO-ошибок, которую можно исправить за день и получить результат в течение недели.

Разметка Schema.org как основа

Google читает данные об организации с сайта через структурированную разметку. Это первичный источник для формирования Knowledge Panel. Без корректного LocalBusiness (или более специфичного типа: Store, Restaurant, MedicalOrganization) Google использует неструктурированный текст со страницы «Контакты» — с непредсказуемыми результатами.

В Битриксе данные организации хранятся либо в инфоблоке, либо в пользовательских настройках сайта. Для централизованного хранения — инфоблок «Реквизиты» с символьным кодом company_info. Структурированная разметка генерируется в footer.php шаблона:

<?php
$arCompany = \CIBlockElement::GetList(
    [],
    ['IBLOCK_CODE' => 'company_info', 'ACTIVE' => 'Y'],
    false,
    ['nTopCount' => 1],
    ['ID', 'PROPERTY_*']
)->GetNextElement()?->GetProperties();
?>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Store",
  "name": "<?= COption::GetOptionString('main', 'site_name') ?>",
  "telephone": "<?= htmlspecialcharsEx($arCompany['PHONE']['VALUE']) ?>",
  "email": "<?= htmlspecialcharsEx($arCompany['EMAIL']['VALUE']) ?>",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "<?= htmlspecialcharsEx($arCompany['ADDRESS']['VALUE']) ?>",
    "addressLocality": "<?= htmlspecialcharsEx($arCompany['CITY']['VALUE']) ?>",
    "postalCode": "<?= htmlspecialcharsEx($arCompany['ZIP']['VALUE']) ?>",
    "addressCountry": "RU"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": <?= (float)$arCompany['LAT']['VALUE'] ?>,
    "longitude": <?= (float)$arCompany['LON']['VALUE'] ?>
  },
  "sameAs": [
    "<?= htmlspecialcharsEx($arCompany['VK_URL']['VALUE']) ?>",
    "<?= htmlspecialcharsEx($arCompany['TG_URL']['VALUE']) ?>"
  ]
}
</script>

Google Business Profile API

Для автоматической синхронизации данных сайта с GBP используется Google My Business API (сейчас — Google Business Profile API). Нужен сервисный аккаунт с OAuth 2.0.

Базовый запрос на обновление через cURL из Битрикса:

// Обновить номер телефона в GBP при изменении в инфоблоке
AddEventHandler('iblock', 'OnAfterIBlockElementUpdate', function($id) {
    if (!isCompanyInfoElement($id)) return;

    $token = getGBPAccessToken(); // из сохранённого refresh_token
    $locationName = 'accounts/{ACCOUNT_ID}/locations/{LOCATION_ID}';

    $data = ['phoneNumbers' => ['primaryPhone' => getNewPhone($id)]];

    $ch = curl_init("https://mybusinessbusinessinformation.googleapis.com/v1/{$locationName}?updateMask=phoneNumbers");
    curl_setopt_array($ch, [
        CURLOPT_CUSTOMREQUEST  => 'PATCH',
        CURLOPT_POSTFIELDS     => json_encode($data),
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $token,
            'Content-Type: application/json',
        ],
        CURLOPT_RETURNTRANSFER => true,
    ]);
    curl_exec($ch);
    curl_close($ch);
});

Отзывы Google в Битриксе

GBP API позволяет читать отзывы и выводить их на сайте. Это увеличивает доверие и добавляет User-Generated Content без модерации. Кеширование обязательно — Google ограничивает количество запросов к API:

$cache = \Bitrix\Main\Data\Cache::createInstance();
$cacheKey = 'gbp_reviews';

if ($cache->startDataCache(3600 * 6, $cacheKey, '/gbp')) {
    $reviews = fetchReviewsFromGBP($locationName, $token);
    $cache->endDataCache(['reviews' => $reviews]);
} else {
    $reviews = $cache->getVars()['reviews'];
}

Разметка отзывов: AggregateRating

Если отзывы из GBP выводятся на сайте, их можно включить в разметку AggregateRating в блоке Schema.org. Google использует эти данные для звёздочек в сниппете поиска. Важно: нельзя использовать собственные отзывы для AggregateRating — только независимые источники. Отзывы Google подходят.