חיפוש ]

טעינת תוספים סלקטיבית בוורדפרס באמצעות Plugin Organizer

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

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

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

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

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

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

כיצד תוספי וורדפרס משפיעים על מהירות האתר שלכם?

תוספי וורדפרס הכתובים נכון דואגים לכך שייטענו באתר שלכם רק כשנמצא בהם שימוש. וורדפרס עצמה אינה טוענת תוספים שאינם פעילים (Inactive Plugins) ומכאן שלאלו אין השפעה על ביצועי האתר.

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

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

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

אם כל התוספים טוענים נכסים (קבצי JavaScript וקבצי CSS), סביר להניח שאותם תוספים ישפיעו לרעה על ביצועי אתר הוורדפרס שלכם ועל מדדי Core Web Vitals, במיוחד Interaction to Next Paint (INP) ו-Largest Contentful Paint (LCP).

טעינת תוספים סלקטיבית בוורדפרס באמצעות Plugin Organizer

כיצד Plugin Organizer עוזר לשפר את ביצועי האתר?

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

 התוסף Plugin Organizer מאפשר לכם את הפעולות הבאות (בין היתר):

  • בחירה סלקטיבית של אילו תוספים ייטענו ואילו לא בהתאם לכתובת (URL).
  • לאפשר או לא לאפשר תוספים מסוימים בהתאם לתפקיד המשתמש (User Role).
  • לאפשר טעינה / הסרה של תוספים בהתאם לסוגי תוכן מותאמים (Custom Post Type).
  • לקבוע ולשנות את הסדר בו נטענים התוספים.
  • לבטל תוספים ולטעון אותם רק בהתאם לצורך.

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

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

שימוש בתוסף Plugin Organizer

התקינו והפעילו את התוסף, גשו להגדרות התוסף תחת Plugin Organizer > Settings וסמנו את האפשרות Selective Plugin Loading.

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

טעינה סלקטיבית של תוספים לפי עמוד - וורדפרס

שימו לב – בזמן התקנת התוסף, מתבצע ניסיון ליצור ספרייה בשם mu-plugins תחת התיקיה wp-content. בהתאם להרשאות בשרת, ייתכן שהתוסף לא יצליח ליצור תיקייה זו. התוסף עצמו יותקן אך הטעינה הסלקטיבית לא תעבוד.

במקרה כזה, צרו תיקייה זו בעצמכם והעתיקו אליה את הקובץ PluginOrganizerMU.class.php.

הגדרת תוספים גלובלית

באותה מידה, יש באפשרותכם את האפשרות לגשת ל Plugin Organizer > Global Plugins ולבטל את הטעינה של תוספים מסוימים בכל האתר.

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

ככלל, כל הגדרות התוסף המתבצעות ברמת העמוד / הפוסט יידרסו את ההגדרות הגלובליות של התוסף.

טעינת תוספים סלקטיבית לפי סוג תוכן מותאם (Custom Post Type)

אחד מאפשרויות התוסף היא לטעון תוספים סלקטיבית בהתאם לסוגי התוכן המותאמים הקיימים באתר הוורדפרס שלכם. גשו ל Plugin Organizer > Settings, תחת Custom Post Type Support בחרו לאילו סוגי תוכן אתם מעוניינים לאפשר פונקציונליות זו.

גשו ל Plugin Organizer > Post Type Plugins, בחרו את סוג התוכן עליו תרצו להחיל את השינויים והגדירו אילו תוספים יהיו פעילים ואילו לא.

טעינה סלקטיבית של תוספים - סוג תוכן מותאם

כיצד לזהות תוספים שדורשים טעינה סלקטיבית

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

  • השתמשו ב-Query Monitor כדי לראות אילו סקריפטים וסגנונות נטענים בכל עמוד ואיזה תוסף טען אותם.
  • פתחו Chrome DevTools, עברו ללשונית Coverage ובדקו לאילו קבצי CSS/JS יש אחוז גבוה של קוד שאינו בשימוש.
  • הריצו בדיקת Google PageSpeed Insights וחפשו את ההמלצות "Reduce unused JavaScript" ו-"Reduce unused CSS".

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

חלופות ל-Plugin Organizer

בעוד Plugin Organizer הוא אפשרות חינמית מוצקה, מספר חלופות מודרניות מציעות פונקציונליות דומה או משופרת:

  • Asset CleanUp – תוסף חינמי שמאפשר לבטל טעינה של קבצי CSS ו-JS ספציפיים לפי עמוד. הוא עובד ברמת הנכס ולא ברמת התוסף, ונותן שליטה יותר מפורטת.
  • Perfmatters – תוסף פרימיום עם Script Manager חזק שמאפשר ביטול סקריפטים לפי עמוד, סוג תוכן או תבנית regex. כולל גם ביטול לפי מכשיר ותכונות ביצועים נוספות.
  • WP Rocket File Optimization – אם אתם כבר משתמשים ב-WP Rocket, תכונות Delay JavaScript Execution ואופטימיזציית הקבצים שלו יכולות לטפל במשימות רבות דומות.

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

שאלות נפוצות

שאלות נפוצות בנושא טעינת תוספים סלקטיבית:

האם ביטול תוספים בעמודים ספציפיים שובר את הפונקציונליות שלהם?
ביטול תוסף בעמוד ספציפי אומר שהוא לא ייטען באותו עמוד כלל. אם התוסף אינו בשימוש באותו עמוד, לא תהיה השפעה. עם זאת, אם התוסף מספק פונקציונליות בעמוד (גם בעקיפין, כמו באמצעות שורטקודים או hooks), ביטולו ישבור את הפונקציונליות. בדקו תמיד לאחר ביצוע שינויים.
מה ההבדל בין Plugin Organizer ל-Asset CleanUp?
Plugin Organizer עובד ברמת התוסף ומונע טעינה של תוספים שלמים בעמודים ספציפיים. Asset CleanUp עובד ברמת הנכס ומאפשר לבטל טעינה של קבצי CSS ו-JavaScript בודדים. Asset CleanUp נותן שליטה מפורטת יותר, בעוד Plugin Organizer פשוט יותר לשימוש עבור ביטול גורף.
כיצד טעינה סלקטיבית של תוספים משפרת Core Web Vitals?
טעינה סלקטיבית מפחיתה את כמות ה-JavaScript וה-CSS שנטענת בכל עמוד. פחות JavaScript פירושו INP מהיר יותר כי ל-Main Thread של הדפדפן יש פחות עבודה. פחות CSS פירושו LCP מהיר יותר כי גליונות סגנון חוסמי רינדור מופחתים. שניהם משפרים ישירות את ציוני Core Web Vitals.
האם כדאי להשתמש ב-Plugin Organizer בכל אתר וורדפרס?
לא בהכרח. אם האתר שלכם משתמש במעט תוספים קלים, שיפור הביצועים עשוי להיות מינימלי. טעינה סלקטיבית הכי חשובה באתרים עם תוספים רבים, במיוחד כבדים כמו בוני עמודים, תוספי טפסים או WooCommerce. הריצו ביקורת ביצועים קודם כדי לקבוע אם נכסי תוספים מיותרים באמת משפיעים על מהירות האתר.
האם ניתן להשתמש ב-Plugin Organizer עם תוסף קאש?
כן. Plugin Organizer עובד היטב לצד תוספי קאש. עם זאת, לאחר שינויים באילו תוספים נטענים בעמודים ספציפיים, יש לנקות את הקאש כדי שהשינויים ייכנסו לתוקף. חלק מתוספי הקאש עשויים להגיש גרסאות מאוחסנות שעדיין כוללות את נכסי התוסף המבוטל עד לרענון הקאש.
האם יש חלופה חינמית ל-Perfmatters לטעינת סקריפטים סלקטיבית?
כן. גם Plugin Organizer וגם Asset CleanUp מציעים גרסאות חינמיות עם תכונות טעינה סלקטיבית מוצקות. Plugin Organizer עובד ברמת התוסף ו-Asset CleanUp עובד ברמת הנכס הבודד. לרוב האתרים, אפשרויות חינמיות אלו מספקות מספיק שליטה לשיפור ביצועים משמעותי.

סיכום

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

Plugin Organizer מספק פתרון חינמי פשוט, בעוד חלופות כמו Asset CleanUp ו-Perfmatters מציעות שליטה מפורטת יותר ברמת הנכס. בכל מקרה, שלבו עם טכניקות אופטימיזציה נוספות לתוצאות הטובות ביותר.

דיון ותגובות
1 תגובות  ]

השאירו תגובה

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

Savvy WordPress Development official logo