אחסון ותוספי WordPress

הפיכת WordPress למהיר ומאובטח: צ'ק-ליסט לביצועים ותוספים

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

האיכות של WordPress תלויה לחלוטין במה שמריץ אותו

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

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

שמירה במטמון בשרת, לא רק בתוסף

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

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

מטמון האובייקטים ומסד הנתונים

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

המילה החשובה היא «לכל אתר» (per-site). מטמון אובייקטים משותף (shared object cache) משמעותו שאתר עמוס אחד או כזה שנכתב בצורה גרועה יכול לפנות את הנתונים שנשמרו במטמון של כל השאר ולהרעיב את מסד הנתונים עבור שכניו; מטמון ייעודי לכל אתר, בשילוב עם מגבלות מסד נתונים לכל אתר, שומר על רדיוס פגיעה מוגבל. ברשימת הבדיקה שלכם, התייחסו למטמון אובייקטים קבוע (persistent object cache) כאל רכיב חובה עבור כל אתר עם משתמשים מחוברים או חנות, והיזהרו מאחסון שבו הוא משותף בין דיירים שונים.

התוספים ששווה להפעיל — ואלה שהפלטפורמה מחליפה

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

מה שנותר וראוי להפעלה הוא הסט הקטן שמוסיף יכולת אמיתית: התוספים שהאתר שלכם באמת צריך לפעילותו, ו—בפלטפורמה שלנו—שני התוספים ברמת מאגר רשמי שאנו מפתחים ומספקים עם כל אתר. תוסף המטמון שלנו מחבר את WordPress למטמון השרת ומטפל בניקוי חכם כך שעריכה מנקה רק את הדפים שהיא אמורה לנקות. תוסף טביעת הרגל (footprint) שלנו מסיר את הסימנים המזהים שהתקנת ברירת מחדל של WordPress משדרת — תגית הגרסה וה-generator, נקודות קצה לגילוי, XML-RPC, פינגבקים וכותרת ה-powered-by — בכל פריסה, כך שעדכון תוסף או תבנית לא יוכל להחזיר אותם בחשאי. שניהם נבנו בהתאם לתקני ספריית התוספים של WordPress.org, חינמיים ומעדכנים את עצמם.

שמירה על WordPress מאובטח ומעודכן

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

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

WooCommerce והעמודים שאסור לכם לשמור במטמון לעולם

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

הדרך לקבל את שניהם היא לשמור את הדף במטמון וליצור בו חורים (punch holes) עבור החלקים הדינמיים. Edge Side Includes מעבדים את מקטע עגלת הקניות, סיכומי עגלת המיני ומצב החשבון בכל בקשה מחדש בזמן ששאר הדף מוגש מהמטמון, כאשר דפי cart, checkout, my-account וכל דף הכולל nonce או session מוחרגים כברירת מחדל. רעננות המידע מנוהלת באמצעות ניקוי מטמון חכם ואוטומטי שמופעל כאשר מוצר, מחיר או הזמנה משתנים, כך שמחיר שאינו עדכני לעולם אינו נשאר. אם אתם מפעילים את WooCommerce, זהו החלק ברשימת המשימות שחובה לבצע בצורה מדויקת לחלוטין: חנות מהירה מהמטמון, עגלת קניות דינמית לכל משתמש, ושום מידע אישי שלעולם אינו נשמר במטמון.

שאלות נפוצות

האם אני עדיין צריך תוסף שמירה במטמון כמו WP Rocket?

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

אילו תוספים הפלטפורמה הופכת למיותרים?

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

האם שמירה במטמון תשבש את עגלת ה-WooCommerce שלי או דפים למשתמשים מחוברים?

לא. דפי Cart, checkout, my-account וכל דפי nonce או הפעלה (session) מוחרגים מהמטמון כברירת מחדל, ו-Edge Side Includes שומר על מקטע עגלת הקניות והסכומים הכוללים פעילים בדפים שאחרת נשמרים במטמון. הקונים תמיד רואים את הסל שלהם ואת עמוד התשלום פעיל בעוד שחזית החנות עדיין נטענת מהמטמון, וניקוי אוטומטי חכם מנקה את הדפים המושפעים כאשר מוצר, מחיר או הזמנה משתנים.

כיצד אתם שומרים על אבטחת WordPress מבלי שאצטרך לנהל אותו?

אנו מעדכנים את שכבות התשתית שמתחת ל-WordPress, מאפשרים החלת עדכוני ליבה ותוספים בבטחה באמצעות סביבת בדיקות (staging) ושחזור בלחיצה אחת, מפעילים כברירת מחדל סריקת נוזקות והגנת DDoS, מבודדים כל אתר כדי שפריצה לא תוכל להתפשט, ומנפיקים ומחדשים תעודות TLS באופן אוטומטי. פעולות אלו מסירות את התשתית כחוליה החלשה; שמירה על היגיינה בסיסית, כגון שימוש בפרטי התחברות חזקים והסרת תוספים שאינם בשימוש, נותרת באחריותכם.

נסו זאת בחינם למשך 14 יום

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

התחל בחינם