تخطي إلى المحتوى
SEO Tools AI
SEO Tools AIإنشاء حساب

الوصفة

مزامنة درجات الروابط من ورقة أو n8n

تعيش معظم أدلة الأدوات في جدول بيانات، أو قاعدة بيانات Airtable، أو قاعدة بيانات صغيرة. تحول هذه الوصفة فحص الروابط الخلفية إلى ملء عمود: طلب واحد لكل 2,000 صف.

فريق بحث SEO Tools AI ·

عمال ورقيون يبنون جسراً يربط خزانة ملفات بطريق

الوصفة في خمس خطوات

01

تصدير النطاقات

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

02

تقسيم إلى مجموعات من 2,000

يقبل bulk_dr ما يصل إلى 2,000 نطاق لكل استدعاء. لذلك تحتاج ورقة مكونة من 5,000 صف إلى ثلاث استدعاءات.

03

الإرسال، التحقق من النجاح

استدعاء الـ API، قراءة JSON، والتوقف إذا كانت ok غير صحيحة. سجل _credits لترى الرصيد بعد كل تشغيل.

04

الكتابة مرة أخرى مع التاريخ

احفظ التقييم وتاريخ اليوم في عمودين. لا تفرغ قيمة جيدة بقيمة فارغة.

05

جدولة مرة واحدة شهرياً

شغله في اليوم الأول من الشهر. يتحرك المؤشر شهرياً تقريباً، لذا لا يجدي الاستدعاء المتكرر نفعاً.

اختر ما يبدأ المهمة

المحفز يقرر تكرار الاستدعاءات، لذا اختره قبل بناء الخرائط. بدءان يغطيان تقريباً كل دليل.

جدولة في اليوم الأول من الشهر هي الخيار الأبسط. تتوافق مع إيقاع المؤشر، ولا يحتاج أحد لتذكر زر.

جدولة للتحديث الشهري

ضع محفز الجدولة أولاً، اضبطه على اليوم الأول من كل شهر، ودعه يقرأ جدول الإدراج الكامل. كل تشغيل يصنع دفعة واحدة من استدعاءات bulk_dr، بحجم عدد الصفوف.

احتفظ بالجدولة حتى عندما تكون الجدول صغيراً. مهمة شهرية تعمل على جدول صغير تكلف رصيداً واحداً، وتحافظ على تواريخ التقييمات وحداثتها.

محفز على كل صف جديد

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

إذا كنت تريد الدرجة بسرعة، دع تدفق الصف الجديد يكتب dr فارغة ودع التشغيل الشهري يملأها. يحصل الصف على رقمه دون استدعاء لكل وصول.

إذا وصلت الإدراجات على دفعات، قم بتجميع الصفوف الجديدة في دفعة واحدة في نهاية الأسبوع. هذا يكلف استدعاء واحداً، ولا يتغير الجدول مرة واحدة فقط في الشهر.

تاريخ يحدد الصفوف المكتملة

احفظ dr_checked_on على كل صف تقيّمه. تشغيل يبدأ بفلتر على هذا التاريخ يتخطى ما تم إنجازه بالفعل هذا الشهر، ولا حاجة إلى طابور منفصل.

عند توقف التشغيل في المنتصف، تبقى الصفوف التي خُتمت مُختومة. يستأنف التشغيل التالي من حيث انتهى التشغيل السابق، وهو أرخص استرداد ممكن.

قبل أتمتة أي شيء

شغل الفحص يدوياً على خمس إدراجات أولاً. استخدم إجراء overview المجاني لكل منها، الذي لا يحتاج إلى مفتاح، وقارن ما تراه بما توقعته.

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

قرر كيف يميز جدولك هذه الحالات، على سبيل المثال بعمود ملاحظات يقرأ shares domain. يتسامح القراء مع الحاشية أكثر بكثير من درجة تبدو خاطئة.

عندما تبدو الخمسة معقولة، انتقل إلى الدفعة. يشير مرجع الحقل إلى الأعمدة، ويوضح مثال التكلفة تكلفة التشغيل.

نسخة بايثون صغيرة

تحتاج حزمة requests. إنها مخطط لشكل المهمة: اطبع استجابة حقيقية أولاً، ثم خرائط الحقول التي تحتاجها إلى أعمدتك الخاصة.

python
import csv, requests

KEY = "sk_live_..."
BASE = "https://seotoolsai.org/api.php"

rows = list(csv.DictReader(open("listings.csv")))
domains = sorted({r["domain"] for r in rows})

for i in range(0, len(domains), 2000):
    chunk = domains[i:i + 2000]
    r = requests.post(BASE, params={"action": "bulk_dr", "key": KEY},
                      data={"domains": ",".join(chunk)}, timeout=60)
    if r.status_code in (401, 402):
        raise SystemExit(f"stop: HTTP {r.status_code}")
    data = r.json()
    if not data.get("ok"):
        raise SystemExit("api said not ok")
    print(data["_credits"])   # cost and remaining balance
    open(f"raw_{i}.json", "w").write(r.text)
ترس ورقية وأحزمة ناقلية تصنف الكتل إلى مجموعات

القيام بذلك في Google Sheets أو n8n

يمكن لـ Sheets استدعاء عنوان URL من Apps Script باستخدام UrlFetchApp، و n8n يحتوي على عقدة HTTP Request. كلاهما يفعلان نفس الشيء مثل السكربت أعلاه.

في n8n، ضع محفز الجدولة أولاً، ثم عقدة تقرأ جدولك أو جدول البيانات، ثم خطوة تقسيم العناصر التي تبني مجموعات من 2,000، ثم طلب HTTP. أضف عقدة نهائية تكتب التقييم والتاريخ مرة أخرى.

احتفظ بالمفتاح في مخزن بيانات الاعتماد الخاص بالمنصة، وليس في نص سير العمل. تنتشر سير العمل، وتُنسخ وتُلصق في المنتديات، والمفتاح الملصق معها هو مال مستهلك.

بدون كود أو سكربت: أي شكل يناسب فريقك

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

اختر الشكل الذي لا يزال بإمكانك قراءته بعد انقطاع لعدة أشهر. تدفق ذكي لا يفهمه أحد أسوأ من سكربت بسيط يمكن للجميع اتباعه.

تدفق يمكنك شرحه للمحرر التالي

تدفق n8n قصير بأربع عقد مسماة سهل التسليم: محفز، قراءة، دفعة، كتابة مرة أخرى. سمِ كل عقدة حسب ما تفعله، وليس حسب التسمية الافتراضية.

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

عندما يستحق السكربت مكانه

يكون السكربت منطقياً عندما يكون الإدخال هو مجلد من ملفات CSV، أو عندما تحتاج المهمة إلى منطق يتعامل معه التدفق بشكل غير مريح. المخطط أعلاه يناسب هذه الحالة.

ضع السكربت في التحكم بالإصدارات واحتفظ بالمفتاح في متغير بيئة. سكربت يقرأ مفتاحه من ملف في نفس المجلد هو تسرب ينتظر محرك أقسام مشترك.

دروس تخطي الجزء الصعب

تظهر العديد من الفيديوهات تدفقاً يعمل في المحاولة الأولى مع ثلاثة صفوف. الإدراجات الحقيقية تحتوي على فراغات، وتكرارات، ونطاقات غريبة، وهذه هي الأماكن التي يحتاج فيها التدفق إلى الاهتمام.

ابنِ التدفق على صفوف الاختبار الخمسة الخاصة بك أولاً. إذا لم يتمكن درس من البقاء على قيد الحياة من تلك، فإن الدرس لم يكن أبداً المهمة الكاملة.

عندما تسلم التدفق لشخص آخر، ضم صفوف الاختبار الخمسة كعينة. يمكن للشخص التالي رؤية كيف يبدو التشغيل الجيد قبل لمس البيانات الحية.

ماذا تعني الأخطاء

سلوك الـ API وما يجب أن تفعله مهمة المزامنة.
الإشارةالمعنىما تفعله المهمة
HTTP 401مفتاح مفقود أو خاطئتوقف، تنبيه إنسان
HTTP 402نفدت الرصيدتوقف، احتفظ بالدرجات القديمة، أضف رصيداً
ok غير صحيحةلم ينجح الاستدعاءسجل الجسم، أعد المحاولة في التشغيل التالي
نتيجة فارغة لنطاقغير موجود في المؤشراترك الخلية فارغة
بستاني ورقي يقيم ساق نبات مائل في حديقة

حافظ على نظافة الجدول بين التشغيلات

مهمة المزامنة لا تكون أفضل من الجدول الذي تكتب إليه. عادات قليلة توقف الضرر البطيء الذي يتراكم بين تشغيل وآخر.

تبدأ معظم المشاكل بتعديل بريء: عمود تم إدراجه فوق الدرجة، أو صف تم نسخه يغير نطاقاً بهدوء.

احتفظ بالاستجابات الخام في تبويب خاص بها

احفظ كل استجابة خام في تبويب خاص بها، أو كـ JSON Lines مع استجابة واحدة لكل سطر. يسمح هذا النسخ بإعادة بناء الأعمرة المرئية دون استدعاء مدفوع ثانٍ.

تبويب خام يجيب أيضاً عن سؤال يسأله محرر بعد ستة أشهر: ماذا أرجع الـ API في ذلك التاريخ.

سمِ كل تبويب خام بتاريخ الدفعة، حتى ترتب النسخ بالترتيب عندما تتصفحها للخلف.

قفل صف الرأس

تجميد صف الرأس ولا تدرج عموداً فوق الدرجة. خريطة تشير إلى العمود F ستقرأ بيانات خاطئة بعد إدراج، وستفعل ذلك دون أي خطأ.

سمِ الأعمدة في الخريطة، وليس بالموضع. الاسم يبقى بعد إعادة الترتيب، والموضع لا يبقى.

عد الصفوف قبل وبعد

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

رتب الجدول حسب عمود الدرجة مرة واحدة في الشهر وانظر إلى الصفوف العلوية والسفلى. القيم الغريبة هناك تشير عادةً إلى نطاق تم ربطه بإدراج خاطئ.

اختبر على نسخة أولاً

انسخ الجدول وشغل التدفق ضد النسخة قبل لمس النسخة الحقيقية. النسخة لا تكلف شيئاً لإنشائها.

خريطة سيئة مكتوبة فوق الدرجات الحية يصعب التراجع عنها، لأن القيم القديمة قد ضاعت. احتفظ بالنسخة حتى يطابق التشغيل الصادق الأول ما توقعته.

احذف النسخة فقط بعد أن تطابقها التشغيل المجدول الثاني. تشغيلان نظيفان متتاليان إشارة أفضل من واحد.

قبل التشغيل الحي الأول

  • المفتاح يجلس في مخزن بيانات الاعتماد الخاص بالمنصة أو متغير بيئة، وليس في نص سير العمل.
  • تم التحقق من استدعاء overview مجاني يدوياً مقابل إدراج تعرف عليه.
  • تم اختبار التشغيل على نسخة من الجدول، وطابقت النسخة ما توقعته.
  • تكتب المهمة التاريخ بجانب كل درجة تلمسها.
  • الحالة 401 و 402 توقفان المهمة وترسلان رسالة إلى شخص.

أسئلة المزامنة

كيف أتجنب الدفع مرتين إذا تعطلت المهمة في المنتصف؟

اكتب التاريخ بجانب كل درجة أثناء التقدم، واجعل التشغيل التالي يتخطى الصفوف التي خُتمت بالفعل هذا الشهر. قطع من 2,000 تعني أن التعطل يكلف رصيداً واحداً على الأكثر، لذا فإن الخطر ضئيل، لكن العادة تحافظ على نظافة الجدول.

هل يمكن لغير المبرمج إعداد هذا؟

في الغالب نعم. عقدة HTTP Request في n8n أو Make تحتاج فقط إلى URL ومفتاح وقائمة. الجزء الدقيق هو تحويل الاستجابة إلى أعمدة، لذا قم باستدعاء اختبار واحد وانظر إلى JSON قبل بناء الخريطة.