ربط Google Search Console API لاستخراج آلاف الكلمات المفتاحية

دقائق القراءة: 5

يُعد ربط Google Search Console API من أهم الخطوات العملية في بناء نظام سيو يعتمد على البيانات لا على التخمين. فعوضاً عن تصفح الواجهة اليدوية واستخراج عدد محدود من الصفوف، يمكنك إنشاء سكربت يسحب آلاف الاستعلامات، الصفحات، معدلات النقر، والانطباعات بشكل منظم وقابل للتحديث التلقائي. وهذه النقلة هي جوهر مدخل إلى عالم أتمتة الـ SEO: لماذا الآن؟ لأنها تنقل العمل من التشغيل اليدوي إلى التحليل المتكرر واسع النطاق.

الميزة الحقيقية ليست فقط في جمع الكلمات المفتاحية، بل في تحويل البيانات الخام إلى قرارات تنفيذية: اكتشاف الكلمات ذات الانطباعات العالية والنقرات الضعيفة، العثور على صفحات تملك فرص تحسين CTR، وربط الاستعلامات بصفحات الهبوط لبناء خطة تحديث محتوى دقيقة. وعندما يتم ذلك عبر Python تصبح العملية قابلة للتكرار والجدولة والتوسع.

ما الذي يتيحه Search Analytics API فعلياً؟

واجهة searchanalytics.query تتيح لك طلب بيانات الأداء من خاصية موقعك داخل Search Console وفق أبعاد متعددة مثل query وpage وcountry وdevice. ويمكنك كذلك تحديد فترة زمنية، وفرز النتائج، والتحكم بعدد الصفوف المسترجعة في كل طلب.

هذا يعني أنك لا تستخرج “قائمة كلمات” فقط، بل تبني طبقات تحليلية كاملة. على سبيل المثال، يمكنك طلب بيانات حسب الاستعلام فقط لاكتشاف الفرص الموضوعية، أو حسب الاستعلام والصفحة معاً لتحديد التداخل بين الصفحات، أو حسب الجهاز لفهم الفروقات بين أداء الجوال وسطح المكتب.

المتطلبات الأساسية قبل البدء

قبل تشغيل أي سكربت، ستحتاج إلى تهيئة بيئة العمل والوصول إلى خدمة Google بشكل صحيح. إذا لم تكمل هذه المرحلة من قبل، فابدأ من تهيئة بيئة العمل: تثبيت Python والمكتبات الأساسية ثم راجع التعامل مع Google Cloud Console وإنشاء مفاتيح الـ API لأن نجاح الربط يعتمد على الإعداد السليم أكثر من كتابة الكود نفسه.

المطلوب تقنياً

منطق استخراج آلاف الكلمات المفتاحية

الخطأ الشائع أن البعض يرسل طلباً واحداً ثم يظن أن البيانات كاملة. عملياً، تحتاج إلى استخدام rowLimit وstartRow على شكل دفعات. بهذه الطريقة تسحب النتائج على مراحل حتى تصل إلى آخر صف متاح في الفترة المحددة.

هذا الأسلوب ينسجم مع منطق البرمجة المعتمد على المهام (Task-Oriented Programming)، حيث يتم تقسيم المهمة إلى خطوات صغيرة: مصادقة، إرسال طلب، قراءة النتائج، الانتقال للدفعة التالية، ثم حفظ المخرجات في ملف أو قاعدة بيانات أو Google Sheets.

سكريبت Python عملي لاستخراج البيانات

في المثال التالي سنستخدم مكتبات Google الرسمية لبناء اتصال آمن ثم سحب بيانات الأداء على دفعات. الكود مصمم ليكون نقطة انطلاق قابلة للتوسعة وليس مجرد مثال نظري.

from google.oauth2.service_account import Credentials
from googleapiclient.discovery import build
import pandas as pd

SCOPES = ["https://www.googleapis.com/auth/webmasters.readonly"]
SERVICE_ACCOUNT_FILE = "service-account.json"
SITE_URL = "https://example.com/"
START_DATE = "2024-01-01"
END_DATE = "2024-12-31"

credentials = Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE,
    scopes=SCOPES
)

service = build("searchconsole", "v1", credentials=credentials)

all_rows = []
start_row = 0
row_limit = 25000

while True:
    request = {
        "startDate": START_DATE,
        "endDate": END_DATE,
        "dimensions": ["query", "page"],
        "rowLimit": row_limit,
        "startRow": start_row
    }

    response = service.searchanalytics().query(
        siteUrl=SITE_URL,
        body=request
    ).execute()

    rows = response.get("rows", [])
    if not rows:
        break

    for row in rows:
        keys = row.get("keys", ["", ""])
        all_rows.append({
            "query": keys[0] if len(keys) > 0 else "",
            "page": keys[1] if len(keys) > 1 else "",
            "clicks": row.get("clicks", 0),
            "impressions": row.get("impressions", 0),
            "ctr": row.get("ctr", 0),
            "position": row.get("position", 0)
        })

    start_row += row_limit
    print(f"Fetched rows: {len(all_rows)}")

df = pd.DataFrame(all_rows)
df.to_csv("search_console_keywords.csv", index=False, encoding="utf-8-sig")
print("Export completed successfully.")

كيف تفهم الكود وتطوره؟

1) المصادقة والوصول

يتم إنشاء كائن Credentials من ملف الخدمة ثم تمريره إلى الدالة build() لبناء عميل API. المهم هنا أن الحساب الخدمي يجب أن يكون مضافاً كمستخدم داخل الخاصية، وإلا سيفشل الطلب حتى لو كان الكود سليماً.

2) التقسيم إلى دفعات

يبدأ المتغير start_row من الصفر، ثم يزيد بمقدار row_limit بعد كل دورة. عندما لا تعود الواجهة بصفوف جديدة، تنتهي الحلقة. هذه هي الآلية الأساسية لاستخراج عشرات الآلاف من السجلات دون تدخل يدوي.

3) تحويل المخرجات إلى ملف قابل للتحليل

بعد تجميع السجلات في القائمة all_rows يتم تحويلها إلى DataFrame ثم تصديرها إلى CSV. ويمكن لاحقاً إرسال الملف إلى Google Sheets أو قاعدة بيانات تحليلات داخلية.

أفضل استخدامات البيانات بعد الاستخراج

  • تحديد الكلمات التي تحقق انطباعات عالية ومعدل نقر ضعيف لتحسين العناوين والوصف.
  • اكتشاف الصفحات التي تظهر لعدد كبير من الاستعلامات غير المستثمرة تحريرياً.
  • عزل الكلمات ذات المواضع بين 8 و20 لبناء قائمة أولويات تحسين سريعة.
  • ربط البيانات مع Sheets، خاصة إذا كنت تطبق ما ورد في كيفية ربط Google Sheets بالعالم الخارجي عبر Script.
  • بناء تقارير أسبوعية أو شهرية ترسل تلقائياً إلى فريق التحرير أو فريق السيو.

ركّز عند التحليل على الاستعلامات التي تمتلك انطباعات مرتفعة + CTR منخفض + متوسط ترتيب جيد نسبياً، لأن هذه المجموعة غالباً تمنح أسرع عائد عند تعديل العنوان، تحسين المقتطف، أو توسيع المحتوى داخل الصفحة المستهدفة.

أخطاء شائعة يجب تجنبها

  • استخدام خاصية موقع غير مطابقة تماماً لقيمة SITE_URL.
  • حفظ ملف الاعتماد داخل المستودع البرمجي العام على GitHub.
  • طلب أبعاد كثيرة دفعة واحدة ثم استغراب انخفاض عدد الصفوف المفيدة بسبب تشعب البيانات.
  • تحليل البيانات كما هي دون تنظيف الاستعلامات المكررة أو فرزها حسب الهدف التجاري أو التحريري.

التوسعة الذكية: من سكربت محلي إلى نظام أتمتة كامل

بعد نجاح الاستخراج الأساسي، يمكنك نقل المشروع إلى مستوى أعلى عبر جدولة التشغيل يومياً، ثم تخزين النتائج التاريخية للمقارنة الزمنية. ويمكنك أيضاً دمج هذا التدفق مع Google Apps Script أو لوحات متابعة داخلية، خصوصاً إذا كنت قد اطلعت على مقدمة في Google Apps Script لغير المبرمجين.

ولفهم الصورة الأشمل، من المفيد ربط هذا المشروع بمفهوم مفهوم الـ API: كيف نطلب البيانات من Google وOpenAI، لأن نفس المنطق سيفتح لك الباب لاحقاً لبناء أدوات توليد توصيات، تصنيف نية البحث، أو تلخيص فرص التحسين باستخدام واجهات ذكاء اصطناعي مختلفة.

خاتمة

ربط Google Search Console API لاستخراج آلاف الكلمات المفتاحية ليس مجرد خطوة تقنية، بل هو تأسيس لبنية سيو احترافية قابلة للقياس والتطوير. عندما تمتلك تدفقاً آلياً للبيانات، تصبح قرارات المحتوى، تحسين الصفحات، وإدارة الأولويات مبنية على إشارات بحث حقيقية من Google نفسها. وهذه بالضبط هي النقطة التي يتحول فيها السيو من جهد تشغيلي مشتت إلى نظام ذكي قائم على البيانات.

9 comments

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *