Як влаштована інтеграція 1С-Бітрікс з Google Search Console?
SEO-спеціаліст витрачає до 4 годин на тиждень на ручне вивантаження звітів із Google Search Console — це еквівалент 8000 гривень на місяць втраченого часу. Наша інтеграція вирішує цю проблему: дані завантажуються автоматично, оновлюються раз на добу та доступні прямо в адміністративному розділі. Ми реалізували такі інтеграції для 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 на місяць після впровадження.Зв'яжіться з нами, якщо потрібна допомога на будь-якому етапі. Ми гарантуємо результат і надаємо документацію.







