תארו לעצמכם: השקתם תכונה חדשה, ומדד ה-Speed Index קפץ ב-40%. משתמשים עוזבים, ההמרות צונחות, והצוות שלכם מגלה על כך רק כעבור שבוע מתלונות של התמיכה. כדי למנוע זאת, הקמנו ניטור רציף של Speed Index עם התראות על ירידה בביצועים—וכך תופסים רגרסיות תוך דקות מהפריסה. הניסיון שלנו מראה שאפילו מדידות בודדות לא נותנות תמונה מלאה, ולכן אנחנו תמיד מציעים מערכת עם היסטוריה ומגמות.
Speed Index הוא מדד שלעתים רחוקות מייעלים אותו במודע, אך הוא משקף ישירות את מהירות הטעינה הנתפסת על ידי המשתמש. בניגוד ל-LCP, שלוכד את הרגע שבו אלמנט בודד מופיע, Speed Index מודד כמה מהר כל האזור הנראה מתמלא. ערך של 0–3.4 שניות נחשב טוב בסולם Lighthouse, אבל היעדים בעולם האמיתי תלויים באמות מידה תחרותיות.
מה זה Speed Index טכנית
Speed Index מחושב מהקלטת וידאו של טעינת הדף. האלגוריתם (במקור מ-WebPageTest) מפצל את הווידאו לפריימים, ולכל רגע מחשב איזה אחוז מהאזור הנראה כבר צויר. הערך הסופי הוא האינטגרל של "חוסר השלמות" לאורך זמן.
בפשטות:
SI = сумма по всем интервалам (1 - визуальная_заполненность) * длительность_интервала זה אומר: דף שמתמלא באופן אחיד יקבל SI טוב יותר מאשר דף שנשאר ריק לאורך זמן ואז נצבע בפתאומיות.
למה Speed Index הוא מדד שאי אפשר להתעלם ממנו
מחקרים מראים שעלייה של שנייה אחת ב-SI מפחיתה את ההמרות בממוצע ב-12%. יתר על כן, SI רגיש יותר לשינויים ברינדור מאשר LCP: לדוגמה, הוספת CSS חוסם רינדור יכולה להחמיר את ה-SI ב-25%, בעוד ש-LCP משתנה רק ב-10%. לכן, ניטור SI הוא אות מוקדם לבעיות ביצועים נתפסות.
אילו כלי ניטור לבחור?
בחירת הכלי תלויה בדיוק הנדרש ובתקציב. כאן אנו משווים את האפשרויות העיקריות:
| כלי | דיוק | עלות | זמן הגדרה |
|---|---|---|---|
| WebPageTest (באחסון עצמי) | גבוה (הקלטת וידאו) | חינם (שרת) | 3–5 ימים |
| Lighthouse CI | בינוני (מספיק לרגרסיות) | חינם | 1–2 ימים |
| SpeedCurve | גבוה | בתשלום (החל מ-$99 לחודש) | 1–2 ימים |
| Calibre | בינוני | בתשלום (החל מ-$49 לחודש) | 1–2 ימים |
| Sitespeed.io | בינוני | חינם | 2–4 ימים |
Lighthouse CI מוגדר פי 3 מהר יותר מ-WebPageTest אבל פחות מדויק ב-10–15% עבור דפים מורכבים. WebPageTest מנצח בדיוק אבל קשה יותר לתחזוקה. עבור צוותים שרוצים לדלג על תקורה תשתיתית, שירותים מסחריים הם התאמה טובה.
איך להגדיר התראות ב-Slack תוך 5 דקות
- צרו Webhook ב-Slack (Apps → Incoming Webhooks).
- בתצורת ה-CI שלכם, הוסיפו שלב התראה שמופעל אם Speed Index חורג מהסף.
- בדקו: כאשר מתרחשת פריסה עם רגרסיה, Slack מקבל הודעה עם קישור לדוח.
איך הקמנו ניטור: מחסנית ותצורה
אנחנו מעדיפים לשלב את Lighthouse CI לריצות יומיות ואת WebPageTest לניתוח מעמיק. להלן נעבור על ההגדרה של כל אחד.
WebPageTest באחסון עצמי
אנו פורסים את השרת והסוכן באמצעות Docker:
docker run -d -p 4000:80 \
-e AGENTS=1 \
--name wpt-server \
webpagetest/server docker run -d \
--network host \
-e SERVER_URL=http://localhost:4000 \
-e LOCATION=Test \
--cap-add=SYS_ADMIN \
webpagetest/agent Lighthouse CI עם מעקב SI
אנו מתקינים ומגדירים את SI = сумма по всем интервалам (1 - визуальная_заполненность) * длительность_интервала . קובץ docker run -d -p 4000:80 \ -e AGENTS=1 \ --name wpt-server \ webpagetest/server docker run -d \ --network host \ -e SERVER_URL=http://localhost:4000 \ -e LOCATION=Test \ --cap-add=SYS_ADMIN \ webpagetest/agent :
module.exports = {
ci: {
collect: {
url: [
'https://staging.example.com/',
'https://staging.example.com/catalog/',
],
numberOfRuns: 3,
settings: {
preset: 'desktop',
throttlingMethod: 'simulate',
throttling: {
rttMs: 40,
throughputKbps: 10240,
cpuSlowdownMultiplier: 1,
},
},
},
assert: {
assertions: {
'speed-index': ['warn', { maxNumericValue: 3400 }],
'first-contentful-paint': ['error', { maxNumericValue: 2000 }],
},
},
upload: {
target: 'lhci',
serverBaseUrl: 'https://lhci.internal.example.com',
token: process.env.LHCI_TOKEN,
},
},
};ב-GitHub Actions, אנו מוסיפים שלב:
---
- name: Run Lighthouse CI
run: |
npm install -g @lhci/cli
lhci autorun
env:
LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }}
LHCI_TOKEN: ${{ secrets.LHCI_TOKEN }}
התראות וספים
מדידת SI בודדת אינה אמינה—המדד תלוי בתנאי הרשת. אנו משתמשים בחציון של 3–5 ריצות ומפעילים התראה כאשר הממוצע הנע של 7 ימים חורג מהבסיס ביותר מ-20%. דוגמת שאילתת Grafana:
SELECT moving_average(mean("speed_index"), 7)
FROM "lighthouse_metrics"
WHERE time > now() - 30d
GROUP BY time(1d), "page" טעויות נפוצות בניטור Speed Index
- הרצת בדיקה אחת בלבד: בגלל תנודות, תקבלו חיובי שגוי ב-30% מהמקרים. השתמשו בחציון של 3 ריצות.
- התעלמות מהשפעת תגובת השרת: TTFB יכול להטות מאוד את ה-SI. ודאו שהקצה האחורי יציב.
- אי שליטה בתנאים: הגבלת רוחב פס חייבת להיות זהה לכל הבדיקות, אחרת המגמה הופכת לרועשת.
מה משפיע הכי הרבה על Speed Index
Speed Index מתדרדר כאשר:
- משאבים חוסמי רינדור מעכבים את הציור הראשון (CSS ללא
@lhci/cli, JS סינכרוני) - גופנים נטענים ללא
.lighthouserc.js—טקסט בלתי נראה עד להורדה - תמונות מעל הקיפול חסרות ממדים מפורשים, מה שגורם לשינויי פריסה
- סקריפטים כבדים מוטמעים ב-
module.exports = { ci: { collect: { url: ['https://staging.example.com/', 'https://staging.example.com/catalog/'], numberOfRuns: 3, settings: { preset: 'desktop', throttlingMethod: 'simulate', throttling: { rttMs: 40, throughputKbps: 10240, cpuSlowdownMultiplier: 1, }, }, }, assert: { assertions: { 'speed-index': ['warn', { maxNumericValue: 3400 }], 'first-contentful-paint': ['error', { maxNumericValue: 2000 }], }, }, upload: { target: 'lhci', serverBaseUrl: 'https://lhci.internal.example.com', token: process.env.LHCI_TOKEN, }, }, };חוסמים את המפענח
ניטור Speed Index הוא בעל ערך כאות משולב: אם SI עולה, יש רגרסיה ברינדור מעל הקיפול, וכדאי לבדוק את רצועת הסרט ב-WebPageTest.
מה כלול בהתקנה שלנו
כאשר אתם מזמינים את השירות המפתח-ביד, אנו מספקים:
| רכיב | תוצאה |
|---|---|
| בחירת כלים ותשתית | המלצה עם נימוק |
| פריסה ותצורה | סביבת ניטור עובדת |
| הגדרת התראות (Slack/אימייל) | הודעות על ירידה בביצועים |
| אינטגרציית CI/CD | ריצות אוטומטיות בעת פריסה |
| תיעוד והדרכת צוות | הוראות ברורות ולוח מחוונים |
אנו מבטיחים שאחרי ההתקנה תקבלו הודעות על בעיות Speed Index לא יאוחר מ-15 דקות לאחר הפריסה.
לוחות זמנים משוערים
הגדרת Lighthouse CI בסיסית עם מעקב SI: 1–2 ימי עסקים. שרת LHCI באחסון עצמי עם Grafana ו-Slack: 3–5 ימי עסקים. מחסנית מלאה עם WebPageTest ואוטומציית API: 1–2 שבועות.
נעריך את הפרויקט שלכם—צרו קשר לייעוץ. הזמינו את ההתקנה ושכחו מירידות ביצועים פתאומיות. קחו שליטה על הביצועים כבר היום.







