ניטור מהירות עם PageSpeed Insights API
מהירות טעינת הדף משפיעה ישירות על שיעורי ההמרה ועל SEO. מעקב ידני אינו תפקידו של מהנדס: הרצת Lighthouse לאחר כל פריסה מבזבזת זמן. ללא אוטומציה, אתה מסתכן בהחמצת ירידות ביצועים שפוגעות בדירוגים שלך. אנו מציעים ניטור אוטומטי של Core Web Vitals (אוטומציית CWV) באמצעות PageSpeed Insights API, לפי התיעוד הרשמי ב-developers.google.com. שירות חינמי זה מחזיר שני סוגי נתונים: מעבדה (Lighthouse) ושטח (Chrome UX Report). נתוני מעבדה מגיבים מיידית; נתוני שטח מצטברים על פני 28 ימים. יחד הם נותנים תמונה מלאה.
כיצד הניטור עובד
PSI API הוא חינמי: עד 25,000 בקשות ביום עם מפתח. המפתח נוצר ב-Google Cloud Console. אנו מכינים סקריפט Python שאוסף מדדים עבור דפים בעדיפות גבוהה (דף הבית, קטגוריות, כרטיסי מוצר, עגלה) ומאחסן אותם ב-PostgreSQL. הסקריפט רץ לפי לוח זמנים (לדוגמה, כל 24 שעות באמצעות cron) ומעבד עד מאה כתובות URL בכל ריצה.
import requests
from typing import Literal
PSI_API_URL = 'https://www.googleapis.com/pagespeedonline/v5/runPagespeed'
def fetch_psi(url, api_key, strategy):
params = {
'url': url,
'key': api_key,
'strategy': strategy,
'category': ['performance'],
}
resp = requests.get(PSI_API_URL, params=params, timeout=60)
resp.raise_for_status()
return resp.json()
def extract_metrics(response):
field = response.get('loadingExperience', {})
lab = response.get('lighthouseResult', {})
# извлечение полевых и лабораторных метрик
return {'field': field, 'lab': lab} אילו מדדים אנו עוקבים
| מדד | מעבדה | שטח (CrUX) |
|---|---|---|
| LCP | largest-contentful-paint | LARGEST_CONTENTFUL_PAINT_MS |
| INP | interaction-to-next-paint | INTERACTION_TO_NEXT_PAINT |
| CLS | cumulative-layout-shift | CUMULATIVE_LAYOUT_SHIFT_SCORE |
| FCP | first-contentful-paint | FIRST_CONTENTFUL_PAINT_MS |
| TTFB | server-response-time | EXPERIMENTAL_TIME_TO_FIRST_BYTE |
אנו גם מתעדים את ציון הביצועים של Lighthouse. עבור כל כתובת URL אנו שומרים היסטוריה — ניתן להשוות את המדידה של היום עם זו של אתמול ולזהות מגמות.
כיצד להגדיר התראות לירידת Core Web Vitals
הגדר ספים. לדוגמה, אם LCP עולה על 4 שניות או שציון הביצועים יורד מתחת ל-70 — שלח הודעה דרך Telegram או דוא"ל. הספים מותאמים אישית לכל פרויקט: מחמירים יותר למסחר אלקטרוני, מקלים יותר לבלוגים.
THRESHOLDS = {
'lab_performance_score': 0.7,
'lab_lcp_ms': 4000,
'field_lcp_category': 'SLOW',
}
def check_alerts(current, thresholds):
alerts = []
if current['lab']['performance_score'] < thresholds['lab_performance_score']:
alerts.append(f"Performance score упал до {current['lab']['performance_score']*100}%")
# остальные проверки
return alerts
אנו משווים למדידה הקודמת: אם מדד החמיר ביותר מ-10%, אנו גם שולחים התראה. זה תופס ירידות אפילו בתוך האזור ה"ירוק". עבור שונות אופיינית של PSI (5–15%), אנו משתמשים בחציון של שלוש ריצות.
השוואת PSI API ל-Lighthouse מקומי
| פרמטר | PSI API | Lighthouse מקומי |
|---|---|---|
| עלות | חינם (עד 25,000 בקשות/יום) | חינם, אך דורש שרת |
| זמן ריצה | ~30–60 שניות לכל כתובת URL | תלוי בחומרה |
| נתונים | מעבדה + שטח (CrUX) | מעבדה בלבד |
| מגבלות | אין אימות, שונות של 5–15% | שליטה מלאה, אך ללא נתוני שטח |
PSI API זול פי 10 משירותים מסחריים (לדוגמה, SpeedCurve ב-$100 לחודש) ומספק מדדי שטח שאינם זמינים ב-Lighthouse מקומי. מעבר ל-PSI יכול לחסוך עד $2,000 בשנה.
תהליך אינטגרציה שלב אחר שלב
- קבל מפתח API מ-Google Cloud Console.
- הגדר רשימת דפים לניטור.
- הרץ את סקריפט האיסוף של Python במשימת cron (יומית).
- הגדר מסד נתונים PostgreSQL לאחסון נתונים היסטוריים.
- הגדר כללי התראה (Telegram, דוא"ל, Slack).
- (אופציונלי) צור לוח מחוונים של Grafana להדמיה.
- (אופציונלי) שלב עם צינור CI/CD (לדוגמה, GitHub Actions).
מה כלול בעבודה
- קבלה והגדרה של מפתח ה-API
- סקריפט איסוף מדדים עבור N דפים (אתה מגדיר את הרשימה)
- מסד נתונים לאחסון היסטוריה (PostgreSQL)
- התראות ירידה (Telegram, דוא"ל, Slack — לבחירתך)
- לוח מחוונים של Grafana להדמיית מגמות
- אינטגרציית CI/CD: ריצה אוטומטית לפני כל פריסה
- תיעוד והדרכה לצוות שלך
- גישה לכל לוחות המחוונים והתצורה
מדוע שני סוגי הנתונים חשובים
נתוני מעבדה מגיבים מיידית — אתה רואה את ההשפעה של כל שינוי קוד. נתוני שטח מפגרים ב-28 ימים אך מציגים את חוויית המשתמש האמיתית. רק יחד הם נותנים מידע מלא. לדוגמה, שיפרת את LCP בסביבת בדיקה, אך בשטח הוא עדיין ירוד — הבעיה נמצאת במקום אחר (שרת איטי, JavaScript כבד).
מגבלות PSI API
ה-API מריץ Lighthouse על השרתים של Google; התוצאות משתנות ב-5–15%. אנו מריצים שלוש מדידות ולוקחים את החציון. עבור דפים מאומתים (לדוגמה, חשבון אישי), אנו משתמשים ב-Lighthouse מקומי דרך Node.js. נתוני שטח דורשים תעבורה מספקת — לפחות כמה מאות ביקורים בחודש לכל דף.
לוח זמנים, עלות והצעה
אינטגרציה בסיסית (איסוף + התראות) אורכת 1–2 ימי עסקים. גרסה מורחבת עם Grafana ו-CI/CD אורכת 3–4 ימים. אנו מציעים פתרון סוהר: מהגדרת מפתח ה-API ועד ללוח מחוונים של Grafana, התראות ותיעוד. התמחור הוא אישי — צור קשר להערכה ראשונית. חיסכון אופייני: עד $2,000 בשנה על ידי החלפת שירותים מסחריים.
ניסיון ואחריות
עם 5+ שנות מומחיות ו-50+ פרויקטים שהושלמו באופטימיזציה וניטור ביצועי אתרים, אנו מבטיחים פעילות יציבה של הסקריפט, התראות 24/7 ומשוב מהיר. הפתרונות שלנו נבדקו בשטח עבור מסחר אלקטרוני, מדיה ו-SaaS.
פרטי אינטגרציה טכניים
עבור כל כתובת URL, נוצר רשומה נפרדת בטבלת import requests from typing import Literal PSI_API_URL = 'https://www.googleapis.com/pagespeedonline/v5/runPagespeed' def fetch_psi(url, api_key, strategy): params = { 'url': url, 'key': api_key, 'strategy': strategy, 'category': ['performance'], } resp = requests.get(PSI_API_URL, params=params, timeout=60) resp.raise_for_status() return resp.json() def extract_metrics(response): field = response.get('loadingExperience', {}) lab = response.get('lighthouseResult', {}) # извлечение полевых и лабораторных метрик return {'field': field, 'lab': lab} עם שדות: url, timestamp, lab_performance_score, field_lcp_category וכו'. אינדקסים על url ו-timestamp מאיצים שאילתות. התראות מיושמות באמצעות סקריפט סקירה פשוט שבודק נתונים חדשים כל דקה. עבור CI/CD, אנו משתמשים ב-GitHub Actions: לפני פריסה, רץ מבחן סף — אם המדדים גרועים מקו הבסיס, הצינור נכשל.
הזמן הגדרת ניטור, ואנו נכין פתרון עבור המחסנית שלך.







