האם סורקי AI יכולים לקרוא תוכן שמוצג על ידי JavaScript?
לעיתים קרובות לא. Googlebot מרנדר JavaScript בשלב מאוחר יותר, אבל רוב סורקי ה-AI לא מתעדים שהם עושים זאת, וגם Google עצמה מציינת שלא כל הבוטים יכולים להריץ JavaScript. אם הטקסט שלכם מופיע רק אחרי הרצת סקריפטים, סורק AI עלול לקבל עמוד ריק. הגישו את התוכן הראשי ב-HTML הראשוני באמצעות רינדור בצד השרת או עמודים סטטיים.
אפליקציות עמוד יחיד ופריימוורקים בצד הלקוח נמצאים בכל מקום, ובדפדפן הם נראים תקינים. סורק שקורא רק את ה-HTML שהשרת שלכם שולח רואה משהו אחר: <div id="root"></div>, כמה תגי סקריפט וטקסט מועט או בלתי קיים. לתשובות AI אין בעמוד כזה מה לצטט.
בעמוד זה
למה סורקי AI מפספסים תוכן JavaScript?
הרצת JavaScript יקרה. סורק צריך להוריד את הסקריפטים, להריץ אותם במנוע דפדפן ולחכות לטעינת נתונים. Google עושה זאת בחיפוש: היא סורקת, מעמידה עמודים בתור לרינדור ומרנדרת אותם עם Chromium ללא ממשק כשהמשאבים מאפשרים. ובכל זאת Google ממליצה על רינדור בצד השרת או רינדור מראש כי זה מהיר יותר למשתמשים ולסורקים, ומציינת שלא כל הבוטים יכולים להריץ JavaScript.
OpenAI, Anthropic ו-Perplexity לא קובעות בתיעוד הסורקים שלהן שהסוכנים שלהן מריצים JavaScript. Apple אומרת ש-Applebot עשוי לרנדר עמודים בדפדפן. בלי הצהרה ברורה, ההנחה הבטוחה לגבי סורקי AI היא שהם קוראים רק את ה-HTML הראשוני.
איך בודקים מה סורק מקבל?
הסתכלו על ה-HTML הגולמי, לא על העמוד המרונדר. כלי המפתחים בדפדפן מציגים את ה-DOM אחרי שהסקריפטים רצו, וזה לא מה שסורק מקבל. השתמשו ב-view-source, או שמרו את ה-HTML הגולמי משורת הפקודה וחפשו בו:
curl -s -o page.html \
-A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot" \
https://example.com/page
# Is a sentence from your main text in the raw HTML?
grep -c "a sentence from your main content" page.html
תוצאה 0 אומרת שהמשפט אינו ב-HTML שהשרת שלח, ולכן סורקים שלא מריצים סקריפטים לא ימצאו אותו. מבט מהיר בקובץ מגלה את השאר: מאמר שרונדר בשרת מכיל שם את הטקסט המלא; מעטפת בצד הלקוח מכילה אלמנט שורש ריק ורשימת סקריפטים.
אילו עמודים בסיכון הגבוה ביותר?
- אפליקציות עמוד יחיד שנבנו עם React, Vue, Angular או Svelte ומרנדרות הכול בדפדפן.
- עמודים שמביאים את הטקסט הראשי שלהם מ-API אחרי הטעינה, כמו פרטי מוצר, מחירים או ביקורות.
- תוכן בתוך לשוניות, אקורדיונים או מקטעי ״טען עוד״ שנדרשים רק בלחיצה.
- עמודים מאחורי התחברות, חומת תשלום או חומת הסכמה שהסורק לא יכול לעבור.
- עמודים שמגדירים
noindexאו את כתובת ה-canonical רק דרך JavaScript. Google מזהירה שכשהיא רואהnoindexב-HTML המקורי, היא עשויה לדלג על הרינדור לגמרי.
איך מתקנים תוכן שקיים רק ב-JavaScript?
התיקון הוא לשלוח את התוכן החשוב בתגובה הראשונה. בחרו באפשרות הקלה ביותר שהסטאק שלכם מאפשר:
- רינדור בצד השרת (SSR): פריימוורקים כמו Next.js, Nuxt, SvelteKit ו-Angular SSR מרנדרים את העמוד בשרת ומפעילים אותו (hydrate) בדפדפן.
- יצירה סטטית או רינדור מראש: בונים את ה-HTML בזמן הפריסה לעמודים שמשתנים לעיתים רחוקות, כמו מאמרים, תיעוד ודפי נחיתה.
- שיפור הדרגתי: שמים את הטקסט, הכותרות, הקישורים, המחירים וה-JSON-LD ב-HTML ומשתמשים ב-JavaScript רק לאינטראקציה.
- הטמעה של מה שחשוב: אם לשוניות מסתירות תוכן, שימו את כולו ב-HTML והחליפו נראות עם CSS או סקריפט, במקום להביא אותו בלחיצה.
אין צורך להמיר אפליקציה שלמה בבת אחת. התחילו בעמודים שאתם רוצים שיצוטטו: מאמרים, תיעוד, עמודי מוצר ותמחור. אזורי חשבון ולוחות בקרה יכולים להישאר בצד הלקוח, כי הם ממילא מאחורי התחברות.
הימנעו מלהגיש לסורקים עמוד שונה מזה שמשתמשים מקבלים, על סמך ה-user agent. רינדור אותו HTML לכולם פשוט יותר לתחזוקה ומונע כל ספק לגבי cloaking.
האם מסכי התחברות, הסכמה וחומת תשלום חוסמים גם סורקי AI?
כן. סורק לא מתחבר, לא לוחץ על באנר עוגיות ולא פותר אתגרים. Anthropic קובעת שהבוטים שלה לא ינסו לעקוף CAPTCHA. אם מנהל הסכמה מחליף את העמוד בשכבה על כל המסך ב-HTML, או מפנה מבקרים חדשים לעמוד הסכמה, הסורק מקבל את זה במקום התוכן שלכם.
ודאו שעמודים ציבוריים מרנדרים את התוכן שלהם ב-HTML ללא קשר למצב ההסכמה, כשהבאנר הוא שכבה ולא תחליף. השאירו עמודים שאתם רוצים שיצוטטו מחוץ לחומות התחברות, ובדקו שסורק לא מופנה לעמוד התחברות.
איך AISeeWhy מזהה עמודים שתלויים ב-JavaScript?
AISeeWhy קורא את ה-HTML הראשוני כפי שכל סורק מקבל אותו, בלי להריץ סקריפטים. כשבעמוד כמעט אין טקסט גלוי אבל יש אלמנט שורש של פריימוורק וסקריפטים, הוא מדווח על ממצא P1 שהתוכן דורש JavaScript. הוא מסמן גם הפניות ששולחות סורקים למקום אחר מהעמוד שדפדפן מקבל.
שאלות נפוצות
האם Googlebot מרנדר JavaScript?
כן. Google סורקת את ה-HTML, מעמידה עמודים בתור לרינדור ומרנדרת אותם עם Chromium ללא ממשק כשהמשאבים מאפשרים. Google עדיין ממליצה על רינדור בצד השרת או רינדור מראש.
האם הסורקים של ChatGPT, Claude ו-Perplexity מריצים JavaScript?
התיעוד של הסורקים אצל הספקים שלהם לא אומר זאת. עד שספק יאמר אחרת, הניחו שהסורק קורא את ה-HTML הראשוני ודאגו שהתוכן שלכם נמצא בו.
האם רינדור דינמי לבוטים הוא רעיון טוב?
הוא עובד כפתרון ביניים אבל מוסיף נתיב רינדור שני לתחזוקה. רינדור בצד השרת או HTML סטטי מגישים את אותו תוכן לכולם והם הפתרון הפשוט יותר לטווח ארוך.
האם JSON-LD שנוסף על ידי JavaScript נחשב?
Google יכולה לקרוא אותו אחרי רינדור, אבל סורקים שלא מריצים סקריפטים לא יראו אותו. שימו את ה-JSON-LD ב-HTML הראשוני.
מקורות
- Google Search Central: יסודות SEO עם JavaScript
- Apple: על Applebot
- OpenAI: סקירת הסורקים של OpenAI
- Anthropic: האם Anthropic סורקת נתונים מהרשת, ואיך בעלי אתרים יכולים לחסום את הסורק?
- Perplexity: הסורקים של Perplexity