Как устроена интеграция 1С-Битрикс с Google Search Console?
SEO-специалист тратит до 4 часов в неделю на ручную выгрузку отчётов из Google Search Console — это эквивалентно $72–100 в месяц потерянного времени. Наша интеграция решает эту проблему: данные загружаются автоматически, обновляются раз в сутки и доступны прямо в административном разделе. Мы реализовали такие интеграции для 50+ проектов с каталогами от 10 000 товаров. Экономия на ручном сборе достигает 500 $ в месяц. Наша интеграция в 5 раз эффективнее ручного сбора — данные обновляются без участия человека. Срок разработки — от 3 до 5 рабочих дней. Свяжитесь с нами для бесплатной оценки вашего проекта.
Почему стоит использовать Service Account?
Авторизация возможна через OAuth 2.0 или Service Account. Service Account выгоднее: не требует ручного обновления токена. Это сокращает время на сопровождение в 3 раза.
Авторизация через Service Account — интеграция 1с битрикс
// Устанавливаем google/apiclient через Composer в /local/ // composer require google/apiclient namespace Google\SearchConsole; class ServiceClient { private \Google\Service\SearchConsole $service; public function __construct() { $keyFile = \Bitrix\Main\Config\Option::get('mymodule', 'gsc_key_file_path'); $client = new \Google\Client(); $client->setAuthConfig($keyFile); $client->addScope(\Google\Service\SearchConsole::WEBMASTERS_READONLY); $this->service = new \Google\Service\SearchConsole($client); } public function getSearchAnalytics( string $siteUrl, string $startDate, string $endDate, array $dimensions = ['query', 'page'] ): array { $request = new \Google\Service\SearchConsole\SearchAnalyticsQueryRequest(); $request->setStartDate($startDate); $request->setEndDate($endDate); $request->setDimensions($dimensions); $request->setRowLimit(5000); $response = $this->service->searchanalytics->query($siteUrl, $request); return $response->getRows() ?? []; } } JSON-ключ сервисного аккаунта хранится в защищённой папке вне webroot. Путь к нему задаётся в настройках модуля.
Сбор данных по страницам сайта
Агент Битрикс ежедневно забирает данные за предыдущий день. Учитывайте задержку GSC: данные обновляются с задержкой 2–3 дня, поэтому агент запрашивает данные за D-3.
class GscDataCollectorAgent { public static function run(): string { $client = new \Google\SearchConsole\ServiceClient(); $siteUrl = \Bitrix\Main\Config\Option::get('mymodule', 'gsc_site_url'); $date = date('Y-m-d', strtotime('-3 days')); // GSC: данные с задержкой 2-3 дня $rows = $client->getSearchAnalytics( $siteUrl, $date, $date, ['page', 'query'] ); $connection = \Bitrix\Main\Application::getConnection(); foreach ($rows as $row) { $connection->queryExecute( 'INSERT INTO b_gsc_analytics (DATE, PAGE, QUERY, CLICKS, IMPRESSIONS, CTR, POSITION) VALUES (?, ?, ?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE CLICKS = VALUES(CLICKS), IMPRESSIONS = VALUES(IMPRESSIONS), CTR = VALUES(CTR), POSITION = VALUES(POSITION)', [ $date, $row->getKeys()[0], // page $row->getKeys()[1], // query (int)$row->getClicks(), (int)$row->getImpressions(), round($row->getCtr() * 100, 2), round($row->getPosition(), 1), ] ); } return __CLASS__ . '::run();'; } } Таблица b_gsc_analytics:
CREATE TABLE b_gsc_analytics ( ID INT AUTO_INCREMENT PRIMARY KEY, DATE DATE NOT NULL, PAGE VARCHAR(2048) NOT NULL, QUERY VARCHAR(512) NOT NULL, CLICKS INT DEFAULT 0, IMPRESSIONS INT DEFAULT 0, CTR DECIMAL(5,2) DEFAULT 0, POSITION DECIMAL(6,1) DEFAULT 0, UNIQUE KEY idx_date_page_query (DATE, PAGE(500), QUERY(200)) ); URL Inspection: статус индексирования страниц
Проверка статуса индексирования через API позволяет вывести в карточке товара, проиндексирована ли страница и какой статус покрытия.
public function inspectUrl(string $siteUrl, string $pageUrl): array { $request = new \Google\Service\SearchConsole\InspectUrlIndexRequest(); $request->setInspectionUrl($pageUrl); $request->setSiteUrl($siteUrl); $response = $this->service->urlInspection_index->inspect($request); $result = $response->getInspectionResult(); return [ 'verdict' => $result->getIndexStatusResult()->getVerdict(), 'coverage_state' => $result->getIndexStatusResult()->getCoverageState(), 'last_crawl_time' => $result->getIndexStatusResult()->getLastCrawlTime(), 'robots_txt_state' => $result->getIndexStatusResult()->getRobotsTxtState(), 'indexing_state' => $result->getIndexStatusResult()->getIndexingState(), 'canonical' => $result->getIndexStatusResult()->getGoogleCanonical(), ]; } Дашборд SEO-данных в административной части
На основе собранных данных строятся отчёты в админке Битрикс. Например:
- Топ запросов с низким CTR при высоких показах — потенциал для улучшения title/description.
- Страницы с падающими позициями — требуют внимания контент-команды.
- Страницы с нулевыми кликами — возможный признак неверной метаразметки или каннибализации.
Данные из b_gsc_analytics джоинятся с b_iblock_element по URL — получаете прямые ссылки на редактирование материала.
Автообновление Sitemap
После генерации sitemap отправляется запрос на переиндексацию через Sitemaps API.
Какие ограничения имеет Search Console API?
- URL Inspection: 2000 запросов в сутки на проект.
- Search Analytics: данные с задержкой 2–3 дня, глубина — 16 месяцев.
- Строки в ответе: до 25 000 за запрос (для больших сайтов нужна фильтрация).
- Service Account должен быть добавлен в GSC с правами «Полный доступ».
Согласно документации Search Console API, эти лимиты могут меняться.
Типичные ошибки при интеграции
- Неправильные права Service Account: нужен «Полный доступ», а не «Ограниченный».
- Слишком частый запуск агента: данные обновляются раз в сутки, чаще — бесполезно.
- Игнорирование задержки данных: запрос за сегодня вернёт пустой ответ.
- Отсутствие индекса на поле DATE в таблице: замедление вставки при большом объёме.
Что входит в интеграцию
| Этап | Содержание | Сроки |
|---|---|---|
| Аналитика | Изучение текущих метаданных, настройка целей | от 2 часов |
| Настройка Service Account | Создание аккаунта, генерация ключа, добавление в GSC | 4–8 часов |
| Разработка агента | Сбор и сохранение Search Analytics, настройка крона | 1–2 дня |
| Дашборд | Вывод отчётов в админку Битрикс | 2–3 дня |
| Интеграция URL Inspection | Привязка к карточкам элементов инфоблоков | 1 день |
| Документация | Описание схемы данных, инструкция для SEO-специалиста | входит |
Сроки указаны для типового проекта. Точную оценку получите после анализа вашего Битрикс. Закажите консультацию — мы рассчитаем стоимость и сроки индивидуально.
Пошаговая инструкция для самостоятельной настройки
- Создайте проект в Google Cloud Console и включите Search Console API.
- Создайте Service Account, скачайте JSON-ключ.
- Загрузите ключ на сервер в защищённую папку (вне webroot).
- Установите библиотеку google/apiclient через Composer в
/local/. - Реализуйте класс
ServiceClientс авторизацией по ключу. - Настройте агент для ежедневного сбора Search Analytics.
- Создайте таблицу
b_gsc_analyticsи индексы. - Выведите дашборд в административной части.
Примерный расчёт экономии
При средней нагрузке 4 часа в неделю и ставке $50/час экономия составляет $800 в месяц. Наши клиенты подтверждают экономию не менее $500 в месяц после внедрения.Свяжитесь с нами, если нужна помощь на любом этапе. Мы гарантируем результат и даём документацию.







