HTTP/2 ו-HTTP/3 ב-WordPress: מדוע פרוטוקול מודרני קריטי לזמני טעינה

HTTP/2 חוסך עשרות round-trips על דף עם 50+ assets. כך מוודאים שהאתר באמת רץ עליו ולא על HTTP/1.1.

HTTP/2 (סטנדרטי 2015) ו-HTTP/3 (2022) מחליפים את HTTP/1.1 משנת 1999. ההבדל הגדול: multiplexing. ב-HTTP/1.1 הדפדפן יכול לפתוח עד 6 חיבורי TCP במקביל לאותו דומיין, וכל בקשה תופסת את אחד החיבורים עד סיום. דף עם 60 קבצים (CSS, JS, תמונות) חייב להמתין בתורים ארוכים. ב-HTTP/2 כל הבקשות עוברות בחיבור TCP יחיד עם stream-multiplexing - אין יותר "head-of-line blocking" ברמת הבקשות.

למה זה משנה

על דף WordPress טיפוסי עם 50-80 assets, המעבר ל-HTTP/2 חוסך 20-40% בזמן הטעינה במכשירים ניידים עם 4G. הסיבה: כל handshake של TCP+TLS עולה 100-300ms, וב-HTTP/1.1 צריך לבצע אותו 6 פעמים. ב-HTTP/2 פעם אחת בלבד.

בנוסף ל-multiplexing, יש HPACK header compression שחוסך כמה KB בכל בקשה (כשיש 100 בקשות, זה משמעותי), ו-server push (פחות בשימוש היום, יוצא משימוש לטובת 103 Early Hints). HTTP/3 עובר מ-TCP ל-QUIC (מבוסס UDP), עם handshake מהיר יותר ועם 0-RTT לחיבורים חוזרים. בייחוד ברשתות עם packet loss (4G גרוע), QUIC חוסך עוד 200-500ms.

על Core Web Vitals: ההשפעה הגדולה ביותר על LCP. אם תמונת ה-LCP חכתה לחיבור התשיעי שיוקצה אחרי שיגיעו 6 ראשונים - זה גורם 1-2 שניות באתר טיפוסי. ב-HTTP/2 כל התמונות מתחילות לרדת מיד.

איך לזהות

בדיקה מהירה דרך curl:

curl -I --http2 https://YOUR-SITE.com

אם אתה רואה HTTP/2 200 בשורה הראשונה - הפרוטוקול פעיל. ל-HTTP/3 הוסף --http3 (דורש curl 7.66+ עם תמיכת QUIC).

בדפדפן: F12 > Network > קליק ימני על העמודה התחתונה > "Protocol". זה מוסיף עמודה שמציגה h2, h3, או http/1.1 לכל בקשה. אם רואים http/1.1 - הפרוטוקול הישן עדיין פעיל.

כלי web: tools.keycdn.com/http2-test או http3check.net.

איך לתקן

HTTP/2 דורש HTTPS פעיל. אם אין SSL - תקן את זה קודם.

Apache (cPanel/WHM): בקש מהתמיכה להפעיל את mod_http2, או ב-WHM > Apache Configuration > Global Configuration > MPM Event. הוסף ב-VirtualHost:

Protocols h2 http/1.1

Nginx: ערוך nginx.conf או את ה-server block:

listen 443 ssl http2;
listen [::]:443 ssl http2;

ב-Nginx 1.25+ הסינטקס המודרני הוא http2 on; בנפרד.

LiteSpeed/OpenLiteSpeed: HTTP/2 ו-HTTP/3 מופעלים ברירת מחדל - בדוק רק שלא כיבית אותם.

Cloudflare/CDN: גש ל-Cloudflare > Network. הפעל "HTTP/2" ו-"HTTP/3 (with QUIC)". זה חינם ופועל מיד.

אחרי כל שינוי בקונפיג, הפעל מחדש את שרת ה-web (systemctl reload apache2 או nginx -s reload).

טעויות נפוצות

הטעות הראשונה: לחשוב שהאתר על HTTP/2 כי הספק "אמר" - תמיד בדוק עם curl. הרבה ספקי shared hosting פרסמו HTTP/2 אבל המשיכו לעבוד ב-HTTP/1.1 בפועל. הטעות השנייה: להשתמש ב-domain sharding (פיצול assets ל-cdn1, cdn2, cdn3) - זה היה אופטימיזציה ב-HTTP/1.1, ב-HTTP/2 זה הופך לבעיה (כל domain חדש = handshake נוסף). הטעות השלישית: להשאיר את concatenation של CSS/JS פעיל ב-WP Rocket כשיש HTTP/2 - היתרון של combining מתבטל ולפעמים מזיק (קובץ אחד גדול = ביטול cache תכוף יותר).

בדיקה לאחר תיקון

הרץ שוב את curl. ב-DevTools, וודא ש-99% מהבקשות הן h2 (חוץ מבקשות לדומיינים חיצוניים שייתכן שעדיין על HTTP/1.1). ב-WebPageTest, תמונת ה-Connection View צריכה להראות חיבור TCP יחיד עם בקשות מקבילות, במקום 6 חיבורים נפרדים. בדוק LCP ב-PageSpeed - שיפור של 200-600ms הוא תוצאה ריאלית למעבר HTTP/1.1 → HTTP/2.

טיפ: אם הספק שלך תומך גם ב-HTTP/3 ובמיוחד עם Cloudflare - הפעל אותו. בנייד עם 4G/5G ההבדל מ-HTTP/2 ל-HTTP/3 הוא עוד 100-300ms בעת חיבור ראשון.