מה זה רינדור בצד שרת?
רינדור בצד שרת (SSR) הוא גישה שבה השרת מרכיב את ה-HTML של העמוד ושולח אותו מוכן, במקום שהדפדפן יבנה אותו ב-JavaScript.
רינדור בצד שרת מורכב משלושה חלקים: קוד האפליקציה שרץ על השרת, ה-HTML המוכן שהוא מחזיר בתגובה הראשונה, ושכבת ה-hydration שמחברת את האינטראקטיביות בדפדפן. ההבדל מול רינדור בצד לקוח (CSR) הוא מי עושה את העבודה: ב-CSR השרת שולח שלד ריק, והדפדפן בונה את התוכן ב-JavaScript. שתי הגישות חיות יחד באותו אתר, עמוד-עמוד ורכיב-רכיב. משתמש עם דפדפן מקבל את התוכן בשני המקרים; בוט שלא מריץ JavaScript רואה עמוד מלא בראשון ומעטפת ריקה בשני.
איך רינדור בצד שרת עובד
השרת מריץ את קוד האפליקציה, מרכיב את ה-HTML המלא ושולח אותו כתגובה הראשונה, כך שהתוכן קיים עוד לפני שרצה שורת JavaScript אחת בדפדפן. אחרי שהעמוד מוצג, שכבת ה-hydration מחברת אליו את האינטראקטיביות: סקריפטים שרצים בצד הלקוח והופכים כפתורים וטפסים לפעילים. ה-hydration הוא גם המחיר של הגישה: עמוד יכול להיראות מוכן רגע לפני שהוא באמת מגיב.
מה קורה לעמוד בלי רינדור בצד שרת
רינדור בצד שרת חוסך את שלב הרינדור; בלעדיו, התוכן קיים רק אחרי שמישהו הריץ את ה-JavaScript. אצל גוגל זה אומר תור רינדור נפרד והרצה ב-Chromium, בדרך כלל שניות ולפעמים יותר, בלי עוגיות ובלי אחסון מקומי. בינג מריצה JavaScript גם היא, אבל מתעדת שקשה לה לעשות את זה בהיקף מלא בכל עמוד באתר.
אצל מנועי ה-AI אין שום תיעוד רשמי, אבל מה שנמדד בשטח חד-משמעי: בניתוח לוגים שפרסמה Vercel בדצמבר 2024, הסורקים הגדולים של OpenAI, של Anthropic ושל Perplexity לא הריצו JavaScript, גם כשמשכו את קובצי ה-JS עצמם. Gemini הוא היוצא מן הכלל בקבוצה הזאת, כי הוא נשען על תשתית הרינדור של גוגל, ו-Applebot מרנדר גם הוא, דרך סורק מבוסס דפדפן.
בדקתי אתרים שנבנו בכלי AI: התוכן פשוט לא הופיע ב-HTML שהסורקים האלה שולפים, ובלי זה אין ממה לצטט.
איך רינדור בצד שרת קשור ל-SEO ול-GEO
אם התוכן נמצא ב-HTML הראשוני, כל בוט מקבל אותו, מ-Googlebot ועד הסורקים שמזינים את התשובות. גוגל עצמה כותבת שרינדור בצד שרת או מראש הוא רעיון טוב, כי לא כל הבוטים מסוגלים להריץ JavaScript. עמוד שמגיע מוכן גם חוסך לגוגל את שלב הרינדור, וזה מתחבר לתקציב הסריקה. הציטוט מתחיל בשליפת HTML, ומה שלא בשליפה לא בתשובה.
ההבדל בין רינדור בצד שרת לרינדור דינמי
רינדור דינמי (dynamic rendering) מגיש לבוטים גרסה מרונדרת נפרדת ולמשתמשים את האפליקציה הרגילה. אצל גוגל הוא כבר לא מומלץ: היא הגדירה אותו פתרון עוקף ולא פתרון לטווח ארוך, וההמלצה שלה במקומו היא רינדור בצד שרת, רינדור סטטי או hydration. בינג דווקא ממשיכה להמליץ עליו לאתרים גדולים שנשענים על JavaScript, וזה אחד המקומות שבהם שני המנועים לא מסכימים. וכל פער בין הגרסה שהבוט מקבל לגרסה שהמשתמש רואה הוא באג שקשה לגלות.
שאלות על רינדור בצד שרת
איך בודקים אם לאתר יש רינדור בצד שרת?▼
פותחים View Source, לא DevTools, ומחפשים משפט מתוך גוף העמוד. אם הטקסט נמצא ב-HTML הראשוני, יש רינדור בצד שרת. אם רואים רק שלד ו-script, התוכן נבנה בדפדפן.
האם גוגל מסתדרת גם בלי רינדור בצד שרת (SSR)?▼
גוגל בדרך כלל מסתדרת בלי SSR: היא מריצה JavaScript ב-Chromium בגרסה עדכנית ומרנדרת את מה שהיא סורקת. אבל זה שלב נפרד עם תור משלו, לפי גוגל בדרך כלל שניות אבל לפעמים יותר, והוא רץ בלי זיכרון: עוגיות, Local Storage ו-Session Storage נמחקים בין טעינות, בקשות הרשאה נדחות, ועמוד שמחזיר סטטוס שאינו 200 עלול לדלג על הרינדור לגמרי.
רינדור בצד שרת חוסך את שלב הרינדור לגמרי: אין תור, אין תלות, והתוכן קיים בשליפה הראשונה.
האם בוטים של מנועי AI מריצים JavaScript?▼
אף מנוע AI לא מתעד אם הסורקים שלו מריצים JavaScript. בניתוח לוגים שפרסמה Vercel בדצמבר 2024, הסורקים של OpenAI, של Anthropic ושל Perplexity משכו קובצי JavaScript אבל לא הריצו אותם, כך שתוכן שנבנה בדפדפן נשאר בלתי נראה להם.
היוצאים מן הכלל הם Gemini, שנשען על תשתית הרינדור של גוגל, ו-Applebot, שמרנדר דרך סורק מבוסס דפדפן. וגוגל עצמה כותבת שלא כל הבוטים מסוגלים להריץ JavaScript.
מה ההבדל בין רינדור בצד שרת לרינדור סטטי (SSG)?▼
רינדור סטטי (SSG) הוא אח של רינדור בצד שרת, לא מעקף: אותו עיקרון של HTML מוכן, רק שהעמוד מופק פעם אחת בזמן ה-build במקום להיות מורכב בכל בקשה. גוגל ממליצה על שניהם באותה נשימה. ההבדל המעשי: SSG מתאים לתוכן שמשתנה לעתים רחוקות, SSR לתוכן שצריך להיות עדכני בכל שליפה.
האם צריך רינדור בצד שרת בכל עמוד באתר?▼
לא כל עמוד באתר צריך רינדור בצד שרת. העיקרון: כל תוכן שאמור להיקרא על ידי מנועי חיפוש ומנועי AI צריך להגיע ב-HTML הראשוני. אזורים אינטראקטיביים פנימיים, כמו דשבורדים, יכולים להישאר בצד לקוח.