AlfaLinks
AlfaLinksإنشاء حساب

الوصفة

فحص الروابط الخلفية للصفحة عبر API وتخزينها مؤقتًا بصدق

مؤشرنا يتحرك مرة واحدة شهريًا، لذا يمكن خدمة معظم عمليات البحث من الذاكرة. وصفة للـ caches التي توفر الرصيد دون إظهار معلومات قديمة للمستخدمين.

جسر حجري مع ثلاثة أواني من الرمل الملون تمثل حداثة بيانات الروابط الخلفية المخزنة

القاعدة

التخزين المؤقت حتى تحديث المؤشر التالي، وليس لساعة ثابتة

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

  • المفتاح: الإجراء + النطاق + المعلمات + شهر المؤشر
  • وقت الصلاحية (TTL): حتى نهاية الشهر، بالإضافة إلى يوم سماح
  • لا تقم بتخزين استجابة الخطأ

لماذا مدة الصلاحية القصيرة (TTL) هي مجرد تبريد لرصيدك

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

تكالف استدعاء backlinks بـ 2 رصيد $0.0002. يبدو هذا مبلغاً ضئيلاً حتى عندما يطلق عرض القائمة 50 منها في كل تحميل صفحة عبر 400 مساحة عمل نشطة، ويتكرر ذلك كل ساعة لنفس الإجابات.

الأرقام المحسوبة أدناه هي مثال وليست قياساً لحركة أي شخص. افترض 400 مساحة عمل، و20 عرضاً للمجال لكل منها يومياً، و2 رصيد لكل عرض، وتخزيناً مؤقتاً لمدة 1 ساعة يصيب التخزين ربما مرة واحدة فقط من كل خمس مرات. معظم العروض لا تزال تضرب API. تحت مفتاح تخزين مؤقت شهري، كانت نفس الحركة تضربه مرة واحدة فقط لكل مجال وشهر، لذا فإن الفارق هو جوهر الوصفة.

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

عمر الرمز حسب الإجراء

مقترح، وليس إلزاميًا. جميع الإجراءات تقرأ نفس الفهرس الشهري.
الإجراءالاعتماداتعمر الرمز المقترحالسبب
نظرة عامة، إحصائيات0حتى نهاية الشهرمجاني، لكن خادمك لا يزال يوفر زمن الاستجابة
bulk_dr1حتى نهاية الشهرجدول العملاء بالكامل في مكالمة واحدة
refdomains, backlinks2حتى نهاية الشهر، مع معلمة الصفحةأدرج الصفحة، العدد، الترتيب في المفتاح
anchors, toppages2حتى نهاية الشهرثابت بين عمليات التحديث
search, keyword37 أيامنادراً ما يتكرر، رخيص تخطي التخزين المؤقت

مثال على الطلب: تسخين التخزين المؤقت لجدول العملاء

استدعِ bulk_dr مرة واحدة لكل عميل، وليس لكل صف. يتسع ما يصل إلى 2,000 نطاق في جسم طلب POST واحد ويكلف رصيداً واحداً.

bash
curl -X POST "https://alfalinks.net/api.php?action=bulk_dr&key=sk_live_..." \
  -d "domains=stripe.com,notion.so,linear.app,figma.com,vercel.com"

# billed once, whatever the row count

بناء التخزين المؤقت في خمس خطوات

لكل خطوة وظيفة واحدة. تخطِ واحدة وستظهر الفشل لاحقاً، وعادةً ما يظهر كفاتورة.

01

اختر المفتاح

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

02

احفظ الاستجابة بعد التحليل

احتفظ بـ JSON المفكوك مع علامة النجاح والبيانات، وليس البايتات الخام. يمكن لعرض لاحق إعادة بناء الجدول بالكامل من الذاكرة دون مكالمة ثانية.

03

ينتهي الصلاحية في نهاية الشهر

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

04

سجّل الرصيد في كل استدعاء

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

05

مراقبة معدل الإصابات

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

تفاح على وسائد فلين تظهر سياق تاريخ الحصاد للتحقق من الحداثة

هل البيانات القديمة خيار منتج أم خطأ برمجي؟

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

أضف شهر فهرسة كل رقم. اعرضه للمستخدمين. بمجرد أن يتمكنوا من رؤية التاريخ، يتوقف الرقم عن الظهور وكأنه تغذية معطلة، وهذا السطر البسيط يفعل أكثر مما يمكن أن تفعله مدة صلاحية أقصر (TTL).

متى يصبح عمر الروابط قديمًا جدًا؟

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

هل تحتاج المكالمات العامة المجانية إلى ذاكرة تخزين مؤقت (Cache) على الإطلاق؟

لا تكلف عملية العرض العام أي رصيد، لذا فإن ذاكرة التخزين المؤقت هنا تحمي السرعة بدلاً من الرصيد. لا يزال خادمك يدفع مقابل كل رحلة ذهاب وإياب، وستشعر الصفحة التي تُفتح خمسين مرة في الدقيقة بالأثر. احفظ الإجابات المجانية أيضًا باستخدام مفتاح الشهر نفسه، وستظل الصفحة سريعة بينما يبقى الوكيل (Proxy) هادئًا. تشرح ملاحظات البحث العام نفس الفكرة للزوار.

هل يجب أن يتجاوز الرابط الجديد ذاكرة التخزين المؤقت؟

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

حماية من موجة الطلبات (Stampede) وأشياء أخرى صغيرة

  • تنفيذ فردي: إذا فتح عشرة مستخدمين نفس النطاق، قم بإجراء استدعاء واحد للخادم الخلفي وشارك الوعد (Promise).
  • التدفئة في الأول من الشهر باستخدام مهمة خلفية، وليس في الساعة 9 صباحًا عندما يصل المستخدمون.
  • احفظ قيمة _credits.remaining وقم بتنبيه عند تجاوز عتبة تحددها.
  • احفظ النتيجة السلبية 'النطاق غير موجود' لمدة يوم واحد، وليس شهرًا.
  • اعرض عمر ذاكرة التخزين المؤقت في واجهة المستخدم حتى يتمكن فريق الدعم من الإجابة على سؤال 'متى تم جلب هذا؟'.
مطرقة حديدية وحجر نهر على طاولة ورشة عمل تمثل التخزين المؤقت المستقر

لماذا تتفوق ذاكرة التخزين المؤقت على النقر (Scraping) لفحوصات الروابط

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

لماذا تستمر أدوات فحص الروابط المصنوعة محليًا في التوقف؟

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

محركات البحث تُبطئ الاستعلامات الآلية، لذا فإن السكربت الذي يعمل بنجاح مع خمسين عنوان URL قد يتوقف عند خمسين ألفاً. عمليات إعادة المحاولة، ومجمعات الوكلاء (proxies)، والتأخيرات العشوائية تضيف جميعها تكاليف لا تظهر في خط الائتمان، وهي تتعطل دون إنذار عندما يغير الهدف استجاباته.

كيف تجعل مهمة القائمة الطويلة قابلة لإعادة التشغيل؟

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

شغّل المهمة بوتيرة ثابتة بدلاً من دفعات واحدة. توزيع المكالمات يجعل السجلات قابلة للقراءة ويجعل أي تغيير في استخدام الرصيد سهلاً في التفسير.

كم تكلفة قائمة تحتوي على 22,000 عنوان URL مع ذاكرة التخزين المؤقت؟

لنفترض أنك تحتاج إلى فحص 22,000 رابط وارد (URL) لعميل واحد. العديد منها يشارك نفس النطاق، لذا قم بإزالة التكرارات على مستوى النطاقات أولاً. قد تنخفض هذه الروابط الـ 22,000 إلى بضعة آلاف من النطاقات الفريدة، ومكالمة bulk_dr واحدة تستوعب ما يصل إلى 2,000 منها مقابل رصيد واحد. احفظ كل نتيجة حسب النطاق والشهر، وتتوقف القائمة عن كونها مهمة تعتمد على كل عنوان URL. احتفظ بالحسابات في ملاحظة قصيرة بجانب المهمة، حتى يتمكن الشخص التالي من إعادة تشغيلها بحجم قائمة مختلف. الرقم الذي يظهر طريقة حسابه أسهل في الثقة من المجموع وحده.

كيفية الربط

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

أسئلة حول ذاكرة التخزين المؤقت نراها في مراجعة الكود

هل يجب أن تعيش ذاكرة التخزين المؤقت في المتصفح أيضاً؟

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

ماذا لو قال عميل إن رابطاً جديداً مفقود؟

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

هل يمكنني تجاوز ذاكرة التخزين المؤقت عند الطلب؟

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

التصفح الصفحي ومفتاح ذاكرة التخزين المؤقت

التصفح الصفحي يعض الجميع مرة واحدة. قم بتضمينه في المفتاح.

إجراءات backlinks و refdomains تُرجع ما يصل إلى 1,000 صف لكل مكالمة، مع page و per بين 10 و 5000، والتصفح العميق محدود بـ 50,000 صف، لذا فإن المفتاح الذي لا يحتوي على هذه المعلمات سيخدم الصفحة الأولى لكل طلب.

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

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

خطط لزر التصدير بشكل منفصل: مهمة خلفية واحدة، ملف مخزن واحد، وإشعار واحد عندما يكون جاهزاً.