כך תשנו כתובת של אתר ותשמרו על כמות הלייקים

כתובות אתרים הם דבר שהרבה פעמים נגזר מאופנה. אם תחזרו אחורה מספר שנים, תגלו שלא היה אתר אינטרנט שמכבד את עצמו ולא היתה לו סיומת www נאה לפני שמו. גם האתר הזה למשל, התגאה בכתובת https://internet-israel.com. ה-www, אגב, הוא פשוט סאבדומיין 'מיוחד'. ברבות השנים הבינו שזה דבילי ורוב האתרים זנחו את ה-www לאנחות.
לפני עשר שנים, עם פריצת גוגל לחיינו, כמעט כל עמוד של אתר מגזיני כלשהו הכליל את כותרת העמוד בכתובת האתר. למה? כי זה עזר ל-SEO. גם באתר הזה אפשר לראות את הרעה החולה הזו עם כתובת מדהימה באורכה. וכאשר שזה בעברית החגיגה גדלה עוד יותר לכתובות ארוכות ומבחילות. היום, בגלל טוויטר והרשתות החברתיות מקובל יותר לשים כתובות קצרות יותר ושלא גוזלות יותר מדי תוים.
בדיוק לפני שבוע כתבתי על תחילת המגמה של שינוי הפרוטוקול מ-http ל-https וכמובן שעוד היד נטויה.

בעבר, היה יחסית די קל לשנות את כתובות האתר – כל מה שהיה צריך לעשות זה לדאוג לכמה שינויים ב-htaccess או במנגנון אחר על מנת ליצור את ההפניה ולטובת מנוע החיפוש היה צורך לדאוג שיוחזר קוד 301 כדי שמנוע החיפוש יעדכן את הרשומות. בתכנון נבון, דירוג ה-SEO של האתר לא היה נפגע והמעבר היה עובר בשלום. אך בעידן הנוכחי זה לא כך. למה?

פייסבוק, נרצה או לא נרצה, משחקת תפקיד חשוב בכל מה שקשור לאתרי אינטרנט. כמעט כל אתר מטמיע בכל עמוד שלו מספר וידג'טים מבוססי פייסבוק. הראשון והחשוב שביניהם הוא וידג'ט הלייק:

את וידג'ט הלייק קל להטמיע באמצעות קוד פשוט שפייסבוק מספקת. ואכן לא מעט אתרים משתמשים בו. וידג'ט נוסף שבו נוהגים להשתמש הוא וידג'ט התגובות שאפשר לראות אותו בתחתית דף זה. הוידג'ט הזה מעט יותר קשה להטמעה, אבל בגדול אחרי set up קצר, אפשר להטמיע אותו בקלות.

הלייקים משמשים לשתי מטרות עיקריות. הראשונה והחשובה ביותר היא ההפצה הויראלית. אם משתמש נכנס לדף כלשהו, אוהב אותו ועשוה לייק, הוא מפרסם אותו בפיד שלו בפייסבוק וכך עוד אנשים יכולים לראות את הדף וללייקק אותו. כך דף מסוים יכול להשיג תפוצה מאוד גבוהה אם התוכן שלו מספיק טוב.
הסיבה השניה היא יוקרה – אנשים מחשיבים יותר תכנים שנעשו להם יותר לייקים. כאשר גולש נכנס לשני אתרי אינטרנט – אחד שזוכה לשפע של לייקים והשני לא, הגולש ייחס יותר חשיבות לאתר מרובה הלייקים.

הבעיה העיקרית בהעברה ובשינוי כתובות היא ששינוי כזה מאפפס בהכרח את כמות הלייקים. מדוע? כיוון שהוידג'ט של פייסבוק דוגם את כתובת הדף שבו הוא נמצא ומייחס לכתובת זו ולכתובת זו בלבד את הלייקים. שינית את הכתובת? בהכרח שינית את האובייקט שפייסבוק מתייחס אליו. כך למשל, אם יש לי דף שהכתובת שלו היא:
http://www.mysite.com/article
והוא צבר כמה וכמה לייקים, שינוי של הכתובת ל:
https://mysite.com/article
יגרום למונה הלייקים בדף להציג אפס. מדוע? כי הוא לא מייחס את כל הלייקים לכתובת http://www.mysite.com/article אלא מייחס אותם אל: https://mysite.com/article וזה לא יעזור שאגתם להפניות מסודרות ול-301. גוגל תכיר בזה, אבל פייסבוק לא!

איך מתגברים על הבעיה הזו? האמת היא שדי בקלות – באמצעות שימוש בתגית data-href בוידג'טים של פייסבוק אשר מבוססים על HTML ו-JS.

הנה דוגמה עובדת. וידג'ט הלייק הזה מייצג דף אחר באתר (המאמר על SSL). אתם יכולים לעשות לייק/אנלייק בדף ההוא ולראות איך הוא מתעדכן כאן בכל ריפרוש:

והנה הקוד. מה שחשוב הוא ה-data-href. ה-URL שיש בתוכה הוא ה-URL שהלייק מתייחס אליו.


<div class="fb-like" data-href='https://internet-israel.com/internet/פיתוח-אינטרנט/בניית-אתרי-אינטרנט-למפתחים/הרשת-עוברת-ל-ssl/' data-layout="standard" data-action="like" data-show-faces="true" data-share="true"></div>

כמובן שאם משתמש עושה לייק לדף, הכתובת הישנה תוצג בפיד שלו. אבל אם דאגתם להפנית htaccess לא צריכה להיות בעיה. משתמש אחר שילחץ על הקישור מהפיד פשוט יופנה במילישניות בודדדות אל הדף הנכון.

שינוי כזה נראה קצת מסובך כשמדובר באתר גדול עם מאות מאמרים, גם אני נתקלתי בבעיה הזו והפתרון הוא תכנותי – מתאריך מסוים דאגתי שהתגית תודפס בוידג'ט. הנה הדוגמא החיה שהשתמשתי בה באתר הזה. כאמור השינוי היה מ http://www.intenet-israel.com אל https://internet-israel.com. כל מה שנותר לי לעשות זה לדאוג שעד זמן מסוים, התגית שתודפס היא של נוסח הכתובת הישנה.


<?php 
if(get_the_time('U') < 1408370634) {
	$post_link = get_permalink();
	$new_face_book_target =  ' data-href="'.str_replace ( 'https://' , 'http://www.' , $post_link).'"';
	$new_face_book_target;
} else {
	$new_face_book_target = get_permalink();
} ?>
<div class="fb-like" <?php print $new_face_book_target; ?> data-layout="standard" data-action="like" data-show-faces="true" data-share="true"></div>

מי שרוצה לראות דוגמה חיה, שיגלוש למאמרים יותר מוקדמים מאוגוסט 2014 באתר הזה.

ובנוגע לוידג'ט התגובות? אותו הדבר. התגית הזו תפתור לכם את הבעיה. אם אתם משתמשים בוידג'ט ישן עם XFBML אז יש פרמטר דומה לכ. גם בוידג'טים של לייקים שבהם לא נעשה שימוש ב-JS (כמו iframe, XFBML) ניתן להשתמש בפרמטר של href כפי שמופיע בדוקומנטציה.

לסיכום – אפשר וכדאי לדאוג לאספקט הלייקים כשעורכים שינויים בכתובות של אתרים, זה לא מאוד מורכב מבחינה תכנותית אבל כן מצריך מחשבה מסוימת. לאור השינויים שחלים בכתובות האתרים לאורך השנים, סביר להניח שכל מתכנת יצטרך מתישהו להתמודד עם זה.

פוסטים נוספים שכדאי לקרוא

ספריות ומודולים

מציאת PII באמצעות למידת מכונה

כך תגנו על משתמשים שלכם שמעלים מידע אישי רגיש כמו תעודות זהות באמצעות שירות אמאזוני.

פתרונות ומאמרים על פיתוח אינטרנט

יישום של nonce על מנת להגן מפני התקפות injection

בפוסט הקודם הסברתי על hash עם CSP על משאבי inline – שזה נחמד ומעולה אבל פחות ישים בעולם האמיתי שבו בדרך כלל התוכן ה-inline (בין

גלילה לראש העמוד