Core Web Vitals: איך לתקן LCP, CLS ו-INP באתר וורדפרס
קידום אורגני

Core Web Vitals: איך לתקן LCP, CLS ו-INP באתר וורדפרס

קיבלת מ-Search Console הודעה שעמודים באתר נכשלים ב-Core Web Vitals, או שדוח החוויה מלא באדום? התשובה הקצרה היא שקודם צריך לזהות איזה מדד נכשל ובאיזה מכשיר, ורק אחר כך לתקן. כל אחד משלושת המדדים, LCP, CLS ו-INP, נכשל מסיבות אחרות, ולכל אחד יש תיקון אחר.

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

שלב ראשון: לקרוא נכון את דוח Core Web Vitals ב-Search Console

הדוח נמצא ב-Search Console, והנתונים בו מגיעים מ-Chrome User Experience Report (CrUX). זה אומר שהם באים ממשתמשים אמיתיים שגלשו באתר שלך, ולא מבדיקה במעבדה. הדוח מחולק לנייד ולמחשב, ומסווג כתובות לשלושה מצבים: Good, Need improvement ו-Poor.

אלה הספים ש-web.dev מגדיר לכל מדד:

מדדמה הוא מודדטובגרוע
LCPכמה זמן לוקח לאלמנט הגדול ביותר בחלק הנראה של המסך להופיעעד 2.5 שניותמעל 4 שניות
INPכמה מהר העמוד מגיב ללחיצה, הקשה או הקלדהעד 200 מילישניותמעל 500 מילישניות
CLSכמה התוכן קופץ וזז בזמן הטעינהעד 0.1מעל 0.25

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

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

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

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

שלב שני: PageSpeed Insights, נתוני שטח מול נתוני מעבדה

מדביקים את כתובת הדוגמה ב-PageSpeed Insights. בראש הדוח מופיעים נתוני שטח מ-CrUX, ולמטה נתוני מעבדה של Lighthouse. לפי התיעוד של גוגל, נתוני המעבדה נאספים בסביבה מבוקרת, ולכן הם שימושיים לאיתור בעיות, ואילו נתוני השטח הם מה שמשתמשים אמיתיים חוו.

הטעות הנפוצה היא לרדוף אחרי הציון של Lighthouse. הדוח ב-Search Console מבוסס על נתוני שטח, ולכן המטרה היא שנתוני השטח יעברו את הסף. ציון המעבדה עוזר להבין מה מאט את העמוד, וחלק האבחון שלו עוזר למצוא איזה אלמנט הוא ה-LCP ומה גורם לתזוזות.

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

LCP איטי: התמונה הראשית נטענת מאוחר

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

ב-PageSpeed Insights, בחלק האבחון, רואים איזה אלמנט סומן כ-LCP. אם זו תמונה, כדאי לבדוק בקוד המקור של העמוד אם יש לה loading="lazy".

אלה הדברים שבודקים ומתקנים:

  • לא לטעון את תמונת ה-LCP בטעינה עצלה. web.dev כותב שאסור לעולם לטעון את תמונת ה-LCP בטעינה עצלה, כי זה תמיד יוצר עיכוב מיותר. אם הפעלת טעינה עצלה (LazyLoad) בתוסף מטמון, צריך לוודא שהתמונה הראשית של כל תבנית לא נכללת בה.
  • fetchpriority. מאז וורדפרס 6.3 הליבה מוסיפה אוטומטית fetchpriority="high" לתמונה שהיא מזהה כתמונת ה-LCP הסבירה. בכל זאת כדאי לבדוק בקוד המקור שהמאפיין נמצא על התמונה שבאמת מסומנת כ-LCP.
  • זמן תגובת השרת. web.dev מפרק את LCP לכמה חלקים, והראשון בהם הוא הזמן עד שהבייט הראשון מגיע מהשרת (TTFB). אם השרת איטי, שום אופטימיזציה של תמונה לא תספיק, וכאן נכנסים מטמון עמודים ואחסון.

CLS גבוה: תוכן שקופץ בזמן הטעינה

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

אלה הסיבות ש-web.dev מונה:

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

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

התיקון מתחיל בכך שלכל תמונה יש width ו-height. אם אתה משתמש ב-WP Rocket, יש בו אפשרות Add missing image dimensions שמוסיפה את המאפיינים החסרים לתמונות. לגופנים יש אפשרות Preload fonts שטוענת מראש את הגופנים של החלק העליון בעמוד. ולפרסומות ולבאנרים שומרים מקום קבוע מראש ב-CSS, כדי שהם ימלאו מקום קיים ולא ידחפו תוכן.

INP גבוה: יותר מדי JavaScript

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

לפי web.dev, הדפדפן מריץ את ה-JavaScript בתהליכון הראשי (main thread). טעינה, פענוח והרצה של סקריפטים יוצרים משימות ארוכות, וכל עוד משימה ארוכה רצה, הדפדפן לא מגיב ללחיצה. באתר וורדפרס זה מצטבר מהר: תוספים, בוני עמודים, צ'אטים, פיקסלים וכלי אנליטיקה.

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

מה שאפשר לעשות:

  • לעבור על רשימת התוספים ולבטל את מה שלא בשימוש. כל תוסף שטוען סקריפט בכל עמוד מוסיף עבודה.
  • ב-WP Rocket, האפשרות Load JavaScript deferred גורמת לדפדפן לרנדר את העמוד ולטעון את הסקריפטים אחר כך. האפשרות Delay JavaScript execution מעכבת את טעינת הסקריפטים עד לאינטראקציה הראשונה של הגולש.
  • אחרי כל שינוי כזה צריך לבדוק ידנית את הדברים שחייבים לעבוד: תפריט בנייד, טפסים, הוספה לסל.

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

אחרי התיקון: Start Tracking ומה לצפות

כשסיימת לתקן, חוזרים לדוח ב-Search Console, נכנסים לבעיה ולוחצים על Start Tracking. גוגל פותחת תקופת מעקב של 28 ימים שבה היא בודקת אם הבעיה עדיין מופיעה.

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

מתי לעצור ולקרוא למומחה

  • זמן התגובה של השרת גבוה גם בעמוד ריק יחסית, והבעיה כנראה באחסון או בהגדרות השרת.
  • הפעלת אפשרויות JavaScript בתוסף המטמון ומשהו באתר הפסיק לעבוד, ואתה לא מוצא מה.
  • האתר בנוי על בונה עמודים או תבנית כבדה, והבעיה היא במבנה העמוד עצמו ולא בהגדרה אחת.
  • עברו 28 ימים מאז הבדיקה, והבעיה עדיין מסומנת כ-Poor למרות התיקונים.
  • מדובר בחנות, וכל שינוי בסקריפטים עלול לשבור את הסל או את התשלום.

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

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

שאלות נפוצות

מה זה Core Web Vitals?

שלושה מדדים שגוגל משתמשת בהם כדי למדוד חוויית משתמש בעמוד: LCP למהירות הטעינה של התוכן הראשי, INP לתגובה לאינטראקציה, ו-CLS ליציבות התצוגה.

האם Core Web Vitals משפיעים על הדירוג בגוגל?

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

למה הציון ב-PageSpeed Insights טוב אבל Search Console מראה בעיה?

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

מה קרה ל-FID?

INP החליף את FID כמדד Core Web Vitals במרץ 2024. אם אתה רואה מדריך שמדבר על FID, הוא לא מעודכן.

למה חלק מהעמודים שלי לא מופיעים בדוח?

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

האם מספיק להתקין תוסף מטמון?

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

צריך לתקן גם את גרסת המחשב?

כן, אם היא נכשלת. הדוח ב-Search Console מציג נתונים נפרדים לנייד ולמחשב, והספים נמדדים בנפרד לכל אחד מהם. אם שניהם נכשלים, מטפלים בכל אחד לפי המדד שנכשל בו.

כמה זמן לוקח לראות שיפור אחרי התיקון?

תהליך האימות ב-Search Console, שמתחיל בלחיצה על Start Tracking, עוקב אחרי הבעיה 28 ימים, ונתוני השטח ב-PageSpeed Insights מבוססים על חלון מתגלגל של 28 ימים. לכן השיפור מופיע בהדרגה ולא ביום שאחרי.

יש לך פרויקט ששווה לדבר עליו?

השיחה ללא עלות ובלי התחייבות 😊