שיניתי את הלינקים באתר – אבל למה?

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

אבל מה הביא אותי למסקנה הזו? ומה זה הצריך ממני כדי לשנות אותם?

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


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

הוא סיפר לי שאחד מתחביביו הם לחטט ב־Sitemaps (מפות אתר) של אתרים (😂).

(לחטט במפות אתר? תחביב די משעשע הייתי אומר! 😂 אבל אפשר ללמוד מזה הרבה על מבנה של אתרים ותכל'ס, נראלי שאתחיל לאמץ את זה גם בתור תחביב)…

מה זה מפת אתר?

"מפת אתר" זה בעצם דף אשר מכיל בתוכו את 'עץ האתר' – כל הקישורים והדפים שיש באתר. המטרה בזה היא לתת למנועי חיפוש להכיר את כל הדפים והתכנים באתר בלי להסתבך (וכך האתר יכול להיות מקודם בגוגל בצורה טובה).

יש כל מני תוספים שיוצרים מפת אתר אוטומטית. אני משתמש בתוסף Yoast SEO, שבין היתר, עושה גם את זה.

הנה צילום מסך של מפת האתר שלי, של כל המאמרים באתר:

מפת האתר שלי של המאמרים באתר
בתמונה: מפת האתר שלי של המאמרים באתר – https://elrons.co.il/post-sitemap.xml

אם שמתם לב, הקישורים של המאמרים באתר שלי הם תמיד ספרות היו ספרות. (כלומר, עד היום, אבל עכשיו הם כבר לא. בדיוק על זה אני כותב).

לצורך העניין, המאמר הנוכחי שאתם נמצאים בו, היה פעם בלינק הזה: https://elrons.co.il/1865

והאמת? זו הייתה בחירה מכוונת לעשות את הקישור עם ספרות בלבד. עשיתי את זה מכמה סיבות.

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

אבל זה גרם ל־2 בעיות עיקריות, בעקבותן החלטתי לעשות שינוי.


בעיה 1: הסטטיסטיקה של האתר לא קריאה

אחת הבעיות העיקריות היו בתצוגה של Google Analytics (גוגל אנליטיקס) שעוזר לי לספור את כמות הכניסות בכל דף ודף באתר.

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

זו הסטטיסטיקה שלי. תנסו לנתח אותה בעצמכם, היא לא תאמר לכם הרבה:

צילום מסך מגוגל אנליטיקס שלי. אפשר לראות שלא יודעים באיזה דף מדובר. מה זה דף 1779 עם 205 כניסות? על איזה דף מדובר? אוף.
צילום מסך מגוגל אנליטיקס שלי. אפשר לראות שלא יודעים באיזה דף מדובר. מה זה דף 1779 עם 205 כניסות? על איזה דף מדובר? אוף.

לא אינפורמטיבי כל־כך… מסכימים?

בעיה 2: זה לא הכי טוב לקידום האתר

מייקל המליץ לי שכדאי לי להוסיף מילות חיפוש לכתובת של הדף כי זה עוזר לקדם אותו.

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


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

אז ניסיתי כן לחשוב על פתרונות.


איך פתרתי את בעית הלינק קצר

חשבתי על זה לרגע. לינקים שמכילים מילים לא בהכרח צריכים להיות ארוכים. לפעמים אפשר לעשות לינקים קצרים!

כתבתי למשל על מה זה FTP. הקישור היה /1432. עכשיו הוא רק ב/ftp. זה אפילו יצא יותר קצר 😂

במקרה הארוך, כתבתי על הגדלה של תמונה לא איכותית בעזרת בינה מלאכותית. הקישור היה /1093 ועכשיו הוא /increase-picture-quality. לא היסטרי! זה עדיין יחסית קצר. זה גם עוזר למנועי חיפוש להבין מהם מילות הביטוי החשובות בדף הזה.

איך פתרתי את בעית העצלנות

אתגבר על זה, יאלללללה. 😎

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

איך פתרתי את בעית המסתוריות

היי, אני עדיין יכול ליצור מסתוריות בעזרת בחירת המילים שלי!

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

חוץ מזה, כותרות לא בהכרח צריכות להיות מסתוריות. הם צריכות לתאר על מה מדובר ואולי גם לסקרן.

כל עוד יש הלימה בין הטקסט לכותרת שבוחרים, זה אמור להיות בסדר.


טוב, אין יותר בעיות!

אז החלטתי לעשות את השינוי.

זה לא אמור להיות קשה, נכון?

רק צריך לשנות משהו בדף "הגדרות מבנה קישורים" באתר שלי (שמבוסס וורדפרס), כדי שזה יחליף את הקישורים ממספר הדף לכותרת הדף.

שיניתי מ־Post ID ל־Post Name

וזהו. ללחוץ שמור. נכון? 😎


אייייייייייי!

שגיאה של 404 – הדף לא נמצא.

נכנסתי לדפים בכתובת הישנה, למשל https://elrons.co.il/1865 וציפיתי שזה יעביר אותי לקישור החדש באופן אוטומטי, אבל זה לא קרה!

זו בעיה, כי מנועי חיפוש (וגם אנשים ששיתפו את הלינקים) יחשבו שהדפים האלה נעלמו מהאתר.

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

אוף, אבל לא בא לי להגדיר את כל 100 הדפים שלי באופן ידני… 😥


גוגל חברי הטוב

אלרון: "תגיד גוגל אתה מכיר פתרון ספציפית לבעיה שלי?".

גוגל: "לא".

אלרון: "בטוווווווח????"

גוגל: "לא".

אלרון: "טוב. אשאל ב־Stack Excange" (זה פורום של מתכנתים).


לצערי לא הגיעה הישועה ואחרי 15 דק' איבדתי סבלנות (🤣) והחלטתי לכתוב את הקוד בעצמי כמו ילד טוב.

הנה התוסף הקטן שכתבתי:

<?php

add_action('parse_request', 'redirect_postid_to_postname');
function redirect_postid_to_postname($wp)
{
    // If /%post_id%/
    if (is_numeric($wp->request)) {

        $post_id = $wp->request;
        $slug = get_post_field( 'post_name', $post_id );

        // If the post slug === the post number, prevent redirection loops.
        if ($slug !== $post_id) {
            
            // Adding url parameters manually to $redirect_to
            $parameters = $_SERVER[QUERY_STRING];

            $redirect_from = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
            $redirect_to = get_permalink($post_id) . (!empty($parameters) ? ("?" . $parameters) : "");
            
            // Prevent loops
            if($redirect_from !== $redirect_to) {
                wp_redirect($redirect_to, 301);
                exit;
            }

        }
    }
}

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

בדקתי, וזה עובד! 🙂 ועכשיו הקוד הזה רץ באתר שלי.


עכשיו מה שנותר זה להוסיף לכל 100 המאמרים כתובת ידידותית באנגלית.

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

לשמחתי, תוך כדי עשייה, גיליתי שזה כיף.

אבל זה יכל להיות כיף יותר.

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

בתמונה אפשר לראות את הרשימה הארוכה של המאמרים, אבל אי אפשר לראות מה מזהה הכתובת של כל דף... באסה!
בתמונה אפשר לראות את הרשימה הארוכה של המאמרים, אבל אי אפשר לראות מה מזהה הכתובת של כל דף… באסה!

הייתי כבר בשוונג, מה זה בשבילי לכתוב עוד תוסף קטן שיפתור את זה? 😋

אז הנה התוסף שכתבתי:

<?php

// Add slug column
function add_slug_column_heading( $columns ) {
    $slug_column = array(
        'slug' => __( 'Slug' )
    );
    $columns = array_slice( $columns, 0, 3, true ) + $slug_column + array_slice( $columns, 3, count( $columns ) - 1, true );

    return $columns;
}
add_filter('manage_posts_columns','add_slug_column_heading');

// Display product slug
function add_slug_column_value( $column_name, $id ) {
    if ( 'slug' == $column_name ) {
        echo urldecode(get_post_field( 'post_name', $id, 'raw' ));
    }
}
add_action( "manage_posts_custom_column", 'add_slug_column_value', 10, 2 );

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

בתמונה אפשר לראות את העמודה החדשה של "מזהה כתובת".
בתמונה אפשר לראות את העמודה החדשה של "מזהה כתובת".

איזה כיף!


סיימתי סופסוף לתת קישורים חדשים ונגישים לכל 100 הדפים (והאמת שנהנתי מזה), גם יש לי תוספים חדשים שאני גאה ביצירה שלהם וגם למדתי דברים חדשים היום. אז אני שמח.

החלטתי לכתוב עבורכם את המאמר הזה, בתקווה שזה יעזור או יתן לכם השראה.

ושוב תודה למייקל על הערנות וההשראה 🎉

עד השינוי הבא…

עזרים כלליים, קוד ופיתוח אתרים

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

פוסט בהפתעה?