קישורים שבורים הם קישורים שמובילים לעמוד שכבר לא קיים, והגולש שלוחץ עליהם מקבל עמוד שגיאה במקום התוכן שהבטחת לו. הטיפול בהם פשוט. מוצאים אותם דרך Search Console ובסריקה של האתר, ואז מתקנים כל אחד במקור, כלומר מעדכנים את הקישור עצמו, ורק כשאין ברירה מוסיפים הפניה.
לא כל שגיאת 404 היא בעיה. העזרה של Search Console קובעת ש-404 לעמוד שהוסר בלי תחליף הוא לא בהכרח בעיה. הבעיה מתחילה כשקישור באתר שלך, בתפריט, בכפתור או בתוך מאמר, ממשיך להוביל לעמוד המת. שם הגולש נתקע, וגם הסורק של גוגל מבזבז ביקור על כתובת ריקה.
במאמר הזה עברתי על הבדיקות לפי הסדר שבו כדאי לעשות אותן באתר וורדפרס, איך מזהים כל סוג של קישור שבור ומה בדיוק מתקנים בכל מקרה.
למה קישורים שבורים מזיקים לגולשים ולזחילה
לפי התיעוד של גוגל על קישורים, היא משתמשת בקישורים גם כדי למצוא עמודים חדשים לסרוק וגם כאות לרלוונטיות של עמודים. היא גם כותבת שהיא יכולה לסרוק קישור רק כשהוא אלמנט <a> עם מאפיין href. כך שהקישורים הפנימיים שלך הם המפה שגוגל הולכת לפיה בתוך האתר.
כשכתובת מחזירה קוד 4xx, גוגל לא מכניסה אותה לאינדקס, ועמוד שכבר היה באינדקס ומתחיל להחזיר 4xx יוצא ממנו. לפי אותו תיעוד, קודי 4xx (חוץ מ-429) לא משפיעים על קצב הסריקה של האתר. כלומר 404 בודד לא "מעניש" את האתר, אבל קישור פנימי שמוביל אליו שולח גם את הגולש וגם את הסורק למבוי סתום, ואם העמוד המקורי היה מדורג, הוא יוצא מהתוצאות. זו רק אחת הסיבות לכך שהאתר לא מתקדם בגוגל, ואם הבדיקה כאן לא פותרת את זה לבד, כתבתי רשימת בדיקה שעוברת על שש בדיקות נוספות לפי הסדר.
מבחינת הגולש, העניין פשוט יותר. מי שלחץ על "לפרטים נוספים" וקיבל עמוד שגיאה לא תמיד ינסה שוב. לכן הטיפול בקישורים שבורים הוא קודם כל שירות לגולשים, והזחילה מרוויחה מזה בדרך. זו גם אחת הסיבות הנפוצות לזמן שהייה נמוך באתר, וכתבתי מאמר נפרד על איך מוצאים ומתקנים את הסיבה לזה.
בדיקה ראשונה: דוח הוספה לאינדקס ב-Search Console
המקום הראשון לחפש בו הוא Search Console, בדוח Pages (הוספת דפים לאינדקס). ברשימת הסיבות לעמודים שלא נכנסו לאינדקס מופיעה השורה Not found (404). לפי העזרה של גוגל, גוגל יכולה לגלות כתובת כזו דרך קישורים, או כי העמוד היה קיים פעם.
לכל כתובת ברשימה שווה להריץ בדיקת כתובת (URL Inspection). תחת Discovery מופיע העמוד המפנה (Referring page), שהוא עמוד שגוגל אולי השתמשה בו כדי לגלות את הכתובת. כאן הניסוח חשוב. גוגל מציינת שהעמוד המפנה יכול לקשר ישירות, אבל יכול גם להיות רחוק ממנו כמה דרגות, ולכן זה רמז טוב לאן להסתכל ולא הוכחה סופית.
באותו דוח תמצא לפעמים גם Soft 404. זה עמוד שמציג לגולש הודעת "לא נמצא" או עמוד ריק, אבל מחזיר לשרת קוד הצלחה. ההמלצה של גוגל לעמוד שבאמת לא קיים היא להחזיר קוד 404. על המקרה הזה הרחבתי במאמר על Soft 404 ב-Search Console.
בדיקה שנייה: סריקה של האתר כולו
Search Console מראה מה גוגל מצאה, אבל לא תמיד מראה את כל הקישורים השבורים באתר, והיא לא אומרת באיזה מקום בעמוד הם נמצאים. לכן השלב הבא הוא לסרוק את האתר בעצמך עם תוכנת סריקה (crawler). תוכנה כזו עוברת על כל העמודים, לוחצת על כל קישור, ומחזירה רשימה של קישורים שבורים ביחד עם העמוד שבו כל אחד מופיע.
כשהרשימה אצלך, כדאי למיין אותה לשני סוגים:
- קישורים פנימיים שמובילים לעמודים באתר שלך שמחזירים 404. אלה הכי חשובים, כי הם בשליטה שלך לגמרי.
- קישורים יוצאים לאתרים אחרים שהעמוד בהם נמחק או עבר. אלה פחות דחופים, אבל הם עדיין שולחים את הגולש לעמוד שגיאה.
במיוחד כדאי לשים לב לקישורים שחוזרים בכל העמודים, כמו תפריט ראשי, פוטר, סרגל צד או כפתור קבוע. קישור שבור אחד בתבנית של אלמנטור או בווידג'ט מופיע בכל עמוד באתר, ותיקון אחד פותר את כולם. בחנות אינטרנטית הבעיה הזו גדולה יותר, כי כל מחיקה של מוצר משאירה אחריה כתובות מתות בקטגוריות וברשימות משאלות. אם אתה מנהל חנות, כתבתי מדריך נפרד על איך לקדם חנות אינטרנטית שעובר על הסדר הנכון לבדוק ולתקן.
הסיבה הראשונה לבדוק: שינית כתובת או מחקת עמוד
המקום הראשון לחפש בו את מקור הבעיה הוא פעולה שעשית בעצמך באתר: שינוי של הסיומת בכתובת העמוד (slug), מחיקה של מוצר או מאמר, או שינוי מבנה הקישורים הקבועים ב-Permalinks. הקישורים שהפנו לכתובת הישנה נשארים במקומם, בתוך מאמרים ובתפריטים.
וורדפרס מטפלת בחלק מזה לבד. הפונקציה wp_old_slug_redirect(), שקיימת מגרסה 2.1.0, מנסה למצוא את הכתובת הנוכחית של פוסט לפי ה-slug הישן שלו כשמתקבלת שגיאת 404. זה עוזר, אבל לא הייתי סומך על זה כפתרון. המנגנון מבוסס על ה-slug של פוסט שנשמר, והוא לא מכסה עמוד שנמחק או מבנה שהשתנה. לכן הבדיקה הנכונה היא לפתוח את הכתובת הישנה בדפדפן ולראות מה חוזר.
אם עברת לאחרונה שרת או דומיין, מעבר כזה יכול לשבור הרבה קישורים בבת אחת. כתבתי על זה מאמר נפרד, העברת אתר וורדפרס בלי לשבור אותו.
איך מתקנים: קודם את הקישור, אחר כך הפניה
לכל קישור שבור יש שלוש אפשרויות, וכדאי לעבור עליהן בסדר הזה:
- לעדכן את הקישור במקור. אם העמוד קיים בכתובת חדשה, נכנסים לעמוד שמכיל את הקישור ומחליפים את הכתובת בכתובת הנכונה. זה הפתרון הכי נקי, כי הגולש מגיע ישר ליעד בלי קפיצה בדרך. גם גוגל ממליצה, אחרי שינוי כתובות, לעדכן כמה שיותר קישורים לכתובות החדשות.
- להוסיף הפניה קבועה (301). כשיש עמוד חדש שמחליף את הישן, וקיימים אליו קישורים גם מחוץ לאתר שאי אפשר לעדכן, מוסיפים הפניה 301 מהכתובת הישנה לחדשה. לפי גוגל, הפניה קבועה משמשת אצלה כאות שכתובת היעד היא הכתובת הקנונית, והיא ממליצה להשאיר הפניות כאלה לפחות שנה, ועדיף כמה שיותר.
- להסיר את הקישור ולהשאיר 404. אם העמוד נמחק ואין לו תחליף אמיתי, מוחקים את הקישור או מחליפים אותו בקישור לעמוד רלוונטי אחר. גוגל כותבת במפורש ש-404 לעמוד שהוסר בלי תחליף הוא לא בהכרח בעיה.
יש דבר אחד שאני לא ממליץ עליו, והוא להפנות כל כתובת מתה לעמוד הבית. הגולש מחפש תוכן מסוים ומגיע לעמוד כללי, וזה לא שונה בהרבה מעמוד שגיאה. הפניה צריכה להוביל לעמוד שבאמת מחליף את הישן.
ואם בדרך יצרת הפניה שמפנה להפניה אחרת שחוזרת לראשונה, תקבל לולאה. על זה כתבתי במאמר על ERR_TOO_MANY_REDIRECTS בוורדפרס.
קישורים שבורים שמגיעים מאתרים אחרים
יש גם קישורים שבורים שלא נמצאים אצלך בכלל, כשאתר אחר קישר לעמוד שלך בכתובת שכבר לא קיימת. את הקישור עצמו אתה לא יכול לערוך, ולכן כאן ההפניה היא הכלי הנכון. אם יש עמוד חדש שמחליף את הישן, הפניה 301 מהכתובת הישנה לחדשה תחזיר את הגולשים שמגיעים משם למקום הנכון.
ב-URL Inspection תראה Referring page רק למה שגוגל מצאה, כך שלא תמיד תדע מאיפה בדיוק מגיע הקישור. לכן כדאי להתחיל מהכתובות שמופיעות ב-Not found (404) ושהיו פעם עמודים חשובים באתר, כמו מוצרים או עמודי שירות.
אחרי התיקון: לבדוק שזה באמת עבד
תיקון שלא נבדק הוא ניחוש. אחרי שעדכנת קישורים והוספת הפניות, כדאי לעבור על הבדיקות האלה:
- לפתוח כל כתובת ישנה בדפדפן, בחלון גלישה בסתר, ולוודא שהיא מגיעה לעמוד הנכון.
- לנקות את המטמון של האתר, ואת המטמון של ה-CDN אם יש, כדי שהגולשים לא יקבלו גרסה ישנה של העמוד עם הקישור הישן.
- להריץ ב-URL Inspection את Test live URL על עמוד שתיקנת. לפי גוגל, הבדיקה החיה מיועדת בדיוק למקרה הזה, לבדוק אם תקלה תוקנה.
- אחרי שתיקנת את כל המופעים של אותה שגיאה בדוח Pages, ללחוץ Validate Fix. גוגל כותבת שהאימות לוקח בדרך כלל עד שבועיים, ושתקבל עדכונים במייל.
- להריץ שוב את הסריקה של האתר ולבדוק שהרשימה של הקישורים השבורים באמת התקצרה.
כדי שהבעיה לא תחזור, כדאי לבדוק שוב אחרי כל שינוי גדול, כמו מחיקת מוצרים, שינוי תפריט, עיצוב מחדש או מעבר שרת. כל אחד מהם משנה כתובות או מוחק עמודים.
מתי לעצור ולקרוא למומחה
את רוב העבודה על קישורים שבורים אפשר לעשות לבד, ולעדכן קישור במאמר או בתפריט זה עניין של דקות. אבל יש כמה מצבים שבהם כדאי לעצור:
- הרשימה ארוכה מאוד, ורוב הכתובות נשברו בבת אחת אחרי מעבר שרת, שינוי דומיין או שינוי מבנה Permalinks. כאן צריך מפה מסודרת של כתובות ישנות וחדשות, והפניות שנכתבות בשרת.
- הוספת הפניה והאתר נכנס ללולאה, או שחלק מהעמודים פתאום לא נפתחים.
- ההפניות צריכות להיכתב בקובץ
.htaccessאו בהגדרות השרת, ואתה לא בטוח מה אתה עושה. טעות אחת שם יכולה להפיל את כל האתר. - עמודים חשובים, כמו מוצרים שמוכרים או עמודי שירות, יצאו מהאינדקס ואתה לא מבין למה.
לפני כל שינוי כזה עושים גיבוי של האתר. ואם אתה כבר עובד על הקישורים באתר, שווה לעבור גם על הקישורים הפנימיים באתר ולוודא שכל עמוד חשוב מקבל קישורים מעמודים אחרים.
אם אתה מעדיף שמישהו יעבור על האתר, ימצא את הקישורים השבורים ויתקן אותם בלי לשבור משהו אחר בדרך, אפשר לפנות אליי כאן.
שאלות נפוצות
האם קישורים שבורים פוגעים בדירוג בגוגל?
גוגל כותבת שקודי 4xx (חוץ מ-429) לא משפיעים על קצב הסריקה, וש-404 לעמוד שהוסר בלי תחליף הוא לא בהכרח בעיה. מה שכן קורה: עמוד שמחזיר 404 יוצא מהאינדקס, וקישור פנימי שבור שולח גולשים וסורקים לכתובת ריקה במקום לעמוד שיכול היה לדרג.
איך מוצאים קישורים שבורים באתר וורדפרס?
מתחילים בדוח Pages ב-Search Console, תחת Not found (404), ובודקים כל כתובת ב-URL Inspection כדי לראות את ה-Referring page. אחר כך סורקים את האתר כולו עם תוכנת סריקה שמחזירה כל קישור שבור ביחד עם העמוד שבו הוא מופיע.
מה עדיף, לתקן את הקישור או להוסיף הפניה 301?
אם הקישור נמצא באתר שלך, עדיף לעדכן אותו לכתובת הנכונה. הפניה 301 מתאימה כשיש עמוד שמחליף את הישן וקיימים אליו קישורים שאתה לא יכול לערוך, למשל מאתרים אחרים.
כמה זמן להשאיר הפניה 301?
גוגל ממליצה להשאיר הפניות לפחות שנה, ומציינת שמבחינת הגולשים עדיף להשאיר אותן כמה שיותר.
מה ההבדל בין 404 ל-Soft 404?
ב-404 השרת מודיע שהעמוד לא קיים. ב-Soft 404 העמוד נראה כמו עמוד שגיאה או עמוד ריק, אבל השרת מחזיר קוד הצלחה. גוגל ממליצה להחזיר 404 לעמודים שבאמת לא קיימים.
וורדפרס לא מפנה לבד כשמשנים כתובת?
בחלק מהמקרים כן. הפונקציה wp_old_slug_redirect מנסה למצוא פוסט לפי ה-slug הקודם שלו כשמתקבלת שגיאת 404. זה לא מכסה עמוד שנמחק או שינוי במבנה הקישורים, ולכן תמיד כדאי לבדוק את הכתובת הישנה בדפדפן.
