WordPress מגיע עם WP_Object_Cache מובנה - אבל הוא non-persistent: הוא קיים רק בזיכרון של בקשת PHP יחידה ונעלם בסופה. בלי תוסף נוסף שמחבר אותו ל-Redis או Memcached, כל בקשה חייבת לבצע מחדש את אותן שאילתות DB - שאילתות שמחזירות בדיוק אותן תוצאות שהבקשה הקודמת הביאה לפני 200ms. זה בזבוז עצום של זמן ושל משאבים על שרת.
למה זה משנה
אתר WordPress טיפוסי מבצע 50-150 שאילתות DB בכל טעינת עמוד. הרבה מהן חוזרות על עצמן: wp_options, taxonomy lookups, user meta. עם Redis Object Cache, השאילתה הראשונה הולכת ל-MySQL, התוצאה נשמרת ב-Redis (זיכרון מהיר במיוחד), ובקשות הבאות נמשכות מ-Redis ב-1-3 milliseconds במקום 20-100ms מ-MySQL.
על אתר WooCommerce עם 200 מוצרים, שאילתות שלוקחות 800ms בלי object cache הופכות ל-150ms. בעת תנועת שיא (Black Friday, deal של חיים), שרת בלי object cache קורס ב-50 בקשות בשנייה; עם Redis הוא ממשיך ב-200+ בקשות. ההשפעה על Core Web Vitals: TTFB יורד ב-100-400ms, וכל ה-LCP ו-INP עוקבים אחריו.
חשוב: object cache הוא שונה מ-page cache. page cache (WP Rocket, LiteSpeed) שומר HTML מוכן עבור גולשים אנונימיים. object cache שומר חתיכות נתונים בתוך WordPress עצמו - מועיל גם לגולשים מחוברים, גם ל-admin, וגם ל-AJAX/REST. שניהם משלימים זה את זה.
איך לזהות
גש ל-Tools > Site Health. תחת "Persistent object cache" אם הסטטוס "Should be present" - אין לך object cache פעיל. אם "Site is using a persistent object cache" - יש.
בדיקה ידנית בקונסולת PHP:
echo wp_cache_get('test', 'group') === false ? 'No cache' : 'Cache active';בדיקה דרך WP-CLI:
wp cli info | grep -i cacheאם אתה משתמש ב-Redis, בדוק שהוא רץ:
redis-cli ping # אמור להחזיר PONGאיך לתקן
שלב 1: ודא שלשרת יש Redis או Memcached מותקן. ברוב האחסונים המנוהלים (Kinsta, Cloudways, SiteGround GoGeek+, Hostinger Premium+) זה כלול. ב-shared hosting זול לרוב לא. בדוק בלוח הבקרה או פנה לתמיכה.
שלב 2: התקן את התוסף "Redis Object Cache" של Till Krüss (חינמי, מסודר, פופולרי). ב-Memcached - "W3 Total Cache" (יש בו object cache כחלק מהחבילה).
שלב 3: הגדרת חיבור. ב-wp-config.php:
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_PASSWORD', 'YOUR_PASSWORD'); // אם יש
define('WP_REDIS_DATABASE', 0);
define('WP_CACHE_KEY_SALT', 'YOUR_SITE_DOMAIN_'); // למניעת התנגשויותשלב 4: בעמוד התוסף לחץ "Enable Object Cache". בדוק שהסטטוס "Connected".
שלב 5: בדוק את האתר - אמור להרגיש מהיר יותר במיוחד באזור האדמין. ב-Site Health, "Persistent object cache" צריך להיות ירוק.
טעויות נפוצות
הטעות הראשונה: להפעיל Redis בלי לקבוע WP_CACHE_KEY_SALT - אם יש כמה אתרים על אותו Redis, הם יחלקו cache ויקבלו תוצאות זרות. השתמש בדומיין כ-prefix. הטעות השנייה: לסמוך על cache ל-100% - חלק מהבעיות הן באמצע cache (שאילתה שלא תפסה ל-cache, או cache שהתעדכן באמצע). תמיד תכנן את הקוד כך שיעבוד גם בלי cache. הטעות השלישית: לשכוח לפנות cache אחרי deploy של תוסף או תבנית - wp cache flush או דרך התוסף.
בדיקה לאחר תיקון
הרץ PageSpeed Insights - TTFB אמור לרדת ב-100-400ms. ב-Query Monitor (כשתוצאת cache hit) תראה הפחתה דרמטית במספר השאילתות הכולל - מ-150 ל-30-50. ב-Redis CLI: redis-cli info stats | grep keyspace_hits - מספר זה אמור לעלות. אם hits = 0 - cache לא פועל.
בדוק שגם wp-admin מהיר יותר. בעת ניווט בין דשבורד > פוסטים > הגדרות, אמור להרגיש מיידי במקום עם מתח שנייה.