דף הבית » טריקים וטיפים

הגדרת מבנה קישורים לשיפור הביצועים

13 במרץ 2011 | מאת רמי | 26 תגובות | תגיות: , ,

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

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

לוגו וורדפרס

לוגו וורדפרס

הבעיה

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

פעולת ה"פיענוח" הזו צורכת משאבים. הגדרה לא נכונה של מבנה הקישורים יכולה להגדיל ב- 1,700% את כמות השאילתות למסד הנתונים על מנת להציג פוסט בודד. אני לא אסביר איך זה עובד, אבל אסביר ממה להימנע.

הגדרות

את ההגדרות הקשורות למבנה הקישורים אנו מגדירים עם הקמת האתר דרך התפריט הגדרות -> קישורים ישירים.

תפריט הגדרת קישורים ישירים בוורדפרס

תפריט הגדרת קישורים ישירים בוורדפרס

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

  • %year% – שנת פרסום הפוסט, ארבע ספרות.
  • %monthnum% – החודש בו פורסם הפוסט, שתי ספרות.
  • %day% – היום בו פורסם הפוסט, שתי ספרות.
  • %hour% – שעת פרסום הפוסט, שתי ספרות.
  • %minute% – הדקה בה פורסם הפוסט, שתי ספרות.
  • %second% – השניה בה פורסם הפוסט, שתי ספרות
  • %post_id% – מספר הפוסט, ספרות.
  • %postname% – שם הפוסט, מחרוזת (הסלאג של הפוסט).
  • %category% – הקטגוריה אליה שייך הפוסט, מחרוזת (הסלאג של הקטגוריה).
  • %tag%– התגית אליה שייך הפוסט, מחרוזת (הסלאג של התג).
  • %author% – המחבר של הפוסט, מחרוזת (הסלאג של המחבר).

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

הכלל

לעולם אסור להתחיל מבנה קישורים ב-%postname%, %category%, %tag%, %author%.

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

מה כן לעשות מה לא לעשות

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

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

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

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

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

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

עדכון

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

מאת רמי

אחראי על אתר וורדפרס בעברית ועל תרגום ושחרור גרסאות וורדפרס בעברית. מפתח ליבה, בכל גרסה החל מגרסה 2.8, מפתח מוביל בגרסה 4.4 ובגרסה 4.6. מספק שירותי פיתוח אתרים, פיתוח תוספי וורדפרס לסטרטאפים ופיתוח כלים למפתחי וורדפרס - GenerateWP.com.

26 תגובות »

  • deva כותב :

    אז קישור מהיר הוא כולל בהתחלה: תאריך פרסום כמו אצלך באתר או ID של פוסט?

  • מא.טט כותב :

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

    לראיה – המלך של כל מה שוורדפרס וSEO

    http://yoast.com/changing-your-permalink-structure/

  • רמי כותב :

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

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

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

  • יוסי ג'אנה כותב :

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

    ממבט של מקדם אתרים אני יכול לומר שיש משקל לכתובת ידידותית למשתמש ולא למספר לדוגמה p=12

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

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

  • רמי כותב :

    יוסי, אני מקבל את ההערה שלך. אבל עם אתה רוצה להמנע מכמות גדולה של הפניות, אפשר להשתמש בתוסף Broken Link Checker כדי לאתר קישורים שהם בעצם "הפניות 301" ולתקן את ההפניות לקישורים הנכונים.

  • טל כותב :

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

    שמעתי את השינויים, ועכשיו אני לא מצליח לגשת לאתר ומקבל שגיאה 500

    500 – Internal server error.
    There is a problem with the resource you are looking for, and it cannot be displayed.

    איך אני יכול לשחרר את זה??
    תודה רבה.

  • רמי כותב :

    טל, נסה לשנות את ההרשאות של הקובץ htaccess ל-777 ואז נסה לשמור שוב את המבנה הקישורים.

  • יוסי ג'אנה כותב :

    הבעיה הוא בקובץ htaccess. נסה לטפל, להסיר אותו לצורך החזרה של הפעולה של הבלוג ואז נסה שוב. מומלץ לתת הרשאה של 755 לקובץ הזה. אם לא עובד נסה את 777. אם אתה משתמש ב-ftp אז זה פשוט, אם השרת שלך עם ממשק Cpanel הדבר פשוט עוד יותר במיוחד עם ממשק גרפי המשופץ של cpanel.

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

  • יצחק כותב :

    שלום רמי ויוסי,

    אני שיניתי כבר מההתחלה (אני עובד עם זה כבר הרבה זמן…) ל%post_id%,
    ואז כל הדפים מקבלים קישור עם שם הדף,

    ליוסי – ראיתי ששאלת על איך להוסיף את שמות הדפים לקישור…
    לרמי – האם אתה חושב שזה יכול להוות בעיה, כי הקישור לא מתחיל במספר, אבל לפי מה שאמרת זו מחרוזת של מספר…

    תודה רבה רבה לך!!!
    יצחק.

  • אביתר כותב :

    היי,

    אני ממש חדש בנושא וורדפרס. מטעמי SEO אני רוצה להשתשמש בpermalinks.
    אני מארח את האתר על שרת IIS7 ולא מצליח לגרום לזה לעבוד.
    מישהו מכיר את הבעיה.
    יותר נכון מישהו מכיר את הפתרון?

    תודה מראש,
    אביתר

  • יוסי ג'אנה כותב :

    היי רמי,

    מה קורה 🙂
    דבר ראשון, חבל מאוד שאי אפשר להגיב פה לתגובות (תתי תגובות) כי ככה זה יוצר שרשור לא תואם. רציתי להגיב לך על תגובה בקשר ל- Broken Links
    כנראה פספתי אותו מקודם אז לא קבילתה תשובה לכן עכשיו אני מגיב….

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

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

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

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

  • רמי כותב :

    היי יוסי, הטענה שלך עניינית. אבל מלבד שיקול ה-SEO יש עוד שיקולים. כאשר אתר עובר סדר גודל מסויים, והמערכת הופכת לאיטי להחריד, רבים "יקריבו" את שיקולי ה-SEO שלהם כדי שהאתר יהיה מאט יותר מהיר. כמובן שאפשר לעבור ל-VPS או לשרת פרטי, אבל יש מגבלות תקציב. אפשר גם לעבור ל- NGINX אבל לא לכולם יש את הידע.

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

  • ליטל כותב :

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

  • אביתר כותב :

    היי ליטל,
    מהנסיון הלא ממש עשיר שלי ומכך שגם אני עשיתי את אותה טעות בדיוק אני יכול להגיד שזה נחלק לשני אופנים.
    1. ניתן לבצע תיקונים להפניות בקובץ .htaccess באמצעות redirect 301.
    2. בלי כל קשר גם אם לא תתקני כלום תוך חודש חודש וחצי כמויות ה-404 שיופיעו לך בוובמאסטר של גוגל ירדו פלאות. ואולי אז כדאי לבצע את ההפניות 301.
    מקווה שיעזור לך.

  • ליטל כותב :

    תודה על המענה,
    האם הכוונה שלך היא להוריד תוסף ולבצע בו הפניות בין כתובת הפרמטרים לכתובת לפי POSTNAME? או שיש לעשות משהו בתוך קובץ הHTACCESS?
    חוץ מזה יש במודול 404 כל מיני דברים שאני לא יודעת איך בכלל להתייחס אליהם ובעיקר שגיאה 404 שמיוחסת ל:
    wp-content/languages/he_IL.css

  • ליאור כותב :

    היי רמי
    הבעיה שנתקלתי שכאשר השתמשתי ב PERMALINK עם שם הפוסט, , כאשר שם הפוסט הוא בעברית הכתובת שניתנת היא משהו כזה .."95%D7%A8-%D7%94%D7%9…"
    האם יש פתרון לבעיה הזאת או שעדיין אי אפשר להשתמש ב PERMALINK עם פוסטים בעברית ? (לעמודים נראה לי שזה עובד בסדר…)

    תודה
    ליאור

  • יוסי ג'אנה כותב :

    ליאור,

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

    אין קשר למערכת

  • איציק כותב :

    היי רמי,

    האם אפשר להפעיל קישורים בעברית גם תחת IIS7?

    שאני מפעיל את האופציה אז קישורים באנגלית עובדים מצוין. אך קישורים עם מילים בעברית מגיעים לדף שגיאה.

    האם יש דרך לסדר זאת?

    תודה,
    איציק

  • לב קירייצ'וק כותב :

    כן, ישנה אפשרות להפעיל קישורים בעברית על שרת IIS7.

    1. צריך להתקין מודול URL REWRITE על IIS7.

    2. יש לוודא שקובץ WEB.CONFIG פתוח לכתיבה, ולאחר שינויי תבנית URL ב- WORDPRESS הקובץ השתנה ל-:

    3. עכשיו הקישורים יעבדו אבל חלקית ל- POST לא תוכל להיכנס. על מנת לפתור זאת צריך להוסיף שורת המרה של כתובת URL לקובץ wp-config.php:

    if (isset($_SERVER['UNENCODED_URL']))
    $_SERVER['REQUEST_URI'] = $_SERVER['UNENCODED_URL'];

    לאחר פעולות כתובת URL בעברית צריכות לעבוד תקין.

    לקח לי כמה שעות לפתור תהלומה זאת על שרת IIS7

  • נדב כותב :

    אהלן.
    אני נתקל בבעיה דומה אבל תחת לינוקס – כשהאתר ישב על שרת שהריץ IIS7 הכל עבד כשורה, עכשיו עברתי לבלוהוסט ואני מקבל שיגאות 404. האם הבעיה מוכרת? איך מתמודדים איתה?

    תודה,
    נדב

  • ניסים כותב :

    היי רמי, ראשית תודה רבה. הכנסתי באתר שלי מבנה מותאם אישית כזה: /%post_id%-%postname% האם זה עדיין בסדר. או מכיוון שהמשתנה השני הוא מחרוזת זה מאט את האתר?

    תודה

  • רמי כותב :

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

  • פיני כותב :

    לב קירייצ'וק תודה רבה,
    ההערה שלך עזרה לי מאוד.

  • משה כותב :

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

    תודה

  • רמי כותב :

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

  • מושיק הובלות קטנות כותב :

    דעתי שעדין אנחנו לומדים מהישן ומתחדשים עם החדש

הוסף תגובה !

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

תגיות HTML מורשות לשימוש:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>