غالبًا ما تكتشف Google Search Console أخطاء soft 404 في مواقع Next.js، مما قد يؤدي إلى إهدار ميزانية الزحف (crawl budget).

ما هو خطأ الـ soft 404 في الواقع

يرسل رد 404 الحقيقي رمز حالة HTTP 404، مما يخبر المتصفحات والروبوتات بأن المورد المطلوب غير موجود. في المقابل، يعيد خطأ الـ soft 404 حالة 200 OK بينما يقدم محتوى ضئيلاً أو لا يقدم شيئاً على الإطلاق. تقرأ محركات البحث الرمز 200 على أنه صفحة سليمة، ومع ذلك لا تقدم الصفحة أي قيمة. والنتيجة هي إهدار دورات الزحف وإرسال إشارة إلى Google بأن جودة محتوى الموقع منخفضة.

لماذا يقع Next.js في هذا الفخ

تتيح لك التوجيهات الديناميكية (dynamic routing) في Next.js تقديم صفحات مثل /products/[slug] دون الحاجة إلى كتابة كل رابط (URL) بشكل ثابت. عندما يختفي منتج من قاعدة البيانات، لا يزال المكون (component) يتم عرضه، وإذا لم يتحقق الكود من البيانات المفقودة، فإن Next.js يرد بحالة 200 OK افتراضياً. يحدث الشيء نفسه عندما يخطئ المستخدم في كتابة الرابط أو عندما تظل المسارات القديمة موجودة بعد إعادة التصميم. يتم تحميل الصفحة، لكنها لا تقدم أي محتوى ذي معنى، مما يؤدي إلى تفعيل تنبيه الـ soft-404 في Search Console.

المخاطر التي يواجهها أصحاب المواقع

  • إهدار ميزانية الزحف (Crawl budget) – تخصص الروبوتات عدداً محدوداً من الطلبات لكل موقع. تستهلك أخطاء الـ soft 404 هذه الحصة، مما يقلل من فرص فهرسة الصفحات الحقيقية.
  • عقوبة SEO – تخبر أخطاء الـ soft 404 المتكررة محركات البحث بأن الموقع منخفض الجودة.
  • تضرر تجربة المستخدم – الزوار الذين يصلون إلى صفحة فارغة يغادرون الموقع فوراً، مما يؤدي إلى ارتفاع معدلات الارتداد (bounce rates) وتراجع معدلات التحويل (conversions).

كيفية تحويل الـ soft 404 إلى 404 حقيقي

1. استخدم المساعد المدمج notFound

  • App Router – قم باستيراد notFound من next/navigation. بعد جلب البيانات، استدعِ notFound() إذا كانت النتيجة مفقودة. سيقوم Next.js حينها بإرسال حالة 404 حقيقية.
  • Pages Router – قم بإرجاع { notFound: true } من getStaticProps أو getServerSideProps عندما يفشل جلب البيانات. يقوم هذا بنفس المهمة لواجهة برمجة تطبيقات التوجيه (routing API) الأقدم.

2. قم بنشر صفحة 404 مخصصة

تترك صفحة الخطأ الافتراضية المستخدمين في حالة حيرة. قم بإنشاء app/not-found.js (في App Router) أو pages/404.js (في Pages Router) مع روابط تنقل، أو مربع بحث، أو اقتراحات لمحتوى ذي صلة. صفحة 404 مصممة جيداً تحافظ على بقاء الزوار في الموقع بدلاً من توجيههم مباشرة إلى المغادرة.

3. تنظيف المسارات اليتيمة (orphaned routes)

احذف الصفحات الثابتة التي لم تعد تخدم أي غرض. إذا ظل الملف موجوداً ولكن محتواه فارغ، فأضف استجابة notFound أو احذف الملف تماماً. تساعد عمليات التدقيق المنتظمة لمجلدات pages أو app في منع تسرب الروابط المعطلة.

4. إعداد عمليات إعادة توجيه دائمة (301) للمحتوى المنقول

عندما يتغير رابط (URL) الصفحة، تخبر عملية إعادة التوجيه 301 المتصفحات والروبوتات بأن المورد قد انتقل بشكل دائم. أضف عمليات إعادة التوجيه في next.config.js تحت مفتاح redirects. هذا يمنع الرابط القديم من إرجاع حالة 200 بدون محتوى.

5. راقب تنبيهات Search Console وتفاعل معها

تحقق من Google Search Console بانتظام لرصد أخطاء الـ soft 404. استخدم زاحفاً (crawler) آلياً لإظهار الأخطاء الجديدة قبل أن تتراكم. تعامل مع كل تنبيه كإشارة للتحقق من منطق جلب البيانات الأساسي.

الخلاصة

الصفحة التي تعيد حالة 200 OK بينما لا تقدم أي محتوى تستنزف قيمة الـ SEO بصمت. في Next.js، تجعل المسارات الديناميكية وعمليات جلب البيانات غير المفحوصة أخطاء الـ soft 404 شائعة، ولكن يمكنك القضاء عليها. استخدم notFound ، وابنِ صفحة 404 مخصصة ومفيدة، وقم بتنقية المسارات اليتيمة، وقم بتكوين عمليات إعادة التوجيه 301، وابقَ يقظاً في Search Console لحماية ميزانية الزحف، والحفاظ على التصنيفات، وإبقاء الزوار في الموقع.