الشقيق الأشهر في عائلة أخطاء الويب:
404 Not Found
The requested URL was not found on this server.
عكس أخيه الخطأ 500 تمامًا: الخادم هنا بصحة ممتازة واستقبل طلبك وردّ بوضوح — «لا شيء على هذا المسار». المشكلة في العنوان لا في المحرك.
زائر أم صاحب موقع؟
- زائر: جرّب فحص إملاء الرابط، احذف ما بعد آخر
/وتدرج للأعلى، أو ابحث عن الصفحة من بحث الموقع. انتهى دورك. - صاحب الموقع/المطور: الـ404 عندك على نوعين — روابط ميتة تسرّب زوارك وترتيبك، وأعطال إعداد تكسر صفحات حية. البقية لك.
الأسباب الستة وحلولها
| السبب | العلامة | الحل |
|---|---|---|
| رابط تغيّر بلا تحويل | صفحة قديمة كانت تعمل | تحويل 301 |
| حساسية الأحرف | يعمل محليًا (ويندوز) لا على الخادم (لينكس) | وحّد الأسماء lowercase |
| روابط SPA بعد النشر | يعمل بالتنقل وينكسر بالتحديث | rewrite إلى index.html |
| ووردبريس: الروابط الدائمة | كل المقالات 404 فجأة | إعادة حفظ Permalinks |
| ملف لم يُرفع أصلًا | صورة/ملف واحد ميت | ارفعه وتحقق من المسار |
| خطأ إملائي بالروابط الداخلية | 404 من صفحاتك نفسها | صحّح المصدر |
1) غيّرت الروابط؟ التحويل 301 ليس اختياريًا
أعدت هيكلة الموقع أو غيّرت slug مقالة؟ كل رابط قديم بلا تحويل = خسارة مزدوجة: زائر يرتد + ترتيب متراكم يتبخر. التحويل الدائم 301 ينقل الاثنين للعنوان الجديد:
# Next.js (الإعداد) — redirects في ملف الإعداد
{ source: "/old-post", destination: "/blog/new-post", permanent: true }
# Apache (.htaccess)
Redirect 301 /old-page https://example.com/new-page
وأين تجد الروابط الميتة المهمة؟ Google Search Console → Pages → Not found (404): قائمة بما يحاول جوجل والزوار الوصول إليه وفشل — رتّبها وحوّل ما له قيمة.
2) الحساسية للأحرف — فخ «يعمل عندي»
ويندوز لا يفرق بين Logo.png وlogo.png، وخوادم لينكس تفرق بصرامة.
النتيجة الكلاسيكية: يعمل محليًا وينكسر بالإنتاج. القاعدة الوقائية: كل
أسماء الملفات والمسارات lowercase دائمًا بلا استثناء.
3) تطبيقات SPA: التحديث يكسر الصفحة
أشهر 404 عند مطوري React/Vue: التنقل يعمل، وF5 على /about يعطي 404.
السبب أن الخادم لا يعرف مساراتك الداخلية — التطبيق كله في index.html.
الحل rewrite شامل:
# Netlify — ملف _redirects
/* /index.html 200
# Nginx
try_files $uri $uri/ /index.html;
(Vercel وأطر مثل Next.js تتولاه تلقائيًا — إحدى فوائد الأطر الكاملة.)
4) ووردبريس: كل شيء 404 فجأة
المقالات كلها انكسرت بعد نقل أو تحديث؟ الغالب .htaccess أو إعدادات
الروابط: الإعدادات ← الروابط الدائمة ← حفظ بلا أي تغيير — يعيد توليد
القواعد. استمر؟ راجع ملف .htaccess نفسه.
حوّل صفحة 404 من طريق مسدود إلى ممسكة زوار
الافتراضية تقول «انتهت الرحلة». المخصصة الذكية تقول «تفضل من هنا»:
- رسالة ودودة + بحث + روابط لأهم الأقسام (هكذا صفحتنا نحن — جرّب رابطًا عشوائيًا على الموقع 😄).
- الأهم تقنيًا: أن ترد بحالة 404 حقيقية لا 200 — وإلا صارت Soft 404 تحسب صفحة فارغة ضد جودة موقعك.
قائمة تحقّق سريعة
- GSC → Pages → 404: هذه قائمة نزيفك — حوّل المهم بـ301.
- أسماء ملفات lowercase دائمًا — وداعًا لمفاجآت لينكس.
- SPA؟ rewrite شامل لـ index.html قبل النشر لا بعده.
- ووردبريس: إعادة حفظ الروابط الدائمة أول إسعاف.
- صفحة 404 مخصصة ببحث وروابط — وبحالة 404 فعلية.
الخلاصة
404 أصدق من 500 وأسهل: العنوان خاطئ أو المحتوى انتقل. صحّح المصادر، حوّل القديم بـ301، اضبط rewrite تطبيقات الـSPA، واجعل صفحة الخطأ نفسها نقطة انطلاق جديدة للزائر بدل نهاية رحلته.
افهم رموز الحالة كلها من مسار الشبكات وHTTP بالعربي، وأكمل الثنائي مع حل خطأ 500 Internal Server Error وحل خطأ CORS.