504 مهلة البوابة

ما معنى 504 Gateway Timeout، وكيف تؤدي الخوادم المصدرية البطيئة إلى حدوثه، وكيف يتعامل Googlebot مع المهلات، وما آثار ذلك في ميزانية الزحف والفهرسة.

نُشر أول مرة: 28 يونيو 2026 · آخر تحديث: 8 أغسطس 2026 · Advanced
اللغات
دليل واحد في هذه الصفحة

تعني 504 Gateway Timeout أن بوابة أو وكيلاً (CDN أو موازن حمل أو وكيل عكسي) لم يحصل على استجابة في الوقت المناسب من الخادم المصدر خلفه. إنها مهلة، تختلف عن 502 (استجابة سيئة) و503 (عدم توفر صريح). ليست عقوبة من Google؛ إنها مشكلة إتاحة. تعاد محاولة 504 المنفردة، لكن المهلات المستمرة تقع مع 429/500/503 ضمن الأخطاء التي تجعل Googlebot يتراجع، وقد تسقط الصفحات من الفهرس إذا استمرت. حدد أي قفزة انتهت مهلتها قبل الإصلاح — فزمن استجابة الخادم (TTFB) رافعة وقائية قوية للمصادر البطيئة، لكن رفع قيمة المهلة ليس إصلاحاً في أي حال.

الخلاصة — 504 هو بوابة/وكيل يخبرك بأن الخادم المصدر لم يرد داخل نافذة المهلة — مهلة تختلف عن 502 (استجابة سيئة) أو 503 (عدم توفر صريح). إنها مشكلة إتاحة وليست عقوبة. تقع المهلات في الفئة نفسها مع 429/500/503: يتراجع Googlebot عندما يراها، وتخاطر 504 المستمرة بإزالة الفهرسة. الإصلاح الدائم هو زمن استجابة الخادم (TTFB)، لا قيمة مهلة أطول؛ فرفع المهلة يخفي المصدر البطيء عادةً وقد يزيد الوضع سوءاً تحت الحمل.

أين ينشأ 504 في سلسلة الطلب

قد يبدو مسار الطلب الحديث هكذا: المتصفح → CDN/edge → موازن الحمل → الوكيل العكسي (مثل Nginx) → خادم التطبيق (PHP-FPM أو Node وغيرهما) → قاعدة البيانات / واجهات API الخارجية. ينشئ 504 المكوّن الذي كان ينتظر المكوّن الذي خلفه عند انتهاء مهلته. وهذا أول سؤال تشخيصي: Evidence for this claim A 504 response means a gateway or proxy did not receive a timely response from an upstream server. Scope: RFC 9110 defines the timeout semantics; it does not determine why the upstream response was delayed. Confidence: high · Verified: IETF: RFC 9110 §15.6.5 — 504 Gateway Timeout

  • انتهاء مهلة CDN/edge أثناء انتظار المصدر → أصلح أداء المصدر، أو ارفع مهلة المصدر في CDN بحذر.
  • انتهاء مهلة موازن الحمل أثناء انتظار خادم التطبيق → افحص صحة خادم التطبيق والتوسع التلقائي.
  • انتهاء مهلة الوكيل العكسي أثناء انتظار عملية التطبيق → افحص proxy_read_timeout / fastcgi_read_timeout في Nginx والاستعلام أو العملية البطيئة التي تقف خلفها فعلياً.

يهم تحديد الطبقة الصحيحة، لأن «إصلاح المهلة عند الحافة» و«إصلاح استعلام قاعدة البيانات البطيء في المصدر» مهمتان مختلفتان تماماً.

ما الذي يسبب أخطاء المهلة

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

  • استعلامات قاعدة بيانات أو استدعاءات API مصدر بطيئة. قد يدفع استعلام واحد بلا فهرس أو تبعية خارجية بطيئة زمن الاستجابة فوق المهلة.
  • حمل زائد على الخادم/التطبيق واستنفاد الموارد. تحت الحمل المتزامن الكافي تصطف الطلبات، وتمتلئ عمليات العمال، وتتوقف الاستجابات عن الوصول في الوقت.
  • قيم مهلة مضبوطة خطأً عبر Nginx أو Apache أو موازن الحمل أو CDN — غالباً لا تتطابق بين الطبقات فتستسلم واحدة قبل الأخرى.
  • ارتفاعات مرور أو فيضانات روبوتات أو DDoS تطغى مؤقتاً على السعة.

غالباً ما تكون المهلة متقطعة وتعتمد على الحمل

هذا ما يجعلها مزعجة. بخلاف الانقطاع الصريح، يظهر 504 كثيراً تحت الحمل؛ فقد يعرض فحص توفر يرسل طلباً في فترة هادئة نتيجة خضراء 100% بينما يجمع Googlebot، أثناء دفعات زحف أثقل، مهلات بهدوء. وقد ترى ذلك في فحص عنوان URL في Google Search Console كحالة Hostload exceeded بدلاً من خطأ ثابت واضح. إذا قالت مراقبتك إن كل شيء سليم بينما تخالفها إحصاءات الزحف، فـ504 المعتمد على الحمل مشتبه رئيسي.

كيف يتعامل Googlebot (وBingbot) مع المهلات

Google لا تتعامل مع 504 على أنه حكم على جودة المحتوى؛ إنها إشارة إتاحة، والاستجابة هي خفض تلقائي للسرعة. وتقول وثائق الزحف صراحةً: “Googlebot will scale back its crawling if it detects that your servers are having trouble responding to crawl requests.” (ترجمة) «يخفض Googlebot الزحف إذا اكتشف أن خوادمك تواجه مشكلة في الرد على طلبات الزحف». ويقول دليل ميزانية الزحف للمواقع الكبيرة: “If the site slows down or responds with server errors, the limit goes down and Google crawls less.” (ترجمة) «إذا تباطأ الموقع أو أعاد أخطاء خادم، ينخفض الحد وتزحف Google أقل». Evidence for this claim Google reduces crawling when server errors or slow responses indicate a site is having trouble responding. Scope: Google's documentation supports automatic crawl throttling for server trouble; it does not attribute a specific 504 to any particular bottleneck. Confidence: high · Verified: Google: Troubleshoot crawling errors

يأتي أحدث تأطير مرتبط مباشرة بالاستجابات البطيئة والمهلات من شرح Inside Googlebot الذي نشرته Google في مارس 2026، حيث نُقل عن Gary Illyes قوله: “If your server is struggling to serve bytes, our crawlers will automatically back off to avoid overloading your infrastructure, which will drop your crawl frequency.” (ترجمة) «تتراجع زواحفنا تلقائيًا لتجنب إثقال بنيتك التحتية، فينخفض تواتر الزحف». (نقلته تغطية Search Engine Land؛ تحقق من التسجيل أو النص الأصلي قبل نسب الاقتباس حرفيًا.) هذا التعثر هو ما تظهره 504 للمستخدم.

هناك دقة مهمة: لا ترى Google دائماً «504» حرفياً كما يراه متصفحك. إذا حدثت المهلة قبل حصول Googlebot على أي سطر حالة، تُسجل كـمهلة/خطأ شبكة في إحصاءات الزحف لا كـ5XX نظيف. أما إذا انتهت مهلة وكيل وسيط أو CDN وأنشأ استجابة 504 خاصة به، فيتلقى Googlebot خطأ خادم 5XX معيارياً. وفي الحالتين الأثر واحد: خفض معدل الزحف، ثم إزالة من الفهرس إذا استمرت المشكلة.

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

حلقة التغذية الراجعة: خفض ثم تعافٍ

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

المدة هي ما يحول العارض إلى مشكلة فهرسة

تُعاد محاولة 504 القصيرة العرضية — بضع حالات أثناء ارتفاع ثم تعافٍ سريع — وتتحملها Google إلى حد كبير. ما يهدد إزالة الفهرسة هو نمط مستمر من المهلات عبر نافذة طويلة. تصف آلية «عد لاحقاً» الموثقة لدى Google، حيث تعيد عمداً 503 أو 429 أثناء الحمل الزائد، أفقاً يقارب يومين قبل بدء إسقاط العناوين، لكن هذا الرقم موثق بالاسم لـ503/429 لا لـ504. وتقول إرشادات 5xx الأوسع إن معدل الزحف ينخفض بالتناسب مع عدد العناوين التي تعيد الخطأ ويتعافى تدريجياً بعد سلامة الاستجابات، من دون تحديد أفق ثابت لـ504. تمديد رقم اليومين إلى 504 استنتاج معقول لا حقيقة موثقة؛ تعامل معه هكذا: 504 القصيرة قابلة للتحمل، والنمط المستمر أياماً هو النطاق الذي يستحق القلق، لا تاريخ تشغيل مضمون.

لماذا يهم هذا أكثر في المواقع الكبيرة ومواقع التجارة الإلكترونية

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

زمن استجابة الخادم وTTFB رافعة وقائية قوية — لأسباب مصدرية

هذه نقطة تفوت معظم مقالات 504: انتظار ظهور الأخطاء ثم البحث في السجلات رد فعل. أما مراقبة زمن استجابة الخادم باستمرار لرؤية الانحراف قبل تحوله إلى مهلة فهي عمل استباقي. خادم بطيء لكنه لا ينتهي بعد اليوم قد يصبح خادماً يولد 504 غداً تحت حمل أعلى قليلاً أو تبعية أبطأ قليلاً. ومراقبة TTFB (time to first byte) كإشارة إنذار مبكر مستمرة — لا كقياس بعد الحادث فقط — هي طريقة التقاط الانحراف.

الملاحظة: تراقب TTFB البطء من جهة المصدر. ولن تلتقط CDN ينتهي من الانتظار رغم سلامة المصدر، أو موازن حمل مضبوطاً ليستسلم مبكراً، أو مشكلة في المسار الشبكي بين القفزات؛ في هذه الحالات حدد القفزة المصدرة أولاً. TTFB إصلاح حقيقي ودائم للحالة الشائعة التي يكون فيها المصدر بطيئاً فعلاً، لكنه ليس علاجاً عاماً. بعد تأكيد أن المصدر هو عنق الزجاجة، حسّن بالتخزين المؤقت (الصفحة والكائن وحافة CDN)، واستعلامات قاعدة بيانات أسرع وفهرسة صحيحة، وتوسع تلقائي للحمل، وضبط معقول لمهل مصدر CDN. أما 504 فليست حلاً عاماً.

لماذا يكون «مجرد رفع المهلة» غريزة خاطئة

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

عندما يكون التوقف مخططاً أو تتعمد تخفيف الحمل، فالأداة الصحيحة ليست ترك الصفحات تعيد 504، بل إعادة 503 (مع ترويسة Retry-After) حتى ترسل لمحركات البحث «عد لاحقاً» نظيفة ومقصودة بدلاً من مهلة فوضوية.

تشخيص 504 عملياً

حدد القفزة المصدرة قبل تخمين السبب؛ فهذا الفرق بين إصلاح المشكلة الحقيقية وإصلاح العارض:

  • أعد إنتاجه وحدد أي قفزة أجابت. حمّل الصفحة في متصفح، واضربها عبر curl وراقب time_starttransfer لـTTFB، ومررها عبر زاحف مثل Ahrefs Site Audit أو Screaming Frog لمعرفة هل العطل على مستوى الموقع أم معزول. إن أمكن، اختبر المصدر مباشرةً (بتجاوز CDN/الوكيل) لترى هل يكمل المصدر نفسه.
  • اقرأ السجلات. تخبرك سجلات الخادم والوكيل أي طبقة انتهت مهلتها، ويفضل أن تخبرك بما كان بطيئاً — الاستعلام أو المصدر المتعطل أو مجموعة العمال المستنفدة. اربط التوقيت ومعرف الطلب عبر الطبقات بدلاً من الافتراض.
  • افحص Search Console. تعرض إحصاءات الزحف ارتفاعات رموز الاستجابة ومتوسط زمن الاستجابة؛ كما يوضح تقرير فهرسة الصفحات وفحص عنوان URL هل تواجه Google مهلات (بما فيها «Hostload exceeded»).

المصالحة بين الأدوات مهمة: قد يصف 504 في المتصفح، و5xx في Ahrefs Site Audit، ومهلة في GSC المصدر البطيء نفسه من وجهات نظر مختلفة. لا تفترض أن ثلاث أدوات تعني ثلاث مشكلات.

الرموز ذات الصلة

ينتمي 504 إلى عائلة صغيرة. 500 خطأ خادم عام بلا رمز أكثر تحديداً؛ و502 استجابة مصدر سيئة أو مشوهة؛ و503 «غير متاح» صريح وغالباً مقصود. معرفة الرمز الذي تعيده فعلياً — وإعادة الرمز الصحيح عمداً أثناء التوقف المخطط — نصف المعركة.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.