דילוג לתוכן
חיפוש באתר

ביצועים

מטמון באתר: ארבע השכבות, Cache-Control ולמה עדכון לא מופיע

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

· עודכן: · 1 צפיות ·

מטמון (Cache) באתר הוא עותק שמור של תוכן, שמאפשר להגיש אותו שוב מהר בלי לייצר או להוריד אותו מחדש. יש כמה שכבות מטמון: הדפדפן של הגולש שומר קבצים שכבר הורדו, השרת שומר עמודים מוכנים, רשת CDN שומרת עותקים קרוב לגולש, ומסד הנתונים שומר תוצאות של שאילתות. מטמון הוא אחת הדרכים היעילות ביותר להאיץ אתר — והוא גם הסיבה הנפוצה ביותר לשאלה "עדכנתי את האתר, למה אני לא רואה את השינוי?".

ארבע שכבות המטמון

שכבה איפה מה נשמר מי שולט בה
מטמון הדפדפן במחשב או בטלפון של הגולש תמונות, קבצי CSS ו-JavaScript, גופנים האתר, דרך כותרות HTTP
מטמון עמודים בשרת HTML מוכן של עמודים שלמים תוסף מטמון או הגדרות השרת
מטמון CDN / קצה בשרתים של רשת ההפצה קבצים ולפעמים עמודים הגדרות ה-CDN
מטמון אובייקטים בשרת, בזיכרון תוצאות שאילתות למסד הנתונים הגדרות השרת והאפליקציה

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

איך האתר אומר לדפדפן מה לשמור

האתר שולט במטמון דרך כותרת HTTP בשם Cache-Control. כמה הוראות בסיסיות:

  • max-age — כמה שניות מותר להשתמש בעותק השמור בלי לבדוק שוב.
  • no-cache — מותר לשמור, אבל צריך לבדוק מול השרת לפני כל שימוש.
  • no-store — לא לשמור בכלל. MDN ממליצה לא להשתמש בזה בלי צורך, כי מאבדים יתרונות כמו חזרה מהירה אחורה בדפדפן.

כשעותק "מתיישן", הדפדפן לא בהכרח מוריד הכול מחדש: הוא שואל את השרת אם הקובץ השתנה, ואם לא — השרת עונה "לא השתנה" (304) בלי לשלוח את הקובץ שוב.

הטריק שפותר את רוב הבעיות: גרסה בכתובת

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

<link rel="stylesheet" href="main.css?ver=1791484721">

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

מטמון עמודים: ההאצה הגדולה

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

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

מטמון CDN וקצה

רשת הפצת תוכן (CDN) שומרת עותקים בשרתים שפזורים בעולם, כך שהגולש מקבל את הקבצים מהשרת הקרוב אליו. האתר הזה עובר דרך Cloudflare, שמשמשת גם כשכבת מטמון כזו. הנקודה החשובה: כשמעדכנים תוכן, צריך לנקות גם את מטמון הקצה — אחרת הגולשים ממשיכים לקבל את העותק הישן מה-CDN, גם אם השרת כבר מעודכן.

מטמון אובייקטים: כשמסד הנתונים הוא צוואר הבקבוק

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

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

איך בודקים מה באמת נשמר

במקום לנחש, אפשר לראות. בכלי המפתחים של הדפדפן, בלשונית הרשת, בוחרים בקשה ומסתכלים על כותרות התשובה: Cache-Control מראה מה האתר הורה לדפדפן, Age מראה כמה זמן העותק כבר שמור במטמון משותף, ו-CDN רבים מוסיפים כותרת משלהם שאומרת אם התשובה הגיעה מהמטמון או מהשרת. כשבדקתי את דף הבית של האתר הזה, הכותרת של Cloudflare הראתה שה-HTML עצמו מוגש מהשרת ולא מהמטמון של הקצה — בעוד שקבצי העיצוב, עם מספר הגרסה בכתובת, מתאימים לשמירה ארוכה.

"עדכנתי ואני לא רואה את השינוי" — לפי הסדר

  1. רענון מלא בדפדפן — Ctrl+F5 במחשב, או פתיחה בחלון גלישה בסתר.
  2. ניקוי מטמון העמודים בתוסף או בלוח הבקרה של האתר.
  3. ניקוי מטמון ה-CDN לכתובת הספציפית או לכל האתר.
  4. אם זה קובץ עיצוב או סקריפט — לבדוק שמספר הגרסה בכתובת השתנה.

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

"ניקוי מטמון" בדפדפן — לגולשים

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

מאמרים קשורים: WP Rocket: מה התוסף עושה, אילו הגדרות להפעיל ומה הוא לא פותר.

מאמרים קשורים: מטמון HTML ב-Cloudflare: להגיש עמודים מהקצה בלי לשבור את האתר.

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

אהבתם את המאמר?

בואו נבנה יחד!

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

חיפוש באתר