إيه الفرق بين تحويل 301 و 302؟ وأستخدم أنهي واحد إمتى؟
301 معناه إن الصفحة اتنقلت على طول، فجوجل بيشيل الرابط القديم من النتائج ويحط الجديد مكانه. 302 معناه نقل مؤقت، فجوجل غالبًا بيسيب الرابط القديم في النتائج لأنه متوقع يرجع. لو النقل دائم استخدم 301 (أو 308)، ولو مؤقت فعلًا استخدم 302 (أو 307).
التشخيص
هتعرف إن عندك المشكلة لو:
- نقلت صفحة لرابط جديد والرابط القديم لسه بيظهر في جوجل بعد أسابيع
- Search Console بيعتبر الرابط القديم هو الأساسي (Canonical) مش الجديد
- أداة فحص التحويلات بتقول 302 مع إن النقل نهائي
- إضافة أو استضافة بتحوّل بـ 302 افتراضيًا من غير ما تاخد بالك
السبب غالبًا:
استخدام 302 للنقل الدائم (افتراضي في PHP وبعض الإضافات والاستضافات)، فجوجل يفهم إن الرابط القديم هيرجع ويفضل محتفظ بيه.
الأدوات اللي هتحتاجها
خطوات الحل
افهم الفرق في سطرين
301 و 308 = النقل دائم: جوجل بينقل الترتيب والإشارات للرابط الجديد ويعرضه بداله. 302 و 307 = النقل مؤقت: جوجل بيعتبرها إشارة ضعيفة ويفضّل يعرض الرابط القديم. الفرق بين 301 و 308 (وبين 302 و 307) تقني: 308 و 307 بيحافظوا على نوع الطلب (POST يفضل POST)، وده بيهم الفورمز والـ APIs أكتر من السيو.
الرابط القديم301 أو 308: نقل دائمجوجل يعرض الرابط الجديداعرف إمتى تستخدم كل واحد
301: تغيير رابط صفحة، نقل دومين، دمج مقالين، تحويل http لـ https أو www. 302: عرض مؤقت أو صيانة لصفحة لفترة قصيرة، صفحة منتج خلص لفترة وهيرجع، تجربة A/B. لو مش متأكد والنقل مش هيرجع، استخدم 301.
نوع التحويل المناسبغيّرت رابط مقال 301 نقلت الموقع لدومين جديد 301 صفحة صيانة لمدة يومين 302 نقل دائم بـ 302 غلط: استخدم 301 شاشة توضيحية مبسطة من الحالة، والأرقام أمثلة. افحص التحويل اللي عندك فعلًا
الصق الرابط القديم في httpstatus.io. لازم يوصل للصفحة الجديدة في خطوة واحدة بكود 301، والصفحة الأخيرة ترجع 200. كتير من الاستضافات والإضافات بتعمل 302 افتراضيًا، وفي PHP لو كتبت header("Location: ...") من غير ما تحدد الكود بيطلع 302.
Check statushttps://example.com/old-page/ 302 Found https://example.com/new-page/ 200 OK شاشة توضيحية مبسطة من httpstatus.io، والأرقام أمثلة. غيّر الكود لـ 301
في Apache استخدم Redirect 301، وفي Nginx استخدم return 301، وفي Cloudflare اختار 301 في Redirect Rules. لو بتكتب PHP حدد الكود بنفسك.
فين بالظبط: الكود ده يتحط في ملف .htaccess في فولدر public_html (جذر الموقع)، من File Manager في cPanel (فعّل Show Hidden Files عشان يبان) أو بالـ FTP. حطه فوق سطر # BEGIN WordPress مش جواه، وخد نسخة من الملف قبل التعديل. لو مش عايز تلمس الملف في WordPress: إضافة Redirection، ثم Tools، ثم Redirection، وAdd New. وده للسيرفرات Apache وLiteSpeed بس.
apache# Apache (.htaccess) Redirect 301 /old-page/ https://example.com/new-page/ # Nginx location = /old-page/ { return 301 https://example.com/new-page/; } # PHP header('Location: https://example.com/new-page/', true, 301); exit;
كمّل الإشارات للرابط الجديد
التحويل لوحده مش كفاية: غيّر الروابط الداخلية للرابط الجديد، وحطه في الـ Sitemap، وخلّي الـ canonical بتاع الصفحة الجديدة لنفسها. وسيب الـ 301 شغال سنة على الأقل، والأفضل على طول.
لو 302 قعد كتير
جوجل بيقول إن 302 لو فضل شغال مدة طويلة ممكن يعامله كنقل دائم. بس متعتمدش على ده: لو النقل خلاص نهائي غيّره لـ 301 عشان الصورة تبقى واضحة من الأول.
لو موقعك WordPress
نفس الحل من لوحة تحكم ووردبريس: الإعدادات اللي تغيّرها، والإضافات اللي تختصر عليك.
- اختار 301 وأنت بتعمل التحويل
المكان: الأدواتRedirectionأضف تحويل جديد
في Redirection افتح «أضف تحويل جديد»، واكتب الرابط القديم والجديد، ومن الخيارات اختار «301 - Moved Permanently».
- راجع التحويلات القديمة
المكان: الأدواتRedirectionالتحويلات
افتح قائمة التحويلات واتأكد من عمود الكود. أي تحويل دائم مكتوب 302 أو 307 غيّره لـ 301.
- ظبط النوع الافتراضي في Rank Math
المكان: Rank Mathالإعدادات العامةRedirections
لو بتستخدم وحدة التحويلات في Rank Math، خلّي نوع التحويل الافتراضي 301 من إعداداتها.
ووردبريس نفسه لما تغيّر رابط مقال بيحاول يحوّل القديم تلقائي بـ 301، بس الأضمن تعمل التحويل بإيدك من الإضافة.
اختبر فهمك
غيّرت رابط مقال بشكل نهائي. تستخدم أنهي تحويل؟
عامل صفحة صيانة مؤقتة ليومين والصفحة الأصلية هترجع. الأنسب؟
الفرق الأساسي بين 308 و 301؟
الإجابة دي فادتك؟
شكرًا! رأيك بيساعدنا نحسّن الإجابة.
أسئلة مرتبطة
عندي أخطاء 404 كتير وسلاسل تحويل (Redirect Chains). أتعامل معاها إزاي؟
مش كل 404 مشكلة: الصفحات المحذوفة اللي مالهاش بديل ولا روابط عادي ترجع 404. المهم تحوّل الصفحات اللي عليها روابط أو زيارات بـ 301 لأقرب بديل، وتختصر أي سلسلة تحويلات لخطوة واحدة.
إزاي أنقل الموقع لدومين جديد من غير ما أخسر الترتيب؟
اعمل خريطة بكل رابط قديم والرابط الجديد المقابل له، وحوّل كل واحد بـ 301 مباشر (مش كله للصفحة الرئيسية)، وسيب التحويلات شغالة سنة على الأقل. بعدها استخدم أداة تغيير العنوان (Change of Address) في Search Console وابعت الـ Sitemap الجديد وراقب الزحف والفهرسة. تذبذب الترتيب لفترة مؤقتة شيء طبيعي.
الموقع بيفتح بأكتر من نسخة (http و https، بـ www ومن غير). ده بيأثر على السيو؟
أيوه، ده بيعمل محتوى مكرر وبيوزع الروابط. اختار نسخة واحدة (غالبًا https) وحوّل كل النسخ التانية لها بـ 301 في خطوة واحدة، وحدّث الـ canonical والـ Sitemap.
في مواقع بتربط لصفحات عندي اتحذفت (بترجع 404). إزاي أرجّع قيمة الروابط دي؟
اطلع الصفحات اللي بترجع 404 وعليها روابط خارجية، واعمل لكل واحدة تحويل 301 لأقرب صفحة في المحتوى. ولو الرابط مكتوب غلط عندهم، اطلب منهم يصلحوه.