ما هي إعادة التوجيه فعلًا
إعادة التوجيه ليست صفحة. إنها استجابة بلا محتوى مفيد: رمز حالة من نطاق 3xx وترويسة
Location تحدّد إلى أين ينبغي الذهاب بدلًا من ذلك. يقرأ العميل الترويسة ثم
يرسل طلبًا ثانيًا إلى الرابط الجديد.
هذه البنية مهمة، لأنها تعني أن كل إعادة توجيه تكلّف رحلة كاملة إضافية، ولأن رمز الحالة
هو الشيء الوحيد الذي يخبر أي أحد بأن الانتقال دائم أم لا. ترويسة
Location تقول إلى أين؛ ورمز الحالة يقول ما معنى ذلك.
أخطئ في الثاني ويظل الرابط يعمل للزوّار وهو يفعل بصمت الشيء الخاطئ بترتيبك في البحث وبكل متصفح
رآه.
هناك خمسة رموز لإعادة التوجيه عمليًا، لكن القرار كله يعود إلى سؤال واحد: هل هذا الانتقال دائم أم لا؟
301 و302: الفرق الحقيقي
الرمز 301 Moved Permanently يقول: هذا الرابط انتهى نهائيًا، استخدم الجديد من الآن، وحدّث كل ما خزّنته. والرمز 302 Found يقول: قدّم هذا الرابط الآخر مؤقتًا، لكن استمر في طلب الأصلي، فهو عائد.
يتبع ذلك ثلاث نتائج، وفيها كل الفرق العملي:
- محركات البحث تُوحّد عند 301. يخرج الرابط القديم من الفهرس، ويحلّ الجديد مكانه، وتنتقل إشارات الترتيب التي جمعها القديم إلى الجديد. أما مع 302 فيُبقي المحرك الرابط الأصلي في الفهرس، لأنك أخبرته بأن الأصلي هو الحقيقي.
- المتصفحات تخزّن 301 مؤقتًا، وبقوة غالبًا. المتصفح الذي رأى 301 قد لا يسأل خادمك في المرة التالية مطلقًا، بل يتوجه مباشرة إلى الهدف. أما 302 فلا تُخزَّن افتراضيًا، فيسأل المتصفح في كل مرة.
- يصعب التراجع عن 301. وبسبب ذلك التخزين، تظل إعادة التوجيه التي تندم عليها تحوّل الزوّار العائدين مدة طويلة بعد حذفك لها من الإعدادات. وهذا أغلى خطأ في الموضوع كله.
فالقاعدة ليست «301 أفضل لتحسين الظهور»، مع أنك تقرأ ذلك في كل مكان. القاعدة هي: 301 أفضل حين يكون الانتقال دائمًا حقًا، وسيئة حقًا حين لا يكون.
ما يراه SEO فعلًا
محركات البحث الحديثة أكثر تسامحًا مما توحي به الحكايات المتوارثة، وقد أنتج ذلك أساطير راسخة تستحق التصحيح.
- «إعادة التوجيه 301 تفقد 15% من قوة الروابط.» جاء هذا من معامل تلاشٍ كان مطبقًا قبل سنوات. وقد أعلنت Google أنها لم تعد تطبّق تخفيف PageRank على إعادة التوجيه. فإعادة توجيه 301 منفَّذة جيدًا تنقل الإشارات.
- «إعادة التوجيه 302 لا تنقل شيئًا.» ليس تمامًا. تعامل Google في النهاية 302 القائمة منذ وقت طويل كأنها دائمة، لأن السلوك يخالف التصريح. لكن «في النهاية» تحمل ثقلًا كبيرًا: فأنت تمضي أسابيع أو أشهرًا بالرابط الخطأ مفهرسًا، والتوقيت ليس بيدك.
- «إعادة التوجيه تضر بالترتيب دائمًا.» إعادة توجيه واحدة نظيفة إلى صفحة قريبة الموضوع أمر معتاد ولا يكلّف عادةً شيئًا يُقاس. ما يضر هو التوجيه إلى شيء غير ذي صلة: فتحويل مئة صفحة منتج متوقفة إلى صفحتك الرئيسية يُقرأ كخطأ 404 ناعم، وإشارات تلك الصفحات لا تذهب إلى أي مكان.
المخاطر الحقيقية أقل إثارة من الأساطير: السلاسل والحلقات والإشارات المتضاربة وروابط محوّلة لا تزال في خريطة موقعك. وهي مشروحة أدناه.
أيّهما تستخدم، بحسب الحالة
تكاد كل حالة تقع في واحدة من هذه.
استخدم 301
غيّرت مسارًا أو أعدت هيكلة مساراتك. انتقلت إلى نطاق جديد. اخترت اسم مضيف معياريًا ويجب أن يتبعه
الآخر – من www إلى الجذر أو العكس. تفرض HTTPS. دمجت صفحتين في واحدة. أوقفت
صفحة منتج لصالح الفئة التي حلّت مكانها. في هذه كلها لن يعود الرابط القديم أبدًا، وهو بالضبط ما
تعلنه 301.
استخدم 302
صيانة أو صفحة انتظار ما دامت الصفحة الحقيقية متوقفة. اختبار A/B لنسختين من صفحة. توجيه جغرافي أو لغوي يجب أن يبقى فيه الرابط الأصلي معياريًا. صفحة ترويجية مؤقتة بدل المعتادة. إعادة توجيه لتسجيل الدخول تُعيد المستخدم بعدها. هنا تريد أن يبقى الرابط الأصلي مفهرسًا، و301 كانت ستحذفه.
متى تهم 307 و308
الرمزان 307 Temporary Redirect و308 Permanent Redirect هما
النسختان الصارمتان من 302 و301. الفرق يتعلق بطريقة HTTP: فمع 301 و302 كان العملاء تاريخيًا
يحوّلون POST إلى GET عند اتباع إعادة التوجيه، وقد
ثبت هذا السلوك. أما 307 و308 فيجب أن يحافظا على الطريقة وعلى محتوى الطلب.
لانتقالات الصفحات العادية، 301 و302 هما ما تتوقعه محركات البحث وما ينبغي أن تستخدمه. أما
لواجهات البرمجة وإرسال النماذج، فاستخدم 307 أو 308: فطلب
POST محوَّل يتحول بصمت إلى GET يفقد محتوى الطلب،
والخطأ الناتج مرهق في تتبعه.
الرمز 303 والشيء الوحيد الذي يصلح له
الرمز 303 See Other يحوّل الطلب التالي إلى GET عن قصد.
واستخدامه السليم هو نمط «أرسل ثم حوّل»: تستقبل إرسال نموذج، ثم تعيد 303 إلى صفحة نتائج حتى لا
يؤدي تحديث المتصفح إلى إرسال النموذج مرة أخرى. وهو ليس إعادة توجيه عامة، ولا موضع له في انتقال
الصفحات.
التحديث عبر meta وإعادة التوجيه بجافاسكربت
توجد طريقتان لنقل الزائر من غير HTTP، وكلتاهما أسوأ مما تبدو.
تحديث meta (<meta http-equiv="refresh">) يتولاه
المتصفح بعد تنزيل الصفحة. ومحركات البحث تتبعه وتعامل التحديث بلا تأخير كإعادة توجيه دائمة عادةً،
لكنه بطيء، وغير مرئي لكل ما لا يصيّر HTML، ويُفسد زر الرجوع، ومع تأخير يصبح مشكلة وصول حقيقية.
لا تستخدمه إلا إذا لم يكن لديك أي وصول إلى إعدادات الخادم.
إعادة التوجيه بجافاسكربت أسوأ أيضًا. فهي تتطلب تحميل الصفحة وتنفيذ السكربت أولًا، ولن يتبعها أي شيء لا ينفّذ جافاسكربت، وتهدر الطلب الأول بكامله. وكلتاهما حل ملتوٍ لا أداة. فإن كنت تستطيع تعيين رمز حالة، فعيّن رمز حالة.
السلاسل والحلقات: من حيث تتسرّب الزيارات فعلًا
هذا هو الجزء الذي يكلّف مالًا حقيقيًا، وهو شبه دائمًا غير مقصود.
السلسلة هي إعادة توجيه إلى إعادة توجيه. تتراكم على سنوات، قاعدة بعد قاعدة:
http://example.com → https://example.com →
https://www.example.com →
https://www.example.com/new-page. وكل قفزة رحلة كاملة، فسلسلة من أربع قفزات
على اتصال محمول بطيئة بشكل ملحوظ، والزواحف تستسلم للسلاسل الطويلة: تتبع Google عددًا محدودًا من
القفزات ثم تتوقف. فكّك السلاسل بتوجيه الرابط الأول مباشرة إلى الهدف النهائي.
الحلقة تعيد العميل إلى حيث بدأ ولا تُحمَّل الصفحة أبدًا. والسبب الكلاسيكي
قاعدتان متعارضتان: واحدة تفرض www وأخرى تفرض الجذر، وكل منهما تنقض
الأخرى. تعرض المتصفحات ERR_TOO_MANY_REDIRECTS بعد نحو عشرين قفزة. فإن رأيت
ذلك فعندك قاعدتان تتصارعان، لا قاعدة واحدة معطوبة.
تسرّبان آخران يستحقان الفحص:
- روابط محوّلة متروكة في خريطة الموقع. ينبغي أن تسرد خريطة الموقع العناوين النهائية فقط. فإدراج رابط يحوّل يعني إخبار الزاحف بأن يصرف ميزانيته على قفزة.
- وسم معياري يعارض إعادة التوجيه. إذا أعلنت الصفحة التي تهبط عليها رابطًا معياريًا يعود إلى القديم، فقد أعطيت تعليمتين متناقضتين، وسيختار المحرك بالنيابة عنك.
كيف تتحقق مما يعيده رابط فعلًا
لا يمكنك تمييز 301 من 302 بالنظر إلى شريط العنوان، فكلتاهما تنتهيان في المكان نفسه. عليك قراءة الاستجابة.
تحقّق من ثلاثة أمور:
- رمز حالة الاستجابة الأولى، لا الأخيرة. تعرض لوحة الشبكة في المتصفح التسلسل كاملًا، والسطر الأول هو الذي يعلن الدوام.
- تسلسل القفزات كاملًا. عُدّ عمليات إعادة التوجيه بين الرابط الذي أدخلته والصفحة التي ظهرت. ما زاد على واحدة يستحق نظرة، وما زاد على اثنتين سلسلة ينبغي تفكيكها.
- هل تخلط السلسلة الرموز. إعادة توجيه 301 يتبعها 302 نمط شائع ومحيّر يقول: «انتقل نهائيًا إلى مكان مؤقت».
تُظهر أداة فحص رموز حالة HTTP حالة
كل قفزة وترويسة Location في كل خطوة، وهي بالضبط الصورة التي تحتاجها. ولقواعد
HTTPS واسم المضيف تحديدًا، تأكّد بأداة
فحص شهادة SSL من أن الشهادة تغطّي المضيف
الذي تحوّل إليه: فإعادة التوجيه إلى مضيف لا تغطّيه الشهادة تنتج صفحة تحذير بدل موقع
يعمل.
أخطاء شائعة
- استخدام 301 لشيء مؤقت. فالمتصفحات تخزّنها، ويظل الزوّار العائدون يُحوَّلون بعد حذفك للقاعدة. ومسح ذلك ليس بيدك.
- استخدام 302 لانتقال دائم ثم التساؤل عن سبب بقاء الرابط القديم هو المتصدّر. لقد أخبرت المحرك بأن القديم هو المعياري.
- تحويل كل ما توقّف إلى الصفحة الرئيسية. تعامل Google الهدف غير ذي الصلة كخطأ 404 ناعم. حوّل إلى أقرب صفحة مكافئة، أو أعد خطأ 410 نظيفًا إن لم يوجد مكافئ.
- ترك السلاسل تتراكم. فكل قاعدة جديدة تتكدّس فوق السابقة بدلًا من أن تحلّ محلّها.
- قاعدتان لاسم المضيف تتصارعان، فتنتج حلقة. اختر اسم مضيف معياريًا واحدًا واكتب له قاعدة واحدة بالضبط.
- تحويل
POSTبـ301 أو 302. تصبح الطريقةGETويُفقد المحتوى. استخدم 307 أو 308 لكل ما ليس عرضًا عاديًا لصفحة. - ترك روابط محوّلة في خريطة الموقع، أو إبقاء روابطك الداخلية على الرابط القديم. حدّث روابطك أنت؛ فإعادة التوجيه من أجل روابط الآخرين.
الخلاصة
الرمز 301 يعني دائمًا: تنقل محركات البحث إشارات الترتيب إلى الرابط الجديد وتخزّنه المتصفحات
بقوة، فاستخدمه لتغيير المسارات، ونقل النطاق، وفرض HTTPS، وتوحيد اسم المضيف – ولا تستخدمه أبدًا لشيء
قد تعكسه. والرمز 302 يعني مؤقتًا: يبقى الرابط الأصلي مفهرسًا، وهو الصحيح تمامًا لصفحات الصيانة
واختبارات A/B وإعادة توجيه تسجيل الدخول. استخدم 307 أو 308 حين يجب أن ينجو
POST من إعادة التوجيه، وأبقِ السلاسل في قفزة واحدة، وتأكّد من أن لا قاعدة
تعيد إلى نقطة انطلاقها. تحقّق مما يعيده رابط فعلًا، قفزة بقفزة، عبر
أداة فحص رموز حالة HTTP المجانية، وإن
كنت تحوّل إلى مضيف جديد فتأكّد أولًا من شهادته عبر
أداة فحص شهادة SSL. ولجولة أوسع على معنى
كل فئة من الاستجابات، يغطّي
الدليل الكامل لرموز حالة HTTP
البقية.
أدوات وأدلة ذات صلة:
- بحث أكواد حالة HTTP — مرجع سريع لكل رمز حالة HTTP ومعناه.
- فاحص رؤوس الأمان — تحقق من HSTS وCSP وX-Frame-Options ورؤوس الأمان الرئيسية الأخرى.
- 404 أم 410: ماذا يقول كلٌّ منهما لجوجل عن صفحة محذوفة — ماذا يقول 404 وماذا يقول 410 للزاحف
أسئلة شائعة
هل أستخدم إعادة توجيه 301 أم 302؟⌄
استخدم 301 حين لا يعود الرابط القديم أبدًا: مسار تغيّر، أو نطاق جديد، أو فرض HTTPS، أو الحسم بين www والجذر. واستخدم 302 حين يجب أن يبقى الرابط الأصلي هو المعياري، مثل صفحة صيانة أو اختبار A/B أو إعادة توجيه لتسجيل الدخول تُعيد الزائر بعدها.
هل تضرّ إعادة التوجيه 301 بتحسين الظهور؟⌄
لا، إذا استُخدمت بشكل صحيح. فـ Google لم تعد تطبّق معامل تلاشٍ على إعادة التوجيه، وبذلك تنقل 301 إلى صفحة قريبة الموضوع إشارات ترتيب الرابط القديم. ما يضر هو التحويل إلى صفحة غير ذات صلة، وتُعامل كخطأ 404 ناعم، والسلاسل الطويلة التي تتوقف الزواحف عن تتبعها.
هل يمكن التراجع عن إعادة توجيه 301؟⌄
على الخادم نعم، لكن المتصفحات تخزّن 301 بقوة وقد تستمر في تحويل الزوّار العائدين مدة طويلة بعد حذفك للقاعدة، ولا يمكنك مسح ذاكرتها. ولهذا لا ينبغي استخدام 301 إلا لانتقال أنت واثق منه؛ وإن كان هناك أي احتمال للعكس فاستخدم 302.
ما الفرق بين 302 و307؟⌄
كلاهما مؤقت. والفرق في طريقة HTTP: فالعملاء الذين يتبعون 302 كانوا تاريخيًا يحوّلون POST إلى GET، وقد صار ذلك هو السلوك المعتاد، أما 307 فيجب أن يحافظ على الطريقة وعلى محتوى الطلب. استخدم 302 لانتقالات الصفحات العادية و307 لواجهات البرمجة وإرسال النماذج.
كيف أتحقق إن كان رابط يعيد 301 أم 302؟⌄
لا يمكن معرفة ذلك من شريط العنوان، لأن كلتيهما تنتهيان في المكان نفسه. اقرأ رمز حالة الاستجابة الأولى وتابع كل قفزة. تُظهر أداة فحص رموز الحالة الرمز وترويسة Location في كل خطوة، وهذا يكشف أيضًا السلاسل وأي قفزة تخلط الرموز الدائمة والمؤقتة.
خبرة عملية تزيد على 15 عامًا في تطوير الويب وأمنه. يركّز على أمن الويب العملي: الحفاظ على المواقع آمنة وموثوقة وسهلة التشخيص. وُجد BuildToolForge ليجعل هذه الفحوصات مجانية وخاصة ومفهومة. تعمل الأدوات في متصفحك كلما أمكن، ولا يُخزَّن أي شيء تُدخله في أداة.
كيف نكتب أدلتنا: يُكتب كل دليل من خبرة عملية، ويُراجَع وفق المعايير الرسمية، ويُختبر بأدواتنا على نطاقات حقيقية، ونحدّثه عندما تتغير المعايير أو الأدوات. وجدت خطأً؟ راسلنا على contact@buildtoolforge.com.