301 مقابل 308: إعادة التوجيه الدائمة والحفاظ على الطريقة

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

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

إعادة التوجيه 301 و308 دائمة، وتعامل Google وBing 308 مثل 301 في الزحف والفهرسة والإشارات؛ وتصف وثائق Google 308 بأنها «مكافئة لـ301»، ويقول Gary Illyes إنهما «مُدمجان مع 301»، ويؤكد Bing المعاملة نفسها. على مستوى البروتوكول، يضمن 308 إعادة إرسال طريقة الطلب نفسها (يبقى POST هو POST وتنتقل الحمولة)، بينما يظل 301 — من عصر HTTP/1.0 — ملتبسًا بشأن تحويل POST إلى GET، ولا تتناول RFC PUT/DELETE في أي من الاتجاهين. لذلك يظل 301 الافتراضي العملي لنقل الصفحات أو المواقع؛ والجأ إلى 308 عندما يجب الحفاظ على طلب غير GET، مثل نقطة API أو webhook أو نموذج أو تدفق POST للمصادقة. وحتى حينها لا يضمن الرمز وحده بقاء بيانات الاعتماد أو ملفات تعريف الارتباط أو قابلية التكرار؛ اختبر العميل الحقيقي. لا توجد أفضلية SEO لأي منهما، ومن يخبرك بنقل 301 جماعيًا إلى 308 يبيع خرافة دحضتها المحركات صراحة.

الخلاصة — إعادة التوجيه 301 و308 دائمة، وتعالج Google وBing 308 بالطريقة نفسها التي تعالج بها 301؛ تقول وثائق Google إن 308 «مكافئة لـ 301»، ويقول Illyes «نحن ندمجها مع 301»، ويؤكد Canel أن Bing يعاملهما بالطريقة نفسها. ويورد المصدر قول Illyes: “we just merge that with 301,” (ترجمة) «نحن ندمجها مع 301». على مستوى البروتوكول، الفرق الأساسي هو الحفاظ على الطريقة: يضمن 308 (وفق RFC 7538 لعام 2015) أن يعيد العميل استخدام الطريقة نفسها على العنوان الجديد (وتنتقل الحمولة معه)، بينما ينتمي 301 إلى عصر HTTP/1.0 وهو ملتبس تحديدًا بشأن تحويل POST إلى GET — ولا تتناول المواصفة PUT أو DELETE في أي من الاتجاهين، فلا تعمم تحفظ POST عليهما. وُجد 308 ليكون الشقيق الدائم لـ307؛ فقد عرّف RFC 7231 رمزًا مؤقتًا يحفظ الطريقة (307) من دون رمز دائم، فجاء 308 لسد الفجوة. اجعل 301 افتراضيًا لنقل الصفحات أو المواقع أو HTTPS العادي (فهو أقدم وأوسع تعرفًا وأفضل دعمًا لدى CDN وCMS والإضافات). والجأ إلى 308 فقط عندما يجب أن تحافظ على طلب غير GET — نقاط API، وعناوين webhook، وأهداف النماذج، وتدفقات POST للمصادقة — وحتى حينها تحقق من بيانات الاعتماد وملفات تعريف الارتباط وقابلية التكرار لدى العميل الحقيقي بدل افتراض أن رمز الحالة يغطيها. لا يملك أي منهما أفضلية SEO؛ فهذه خرافة دحضتها المحركات صراحة.

يبدأ الفرق الدلالي أولًا

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

  • 301 (منقول بشكل دائم) هو رمز إعادة التوجيه الدائم الأصلي، ويعود إلى عصر HTTP/1.0. وكان، على نحو جوهري، ملتبسًا دائمًا بشأن وجوب الحفاظ على طريقة الطلب. عمليًا حوّلت المتصفحات والعملاء الآخرون تاريخيًا POST إلى GET عند اتباع 301؛ وهذا لا يضر صفحة عادية، لكنه يكسر بصمت كل ما يعتمد على الطريقة أو جسم الطلب.
  • 308 (إعادة توجيه دائمة) هو النسخة الصارمة. فهو يضمن أن يعيد العميل استخدام الطريقة والجسم نفسيهما تمامًا على العنوان الجديد. يبقى POST طلب POST، وتنتقل الحمولة معه.

الجملة التي أشرح بها الأمر: 308 هو 301 مع ضمان إضافي بأن المتصفح لن يستبدل POST بـGET بهدوء. Evidence for this claim RFC 9110 defines both 301 and 308 as permanent redirects; 308 forbids changing the request method, while 301 permits POST-to-GET rewriting for historical reasons. Scope: HTTP semantics for 301 and 308 responses. Confidence: high · Verified: IETF: RFC 9110 §§15.4.2, 15.4.9 IETF: RFC 7538 §3 — 308 Permanent Redirect

لماذا وُجد 308 أصلًا: «307 الدائم» المفقود

هذا هو الجزء الذي يكاد لا يشرحه أحد، وهو أوضح طريقة لفهم المقارنة كلها. المسألة فجوة في المواصفة.

تأتي رموز إعادة التوجيه الحديثة في شبكة مؤقت/دائم، ومرن/صارم:

مؤقتدائم
قد تتغير الطريقة (مرن)302301
الطريقة محفوظة (صارم)307308

عرّف RFC 7231 الرمز 307 — إعادة توجيه مؤقتة تحفظ الطريقة — بوصفه النظير الصارم للرمز 302 المرن والملتبس. لكنه لم يعرّف نظيرًا دائمًا يحفظ الطريقة. كان هناك رمز مؤقت صارم بلا رمز دائم صارم. لذلك أضاف RFC 7538 (أبريل 2015) الرمز 308 لسد الفجوة تحديدًا: فهو بالنسبة إلى 301 مثلما يكون 307 بالنسبة إلى 302. وإذا قرأت مقارنة 302-vs-307 في هذه المجموعة، فهذه المقارنة 301-vs-308 هي العلاقة نفسها في الصف الأعلى — دائم مرن مقابل دائم صارم.

سبق 301 هذا الإطار كله. فقد جاء من HTTP/1.0، قبل أن تُصاغ فكرة «الحفاظ على الطريقة» رسميًا؛ وهذا بالضبط سبب التباسه وسبب اختراع 308 بدل الاكتفاء بتوضيحه.

ماذا يعني الحفاظ على «الطريقة والجسم» عمليًا

في الغالبية الساحقة من عمليات إعادة التوجيه — ينقر شخص على رابط، فيرسل المتصفح GET، ثم يرسله الخادم إلى مكان آخر — لا يوجد فرق عملي. فالمتصفحات الحديثة تحفظ GET مع 301 بلا مشكلة. ولا يظهر الفرق إلا عندما لا يكون الطلب GET عاديًا:

نوع الطلبخلف 301خلف 308
GET (صفحة عادية)يُتبع كـGET (عمليًا لا مشكلة)يُتبع كـGET
POST (نموذج أو API)قد يتحول بصمت إلى GET وتضيع الحمولةيُعاد كـPOST مع بقاء الحمولة
PUT / DELETE (API)غير موثق في RFC — السماح التاريخي هو POST→GET فقط، لذا السلوك خاص بالعميل وغير متحقق منهتُحفظ الطريقة (قاعدة الاتباع الآلي في 308 ليست خاصة بـPOST)

لذلك يتركز خطر 301 في POST وأجسام الطلبات — النماذج وواجهات API وعناوين webhook وتدفقات المصادقة. والقول إن «301 سيكسر نموذجي دائمًا» مبالغة؛ فـGET العادي آمن. والاستثناء التاريخي الذي تذكره المواصفة لـ301 هو POST→GET تحديدًا؛ ولا توثق سلوك PUT أو DELETE، فلا تفترض طريقة تعامل أي رمز معهما من دون اختبار العميل الفعلي. والواضح في المواصفة هو أن 308 يمنع العميل من تغيير أي طريقة يعيدها — والقاعدة ليست مقصورة على POST. ما يُضمن هنا هو الحفاظ على الطريقة؛ ولا يعني ذلك ضمان بقاء الترويسات أو ملفات تعريف الارتباط أو بيانات الاعتماد أو المعاملة الأوسع بلا تغيير — فهذه أمور خاصة بالعميل والتكامل وتستحق الاختبار في كل ما يهم (انظر قائمة التحقق أدناه).

هل تعامل Google 301 و308 بشكل مختلف في SEO؟ لا.

هذا من أسئلة إعادة التوجيه النادرة التي تتفق فيها الوثائق وموظفو Google وBing جميعًا — وقد اتفقوا باستمرار لسنوات.

تضع وثائق رموز حالة HTTP لدى Google 301 و308 في المجموعة نفسها. يقول صف 301: “Google follows the redirect, and Google systems use the redirect as a strong signal that the redirect target should be processed.” (ترجمة) «يتبع Google إعادة التوجيه، وتستخدم أنظمة Google إعادة التوجيه إشارة قوية إلى أن وجهة إعادة التوجيه ينبغي معالجتها». أما صف 308 فعبارة واحدة: “Equivalent to 301.” (ترجمة) «مكافئة لـ301». وهذه أقوى عبارة قابلة للاستشهاد في الإجابة — إذ تساوي وثائق Google نفسها بين الرمزين حرفيًا. Evidence for this claim Google treats 308 as equivalent to 301 for Search while advising sites to use the semantically appropriate status code. Scope: Google Search processing; client behavior still differs when method preservation matters. Confidence: high · Verified: Google: HTTP status codes and Search

وتعزز دليل إعادة التوجيه ذلك؛ فهو يفتتح بالقول: “The 301 and 308 status codes mean that a page has permanently moved to a new location” (ترجمة) «تعني رموز الحالة 301 و308 أن الصفحة انتقلت بشكل دائم إلى موقع جديد»، ثم لا يرسم أي فرق آخر بينهما في أي موضع.

وقال موظفو Google الأمر نفسه، خارج الوثائق، لسنوات وقبل أن يُكتب فيها:

  • Gary Illyes (2021): في نقاش حول معاملة Google لـ308 مثل 301، قال إن Google “just merge[s] that with 301 so we really don’t care.” (ترجمة) «نحن ندمجها مع 301، لذلك لا نهتم حقًا». وصاغ Barry Schwartz في تقريره الأمر باعتباره اللحظة التي أصبح فيها الموقف رسميًا: “Three years later it was added to the official Google documents that Google treats 308 redirects like 301 redirects — so now it is official.” (ترجمة) «بعد ثلاث سنوات أُضيف إلى وثائق Google الرسمية أن Google تعامل إعادة توجيه 308 مثل 301 — فأصبح الأمر رسميًا الآن».
  • John Mueller (2018): قبل ذلك بثلاث سنوات — “If you use it [a 308 redirect] like a 301 we’ll treat it as such.” (ترجمة) «إذا استخدمته (إعادة توجيه 308) مثل 301 فسنُعامله كذلك». وهذا هو موقف Google غير الرسمي منذ زمن طويل قبل أن تلحق به الوثائق.

هناك تفصيل مهم في وثائق Google، وهو أطروحة المقال كله. فبعد مساواة الرمزين مباشرة تضيف Google: “While Google treats these status codes the same way, keep in mind that they’re semantically different. Use the status code that’s appropriate for the redirect so other clients (for example, e-readers, other search engines) may benefit from it.” (ترجمة) «تتعامل Google مع هذه الرموز بالطريقة نفسها، لكن تذكّر اختلافها الدلالي؛ واختر رمز الحالة الملائم لإعادة التوجيه كي تستفيد منه العملاء الأخرى، مثل قارئات الكتب الإلكترونية ومحركات البحث.» أي: اختر الرمز للصحة وقابلية التشغيل البيني، لا لـSEO — لأن SEO لا يهتم.

هل يعامل Bing 301 و308 بشكل مختلف؟ أيضًا لا.

تتناول معظم الكتابات هذا الموضوع من زاوية Google فقط، فتترك فجوة. وقد أجاب Fabrice Canel من Bing مباشرة في سبتمبر 2024، ردًا على سؤال حول معاملة Bing لإعادة التوجيه الدائمة 308 مثل 301: “Bing treats 308 redirects the same as 301 redirects.” (ترجمة) «يتعامل Bing مع عمليات إعادة التوجيه 308 بالطريقة نفسها التي يتعامل بها مع عمليات إعادة التوجيه 301.» ولاحظ Schwartz أن ذلك يطابق ما قالته Google عام 2021.

إذن يسجل محركا البحث الكبيران الموقف بوضوح: 308 مطابق وظيفيًا لـ301 في الزحف والفهرسة وتجميع الإشارات. ولا يوجد محرك يعامل 308 على أنه أفضل لـSEO.

الخرافة التي ينبغي هدمها: «308 أفضل لـSEO / انقل كل عمليات 301»

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

  • تقول وثائق Google إن 308 “equivalent to 301.” (ترجمة) «مكافئة لـ301».
  • Illyes: “we just merge that with 301.” (ترجمة) «نحن ندمجها مع 301».
  • Canel: Bing “treats 308 redirects the same as 301 redirects.” (ترجمة) «يتعامل مع عمليات إعادة التوجيه 308 بالطريقة نفسها التي يتعامل بها مع عمليات إعادة التوجيه 301».

لا يمنح تبديل 301→308 أي مكسب في الترتيب، ويضيف خطرًا على الأدوات القديمة أو أدوات الحافة التي لا تتعرف بصورة سليمة إلا على 301/302 (سأعود إلى ذلك أدناه). إنه تغيير شكلي بلا فائدة.

يجدر مقارنة ذلك بخرافة متنازع عليها حقًا: ادعاء أن عمليات 301 «تفقد أو تخفف PageRank». ما زالت هذه الدعوى تعود إلى الظهور وقد دحضتها Google مرارًا. لكن لاحظ الفرق: خرافة تخفيف PageRank هي مفهوم خاطئ تصححه Google، أما تكافؤ 301 و308 فـGoogle وBing والوثائق تقول الشيء نفسه عنه باستمرار منذ 2018. هذه مسألة محسومة لا خلافية. (القصة الكاملة لـPageRank موجودة في مقارنة 301-vs-302 في هذه المجموعة.)

متى يكون 308 هو الاختيار الصحيح تقنيًا

الجأ إلى 308 عندما يؤدي فقدان طريقة الطلب أو جسمه إلى كسر الوظيفة (لا الترتيب):

  • نقاط نهاية API التي تنقلها، حيث يرسل العملاء POST/PUT/DELETE.
  • عناوين webhook — يرسل الطرف الآخر حمولة POST لا يمكنك تحمل إسقاطها.
  • أهداف إرسال النماذج — يرسل <form> بيانات يجب أن تصل إلى العنوان الجديد سليمة.
  • تدفقات POST للمصادقة أو تسجيل الدخول حيث تكون بيانات الاعتماد أو الرموز داخل الجسم.

في POST تحديدًا، يخاطر 301 بتحويل العميل الطلب إلى GET وترك الجسم خلفه؛ أما 308 فيمنع هذا التحويل. وبالنسبة إلى PUT/DELETE لا تشرح RFC سلوك 301 في أي من الاتجاهين، فلا تفترض — فقاعدة 308 الخاصة بالحفاظ على الطريقة تظل سارية مهما كانت الطريقة.

قبل نقل واجهة API أو webhook أو تدفق مصادقة، لا يضمن رمز الحالة وحده بقاء كل شيء بعد القفزة؛ ومن المفيد فحص الأمور التالية ضمن التغيير نفسه:

  • بيانات الاعتماد وملفات تعريف الارتباط وترويسات المصادقة. لا يقدم أي من الرمزين وعدًا هنا؛ اختبر العميل الفعلي (المتصفح أو SDK أو مرسل webhook) بدل افتراض أنها ستنتقل.
  • السلوك عبر الأصول المختلفة. قد تغيّر إعادة التوجيه التي تعبر أصلًا ما يرسله المتصفح أو عميل fetch؛ تحقق من المستدعي الحقيقي، لا من curl اليدوي فقط.
  • قابلية التكرار والآثار الجانبية المكررة. إذا لم يكن الطلب المتكرر idempotent (مثل webhook ينشئ سجلًا أو POST للدفع)، فقد يؤدي تكرار العميل للطلب بعد إعادة التوجيه إلى إطلاقه مرتين. تأكد من أن الوجهة تتعامل مع التكرار بأمان قبل الاعتماد على 308 كي «يعمل فحسب».
  • اختبر النقل وجهّز التراجع مع مراعاة التخزين المؤقت. كل من استجابتي 301 و308 قابل للتخزين مؤقتًا بالاستدلال، ولذلك قد يستمر عميل أو وسيط خزّن الاستجابة القديمة في استخدامها بعد تغيير الرمز. اختبر بعميل جديد وآخر زار العنوان قبل التغيير، وضع خطة تراجع تراعي الحالة المخزنة بدل افتراض أن التبديل فوري.

متى يبقى 301 هو الافتراضي العملي

في كل ما هو GET عادي — وهو معظم ما يعيد متخصصو SEO توجيهه — يظل 301 هو الافتراضي المعقول:

  • تغييرات الصفحات والعناوين العادية ونقل المحتوى.
  • تغييرات النطاق ودمج المواقع.
  • الانتقال من HTTP إلى HTTPS.
  • توحيد نسخ www/non-www أو أشكال الشرطة المائلة النهائية.

لماذا نستخدم الرمز الأقدم إذا كان 308 «أكثر صرامة»؟ لثلاثة أسباب عملية:

  1. تعرف أوسع. يسبق 301 الرمز 308 بعقدين، وتتعرف عليه الغالبية الساحقة من المتصفحات والوكلاء الوسيطين وشبكات CDN والزواحف وأدوات التحليلات الحالية والقديمة. أصبح 308 مدعومًا على نطاق واسع بعد أكثر من عقد، لكن ذيل العملاء القديمة وأدوات الحافة أقل يقينًا — فلا تفترض أن كل أداة في مكدسك تتعرف عليه قبل التحقق.
  2. واقع الأدوات. تضبط أدوات كثيرة افتراضيًا 301/302 أو تعرضهما بوضوح فقط. وتميل إضافات إعادة التوجيه في WordPress وبناة قواعد Cloudflare وبعض منصات serverless/CDN إلى 301/302، وقد تصدر بعض الأدوات 302/307 مهما ظننت أنك ضبطت. لمالك الموقع غير التقني، غالبًا ما يكون «ما تدعمه منصتي فعليًا» هو العامل الحاسم.
  3. لا شيء تكسبه. بما أن Google وBing تعالجان الرمزين بالطريقة نفسها في الزحف والفهرسة، فلا فائدة من اختيار الرمز الأقل دعمًا لنقل صفحة عادية.

القاعدة العملية: GET عادي → 301؛ طلب غير GET يجب الحفاظ عليه → 308.

كيفية تنفيذ كل واحد

الصياغة متشابهة تقريبًا — أنت تغيّر الرقم فقط.

Apache (.htaccess)

# 301 — permanent, for a normal page move
Redirect 301 /old-page /new-page

# 308 — permanent + method-preserving, for an API/form endpoint
RewriteEngine On
RewriteRule ^old-api/(.*)$ /new-api/$1 [R=308,L]

nginx

# 301
location = /old-page {
    return 301 /new-page;
}

# 308 — preserves POST body to the API
location = /old-api {
    return 308 /new-api;
}

تنطبق ملاحظة على كليهما: بعض شبكات CDN ومنصات الحافة وإضافات CMS لا تلتزم بـ308 الذي تضبطه، فتصدر 301/302/307 بدلًا منه. إذا كان الحفاظ على الطريقة مهمًا فعلًا، تحقق من الاستجابة التي ترسلها حقًا (نفّذ curl على العنوان واقرأ سطر الحالة) بدل الثقة بالإعداد. كما تختلف صياغة التوجيهات بين إصدارات الخادم والأطر؛ راجع وثائق إصدار Apache/nginx الحالي لديك (أو إطارك إذا كان هو الذي ينشئ إعادة التوجيه) ولا تفترض أن المقتطفات أعلاه مطابقة حرفيًا لإعدادك الحالي.

رافعة تتفوق على اختيار 301 مقابل 308: طول السلسلة

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

أين يقع هذا الموضوع

301 و308 هما رمزا إعادة التوجيه الدائمان، ولكل منهما تعمق خاص في هذه المجموعة إلى جانب نظيريهما المؤقتين (302 وشقيقه الصارم 307) والعضو الآخر من عائلة 3xx وهو 303. وترتبط المقارنات بشبكة: 301-vs-302 زوج دائم مقابل مؤقت، و302-vs-307 زوج مؤقت مرن مقابل صارم، وهذه المقالة — 301-vs-308 — زوج دائم مرن مقابل صارم. وانتبه أيضًا إلى المخاطر التشغيلية: سلاسل إعادة التوجيه وحلقاتها. ولعائلة استجابات الخادم كاملة، راجع محور رموز حالة HTTP؛ فنوع إعادة التوجيه إحدى إشارات canonicalization التي يغطيها canonicalization.

Try it live

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

Open in new tab ↗
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.