חיפוש ]

אופטימיזציה של הגדרות Heartbeat API עם WP Rocket

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

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

אבל למה הקובץ הזה גורם לבעיות ביצועים? במאמר הזה אסביר את שורש הבעיה ואציג כיצד לשלוט בה בצורה יעילה באמצעות WP Rocket.

שתי הבעיות המרכזיות עם admin-ajax.php:

  • הליבה של וורדפרס: שימוש מופרז ולעיתים מיותר בכוח העיבוד של השרת שנגרם מפונקציונליות בסיסית.
  • תוספים חיצוניים: תוספים שיוצרים קריאות AJAX מופרזות באמצעות admin-ajax.php, דבר שפוגע בביצועים של החזית.

הבנת admin-ajax.php ו-Heartbeat API

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

Heartbeat API משתמש בקובץ /wp-admin/admin-ajax.php לשליחת קריאות AJAX מהדפדפן. למרות שזה שימושי לעדכונים בזמן אמת בממשק הניהול, הוא עלול לגרום לקריאות POST רבות שמעמיסות על CPU השרת ומייצרות קריאות PHP מיותרות.

דוגמה: דמיינו שיש לכם מספר טאבים פתוחים בדפדפן, שכולם משתמשים ב-Heartbeat API. כל טאב שולח בקשות ל-admin-ajax.php במרווחי זמן קבועים, דבר שעלול להעמיס על השרת.

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

אופטימיזציה של Heartbeat API באמצעות WP Rocket

אופטימיזציה של Heartbeat API באמצעות WP Rocket

WP Rocket מציע הגדרות מובנות לניהול ואופטימיזציה של Heartbeat API, שמאפשרות שליטה על ההתנהגות שלו ללא צורך בקוד מותאם אישית. כך תשתמשו ב-WP Rocket כדי לנהל את Heartbeat API:

שלב 1: גשו להגדרות Heartbeat

בממשק הניהול של וורדפרס, גשו אל הגדרות > WP Rocket > Heartbeat. כאן תוכלו לשלוט בהתנהגות Heartbeat API עבור אזורים שונים באתר.

שלב 2: התאימו את התנהגות Heartbeat

WP Rocket מציע שלוש אפשרויות עיקריות לניהול Heartbeat API:

  • Reduce Heartbeat Activity: מפחית את התדירות של קריאות ל-admin-ajax.php. זוהי האפשרות המומלצת לשמירה על איזון בין ביצועים לפונקציונליות.
  • Disable Heartbeat: מבטל לחלוטין את Heartbeat API בכל האתר. השתמשו בזה רק אם אתם בטוחים שזה לא יפגע בפונקציונליות חיונית, כמו שמירה אוטומטית.
  • Control Heartbeat Locations: מכוון אזורים ספציפיים כמו:
    • Dashboard: מבטל את Heartbeat API בממשק הניהול.
    • Post Editor: מגביל את פעילות Heartbeat API למסכי עריכת פוסטים בלבד.
    • Frontend: מבטל את Heartbeat API עבור קריאות AJAX מהחזית.

שלב 3: בחרו את ההגדרות הטובות ביותר

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

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

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

כיצד WP Rocket משפר ביצועים

על ידי הפחתת התדירות או ביטול Heartbeat API באזורים לא מנוצלים, WP Rocket מפחית משמעותית את מספר הבקשות הנשלחות ל-admin-ajax.php. צמצום זה מפחית ישירות את העומס על השרת, משפר את יעילות ה-CPU ומשפר את זמני הטעינה של הדפים.

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

ניתוח תוספים המשתמשים ב-admin-ajax.php

בנוסף לאופטימיזציה של Heartbeat API, חשוב לזהות תוספים שעושים שימוש מופרז ב-admin-ajax.php.

השתמשו ב-Chrome Developer Tools כדי לבדוק קריאות AJAX ולאתר את התוספים האחראיים לקריאות שרת מרובות. כך תוכלו להחליט האם להגדיר מחדש, להחליף או להשבית את התוספים הללו.

לסיכום

ניהול Heartbeat API בוורדפרס הוא חיוני לשמירה על ביצועים מיטביים, במיוחד באתרים עמוסים. WP Rocket מספק דרך אינטואיטיבית לשליטה ב-Heartbeat API, עם אפשרויות גמישות להפחתת עומס על השרת תוך שמירה על פונקציונליות הכרחית.

מאמרים נוספים על שיפור מהירות בוורדפרס:

  • רוב 22 ינואר 2017, 8:18

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

  • עמרי ביטון 6 מרץ 2018, 5:48

    היי, תודה על המאמרים המדהימים, לומד ממך המון! זה לא מובן מאליו …

    התקנתי את הפלאג, אך כנראה הוא התעדכן מאז הכתבה הזאת.
    מה אני צריך להגדיר כאן? צילמתי מסך ↓
    https://prnt.sc/iney6z

    תודה רבה

    • רועי יוסף 6 מרץ 2018, 23:16

      תודה עמרי! 🙂

      תחת Heartbeat Behaviour תשנה ל Modify. סמן את שלושתם ותשנה את ה Frequency למטה למה שתחליט….

  • דסי 10 אפריל 2018, 23:33

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

    תמשיך לעשות חיל, ולכתוב לנו עוד מאמרים מצוינים ובהירים.

  • ינון 9 יולי 2019, 2:28

    האם אותה בעיה קיימת גם באג'קס לרסט אי פי אי של וורדפרס?

תגובה חדשה

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

Savvy WordPress Development