סקריפטים של צד שלישי מוסיפים מגוון רחב של תכונות שימושיות לאתר וורדפרס, מה שהופך אותו לאינטראקטיבי יותר ודינאמי יותר. תכונות כגון ניתוחים, מודעות, לחצני שיתוף במדיה חברתית, הטמעות וידאו – הכל אפשרי בזכות סקריפטים של צד שלישי. חלק מהתכונות הללו יכולות להיות חיוניות לפונקציונליות אתר וורדפרס או להגדלת יחסי ההמרה של האתר. עם זאת, סקריפטים של צד שלישי הם גם אחד הגורמים המובילים להאטת ביצועים באתרי וורדפרס. בדרך כלל הם המשאב היקר ביותר במהלך טעינת העמודים. ידוע גם על סקריפטים צד שלישי העלולים להוות גם סיכוני אבטחה ופרטיות. במאמר זה נציג השפעות של סקריפטים צד שלישי על אתרי וורדפרס והשפעות על ביצועי האתר וכן, נציע מספר דרכים להפחתת ההשפעה השלילית של סקריפטים אלו.
סקריפטים של צד שלישי יכולים להיות כל סקריפט אותו ניתן להטמיע ישירות באתר וורדפרס על ידי הורדתו מאתר צד שלישי. הם לא נוצרים על ידי בעלי אתר וורדפרס ואינם נשלטים על ידי בעלי האתר באופן ישיר – אלא מוגשים מכתובת אתר חיצוני. כמעט כל אתר וורדפרס משתמש בסקריפטים של צד שלישי כדי להוסיף פונקציונליות מסוימת. כמה מהשימושים הנפוצים ביותר שלהם הינם: הטמעת סרטונים (למשל YouTube, Vimeo), הוספת לחצני שיתוף חברתי, הוספת ווידג'טים לצ'אט, הטמעת מערכות הערות (למשל Disqus), הפעלת ניתוח אתרים (למשל Google Analytics), הטמעת מודעות, הגשת משאבים באמצעות רשתות אספקת תוכן (CDN), התנסות בסקריפטים לבדיקת A / B, הוספת ספריות עזר (למשל אנימציה, ספריות פונקציונליות וכדומה). מפתחים יכולים להוסיף פונקציונליות עוצמתית באתר וורדפרס באמצעות סקריפטים של צד שלישי. לדוגמה: צוותי שיווק יכולים להשתמש בדוחות מתוך סקריפטים של אנליטיקה ו- A / B כדי לבסס את החלטותיהם העסקיות, משתמשים יכולים לשתף מאמר שהם אוהבים ברשת החברתית המועדפת עליהם בלחיצת כפתור, לקוחות פוטנציאליים יכולים לפנות לעובדי תמיכה או מכירות דרך יישומון הצ'אט ולקבל מיד תשובות לשאלות שלהם. היישומים של סקריפטים של צד שלישי הם אינסופיים, אולם אם משתמשים בהם ללא זהירות, סקריפטים של צד שלישי עלולים להיות בעייתיים במישורי פרטיות, אבטחה וביצועי האתר.
חשוב להבין בנקודה זו, כי ההשפעה הגרועה ביותר של סקריפטים של צד שלישי היא בעיכוב מסלול העיבוד של דף האתר או דפי האתר בהם מצויים סקריפטים של צד שלישי. מדובר במערכת הפעולות שהדפדפן מבצע כדי להרכיב HTML, CSS ו- JavaScript לאתר חי ופעיל. באופן טבעי, גודל המטען של סקריפטים של צד שלישי ממלא תפקיד חשוב כאן, אך יש עוד גורם חשוב שיש לקחת בחשבון. JavaScript דורש המון משאבי עיבוד ואפילו אם מבצעים אופטימיזציה של סקריפטים של צד שלישי כדי לצמצם את ההשפעה על זמן העיבוד, הם עדיין יכולים להשפיע על הערך Time to Interactive אשר מודד כמה מהר יכולים משתמשי האתר ליצור אינטראקציה עם הדף. ככל שהוא איטי יותר, כך גדל הסיכון שמשתמשי האתר יהיו מתוסכלים וגדל הסיכון שהם יעזבו את האתר. דבר נוסף הינו בקשות רשת נוספות: בכל פעם שמשתמש מבקש אחד מדפי האתר, הדפדפן צריך לאחזר את כל הסקריפטים המוטמעים של צד שלישי. לשם כך יגיע הדפדפן לכל כתובות האתרים החיצוניים בהם מתארחים סקריפטים אלו כדי להוריד אותם. בדרך כלל, כל סקריפט של צד שלישי בפני עצמו הוא קל משקל וקצר בזמן טעינה, אולם טעינת כל סקריפט של צד שלישי היא בקשת HTTP נוספת שעל הדפדפן לבצע כדי להציג את הדף במלואו. בקשות אלו מצטברות ומאיטות את ביצועי הדף.
קיימים ברשת כלים רבים לבדיקת מהירות דפי אינטרנט, בהם ניתן להשתמש כדי לאבחן סקריפטים של צד שלישי ולברר אילו מהם הינם צרכני המשאבים הגבוהים באתר.
כלים אלו מראים את מספר הסקריפטים של צד שלישי הנטענמים על ידי האתר ואת הזמן הדרוש להם לביצוע:
WebPageTest.org – כלי בדיקת מהירות חינמי בקוד פתוח, בו ניתן להשתמש כדי להעריך את ביצועי האתר. הוא כולל תכונות מתקדמות רבות כמו טבלאות גרפים, פירוט תוכן לפי סוג ותחום, עיבוד דפי אינטרנט של רצועות סרטונים ווידאו והשוואת בדיקות. WebPageTest מספק גם דרך לבדוק את מהירות האתר על ידי חסימת בקשות שמקורן בדומיינים ספציפיים. הדבר שימושי למדידת ההשפעה על הביצועים של סקריפטים של צדדים שלישיים מטרידים על ידי התמקדות בהם באופן ספציפי.
Chrome DevTools – כלי הפיתוח של דפדפן כרום תומכים בהדגשת בקשות רשת של צדדים שלישיים בחלונית Network. תכונה זו מאפשרת קבלת תובנות מפורטות לגבי בקשות סקריפט של צד שלישי בדף.
Google’s Lighthouse speed – לכלי בדיקה זה קיימות שתי ביקורות להערכת ביצועי האתר: ביקורת זמן האתחול של JavaScript של Lighthouse מדרגת סקריפטים לפי זמן הניתוח, ההידור וזמן ההערכה שלהם – ערכים אלו יכולים לעזור לבעל אתר וורדפרס לגלות סקריפטים של צד שלישי הצורכים הרבה ממשאבי שרת אחסון האתר. ביקורת עומסי המשא של רשת Lighthouse מפרטת את כל הסקריפטים לפי גודלם הכולל וזמן ההעברה שלהם – אפשר להשתמש במדדים אלו כדי לזהות סקריפטים של צד שלישי העלולים להאט את זמן טעינת דפי האתר.
כיצד למזער את ההשפעות של סקריפטים צד שלישי?
- במידה ומזהים סקריפט בעייתי שדורש זמן טעינה רב או זמן רב לביצוע, מומלץ לבדוק אם הסקריפט הזה בכלל נחוץ וכן, להסיר סקריפטים הפוגמים בפונקציונליות של האתר או בחווית המשתמשים, גם אם אינם גורמים נזק נראה לעין.
- השהיית הטעינה של סקריפטים צד שלישי: סקריפטים של צד שלישי שמאטים את האתר ניתנים לטעינה באמצעות תכונות אסינכרון או דחיית HTML, על מנת למנוע את ההשפעה השלילית שלהם על הגדלת עומס הדף. תכונת אסינכרון מאלצת את הדפדפן להמשיך לנתח את שאר מסמך ה- HTML עד להורדת הסקריפט. לאחר סיום ההורדה של הסקריפט, ניתוח מסמך ה- HTML מושהה עד להפעלת הסקריפט. מאפיין הדחייה עושה את אותו הדבר, למעט שהדפדפן לא מפעיל את הסקריפט עד שהוא מנתח את כל מסמך ה- HTML.
- אחסון קבצי JavaScript של צד שלישי בשרת אחסון האתר: אחסון סקריפטים של צד שלישי בשרת אחסון האתר עשוי לתת לבעל האתר שליטה רבה יותר על האופן בו הם נטענים. הדבר עשוי להפחית את בדיקת ה- DNS ואת זמני התעבורה הלוך ושוב וכן לשפר את כותרות המטמון של HTTP. אחסון עצמי מומלץ עבור סקריפטים של צד שלישי הקריטיים לתפקוד האתר (למשל jQuery, Modernizr, Underscore.js). אזהרה: סקריפטים המאוחסנים בשרת אחסון האתר עלולים לא לקבל עדכונים ולהפסיק לפעול באופן בו הם נועדו לפעול. למשל, אתר הכולל סקריפט הצגת מודעות אשר מאוחסן בשרת אחסון האתר, במידה ומפרסם מודעות משנה את אופן הפעולה של הסקריפט, האתר עלול שלא להציג מודעות עד לביצוע עדכון ידני יזום של הסקריפט המתארח בשרת אחסון האתר.
- Lazy-load של סקריפטי JavaScript צד שלישי: אלמנטים מוטמעים של צד שלישי כמו מודעות וסרטונים, מוסיפים עמוס על האתר ועל אחת כמה וכמה עם הם מועברים לאתר על ידי מקורות שאינם אופטימליים. ניתן להשתמש ב- Lazy-load של המשאבים החיצוניים המוטמעים באתר על מנת להאיץ את טעינת הדפים. לדוגמה, אם מציגים מודעות בכותרת התחתונה של האתר, ניתן לטעון אותן כך שתוצגנה רק כאשר המשתמש יגלול מטה בדף.
- שימוש במנהל תגים כדי לארגן JS של צד שלישי: מנהלי תגים מאפשרים קיבוץ סקריפטים (או תגים) של צד שלישי מרובים ולנהל את כולם ממקור יחיד. שימוש חכם במנהל תגיות עשוי לעזור לכם במזעור הבקשות לטעינת סקריפטים של צד שלישי. על אף שאפשר לטעון סקריפטים של צד שלישי בצורה סינכרונית, הדפדפן עדיין צריך לנתח ולהוציא אותם לפועל באופן פרטני. פירוש הדבר הינו עוד בקשה לנתונים נוספים במהלך טעינת הדף. מנהלי תגיות פותרים בעיה זו על ידי הקטנת מספר הבקשות – לאחת. מנהל התגים של גוגל (GTM) יכול להיות פיתרון טוב לניהול תגיות. הוא טוען את עצמו ואת כל התגיות שלו בצורה סינכרונית כך שהדפדפן טוען את הדף ללא הפסקה. אפילו סקריפט טעינה איטית של צד שלישי לא יחסום טעינת סקריפט אחר. מנהל התגים של גוגל עבור וורדפרס הוא דרך פשוטה לשלב GTM באתרי וורדפרס. אזהרה: השימוש במנהל תגיות כמו GTM חייב להתבצע בשיקול דעת: הוא אמנם מקטין את עומס טעינת סקריפטים של צד שלישי, אך הפשטות שלו גם פותחת אותו לשימוש לרעה על ידי כל מי שיש לו אישורים להוסיף תגיות.