# إيه الفرق بين تحويل 301 و 302؟ وأستخدم أنهي واحد إمتى؟

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

- المصدر: https://seoquestionsbank.com/technical/redirect-301-vs-302/
- القسم: السيو التقني · المستوى: مبتدئ
- الكاتب: مهندس محمد عيد · آخر تحديث: 2026-10-27

## الأعراض

- نقلت صفحة لرابط جديد والرابط القديم لسه بيظهر في جوجل بعد أسابيع
- Search Console بيعتبر الرابط القديم هو الأساسي (Canonical) مش الجديد
- أداة فحص التحويلات بتقول 302 مع إن النقل نهائي
- إضافة أو استضافة بتحوّل بـ 302 افتراضيًا من غير ما تاخد بالك

## السبب

استخدام 302 للنقل الدائم (افتراضي في PHP وبعض الإضافات والاستضافات)، فجوجل يفهم إن الرابط القديم هيرجع ويفضل محتفظ بيه.

## الأدوات

- [httpstatus.io](https://httpstatus.io/) (مجانية): يعرض كود كل خطوة في التحويل: 301 ولا 302
- [Chrome DevTools](https://developer.chrome.com/docs/devtools) (مجانية): تبويب Network مع Preserve log يوريك كود التحويل
- [Google Search Console](https://search.google.com/search-console) (مجانية): فحص عنوان URL يوريك جوجل اختار أنهي رابط أساسي
- [مولّد قواعد التحويل 301](https://seoquestionsbank.com/free-tools/redirect-generator/) (مجانية): يكتبلك قواعد 301 لـ Apache و Nginx و Cloudflare

## خطوات الحل

1. **افهم الفرق في سطرين**: 301 و 308 = النقل دائم: جوجل بينقل الترتيب والإشارات للرابط الجديد ويعرضه بداله. 302 و 307 = النقل مؤقت: جوجل بيعتبرها إشارة ضعيفة ويفضّل يعرض الرابط القديم. الفرق بين 301 و 308 (وبين 302 و 307) تقني: 308 و 307 بيحافظوا على نوع الطلب (POST يفضل POST)، وده بيهم الفورمز والـ APIs أكتر من السيو.
   - الرابط القديم ← 301 أو 308: نقل دائم ← جوجل يعرض الرابط الجديد
2. **اعرف إمتى تستخدم كل واحد**: 301: تغيير رابط صفحة، نقل دومين، دمج مقالين، تحويل http لـ https أو www. 302: عرض مؤقت أو صيانة لصفحة لفترة قصيرة، صفحة منتج خلص لفترة وهيرجع، تجربة A/B. لو مش متأكد والنقل مش هيرجع، استخدم 301.
   - الحالة: نوع التحويل المناسب
   - غيّرت رابط مقال: 301
   - نقلت الموقع لدومين جديد: 301
   - صفحة صيانة لمدة يومين: 302
   - نقل دائم بـ 302: غلط: استخدم 301
3. **افحص التحويل اللي عندك فعلًا**: الصق الرابط القديم في httpstatus.io. لازم يوصل للصفحة الجديدة في خطوة واحدة بكود 301، والصفحة الأخيرة ترجع 200. كتير من الاستضافات والإضافات بتعمل 302 افتراضيًا، وفي PHP لو كتبت header("Location: ...") من غير ما تحدد الكود بيطلع 302.
   - httpstatus.io: Check status
   - https://example.com/old-page/: 302 Found
   - https://example.com/new-page/: 200 OK
4. **غيّر الكود لـ 301**: في Apache استخدم Redirect 301، وفي Nginx استخدم return 301، وفي Cloudflare اختار 301 في Redirect Rules. لو بتكتب PHP حدد الكود بنفسك.

```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;
```
5. **كمّل الإشارات للرابط الجديد**: التحويل لوحده مش كفاية: غيّر الروابط الداخلية للرابط الجديد، وحطه في الـ Sitemap، وخلّي الـ canonical بتاع الصفحة الجديدة لنفسها. وسيب الـ 301 شغال سنة على الأقل، والأفضل على طول.
6. **لو 302 قعد كتير**: جوجل بيقول إن 302 لو فضل شغال مدة طويلة ممكن يعامله كنقل دائم. بس متعتمدش على ده: لو النقل خلاص نهائي غيّره لـ 301 عشان الصورة تبقى واضحة من الأول.

## لو موقعك WordPress

- [Redirection](https://wordpress.org/plugins/redirection/) (مجانية): تختار نوع التحويل (301 أو 302 أو 307 أو 308) لكل رابط
- [Rank Math SEO](https://wordpress.org/plugins/seo-by-rank-math/) (مجانية): وحدة التحويلات وفيها اختيار نوع التحويل

1. **اختار 301 وأنت بتعمل التحويل** (الأدوات ← Redirection ← أضف تحويل جديد): في Redirection افتح «أضف تحويل جديد»، واكتب الرابط القديم والجديد، ومن الخيارات اختار «301 - Moved Permanently».
2. **راجع التحويلات القديمة** (الأدوات ← Redirection ← التحويلات): افتح قائمة التحويلات واتأكد من عمود الكود. أي تحويل دائم مكتوب 302 أو 307 غيّره لـ 301.
3. **ظبط النوع الافتراضي في Rank Math** (Rank Math ← الإعدادات العامة ← Redirections): لو بتستخدم وحدة التحويلات في Rank Math، خلّي نوع التحويل الافتراضي 301 من إعداداتها.

ووردبريس نفسه لما تغيّر رابط مقال بيحاول يحوّل القديم تلقائي بـ 301، بس الأضمن تعمل التحويل بإيدك من الإضافة.

## المصادر

- [Google Search Central: التحويلات وبحث Google](https://developers.google.com/search/docs/crawling-indexing/301-redirects?hl=ar)
- [MDN: Redirections in HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections)
