אופטימיזציה של תמונות בשרת: WebP, AVIF, דחיסה

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

פיתוח ותחזוקה של כל סוגי האתרים:

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

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
אופטימיזציה של תמונות בשרת: WebP, AVIF, דחיסה
בינוני
~2-3 ימים
שאלות נפוצות

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

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

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

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

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

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

מה נותן אופטימיזציה של תמונות בצד השרת בפועל

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

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

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

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

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

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

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

פורמטים ומצבי הגשה: השוואת גישות

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

אפשרות מתי מתאימה מגבלות
פורמטים קלאסיים (JPEG, PNG) תאימות מקסימלית, סטאק פשוט ללא בנייה מחדש של נכסים משקל גבוה פי 2-4 מפורמטים מודרניים, אין שקיפות ב-JPEG, PNG כבד מדי לתמונות
פורמטים מודרניים (WebP, AVIF) עיקר התעבורה — דפדפנים עדכניים, חשובים מהירות ותעבורה AVIF מקודד לאט יותר, חלק מהלקוחות הישנים לא יציגו את התמונה ללא חלופה
הגשה היברידית לפי יכולות הלקוח אתרים ציבוריים עם קהל רחב, שבהם אסור לאבד אף אחד נדרשת יצירה של כמה גרסאות וכותרות התאמה תקינות

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

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

סדר היישום בצד השרת

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

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

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

תצורות, מדיניויות מטמון ותקנות

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

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

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

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

מקרה בוחן: כיצד צומצם משקל התגובה והוסרו הנפילות

הפרויקט — קטלוג עם כרטיסי מוצרים וגלריה כבדה: כל עמוד משך תמונות בגודל מלא בפורמט המקורי, ותגובת קטלוג אחד הגיעה עד 8–12 MB. ברשתות סלולריות זה הניב LCP בסביבות 6–9 שניות, ובעומס שיא השרת נתקע ברוחב הפס והחזיר חלק מהבקשות עם שגיאה — סוג הכשלים שאתו התמודדנו.

מה עשינו

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

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

מדדים לפני ואחרי

מדד לפני אחרי
משקל עמוד הקטלוג 8–12 MB 1,4–2,1 MB
שיעור הדחיסה — 78–84%
LCP בסלולר 6–9 ש' 1,8–2,4 ש'
זמן תגובת השרת (p95) 900–1400 מ"ש 180–260 מ"ש
שגיאות תגובה בשיא 3–5% מהבקשות בודדות

שיעור הדחיסה של 78–84% אינו "ממוצע כללי": בתמונות עם גרדיאנטים חלקים AVIF נותן יותר, בגרפיקה עם קצוות חדים — פחות, ולכן חישבנו לפי תעבורה אמיתית ולא לפי מדגם בדיקה.

מה השתנה עבור העסק

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

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

במה שונה אופטימיזציה בצד השרת מאופטימיזציה בצד הלקוח?

אופטימיזציה בצד הלקוח — זה כל מה שקורה בדפדפן כבר אחרי שהקובץ הגיע דרך הרשת: טעינה עצלה באמצעות loading="lazy", הגשה אדפטיבית באמצעות srcset ו-sizes, רינדור נדחה, מטמון במכשיר המשתמש. הדפדפן מחליט מתי לבקש את התמונה ואיזו מהגרסאות המוכנות לקחת למסך הנוכחי. אבל הוא לא יכול לעשות את מה שאין לו: אם בשרת מונח JPEG יחיד בגודל 4 MB, שום srcset לא יקל עליו.

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

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

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

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

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

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

ספקות טכניים נפוצים

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

האם הפריסה תישבר בדפדפנים ישנים?

לא. אנו מגישים פורמטים מודרניים באמצעות משא ומתן על פורמטים בצד השרת: הדפדפן מקבל WebP או AVIF רק אם הוא עצמו הצהיר על תמיכה בהם, ולשאר נשלח ה-JPEG או ה-PNG המקורי. בנוסף אנו משאירים נתיב גיבוי דרך תג <picture> עם מספר מקורות. הפריסה והווידג'טים המוטמעים פועלים באופן זהה בכל מכשיר.

מה יקרה לתמונות שכבר הועלו?

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

כיצד לחזור לאחור אם משהו ישתבש?

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

האם נדרשות הרשאות גישה לשרתים ול-CDN?

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

עד כמה תיפגע איכות התמונות?

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

אם שאלתכם אינה כאן — תארו את המשימה, ונחזור עם הערכה ותוכנית.

נדון במשימה שלכם ונחזור עם הערכה

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

מה שעוזר להתחיל מהר יותר:

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

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

תארו את המשימה — נחזור עם הערכה ותוכנית.

הכישורים שלנו:

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1393
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1368
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1139
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1152
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1231
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    641