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

דצמבר 05, 2013 רועי ואקנין

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

מזה כשנה נעשה שימוש לא מחייב במנגנון המאפשר פתרון חלקי לנושא, וטיפול יותר מלא של מנועי חיפוש באתרים מסוג זה. הפתרון מתבסס על escaped_fragments- מנגנון מבוסס סקריפט ג'אווה המיושם בעיקר בצד השרת של האתר, והסכם (לא מחייב) לפיו כאשר מוצג למנוע חיפוש URL דינמי שבנוי בצורה הנ"ל, המנוע ימיר אותו לURL שמכיל את הביטוי escaped fragments , ויחפשו בשרת. בתגובה לביטוי ה escaped fragment, השרת יציג למנוע החיפוש העתק סטטי (עמוד HTML רגיל) של הפרגמנט, או המצב, שמקביל לURL הדינמי שהוצג למנוע החיפוש.

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

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

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

יתרונות:

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

חסרונות:

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

א. לא כל מנועי חיפוש/שרותי הרשת מקבלים אותו

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

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

  • שברירי- גאווה - היות והמנגנון של ה escaped fragments מופעל בעזרת סקריפטים של ג'אווה בצד השרת, המנגנון שברירי מעט, ולעתים לא עובד (לדוגמא- אם הסקריפט נתקע, לא מגיב, לא זמין וכו באופן זמני בשרת, ואז לא מוצגים למנועי חיפוש עמודי האתר)
  • לא זמין לכולם- גאווה - לא לכל המשתמשים יש ג'אווה או גרסא עדכנית של ג'אווה על המחשב שלהם. הדבר נכון במיוחד לאחרונה, לאחר שבשל מספר בעיות אבטחה חמורות יצאו מומחים וארגונים רבים ואף מדינות שלמות (כדוגמת ארה"ב) בהמלצה לגולשים לנתק או להסיר ג'אווה מהמחשבים שלהם. סטטיסטיקות מעריכות שכ4-5% מהגולשים נתקלים בקשיים משמעותיים בשימוש בג'אווה. לכאורה מדובר באחוז נמוך, אך באתר שמקבל לדוגמא 50,000 גולשים בחודש- המשמעות היא ש 2,500 איש לא יוכלו לראות את האתר כראוי- וזהו מספר משמעותי.
  • יצירת קישורים בעייתיים - על פי ההסכם הנ"ל, מנועי חיפוש לא יאנדקסו קישורים חיצוניים לאתר בפורמט ה ugly URL (URL שמכילים את ה escaped fragments). המשמעות היא שאם ישנם קישורים חיצוניים המובילים לאתר ומכילים את הביטוי escaped fragments, מנועי חיפוש יתעלמו מהם, וכוחם יאבד.
  • כפילויות תוכן והצגת ugly url בתוצאות חיפוש - לפי ההסכם הנ"ל מנועי חיפוש יציגו בתוצאות החיפוש רק את pretty url (ללא הביטוי escaped fragments), ולא יאנדקסו ככפילות תוכן את הפרגמנטים השונים שמוצגים להם. עם זאת, ישנם דיווחים רבים על אתרים שבהם כן אונדקסו עמודים שונים וכפילויות תוכן, וכן הוצגו ugly url  בתוצאות החיפוש. ככל הנראה, מדובר לרוב בתוצאה של יישום לא נכון של המנגנון שבהסכם, אבל היות והמספרים רבים, ניתן להניח כי גם אם הבעיה היא רק בצד האתר (פיתוח לא נכון), כנראה שהפתרון אינו חף מבעיות אם אתרים כה רבים כושלים ביישום.
  • פיתוח יותר מורכב - בניית עמודים דינמיים כ"מצבים"  אולי מייצרת אתרים רזים וחכמים יותר, אבל מחייבת לצורך כך מחשבה ותכנון רב יותר בעת הפיתוח. המשמעות היא לא רק השקעה רבה יותר מצד המפתח, אלא גם יצירת אתר מורכב יותר, דבר המקשה בעתיד על שינויים וטיפולים, ומפתח תלות בבונה האתר המקורי.

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

  • קושי מהותי במעבר ל FU  בהמשך - בהמשך לנקודה הנ"ל, יצירת אתר בעזרת אפליקציות AJAX (#!) בפורמט של מצבי עמוד, מקשה מאוד על המעבר בעתיד לעמודים סטטיים ו Friendly URL ושימור הכח בעת המעבר. הסיבות לכך, בין השאר הן משום שיהיה על אנשי התוכן לעבור ממש מצב מצב (פרגמנט פרגמנט) וליצר עבורו באופן ידני הפנייה לעמוד החדש- משימה לא ראלית באתרים גדולים, ובנוסף יהיה צורך לשמר את מנגנון הגאווה בשרת כדי שיסייע לפענח מהו הפרגמנט שמבוקש מהשרת ומה להעביר לאיזה עמוד סטטי חדש.
  • URL לא ידידותיים, מקשים על ניטור, קישורים חיצוניים, טיפול בבעיות וניווט באתר - היות וכתובות העמוד שנוצרות בצורת פיתוח זו (מצבים דינמיים עם AJAX)  אינן ידידותיות וקשות מאוד לפענוח, הן מקשות בצורה משמעותית על ניטור הפעולות באתר, על יצירת קישורים אל האתר מגולשים ומשתמשים חיצוניים, על איתור תבניות ותקלות באתר וטיפול בהן, ואינן מקלות גם על גולשים להתמצא באתר.

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

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

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

* לפרטים טכניים על ההסכם הלא מחייב בנוגע לשימוש ב escaped fragments  כדי להפוך עמודים שיוצרו באפליקציות AJAX לזמינים למנועי חיפוש - שימוש ב escaped fragments

השירותים שלנו

Traffic

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

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

Data & Analytics

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

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

Conversion Optimization

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

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

Content

התוכן הוא המלך!
ליצור תוכן איכותי, שכתוב לגולשים אנושיים ולא לרובוטים, להגדלת התנועה האורגנית ולהגדלת המכירות והפעולות באתר!

התוכן הוא המלך!
ליצור תוכן איכותי, שכתוב לגולשים אנושיים ולא לרובוטים, להגדלת התנועה האורגנית ולהגדלת המכירות והפעולות באתר!