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

מה זה Page Caching?

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

איך עובד המנגנון?

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

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

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

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

תרשים אשר מדגים כיצד Page Caching עובד

יתרונות וחסרונות של Page Caching

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

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

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

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

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

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

פתרונות Page Caching

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

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

פתרונות אפליקטיביים

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

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

  1. WP-Rocket – אחד מתוספי ה-Caching הטובים שקיימים היום, מאוד ידידותי למשתמש.
    התוסף כולל מספר פיצ׳רים פרט ל-Page Caching, כמו CSS & JavaScript Minifications וכד׳.
  2. LiteSpeed Cache – במידה והשרת שלכם מריץ Open LiteSpeed או LightSpeed, התוסף הזה הוא הכי שיש לבחורף הוא חינמי והוא מאפשר המון המון פיצ׳רים שיכולים בקלות להקפיץ את האתר שלכם לציון גבוהה ב-Google Page Speed.
  3. W3 Total Cache – אחד התוספים הפופולאריים, עם המון פיצ׳רים, אך הבעיה העיקרית שלו זה שהוא יחסית כבד.
  4. WP Fastest Cache – תוסף יחסית פשוט עם מעט אופציות, אך מהיר בטירוף וקליל לשימוש.

פתרונות רכיבי שרת

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

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

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

סיכום

Page Caching הוא מנגנון אשר מומלץ להשתמש בו באתרים דינאמיים על מנת לקצר באופן משמעותי את זמן הטעינה של האתר.

אז באיזה תוסף וורדפרס או רכיב שאת אתם מתמשים? ספרו לנו בתגובות 🙂

    כתיבת תגובה

    1. דוד

      מעולה. תודה.
      מה לגבי Redis, memcached ודומיהם?

      הגב
      1. דור צוברי

        היי דוד,
        Memcached ו-Redis, הם לא מבצעים Page Caching, הם נמצאים בקטגוריה אחרת שנקראת Object Cache.
        אני מתכנן לכתוב על זה גם 🙂

    2. רוב

      אתה מכיר מדריך להגדרות של LiteSpeed Cache?

      הגב
      1. דור צוברי

        היי רוב,
        לא מכיר מדריך ספציפי, ממליץ לך לעבור על ההגדרות, לקרוא וללמוד, זאת הדרך הטובה ביותר.

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

    שתפו