כבר נתקלתי בשאלה ״מדוע בחלק מהקישורים ישנו קו נטוי (trailing slash) בסוף ה URL ובחלקם לא?״. אם התשובה של המפתח אותו אתם שואלים היא בסגנון: ״זה לא משנה שניהם עובדים״, אולי תשקלו להחליף מפתח מכיוון ותשובה זו אינה נכונה…
כשאנו מדברים על כתובות URL, כל סימן רלוונטי. שינוי מינורי, גם אם מדובר על תו אחד יכול להתפרש בצורה שונה על ידי השרת ובוודאות ככתובת אחרת מבחינת מנועי חיפוש (גוגל ליתר דיוק). כפי שגוגל מציינים במאמר To Slash or not to Slash, אלו שתי כתובות שונות ואף יכולות להכיל תוכן שונה:
Google treats each URL above separately (and equally) regardless of whether it’s a file or a directory, or it contains a trailing slash or it doesn’t contain a trailing slash.
אך עם זאת, באותו משפט (כפי שתראו בוידאו הבא) הם גם אומרים כי ברוב המקרים מנוע החיפוש של גוגל יודע להבין בעצמו כי שתי כתובות שונות אלו הן בעצם אותו עמוד, כך שהסיבה לדאגה היא לא רבה במקרה זה.
ולמרות הנאמר אני חושב כי נכון יהיה למנוע את הבלבול המתואר מעלה ולבצע סטנדרטיזציה של כתובות ה URL באתרים שלכם.
אז פוסט קצר זה נכתב בהקשר של קידום אתרי וורדפרס ומבנה קישורים נכון, ובגדול מה שאני בא לומר הוא שכאשר אתם בונים קישור או יוצרים כתובת קנונית (Canonical URL), וודאו כי גירסת הכתובת בה אתם משתמשים תואמת לגירסת האתר אותו אתם מקדמים / מפתחים – בין אם אתם משתמשים בקו נטוי בסוף הכתובת ובין אם לא.
מדוע חשוב לשמור על קונסיסטנטיות ב URL?
התשובה היא בכדי להשאר בטוחים מכיוון ושרתים נוטים לפרש שתי כתובות אלו בצורה שונה:
- לפעמים (ואין זה משפיע על דירוג האתר שלכם), שרתים פשוט יבצעו הפניית 301 לכתובת ברירת המחדל.
- שרתים מסויימים יכולים להחזיר שגיאת 404 על URL ללא הקו הנטוי ומכאן מאמצים ו link juice מבוזבזים.
- שרתים מסויימים עשויים לבצע הפניית 302 לגירסה הנכונה ומכאן מאמצים ו link juice מבוזבזים.
- שרתים אחרים יכולים להחזיר סטטוס 200 לשתי הגירסאות ומכאן, link juice ומאמצים מבוזבזים ואף פוטנציאל לבעיות הקשורות לתוכן כפול.
אגב, בבלוג זה אם שמתם לב, אני משתמש ב trailing slash לכל הכתובות בבלוג.
אז רצוי שתוודאו כי באתר וורדפרס שלכם כל הקישורים הפנימיים, הכתובות קנוניות (canonical url's), הקישור בלוגו ובמידת האפשר אף קישורים נכנסים לאתר שלכם (backlinks / inbound links) יהיה זהים, בין עם קו נטוי זה ובין אם לא ולו רק לטובת סטנדרטיזציה.
הפונקציות שוורדפרס מציעה לטיפול ב Trailing Slash
עד כמה שידוע לי ישנן שלוש פונקציות בוורדפרס שמטרתן התעסקות עם קו נטוי זה. לא נרחיב עליהן אך בגדול, אחת מהפונקציות מוסיפה קו נטוי לכתובת, השנייה מסירה קו נטוי מכתובת והשלישית מחזירה כתובת בהתאם להגדרות וורדפרס שלכם.
הפונקציות הינן הפונקציות הבאות בהתאמה:
באפשרותכם להשתמש בכל אחת מפונקציות אלו בכדי להגיע לתוצאה הרצויה.
מספר דוגמאות לעבודה עם Trailing Slash
בהנחה וההחלטה היא להשתמש ב trailing slash, ובמידה ואתם בונים את התבנית ומציגים את הלוגו שלכם עם קישור לעמוד הבית לדוגמא, נכון יהיה לעשות זאת בצורה הזו:
<a href="<?php echo trailingslashit( esc_url( home_url() ) ); ?>">
הוספת trailing slash לכתובת הקנונית ב Yoast SEO
אם אתם משתמשים בתוסף WordPress SEO by Yoast לדוגמא, ואתם רוצים שהכתובות הקנוניות תמיד יכילו trailing slash, השתמשו בפילטר הבא:
/**** adds trailing slash at the end of rel-canonical tag ***/
function wpseo_canonical_url_slash( $canonical_url ) {
return trailingslashit( $canonical_url );
}
add_filter( 'wpseo_canonical', 'wpseo_canonical_url_slash' );
ביצוע הפנייה לכתובת הנכונה באמצעות htaccess
יש לוודא כי מבוצעת הפנייה נכונה לכתובת אותה הגדרתם לאתר וורדפרס שלכם. במידה ואתם רוצים לבצע הפניה לכתובת עם trailing slash מכתובת ללא, הוסיפו את הקוד הבא לקובץ .htaccess
:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R] # <- for test, for prod use [L,R=301]
לפעולה ההפוכה השתמשו בקוד הבא:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R] # <- for test, for prod use [L,R=301]
לסיכום
אני חייב לציין שנושא זה די מבלבל, אך חשוב כי תשמרו על עקביות בכל נושא הקישורים באתר הוורדפרס שלכם. קחו החלטה (ורצוי שהיא תהיה לפני עלייתו של האתר לאוויר העולם) ועקבו אחריה לאורך החיים של האתר.
אני מניח, שאם אתם כמפתחי האתר או כמשתמשים לא תהיו מבולבלים לגבי השאלה האם כתובות האתר שלכם הינה עם trailing slash או ללא, גם מנועי החיפוש אינם יתבלבלו…. כתמיד, אשמח אם תעירו / תגיבו ותתנו את חוות דעתכם על הנושא 🙂
מעניין אותי להבין למה בחרת כן ללכת על "/" בסוף ה-URL אצלך באתר.
דווקא לי נראה שההפך יותר הגיוני.
אני לא חושב שהייתה מחשבה מעמיקה מאחורי זה, הבלוג נפתח לפני כשלוש שנים ולא נתתי ערך מיוחד לאותו Trailing Slash בזמנו. מה גם שאיני מאמין שזה כזה משנה (במקרה של אתרי וורדפרס), העיקר הוא לשמור על עקביות.
בבסיס, ההחלטה צריכה להיות שאם זה קובץ – אין להשתמש ב Trailing Slash, ואם זו ספרייה אז כן..