robots.txt أو قاعدة لحظر الروبوتات على خادمك ترفض الزاحف (facebookexternalhit). ولا يُعاد إلا بعد أن تفشل أيضًا آلية إعادة الاستضافة الاحتياطية التلقائية في Ayrshare، وهو ما يشير بقوة إلى حجب من جانب المضيف أو إلى مصدر يتعذّر الوصول إليه.
عندما ينشر Ayrshare على Instagram أو Threads، فإنه لا يكتفي بتسليم عنوان URL الخاص بك إلى Meta ثم يستسلم. إذ يعيد Ayrshare محاولة الجلب تلقائيًا، وإذا ظل Meta غير قادر على الوصول إلى الوسائط، يعيد استضافة نسخة منها على شبكة CDN الخاصة به ويطلب من Meta جلبها من هناك بدلًا من ذلك. ويعني الرمز 479 أن هذه الآلية الاحتياطية نفسها لم تتمكن من جعل Meta يجلب الوسائط، لذا لن تفيد إعادة محاولة الطلب نفسه حتى تُصلَح مشكلة الاستضافة الأساسية (retryAvailable: false، HTTP 400).
تتناول هذه الصفحة حالات الفشل التي تشير رسالة الخطأ أو التفاصيل الخاصة بها إلى أن شبكة التواصل الاجتماعي لم تتمكن من تنزيل الوسائط، وعادة ما تشير إلى
facebookexternalhit، أو robots.txt، أو "Restricted by robots.txt"، أو "HTTP error code 403"، أو الرمز الفرعي من Meta 2207052. أما أخطاء نسبة الأبعاد أو التنسيق في رمز Instagram 138، فراجع بدلًا من ذلك إرشادات وسائط Instagram أو إرشادات وسائط Threads.الأعراض
عند حظر الزاحف، سترى أخطاء مثل هذه:Error 479 (primary — dedicated, non-retryable)
Error 440 (transient ingestion — retryable)
Instagram Error 138 (fallback — less specific upstream response)
Threads Error 379
فهم الفرق بين هذه الرموز:
- الرمز 479: رمز مخصص لجلب الوسائط / حجب الزاحف (غير قابل لإعادة المحاولة). هذا هو رمز الفشل الذي تتناوله هذه الصفحة. ويُعاد مع
retryAvailable: falseعندما يتعذّر على Meta جلب الوسائط (الرمز الفرعي2207052أو نمط نصي يدل على فشل جلب الوسائط) حتى بعد أن أعاد Ayrshare استضافتها على شبكة CDN الخاصة به. وتذكر رسالته صراحةًfacebookexternalhit/Facebotوrobots.txt، فإذا رأيت 479، فأنت في الصفحة المناسبة. أصلح الاستضافة قبل إعادة المحاولة. - الرمز 440: فشل استيعاب مؤقت (قابل لإعادة المحاولة). يُستخدم الآن لحالات استنفاد الاستيعاب المؤقتة فعلًا، أي الرمزين الفرعيين من Meta
2207032(“download too slow”) /2207003(“create media fail”)، أو حالات الاستنفاد غير المصنّفة. ويحملretryAvailable: true؛ أعد المحاولة عبر/post/retry. - الرمز 138: رمز Instagram احتياطي أقل تحديدًا. يُصدَر للسبب الجذري ذاته عندما تكون الاستجابة القادمة من المصدر أقل تحديدًا. ويُستخدم الرمز 138 أيضًا لمشكلات نسبة الأبعاد/التنسيق، لذا يمكن تمييز صيغة جلب الوسائط بوجود
"Restricted by robots.txt"أو"HTTP error code 403"في حقلdetails. - الرمز 379: Threads. لا يتضمن حقل
details. وإذا فشل Threads بجانب Instagram 479 أو 138، فعادة ما يكون السبب الجذري واحدًا.
لماذا يحدث هذا
عندما تنشر على Instagram أو Threads عبر Ayrshare، تجلب خوادم Meta وسائطك من عنوان URL الذي تقدّمه. ويستخدم هذا الجلب من جانب الخادم User-Agent الخاص بـfacebookexternalhit. فإذا رفض ملف robots.txt الخاص بخادمك هذا الزاحف — أو حجبته قاعدة WAF/حماية من الروبوتات — فلن يتمكن Meta من تنزيل الملف وسيفشل النشر.
يستخدم النشر على Facebook Page مسار استيعاب مختلفًا، وهو ما يفسّر لماذا قد يعمل mediaUrl نفسه مع Facebook ويفشل مع Instagram وThreads.
الحل: حدّث ملف robots.txt
الأسلوب الموصى به: السماح لـ Meta صراحةً وإبقاء الآخرين مفتوحين
أضف هذه القواعد إلى ملفrobots.txt:
robots.txt
أسلوب متقدّم: التقييد على ناشري التواصل الاجتماعي فقط
إذا كنت تريد حجب معظم الزواحف مع السماح لمنصات التواصل الاجتماعي:robots.txt
تحقق من أن Meta يستطيع جلب عنوان URL الخاص بك
قبل إعادة محاولة النشر، تحقق من أن زاحف Meta يمكنه الآن الوصول إلى وسائطك. قم بتشغيل الأمر التالي، مع استبدال$URL بعنوان URL الكامل للوسائط:
- الاستجابة السليمة: HTTP 200 أو 206 مع بيانات ثنائية في محتوى الاستجابة.
- الاستجابة المحجوبة: HTTP 403 أو صفحة فارغة/صفحة خطأ HTML.
وفقًا لوثائق Meta، قد تستغرق تغييرات
robots.txt ما يصل إلى 24 ساعة لتنتشر عبر ذاكرة التخزين المؤقتة لزاحف Meta. وإذا نجح التحقق ولكن ما زال منشورك يفشل، فانتظر وأعد المحاولة لاحقًا.إذا لم يحل هذا المشكلة
إذا حدّثتrobots.txt وتحققت باستخدام أمر curl ولكن ما زلت ترى حالات فشل:
- تأخير الانتشار لمدة 24 ساعة — يقوم Meta بتخزين
robots.txtمؤقتًا. انتظر حتى 24 ساعة بعد إجراء التغييرات قبل إعادة المحاولة. - قواعد WAF أو مكافحة الروبوتات — قد تحجب خدمات مثل Cloudflare Bot Fight Mode، ومجموعات قواعد الروبوتات المُدارة في AWS WAF، والخدمات المماثلة نطاقات عناوين IP الخاصة بزاحف Meta حتى لو كان
robots.txtيسمح بها. تحقق من سجلات WAF وأضف استثناءً لـfacebookexternalhit. - حماية الروابط الساخنة / التحقق من Referer — تحجب بعض شبكات CDN الطلبات من عناوين IP لمراكز البيانات أو الطلبات التي بدون رأس
Refererصالح. أضف زاحف Meta إلى القائمة البيضاء أو عطّل حماية الروابط الساخنة لمسارات الوسائط. - انتهاء صلاحية عناوين URL الموقّعة / المُوقّعة مسبقًا — إذا كان عنوان URL الخاص بالوسائط يحتوي على طابع زمني لانتهاء الصلاحية (شائع مع عناوين URL الموقّعة مسبقًا في S3)، فتأكد من أنه لا ينتهي قبل أن يتمكن زاحف Meta من جلبه. بالنسبة للمنشورات المجدولة، أنشئ عناوين URL تظل صالحة لفترة كافية بعد الوقت المجدول.
- استضافة الوسائط المُدارة — إذا كنت تستخدم خدمة مثل Cloudinary أو Imgix أو ما شابه حيث لا يمكنك تحرير
robots.txt، فراجع وثائقهم للحصول على إعداد السماح لزاحف Meta/Facebook.
postIdالفاشل من استجابة الخطأ- مخرجات أمر
curlللتحقق أعلاه - محتويات ملف
robots.txtالخاص بك
إعادة محاولة منشور فاشل
يعتمد سلوك إعادة المحاولة على الرمز الذي تلقيته:- الرمز 440 (مؤقت،
retryAvailable: true): نفد وقت الاستيعاب ببساطة أو واجه خطأ مؤقتًا من Meta. أعد المحاولة مباشرةً باستخدام نقطة نهاية إعادة محاولة النشر؛ ولا حاجة إلى أي تغييرات في الاستضافة. - الرمز 479 (
retryAvailable: false): تعذّر على Meta جلب الوسائط حتى بعد أن أعاد Ayrshare استضافتها على شبكة CDN الخاصة به، لذا ستفشل إعادة المحاولة مرة أخرى باستخدام عنوان URL المحجوب نفسه دون تغيير. أصلح الاستضافة أولًا: اسمح لزواحف Meta (facebookexternalhit/Facebot) فيrobots.txtوفي WAF، أو أعد استضافة الوسائط على شبكة CDN يمكن لـ Meta الوصول إليها. تحقق باستخدام أمرcurlأعلاه، ثم أعد المحاولة عبر نقطة نهاية إعادة محاولة النشر.