Google Search Console מסמן לעיתים קרובות שגיאות soft 404 באתרים מבוססי Next.js, מה שעלול לבזבז את תקציב הסריקה (crawl budget).

מה זה בעצם soft 404

תגובת 404 אמיתית שולחת קוד סטטוס HTTP 404, המודיע לדפדפנים ולבוטים שהמשאב המבוקש אינו קיים. לעומת זאת, soft 404 מחזירה סטטוס 200 OK תוך שהיא מספקת מעט מאוד תוכן או בכלל לא. מנועי חיפוש קוראים את ה-200 כדף תקין, אך הדף אינו מספק ערך כלשהו. התוצאה היא בזבוז של מחזורי סריקה (crawl cycles) ואות ל-Google שהאיכות של תוכן האתר נמוכה.

למה Next.js נופל למלכודת

הניתוב הדינמי (dynamic routing) של Next.js מאפשר לכם להגיש דפים כמו /products/[slug] מבלי להגדיר קשיחה (hard-coding) כל URL. כאשר מוצר נעלם מהדאטה-בייס, הקומפוננטה עדיין מרונדרת (renders), ואם הקוד לא בודק אם חסר מידע, Next.js עונה ב-200 OK כברירת מחדל. הדבר קורה גם כאשר משתמש מקליד URL שגוי או כאשר נתיבים ישנים נשארים לאחר עיצוב מחדש. הדף נטען, אך הוא אינו מציע תוכן משמעותי, מה שמפעיל את דגל ה-soft-404 ב-Search Console.

ההשלכות על בעלי אתרים

  • בזבוז תקציב סריקה (Crawl budget) – בוטים מקצים מספר מוגבל של בקשות לכל אתר. שגיאות soft 404 "אוכלות" את המכסה הזו, מה שמותיר פחות הזדמנויות לדפים אמיתיים להופיע באינדקס.
  • עונש SEO – שגיאות soft 404 חוזרות ונשנות אומרות למנועי החיפוש שהאתר באיכות נמוכה.
  • פגיעה בחוויית המשתמש – מבקרים שמגיעים לדף ריק עוזבים מיד (bounce), מה שמנפח את שיעור הנטישה (bounce rates) ופוגע בשיעורי ההמרה (conversions).

איך להפוך soft 404 ל-404 תקין

1. השתמשו ב-helper המובנה notFound

  • App Router – ייבאו את notFound מתוך next/navigation. לאחר שליפת הנתונים, קראו ל-notFound() אם התוצאה חסרה. Next.js ישלח אז סטטוס 404 אמיתי.
  • Pages Router – החזירו { notFound: true } מתוך getStaticProps או getServerSideProps כאשר שליפת הנתונים נכשלת. זה עושה את אותו הדבר עבור ה-API של הניתוב הישן יותר.

2. הציגו דף 404 מותאם אישית

דף השגיאה המוגדר כברירת מחדל משאיר את המשתמשים תקועים. צרו את app/not-found.js (עבור App Router) או את pages/404.js (עבור Pages Router) עם קישורי ניווט, תיבת חיפוש או הצעות לתוכן רלוונטי. דף 404 מעוצב היטב שומר על המבקרים באתר במקום לשלוח אותם ישר אל היציאה.

3. נקו נתיבים יתומים (orphaned routes)

מחקו דפים סטטיים שכבר אינם משרתים מטרה. אם קובץ נשאר אך התוכן שלו ריק, הוסיפו תגובת notFound או הסירו את הקובץ לחלוטין. ביקורות (audits) קבועות של תיקיות pages או app ימנעו מכתובות URL שאינן פעילות "לדלוף" החוצה.

4. הגדירו הפניות קבועות (301) עבור תוכן שעבר

כאשר ה-URL של דף משתנה, הפניה (redirect) מסוג 301 מודיעה לדפדפנים ולבוטים שהמשאב עבר באופן קבוע. הוסיפו הפניות ב-next.config.js תחת המפתח redirects. זה מונע מה-URL הישן להחזיר סטטוס 200 ללא תוכן.

5. עקבו ופעלו לפי התראות ב-Search Console

בדקו את Google Search Console לעיתים קרובות כדי לזהות שגיאות soft 404. השתמשו בסורק (crawler) אוטומטי כדי להציף שגיאות חדשות לפני שהן נערמות. התייחסו לכל התראה כסימן לבדוק את לוגיקת שליפת הנתונים שבבסיס הבעיה.

שורה תחתונה

דף שמחזיר 200 OK מבלי לספק תוכן מרוקן בשקט את ערך ה-SEO. ב-Next.js, נתיבים דינמיים ושליפת נתונים לא מאומתת הופכים שגיאות soft 404 לנפוצות, אך ניתן לבטל אותן. השתמשו ב-notFound, בנו דף 404 מותאם אישית ועוזר, נקו נתיבים יתומים, הגדירו הפניות 301 והישארו ערניים ב-Search Console כדי להגן על תקציב הסריקה, לשמור על הדירוגים ולהשאיר את המבקרים באתר.