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

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

מטמון, ומה חייב להישאר מחוץ לו
הצעד הראשון הוא מטמון עמודים. לפי התיעוד של ווקומרס, עמודי העגלה, התשלום והחשבון שלי צריכים להישאר מחוץ למטמון, כי הם מציגים מידע של הלקוח הנוכחי. כל השאר, דף הבית, קטגוריות ועמודי מוצר, אפשר וכדאי לשמור.
רוב תוספי המטמון המוכרים מחריגים את העמודים האלה לבד, ו WP Rocket עושה את זה אוטומטית. אבל אם יש מטמון גם בשכבת השרת או ב CDN, צריך לוודא שגם שם העגלה והתשלום לא נשמרים. אחרת, לקוח אחד יכול לראות עגלה שנשמרה עבור לקוח אחר.
הסקריפט שמעדכן את העגלה
ווקומרס משתמש בסקריפט שנקרא cart fragments כדי לעדכן את אייקון העגלה בלי לרענן את העמוד. בעבר הוא נטען בכל עמוד בחנות ושלח בקשה לשרת בכל כניסה, גם בעמודים שנשמרו במטמון. כך עמוד מהיר עדיין חיכה לתשובה מהשרת.
מגרסה 7.8, ווקומרס טוען אותו רק כשמוצג ווידג'ט עגלה. אבל הרבה תבניות מציגות עגלה קטנה בהדר, ואז הסקריפט חוזר לכל עמוד. כדאי לבדוק בלשונית הרשת אם מופיעה בקשה עם get_refreshed_fragments, ולהחליט אם העגלה בהדר שווה את המחיר.
הזמנות, מסד נתונים ומשימות רקע
בחנות ותיקה מסד הנתונים גדל עם כל הזמנה. בעבר, כל הזמנה נשמרה בטבלאות של הפוסטים, וכל שדה שלה הוסיף שורות לטבלה ענקית אחת. אחסון ההזמנות המהיר של ווקומרס שומר אותן בטבלאות נפרדות, ובחנויות חדשות הוא מופעל כברירת מחדל.
בחנות שהוקמה לפני כן, כדאי לבדוק בהגדרות המתקדמות אם הוא פעיל, ולהעביר אליו את ההזמנות אחרי גיבוי. בנוסף, ווקומרס מריץ משימות מתוזמנות ברקע. אם הרשימה שלהן בכלי הסטטוס מתמלאת במשימות שנכשלו, הן מעמיסות על השרת. כדאי לנקות אותה ולבדוק למה הן נכשלות.
חיפוש, סינון ותמונות מוצר
עמוד קטגוריה עם סינון לפי מחיר, צבע ומידה מריץ שאילתות כבדות, ולרוב לא נשמר במטמון, כי כל שילוב סינון הוא כתובת אחרת. תוספי סינון שונים מאוד זה מזה במהירות. לפני שבוחרים אחד, כדאי למדוד כמה זמן לוקחת תשובה לסינון בקטגוריה הגדולה ביותר בחנות.
תמונות מוצר הן בדרך כלל החלק הכבד ביותר בעמוד. בחנות יש מאות או אלפי תמונות, ולכן ההמרה לפורמט מודרני צריכה להיות אוטומטית, דרך תוסף שממיר כל תמונה בהעלאה. את השלבים פירטתי במאמר על הקטנת משקל תמונה.
אחסון לחנות
כיוון שהעגלה והתשלום לא נשמרים במטמון, השרת עובד בחנות הרבה יותר מאשר באתר תוכן. אחסון שיתופי זול מספיק לאתר תדמית, אבל בחנות הוא מורגש בדיוק ברגע הקנייה. זמן התגובה של השרת בעמוד העגלה הוא מדד טוב לבדוק אם האחסון מספיק.
בחנות עם הרבה מוצרים והזמנות, גם מטמון אובייקטים כמו Redis עושה הבדל, כי הוא חוסך שאילתות חוזרות למסד הנתונים בעמודים שלא נשמרים במטמון. רוב האחסונים המנוהלים לוורדפרס מציעים אותו בלחיצה, וכך שיפור מהירות אתר ווקומרס מגיע גם לעמודים שהמטמון לא מכסה. על הקשר בין מהירות למכירות כתבתי במאמר על שיפור מהירות לאתר איקומרס.
שאלות ותשובות על חנויות ווקומרס
איזה תוסף מטמון מתאים לחנות?
כל תוסף מטמון מוכר עובד עם ווקומרס, כל עוד העגלה, התשלום והחשבון מוחרגים. חשוב יותר מהתוסף עצמו הוא לבדוק אחרי ההגדרה שהעגלה מתעדכנת נכון, ושלקוח מחובר לא רואה עמוד שנשמר עבור לקוח אחר.
האם להשבית את העגלה הקטנה בהדר?
אם רוב הקונים מוסיפים לסל מעמוד המוצר ועוברים ישר לעגלה, אפשר לוותר על העגלה הקטנה בהדר ולחסוך בקשה בכל עמוד. אם היא חשובה לחוויית הקנייה, עדיף להשאיר אותה ולבדוק שהבקשה לא מעכבת את הופעת העמוד.
למה עמוד התשלום איטי יותר משאר החנות?
כי הוא לא נשמר במטמון, והוא טוען גם את תוספי התשלום, המשלוח והקופונים. כל אחד מהם יכול להוסיף סקריפטים ופניות לשרתים חיצוניים. בדיקה בלשונית הרשת בעמוד התשלום מגלה בדרך כלל אחד או שניים שאחראים לרוב העיכוב.
האם מספר המוצרים בחנות משפיע על המהירות?
בעמוד מוצר בודד, כמעט לא. בעמודי קטגוריה, חיפוש וסינון, כן, כי השאילתות עוברות על יותר מוצרים ויותר נתונים. בחנות עם אלפי מוצרים, תוסף סינון יעיל, מטמון אובייקטים ומסד נתונים מסודר חשובים הרבה יותר מאשר בחנות עם עשרות מוצרים.
הצעד הבא
רוצים לדעת מה מאט את החנות שלכם? שלחו לי את הכתובת. אבדוק את עמוד המוצר, הקטגוריה והתשלום, ואגיד לכם מה נשמר במטמון, מה רץ ברקע ומה כדאי לתקן קודם.