אני בודק סכמת AI על אתרים ישראליים כמעט כל יום. אחרי עשרות אבחונים, אני יכול להגיד בביטחון: ב-9 מכל 10 אתרים שאני פותח, לפחות אחת מחמש השגיאות הבאות מופיעה. לרוב יותר מאחת.
זה לא ביקורת על מי שבנה את האתר. השגיאות האלה מובנות בתוך תוספי סכמה פופולריים, בתוך הגדרות ברירת מחדל של אירוח, ובתוך האופן שבו מפתחים ישראלים רגילים לעבוד עם עברית ב-JSON. הן פשוט קיימות ברוב האתרים כי המערכת דוחפת אליהן.
המטרה של המאמר הזה: לתת לכם את הכלים לזהות כל אחת מהחמש בעצמכם, לדעת בדיוק כמה זמן ייקח לתקן, ולהבין מה זה עולה לכם בכסף — כי בסופו של דבר, סכמה ש-ChatGPT לא רואה היא בזבוז זמן ותקציב.
שגיאה #1 — סכמה מוזרקת ב-JavaScript (הזחלנים לא יראו אותה)
הבעיה: בהרבה אתרים מודרניים — במיוחד אתרי React, Vue, Angular וכל אתר SPA — הסכמה מוזרקת לעמוד אחרי טעינה, על ידי קוד JavaScript. גם תוספי וורדפרס מסוימים עושים את זה כשהם משתמשים בפונקציונליות של "lazy load" או "async schema injection". התוסף מציג לך שהסכמה קיימת כשאתה בודק בדפדפן — כי הדפדפן מריץ את ה-JS — אבל היא לא באמת שם כשהעמוד נטען מהשרת.
למה זה קטלני: GPTBot של OpenAI, ClaudeBot של Anthropic ו-PerplexityBot לא מריצים JavaScript. הם מקבלים את ה-HTML הראשוני מהשרת, סורקים אותו לחיפוש <script type="application/ld+json">, ואם לא מוצאים — מבחינתם אין לכם סכמה בכלל. גוגל התחיל להריץ JS בהדרגה בשנים האחרונות, אבל גם אצלו זה לא ב-100% מהמקרים. הזחלנים של AI פשוט מוותרים.
איך מזהים: הפעילו את הפקודה הזאת בטרמינל (החליפו את כתובת האתר):
curl -s -A "GPTBot/1.2" https://your-site.co.il/ | grep -c "application/ld+json"
אם התוצאה היא 0 — הסכמה שלכם מוזרקת ב-JavaScript, ו-GPTBot לא רואה אותה. אם התוצאה היא 1 או יותר — הסכמה קיימת ב-HTML הראשוני, וזה תקין (לפחות בפן הזה).
איך לתקן: הפתרון הוא Server-Side Rendering של הסכמה — הזרקה ישירה לתוך תג <head> ברמת השרת, לפני שה-HTML נשלח לדפדפן. בוורדפרס זה אומר להשתמש ב-hook של wp_head ולא ב-JS. באתרי Next.js — להשתמש ב-next/head או ב-Metadata API של App Router. באתרי Nuxt — useHead().
זמן משוער לתיקון: 2-4 שעות עבור מפתח שמכיר את התשתית. אם התוסף שלכם מזריק ב-JS ואין לו אופציה אחרת — צריך להחליף גישה, לא רק להגדיר מחדש.
שגיאה #2 — הסכמה סותרת את הטקסט הגלוי בעמוד
הבעיה: בסכמה כתוב שהטלפון של העסק הוא 03-1234567, אבל בעמוד "צור קשר" מופיע 052-9876543. המחיר בסכמה של השירות הוא ₪500, אבל בעמוד השירות עצמו כתוב ₪450. הכתובת בסכמה היא הכתובת של המשרד הישן, אבל בפוטר כבר מופיעה הכתובת החדשה. זה קורה כי הסכמה נכתבה פעם — ואף אחד לא עדכן אותה כשהעמודים התעדכנו.
בודק הנראות בודק בדיוק את החמש: חסימת זחלנים ב-robots.txt, סכמה חסרה או שבורה, תוכן שנטען ב-JavaScript, היעדר מבנה שאלה-תשובה וסימוני סמכות. ציון מ-100 בלי הרשמה.
לבדיקה חינמית ←למה זה קטלני: מנועי AI מבצעים cross-referencing פנימי. הם קוראים את הסכמה, קוראים את הטקסט הגלוי בעמוד, ומחפשים התאמה. כשיש סתירה — הם לא בוחרים בין השניים. הם פשוט לא מצטטים אף אחד מהם, כי אין להם דרך לדעת מה נכון. תוצאה: ChatGPT שאול על העסק שלכם, יראה שהמידע לא עקבי, וייתן תשובה גנרית שלא מזכירה אתכם בכלל.
איך מזהים: פותחים את קוד המקור של העמוד, מוצאים את <script type="application/ld+json">, מעתיקים את כל הערכים הרלוונטיים (טלפון, מחירים, כתובת, שעות פעילות, מייל) — ומשווים ידנית למה שמופיע בעמוד עצמו. כל אי-התאמה היא בעיה.
מקרה אמיתי: מצאתי לקוח — משרד עורכי דין בתל אביב — שהכתובת בסכמה שלו הייתה של המשרד שהיה להם לפני 4 שנים. בפוטר של האתר הופיעה הכתובת החדשה. לקוחות שביקשו מ-ChatGPT את הכתובת שלהם קיבלו את הישנה, נסעו לשם, ולא מצאו אותם. הם לא הבינו למה עד שבדקנו את הסכמה.
איך לתקן: יש שתי אופציות — לעדכן את הסכמה כך שתתאים לעמוד, או לעדכן את העמוד כך שיתאים לסכמה. חשוב לעשות את זה עם מקור אמת אחד: או שהמידע נשאב ממערכת מרכזית (custom fields, CMS, מסד נתונים) לשני המקומות, או שהוא נכתב ידנית פעם אחת ומנוהל בקפידה. עדכון של מקום אחד בלי השני מייצר את הבעיה מחדש.
זמן משוער לתיקון: 2-3 שעות אם יש לכם גישה מלאה לכל העמודים ולסכמה, וברשימה קצרה של סתירות. אתרים גדולים יכולים לקחת יום שלם.
שגיאה #3 — חסימת GPTBot ב-robots.txt (לפעמים בלי לדעת)
הבעיה: הרבה אתרים ישראליים חוסמים בלי לדעת את הזחלנים של מנועי AI. זה קורה משלוש סיבות עיקריות: (1) חברת האירוח שלכם — Cloudways, WP Engine, Kinsta ואחרות — הוסיפו חסימות ברירת מחדל ב-robots.txt כדי לחסוך רוחב פס. (2) התקנתם בעבר תוסף אבטחה כמו Wordfence או "Block Bad Bots" שכולל את GPTBot ברשימת הבוטים הרעים. (3) מישהו בעבר קרא מאמר על "חסימת AI מלגזול תוכן" ופעל לפיו.
למה זה קטלני: אם הזחלן חסום ב-robots.txt, הוא לא ייכנס לאתר בכלל. הסכמה שלכם יכולה להיות מושלמת, הישויות מקושרות בצורה יפה, הכל מדויק — וזה לא משנה. GPTBot לא יבוא לסרוק, אז המידע לעולם לא ייכנס לאינדקס של OpenAI.
איך מזהים: הריצו בטרמינל:
curl -s https://your-site.co.il/robots.txt | grep -iE "GPTBot|ClaudeBot|PerplexityBot|Google-Extended"
אם התוצאה כוללת שורה של Disallow: / תחת אחד מהבוטים האלה — אתם חסומים. גם User-agent: * עם Disallow: / חוסם את כולם, ולפעמים מתגנב בטעות.
איך לתקן: ערכו את קובץ robots.txt והוסיפו במפורש הרשאות. דוגמה למינימום שצריך להיות שם:
User-agent: GPTBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Google-Extended
Allow: /
אם אתם רואים חסימה ספציפית לבוט מסוים במקום אחר בקובץ, הסירו אותה. חשוב: יש עוד סוגים של חסימות — Cloudflare עם הגדרת "Block AI Scrapers", כותרות שרת מסוימות, ותצורות nginx — שיכולות לחסום גם בלי שיהיה כתוב ב-robots.txt. אם אחרי התיקון עדיין רואים בעיה, בדקו גם שם.
זמן משוער לתיקון: 15 דקות אם יש לכם גישת FTP או ניהול לאתר. אם עוברים דרך חברת אירוח — עוד 15 דקות של פתיחת טיקט.
שגיאה #4 — עברית עם תווים שגויים (Unicode issues)
הבעיה: עברית מכילה מספר תווים שנראים דומים מאוד אבל מיוצגים אחרת ב-Unicode. הדוגמה הקלאסית: גרשיים כפולים. יש את " הרגיל (ASCII 0x22), יש את ״ העברי (U+05F4, "פונטואציה עברית: גרשיים"), ויש את “ ו-” של typographic quotes. בהרבה אתרים, הטקסט הגלוי משתמש בגרשיים העברי (״) ואילו הסכמה נכתבה עם הגרשיים ה"רגיל" (") — כי JSON דורש את זה תחבירית.
למה זה קטלני: מנוע AI שמנסה לזהות "האם ראש המשרד ״עו״ד ישראל כהן״ שהוזכר בעמוד = "עו\"ד ישראל כהן" שבסכמה?" — לא מוצא התאמה מדויקת. עבורו זה שני מחרוזות שונות. וכשאין התאמה מדויקת, אין קישור בין הישות שבסכמה לישות שבטקסט. אותו סיפור עם ניקוד: אם המילה "מושגחת" בסכמה כתובה בלי ניקוד ובעמוד כתובה עם ניקוד — לא התאמה.
מקרה אמיתי: לקוח שלנו — חוקר אקדמי — הופיע בעמוד "אודות" עם השם המלא שלו בגרשיים עבריים (״ד״ר יוסי לוי״ עם ״ כפול). בסכמת ה-Person שלו השם נכתב ב-JSON עם גרשיים רגילים ("ד\"ר יוסי לוי"). Perplexity לא הצליח לזהות אותו: היו לו שתי מחרוזות "שונות" ולא ידע איזו מהן להאמין. אחרי שאיחדנו את התו בכל האתר — הופיע בציטוט הראשון בתוך שבוע.
איך מזהים: העתיקו את שם העסק, שם החברה או כל טקסט מרכזי בדיוק כפי שהוא מופיע בסכמה. פתחו את קוד המקור של העמוד (Ctrl+U) והשתמשו ב-Ctrl+F כדי לחפש את המחרוזת המדויקת. אם היא לא מופיעה כמו-שהיא — זה אומר שיש הבדל תווים ומנועי AI רואים שני דברים שונים.
איך לתקן: בחרו סטנדרט אחד ותהיו עקביים איתו. ההמלצה שלי: השתמשו בגרשיים ASCII רגילים (") ב-JSON (חובה מבחינה תחבירית ממילא), ו-HTML entities להצגה חזותית של גרשיים עבריים (" או ״) בעמוד עצמו — אבל דאגו שהסכמה תשקף את המחרוזת בדיוק כפי שהיא נראית לקורא. אל תערבבו סוגי גרשיים בטקסט אחד.
זמן משוער לתיקון: שעה עד שעתיים, כולל search-and-replace מדוקדק בכל האתר.
שגיאה #5 — אין קישור סמנטי בין ישויות (@id fragments)
הבעיה: תוסף סכמה סטנדרטי יוצר סכמה נפרדת בכל עמוד. בעמוד הבית — Organization. בעמוד "צור קשר" — WebPage. בעמוד שירות — Service. הבעיה: כל אחד מהם עומד לבד. אין קישור מפורש בין ה-Service ל-Organization שנותנת אותו. אין קישור בין ה-WebPage ל-WebSite הכולל. מנוע AI רואה 10 סכמות מנותקות במקום עסק אחד עם 10 היבטים.
למה זה קטלני: ההבדל בין "יש כאן חברה, ויש כאן שירות" לבין "יש כאן חברה שהיא בעלת השירות הזה" הוא ההבדל שבין אינדקס לבין הבנה. מנועי AI בוחרים לצטט עסקים כשהם מבינים אותם כישות שלמה — לא כמערכת של דפים מנותקים. בלי @id fragments וקישורים ביניהם, אין ישות שלמה. יש 10 חלקיקים.
איך מזהים: פתחו את קוד המקור של 3 עמודים שונים באתר שלכם — עמוד הבית, עמוד שירות, ועמוד "צור קשר". חפשו בכל אחד את "@id". בסכמה נכונה, ה-Organization תופיע עם אותו @id בשלושת העמודים (למשל "@id": "https://your-site.co.il/#organization"), והישויות האחרות יפנו אליו דרך publisher, provider, או parentOrganization. אם ה-@id משתנה בין עמודים או שאין @id בכלל — אין קישור סמנטי.
איך נראה קישור נכון: הנה דוגמה מקוצרת של איך שלוש ישויות מתחברות כישות אחת:
{
"@type": "Organization",
"@id": "https://your-site.co.il/#organization",
"name": "החברה שלכם"
}
{
"@type": "WebSite",
"@id": "https://your-site.co.il/#website",
"publisher": { "@id": "https://your-site.co.il/#organization" }
}
{
"@type": "WebPage",
"@id": "https://your-site.co.il/services#webpage",
"isPartOf": { "@id": "https://your-site.co.il/#website" }
}
מנוע AI קורא את זה ומבין: יש חברה, יש לה אתר, יש בו עמוד. הכל מקושר.
איך לתקן: את הקישור הסמנטי הזה — נכון לשנת 2026 — אף תוסף וורדפרס לא עושה אוטומטית. חייבים לכתוב JSON-LD ידני, עם @id קבועים ועקביים לכל ישות, ועם קישורים מפורשים ביניהן דרך publisher, provider, isPartOf, mainEntity, וכו'. זו העבודה שאני עושה ידנית לכל לקוח — כי אין דרך אחרת.
זמן משוער לתיקון: 4-8 שעות עבודה ידנית לאתר בגודל בינוני. יותר לאתרים גדולים.
איך יודעים אם יש לכם בעיה? — בדיקה של 5 דקות
לפני שאתם משלמים למישהו לתקן — או משלמים כדי לגלות שאין לכם בעיה — הנה הבדיקה המהירה. פתחו טרמינל (או Terminal ב-Mac), החליפו את כתובת האתר, ורוצו:
אם עברתם על כל החמישה — אתם ב-10% העליון של האתרים בישראל. אם נכשלתם ב-2 או יותר — יש לכם בעיה שמנועי AI לא יסלחו עליה, גם אם הסכמה שלכם "עברה" בדיקה של תוסף.
סיכום: 3 שורות למי שדילג הכל
- הרוב המוחלט של האתרים הישראליים סובלים מלפחות אחת מהחמש — לרוב בלי שבעל האתר יודע.
- אף תוסף לא בודק את הבדיקות האלה — הן דורשות בדיקה ידנית, כי הן על נגישות, סמנטיקה ותוכן אמיתי — לא רק על תחביר.
- עלות התיקון של כל החמש = יום עבודה של מומחה. העלות של לא לתקן = כל לקוח שיכול היה להגיע דרך ChatGPT ולא הגיע.
שאלות ותשובות
curl עם User-Agent של GPTBot לכתובת האתר. אם הפלט לא כולל application/ld+json — זו שגיאה #1. משווים את הטלפון והמחירים בסכמה למה שכתוב בפועל בעמוד — אם לא זהה, זו שגיאה #2. פותחים את robots.txt — אם GPTBot או ClaudeBot מופיעים תחת Disallow, זו שגיאה #3.לא בטוחים אילו שגיאות יש לכם? אנחנו נבדוק בחינם
שולחים לנו קישור לאתר, ואנחנו מחזירים דוח קצר עם רשימת השגיאות והמלצות תיקון. חינם, בלי התחייבות.
לתיאום בדיקה קצרה בחינם ← המדריך המלא לסכמת AI לאתרים