כל מילי שניה נספרת!

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

למה חשוב שהאתר יעלה במהירות?

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

איך ניתן לדאוג שהאתר יעלה במהירות?

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

  1. שכבת בסיס הנתונים - השכבה בה נאחסן את כל המידע שקשור לאתר, למשל מאגר לקוחות או מוצרים.
  2. שכבת השרת - שכבת הברזל וחוטי החשמל, המחשב הפיזי שעליו רצה תוכנת האתר.
  3. שכבת התוכנה - השכבה של קוד התוכנה של האתר, לרוב פה קורות כל הפעולות הלוגיות של האתר (למשל פעולת התחברות של משתמש, פעולת רכישת מוצר וכו׳...).
  4. השכבה המקשרת - השכבה שמקשרת בין השרת לבין התוכנה.
  5. שכבת הדפדפן - השכבה בה רואים את האתר, הדפדפן שמותקן אצלכם במחשב או בסמארטפון.

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

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

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

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

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

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

לכן כשאתם באים לבנות אתר, אל תשכחו לשים לב לזמני טעינת האתר, זה פרמטר הרבה יותר חשוב ממה שחשבתם. אנו ב- DJint נשמח לעזור לכם בבניית אתר מהיר, או בשיפור ביצועי האתר הקיים שלכם, מעוניינים? צרו איתנו קשר ונשמח לשוחח איתכם!

שיתוף:

תגובות