שילוב של 1C-Bitrix עם Google Search Console

ייצוא דוחות ידני מ-Google Search Console גוזל מספר שעות משבוע העבודה של המומחה ומאט את הניתוח וקבלת ההחלטות. אנחנו בונים אינטגרציה שטוענת נתונים אוטומטית ישירות לפאנל הניהול של 1C-Bitrix, ומבטלת משימות שגרתיות. הצוות שלנו מספק את הפרויקט במפתח מלא—החל מהגדרת ה-API ועד לתמיכה מתמשכת, ומבטיח פעילות אמינה ונתונים עדכניים.
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
שילוב של 1C-Bitrix עם Google Search Console
בינוני
~1-2 שבועות

הכישורים שלנו:

שאלות נפוצות

שילוב 1C-Bitrix עם Google Search Console

מומחה SEO מבלה עד 4 שעות בשבוע בייצוא ידני של דוחות מ-Google Search Console – זה בערך 800 דולר בחודש (בתעריף של 50 דולר לשעה). עבור קטלוג עם 30,000 מוצרים, זה אומר 16 שעות בחודש שיכלו ללכת לאופטימיזציה בפועל. השילוב שלנו מבטל את זה: הנתונים נטענים אוטומטית, מתעדכנים פעם ביום, ונגישים ישירות בלוח הניהול של Bitrix. יישמנו שילובים כאלה עבור 50+ פרויקטים עם קטלוגים החל מ-10,000 פריטים. החיסכון באיסוף ידני מגיע ל-500 דולר בחודש. לצוות שלנו יש ניסיון של למעלה מ-10 שנים עם Bitrix ו-SEO. זמן פיתוח: 3 עד 5 ימי עסקים. צרו קשר להערכה חינמית של הפרויקט שלכם.

למה להשתמש בחשבון שירות?

ההרשאה יכולה להתבצע דרך OAuth 2.0 או חשבון שירות. חשבון שירות עדיף: הוא לא דורש חידוש ידני של טוקן. זה מפחית את זמן התחזוקה פי 3.

הרשאה דרך חשבון שירות

// Устанавливаем 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 של חשבון השירות מאוחסן בספרייה מוגנת מחוץ לשורש האתר. הנתיב מוגדר בהגדרות המודול.

איסוף נתונים לפי דפי אתר

סוכן Bitrix מביא נתונים עבור היום הקודם מדי יום. יש לקחת בחשבון את העיכוב של 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();';
    }
}

טבלה // Устанавливаем 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() ?? []; } } :

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: סטטוס אינדוקס הדף

בדיקת סטטוס האינדוקס דרך 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 בלוח הניהול

בהתבסס על הנתונים שנאספו, נבנים דוחות בלוח הניהול של Bitrix. לדוגמה:

  • שאילתות מובילות עם CTR נמוך אך חשיפות גבוהות – פוטנציאל לשיפור title/description.
  • דפים עם ירידה במיקומים – דורשים תשומת לב מצוות התוכן.
  • דפים עם אפס קליקים – סימן אפשרי לתגיות מטא שגויות או קניבליזציה.

נתונים מ-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 לפי URL – מקבלים קישורים ישירים לעריכת החומר.

עדכון אוטומטי של Sitemap

לאחר יצירת ה-sitemap, נשלחת בקשה לאינדוקס מחדש דרך Sitemaps API.

מקרה בוחן: חיסכון אמיתי

עבור לקוח עם קטלוג של 50,000 מוצרים, הגדרנו את הסוכן ואת לוח המחוונים. לפני השילוב, צוות ה-SEO בילה 4 שעות שבועיות באיסוף נתונים ידני. לאחר יישום הפתרון שלנו, הנתונים מתעדכנים אוטומטית מדי יום, חוסכים 15 שעות בחודש – שווה ערך ל-750 דולר בתעריף של 50 דולר לשעה. הלקוח דיווח על עלייה של 40% בפרודוקטיביות ה-SEO.

מהן המגבלות של Search Console API?

  • בדיקת URL: 2000 בקשות ביום לכל נכס.
  • Search Analytics: נתונים בפיגור של 2–3 ימים, עומק של 16 חודשים.
  • שורות לתגובה: עד 25,000 לבקשה (נדרש סינון לאתרים גדולים).
  • חשבון השירות חייב להתווסף ל-GSC עם הרשאות "מלאות".

לפי תיעוד Search Console API, מגבלות אלו עשויות להשתנות.

טעויות אינטגרציה אופייניות

  • הרשאות חשבון שירות שגויות: צריך הרשאות "מלאות", לא "מוגבלות".
  • הרצת הסוכן לעתים קרובות מדי: הנתונים מתעדכנים פעם ביום, יותר מכך חסר תועלת.
  • התעלמות מעיכוב הנתונים: בקשת נתונים של היום מחזירה תגובה ריקה.
  • חוסר אינדקס על עמודת DATE בטבלה: מאט את ההכנסה לנפחים גדולים.

מה כולל השילוב

שלב תוכן משך
ניתוח סקירת מטא-דאטה קיים, הגדרת מטרות החל משעתיים
הגדרת חשבון שירות יצירת חשבון, הפקת מפתח, הוספה ל-GSC 4–8 שעות
פיתוח סוכן איסוף ואחסון Search Analytics, הגדרת cron 1–2 ימים
לוח מחוונים הצגת דוחות בלוח הניהול של Bitrix 2–3 ימים
שילוב בדיקת URL קישור לכרטיסי אלמנטים של בלוק מידע יום אחד
תיעוד תיאור סכמת נתונים, הוראות למומחה SEO כלול

לוחות הזמנים הם לפרויקט טיפוסי. קבלו הערכה מדויקת לאחר ניתוח מופע ה-Bitrix שלכם. הזמינו ייעוץ – נחשב את העלות ואת לוח הזמנים באופן אישי.

מדריך שלב-אחר-שלב להגדרה עצמית

  1. צרו פרויקט ב-Google Cloud Console והפעילו את Search Console API.
  2. צרו חשבון שירות והורידו את מפתח ה-JSON.
  3. העלו את המפתח לשרת בספרייה מוגנת (מחוץ לשורש האתר).
  4. התקינו את ספריית google/apiclient דרך Composer ב-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)) ); .
  5. יישמו את המחלקה 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(), ]; } עם הרשאת מפתח.
  6. הגדירו סוכן לאיסוף יומי של Search Analytics.
  7. צרו את הטבלה b_gsc_analytics ואינדקסים.
  8. הציגו את לוח המחוונים בלוח הניהול.
דוגמה לחישוב חיסכוןבעומס ממוצע של 4 שעות בשבוע ובתעריף של 50 דולר לשעה, החיסכון מגיע ל-800 דולר בחודש. הלקוחות שלנו מאשרים חיסכון של לפחות 500 דולר בחודש לאחר היישום.

צרו קשר אם אתם זקוקים לעזרה בכל שלב. אנו מבטיחים תוצאות ומספקים תיעוד.