📚 Schema.org ⏱ 34 דק׳ קריאה 📊 6,000 מילים 🔧 15 פרקים 🆕 evergreen עודכן 2026.05.19

LocalBusiness Schema, מדריך עומק לכל סוג עסק

‏רוב המקדמים שמטמיעים LocalBusiness schema שמים את הטיפוס הכללי ביותר, מפספסים 90% מהיתרון, ואז שואלים למה גוגל לא מציג להם rich results. ‏יש 100+ subtypes לבחור מהם, ולכל אחד יש properties משלו שהוא יורש ו-extending. ‏15 פרקים שיעבירו אתכם מ-LocalBusiness כללי ל-schema מדויק לעסק שלכם, עם דוגמאות קוד JSON-LD לעסקים ישראליים אמיתיים.

100+subtypes של LocalBusiness
15פרקים מעמיקים
7דוגמאות JSON-LD מלאות
20שנות ניסיון בסכמות
פרק 01

🏪 מה זה LocalBusiness schema, ולמה זה לא Organization

תקשיבו. אני אפתח עם הסיפור שאני שומע פעם בשבוע. בעל עסק מתקשר, "שמוליק, יש לי schema באתר, רואה את זה ב-View Source". אני בודק את האתר. הוא הטמיע @type: Organization בעמוד הבית של חנות הפיצה שלו ברמת גן. נחשו למה גוגל לא מציג לו rich results, ולמה Google Business Profile לא מקבל את הסיגנלים האלה? כי Organization זה לא LocalBusiness. נקודה.

LocalBusiness היא subtype של Organization, ספציפית לעסקים עם נוכחות פיזית או שירות לוקאלי. ההבדל הוא לא קוסמטי, הוא משנה לחלוטין איך גוגל מבין את העסק. Organization הוא חברה שיכולה להיות גלובלית, ‏וירטואלית, ‏או בכלל לא קיימת בעולם הפיזי. LocalBusiness אומר "יש לי כתובת, יש לי שעות פתיחה, יש לי טלפון, גולשים יכולים להגיע אליי". זה ההבדל בין SaaS לבין סלון מספרה.

⚠️ הנקודה החשובה ביותר

אם העסק שלכם עם כתובת פיזית או אזור שירות מוגדר, חייבים LocalBusiness (או subtype ספציפי שלו). אם תשתמשו ב-Organization, גוגל לא יתחיל לקשר אתכם ל-Google Business Profile, ולא תקבלו rich results לוקאליים. זה לא "אופציונלי לקצת יותר טוב", זה תנאי בסיסי לכל קמפיין Local SEO.

למה זה משנה לגוגל

גוגל משתמש ב-LocalBusiness schema כ-"מקור אמת שני" אחרי Google Business Profile. כשיש סתירה בין מה ש-GBP אומר לבין מה שהאתר אומר, גוגל מצמצם אמון בעסק. כשיש עקביות, גוגל מעלה אותו ב-Local Pack וב-Maps. ה-schema הוא הגשר בין מה שאתם אומרים על עצמכם ב-GBP, לבין מה שאתם אומרים על עצמכם באתר. שניהם חייבים להגיד אותו דבר, באותו פורמט.

מה שאני אכסה במאמר הזה

15 פרקים שמתחילים מהבסיס (איך לבחור subtype נכון, מה זה PostalAddress, איך כותבים OpeningHours שגוגל באמת מבינה), ועוברים לדוגמאות קוד JSON-LD מלאות לעסקים ישראליים, ‏שילוב עם @graph, multi-location, וטעויות נפוצות. אם תקראו עד הסוף ותטמיעו את הקוד הנכון לעסק שלכם, אתם תהיו בשטח הקטן של 10% מהעסקים בישראל עם schema תקין. רוב המקדמים בארץ עדיין מטמיעים LocalBusiness גנרי או Organization שגוי, אז זה advantage אמיתי.

אגב, השם שמוליק דורינבאום מאחורי המקלדת כאן, 20 שנה בעולם ה-SEO. אני אישית טיפלתי במאות אתרי לקוחות בכל הסוגים, ממסעדות בתל אביב ועד משרדי עו"ד בחיפה. בכל פעם, ההבדל בין dominant Local Pack לבין שקיפות מוחלטת התחיל מבחירת ה-subtype הנכון של LocalBusiness. אם אחרי המאמר אתם תקועים בהטמעה, יש לכם איך לדבר איתי ישירות.

פרק 02

🌳 100+ ה-subtypes, ‏מבנה ההיררכיה (עם דוגמאות)

זה החלק שמפיל הכי הרבה מקדמים. הם פותחים schema.org, רואים את הדף של LocalBusiness, ואומרים "אוקיי, אני אשתמש ב-LocalBusiness". אבל זה כמו ללכת לחנות בגדים ולבחור "בגד" במקום "חולצה". יש 100+ subtypes ספציפיים שכל אחד מהם יורש את ה-properties של LocalBusiness ומוסיף משלו. הבחירה הנכונה מאפשרת לגוגל להבין בדיוק מה אתם עושים, ולספק לכם rich results ייעודיים. נחשו למה רוב המקדמים בארץ עדיין משתמשים ב-LocalBusiness כללי? כי הם לא טרחו לקרוא את schema.org. אל תהיו הם.

ה-subtypes הראשיים

ההיררכיה היא LocalBusiness > sub > sub-sub. הנה הענפים המרכזיים שתפגשו בשטח, עם תת-הטיפוסים החשובים בכל אחד:

  1. AutomotiveBusiness

    עסקים בתחום הרכב. תת-טיפוסים: AutoBodyShop (פחחות), AutoDealer (סוכנות רכב), AutoPartsStore (חלפים), AutoRental (השכרה), AutoRepair (מוסך), AutoWash (שטיפת רכב), GasStation (תחנת דלק), MotorcycleDealer, MotorcycleRepair.

  2. MedicalBusiness

    שירותי בריאות. תת-טיפוסים: CommunityHealth, Dentist, Dermatology, Hospital, Optician, Pharmacy, Physiotherapy, Psychiatric, VeterinaryCare. כל subtype רפואי מוסיף את medicalSpecialty.

  3. FoodEstablishment

    אכילה ושתייה. תת-טיפוסים: Bakery, BarOrPub, Brewery, CafeOrCoffeeShop, FastFoodRestaurant, IceCreamShop, Restaurant, Winery. כולם יורשים את servesCuisine ו-menu.

  4. HealthAndBeautyBusiness

    טיפוח. תת-טיפוסים: BeautySalon, DaySpa, HairSalon, HealthClub, NailSalon, TattooParlor.

  5. HomeAndConstructionBusiness

    שיפוצים ובית. תת-טיפוסים: Electrician, GeneralContractor, HVACBusiness (מיזוג), HousePainter, Locksmith, MovingCompany, Plumber, RoofingContractor.

  6. LegalService, FinancialService, ProfessionalService

    שירותים מקצועיים. עו"ד = LegalService, רואה חשבון = AccountingService (subtype של FinancialService), יועץ עסקי = ProfessionalService. בנק = BankOrCreditUnion (גם תת של FinancialService).

  7. LodgingBusiness

    שינה. Hotel, Motel, Hostel, BedAndBreakfast, Resort, Campground.

  8. SportsActivityLocation

    ספורט ופנאי. BowlingAlley, GolfCourse, Gym, SkiResort, StadiumOrArena, TennisComplex.

  9. Store

    חנויות קמעונאיות. BookStore, ClothingStore, ComputerStore, ConvenienceStore, FurnitureStore, GardenStore, JewelryStore, ToyStore, ShoeStore, WholesaleStore.

  10. TravelAgency, ChildCare, EmploymentAgency, RealEstateAgent

    שירותים ספציפיים אחרים, כל אחד subtype ישיר של LocalBusiness, בלי תת-קטגוריות נוספות.

איך בוחרים

הכלל פשוט, תלכו לעומק הכי אפשרי. אם אתם מסעדה ספציפית, אל תבחרו FoodEstablishment, תבחרו Restaurant. אם אתם רופא שיניים, אל תבחרו MedicalBusiness, תבחרו Dentist. אם אין subtype ספציפי לעסק שלכם (לדוגמה, ייעוץ עסקי לא-קלאסי), השתמשו ב-ProfessionalService או LocalBusiness ישיר. רק כמוצא אחרון.

💡 הרשימה המלאה

היכנסו ל-schema.org/LocalBusiness וגללו לעמודת "More specific Types". זה האב-טיפוס שמכיל את כל היררכיית ה-subtypes. שמרו את הקישור בסימנייה, כי גוגל מעדכן את הרשימה אחת לתקופה (Restaurant קיבל properties חדשות ב-2024, ChildCare עברה restructuring ב-2023).

למה זה משנה ל-AI engines

חוץ מגוגל, גם ChatGPT, Perplexity, ו-AI Overviews משתמשים ב-schema כדי להבין מה העסק עושה. כש-AI engine מקבל שאלה "איזה רופא שיניים טוב בירושלים", הוא לא רק קורא טקסט, הוא קורא structured data. עסק עם @type: Dentist ספציפי מקבל יותר סיכוי להופיע בתשובה מאשר עסק עם LocalBusiness כללי. ה-subtype הוא הסיגנל שאתם נמצאים בקטגוריה הנכונה.

פרק 03

Required properties, ‏name + address + telephone (עם דוגמת קוד)

אם תזכרו רק שלושה דברים מהמאמר הזה, שיהיו אלה, name, address, telephone. אלה ה-required properties של LocalBusiness לפי גוגל (לא לפי schema.org, ששם רק name חובה, אבל אנחנו עובדים לפי גוגל, לא לפי schema.org). בלעדיהם, ה-rich results לא יופיעו, ‏גוגל לא יחשיב את ה-schema, ו-Search Console יראה אזהרות מתחת ל-Enhancements > LocalBusiness.

name

השם המסחרי המלא של העסק. בדיוק כפי שהוא רשום ב-Google Business Profile. לא קיצורים, לא ניקוד מיותר, לא תוספות ("רחוב X" או "סניף ראשי"). פשוט השם. אם ב-GBP אתם "מסעדת רומא", אז ב-schema אתם "מסעדת רומא". אם תוסיפו "בע"מ" או "סניף תל אביב" רק במקום אחד, יש לכם inconsistency.

address

כתובת מובנית של PostalAddress (פרק 4 צולל לעומק). אסור להגיש מחרוזת אחת של "דיזנגוף 142, תל אביב". חייב להיות object מובנה עם streetAddress, addressLocality, addressRegion, postalCode, addressCountry. גוגל יכול לפענח גם מחרוזת אחת, אבל הוא יתעלם ממנה כשהוא בוחר eligible ל-rich results.

telephone

מספר טלפון בפורמט בינלאומי E.164, בדיוק כמו ב-GBP. דוגמה, +972-3-5551234. עם המקף או בלי, גוגל מתעלם מהמקף, אבל חייבת להיות קידומת בינלאומית (+972). מספר ישראלי בפורמט מקומי ("03-5551234" או "0501234567") נפסל. זה אחד הדברים הראשונים שגוגל בודק.

דוגמת קוד מינימלית

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "קפה דיזנגוף 142",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "דיזנגוף 142",
    "addressLocality": "תל אביב",
    "addressRegion": "תל אביב",
    "postalCode": "6433201",
    "addressCountry": "IL"
  },
  "telephone": "+972-3-5551234"
}
</script>

זה ה-schema המינימלי שיעבור validation ויחזיר eligible for rich results ב-Schema Validator. אבל זה לא יקבל אותם, כדי לקבל rich results בפועל, צריך לפחות openingHours, image, ו-priceRange. נצלול לזה בפרקים הבאים.

⚠️ הטעות הקלאסית, address כמחרוזת

אני רואה את זה לפחות פעם בשבוע. מקדם מוסיף "address": "דיזנגוף 142, תל אביב" כמחרוזת אחת. זה לא תקין. גוגל מתעלם משדה address שהוא לא PostalAddress object. עדיף להשמיט לגמרי מאשר להגיש כמחרוזת, כי לפחות לא תקבלו אזהרת validation.

הוספת @id ו-url

שני properties שאינם required אבל הם best practice. @id ייחודי שמזהה את העסק על פני כל ה-schemas שלכם (חשוב במיוחד ב-@graph). url שמקשר לעמוד הבית של העסק (או לעמוד הסניף הספציפי, ב-multi-location). הפורמט המקובל ל-@id הוא URL מלא של העמוד + hash, לדוגמה https://example.co.il/#business. זה מבטיח ייחודיות גם כשיש לכם כמה entities באתר אחד.

פרק 04

📍 PostalAddress structure, ‏איך לבנות כתובת מסודרת ב-IL

הנה איפה רוב המקדמים נופלים. PostalAddress לא קשה, אבל יש בו דקויות שגוגל מקפיד עליהן בישראל, בעיקר בגלל הפורמט העברי המעורבב והעובדה שיש addressRegion שלא תמיד ברור איך לתרגם לישראלי. תקשיבו, רוב המקדמים פותחים schema.org רואים "streetAddress" ומדביקים "דיזנגוף 142, תל אביב". זאת טעות, וזה ההבדל בין rich results לבין כלום.

השדות

  1. streetAddress

    כתובת הרחוב והמספר בלבד. בעברית, "דיזנגוף 142" או "רחוב הרצל 89". בלי שם העיר, בלי המיקוד. אם רוצים, אפשר להוסיף קומה ומשרד אחרי הכתובת.

  2. addressLocality

    שם העיר. "תל אביב", "ירושלים", "חיפה", "באר שבע". אסור לקצר ל-"ת"א", גוגל מצפה לשם המלא. אם בעיר יש שני שמות (לדוגמה "בית שמש"), השתמשו בשם הרשמי כפי שהוא ב-GBP.

  3. addressRegion

    המחוז. בישראל ייחודי, אנחנו לא ארה"ב עם 50 מדינות. הפורמט המקובל, שם המחוז המקביל לחלוקת הלמ"ס. "תל אביב", "ירושלים", "חיפה", "מרכז", "דרום", "צפון". אם לא בטוחים, השתמשו בשם העיר. גוגל לא יעניש אבל יעדיף שתמלאו את השדה.

  4. postalCode

    המיקוד הישראלי בן 7 ספרות (לא 5 כמו לפני 2013). אם אתם בעמוד הוצאת תעודות, חפשו שם. בלי מקף בין הספרות. הפורמט הוא רצף של 7 ספרות, לדוגמה "6433201".

  5. addressCountry

    הכי חשוב לישראל. תמיד "IL" כקוד ISO 3166-1 alpha-2. לא "Israel", לא "ישראל", לא "IS". רק "IL". זה אחד מהשדות שגוגל בודק first, אם הוא לא תקין, ה-schema נפסל לחלוטין.

דוגמת קוד מלאה

"address": {
  "@type": "PostalAddress",
  "streetAddress": "רחוב הרצל 89",
  "addressLocality": "ירושלים",
  "addressRegion": "ירושלים",
  "postalCode": "9418901",
  "addressCountry": "IL"
}

מה אם יש קומה או דירה

הוסיפו לתוך streetAddress, לדוגמה "דיזנגוף 142, קומה 3, משרד 7". אין שדה נפרד ב-PostalAddress לקומה. תפסיקו לחפש.

מה אם אתם בקיבוץ או יישוב קהילתי

אין שם רחוב? streetAddress = שם המקום + מספר הבית, לדוגמה "קיבוץ אילון, בית 47". addressLocality = שם הקיבוץ עצמו או שם היישוב המוניציפלי. addressRegion = מחוז. גוגל קולט את זה לפי שילוב geo coordinates שתוסיפו (פרק 6). הוא יודע שיש דברים שאי אפשר לפענח רק מהכתובת.

💡 איך לבדוק אם הכתובת תקינה

קחו את הכתובת המלאה והדביקו אותה ב-Google Maps. אם Maps מוצא את המיקום המדויק, הכתובת תקינה. אם Maps מציע תיקונים ("אולי התכוונת ל..."), עדיף לקבל את ההצעה שלו. השתמשו בכתובת בדיוק כפי שהיא ב-Maps, כי זה אותו פורמט שגוגל יזהה ב-schema. עקביות בין Maps, GBP, ו-schema = signal חיובי חזק. לפעמים אני מבזבז 10 דקות נוספות על אימות הכתובת ב-Maps לפני שאני שולח ל-schema, וזה חוסך לי לפעמים שבועות של דיבוג בהמשך.

איך זה משתלב עם NAP

הכתובת ב-schema חייבת להיות זהה למילה אחרונה עם הכתובת ב-Google Business Profile, ב-NAP citations בכל הספריות (B144, Walla Yellow, Easy וכו'), ובפוטר של האתר. כל וריאציה ("רחוב" מול "רח'", "ת"א" מול "תל אביב") נחשבת inconsistency וחותכת ב-Local Pack. המדריך המלא ל-NAP consistency מתעמק בזה. הכלל הזהב, תבחרו פורמט אחד של הכתובת ותדבקו בו בכל המקומות. אל תכתבו "רחוב" במקום אחד ו-"רח'" במקום אחר.

פרק 05

OpeningHours, ‏הפורמט שגוגל באמת מבינה (עם דוגמת קוד)

OpeningHours זה אחד התחומים שגוגל שינה את הדעה לגביו. בעבר התקבל הפורמט הקצר openingHours: "Mo-Fr 09:00-18:00" כמחרוזת. היום זה עדיין עובד אבל פחות מומלץ. הפורמט המודרני הוא openingHoursSpecification עם array של OpeningHoursSpecification objects. למה השינוי? כי הפורמט החדש מאפשר דקויות שהפורמט הישן לא ידע לתאר, ימים שונים עם שעות שונות, תקופות חגים, סגירה זמנית, וכל מה שעסק אמיתי באמת צריך להגדיר.

הפורמט הישן (עדיין עובד)

"openingHours": [
  "Mo-Fr 09:00-18:00",
  "Sa 10:00-14:00"
]

פורמט מקוצר, קל לכתיבה, אבל מוגבל. אי אפשר להגדיר ימים שונים עם שעות שונות בצורה ברורה, ולא ניתן להגדיר תקופות מיוחדות (חגים, חופשת קיץ, סגירה לרגל אירוע). גוגל עדיין מקבל אותו אבל מעדיף את החדש.

הפורמט המומלץ (openingHoursSpecification)

"openingHoursSpecification": [
  {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": [
      "https://schema.org/Sunday",
      "https://schema.org/Monday",
      "https://schema.org/Tuesday",
      "https://schema.org/Wednesday",
      "https://schema.org/Thursday"
    ],
    "opens": "09:00",
    "closes": "18:00"
  },
  {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": "https://schema.org/Friday",
    "opens": "09:00",
    "closes": "14:00"
  }
]

הדקויות הישראליות

בישראל יש כמה דקויות שגורמות לבלגן:

  • שבוע ישראלי שונה מהמערבי, ‏יום ראשון (Sunday) הוא יום עבודה רגיל אצלנו, ולא חלק מהסוף שבוע. תוודאו ש-Sunday נמצא ב-array של ימי פעילות אם העסק שלכם פתוח אז.
  • שישי קצר, ‏רוב העסקים סוגרים מוקדם בשישי. הוסיפו בלוק נפרד לשישי עם השעות הנכונות.
  • שבת סגור, ‏אם העסק סגור בשבת, אל תכללו את Saturday ב-array. אל תוסיפו opens: "00:00" כמובן.
  • חגים יהודיים, ‏אפשר להוסיף validFrom ו-validThrough לבלוקים מיוחדים. לדוגמה, לסגירה בפסח, הוסיפו בלוק עם validFrom="2026-04-12" ו-validThrough="2026-04-19" ועם opens=closes=00:00.

פורמט מלא לעסק ישראלי טיפוסי (פתוח א"ה, שישי עד 14, שבת סגור)

"openingHoursSpecification": [
  {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday"],
    "opens": "08:30",
    "closes": "18:00"
  },
  {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": "Friday",
    "opens": "08:30",
    "closes": "14:00"
  }
]
⚠️ הטעות הגדולה, שעות צמודות לעמוד הלא נכון

אם יש לכם 5 סניפים, כל סניף עם שעות שונות, אל תשימו את כל ה-openingHours בעמוד הבית. שימו את ה-OpeningHoursSpecification של כל סניף ב-schema של עמוד הסניף הספציפי. בעמוד הבית, רק כתובות הסניפים והקישורים. (פרק 13 על multi-location).

פורמט שעות, 24h או 12h?

תמיד 24h. גוגל לא קולט AM/PM. "opens": "09:00" ולא "9:00 AM". פורמט HH:MM עם אפס מוביל אם צריך. "opens": "08:30" עובד, "opens": "8:30" יעיף warning, ו-"opens": "8:30 AM" יפיל validation. תמיד 24h, אפס מוביל לשעות חד-ספרתיות, מסך עם נקודתיים. זה קל לזכור אבל קל גם להחמיץ אם מעתיקים מתבנית ישנה.

פרק 06

🗺 Geo coordinates, ‏latitude/longitude כ-GeoCoordinates (עם קוד)

geo coordinates זה ה-bonus הגדול של LocalBusiness schema. הוא משחזר לגוגל את המיקום המדויק שלכם, מעבר למה שהוא יכול לפענח מהכתובת. במיוחד חשוב בקיבוצים, יישובים חדשים, בתי עסק בקניון (שמספר הרחוב לא ייחודי), או כל מצב שכתובת לבדה לא מספיק מדויקת. רוב המקדמים מדלגים על השדה הזה כי "זה לא חובה". זה טעות. הוספת geo coordinates שמתאימות לכתובת מחזקת את האות, ובעיקר מבטלת כל אי-ודאות של גוגל לגבי המיקום הפיזי שלכם. במיוחד באזורים שמקבלים שינויי ניווט תכופים (התחדשות עירונית, רחובות שעוברים שמות), ה-geo coordinates מקבעות את המיקום גם אם שם הרחוב משתנה.

המבנה

"geo": {
  "@type": "GeoCoordinates",
  "latitude": 32.083333,
  "longitude": 34.783333
}

זהו. שתי שדות, שני מספרים עשרוניים. בלי מעלות, בלי קו רוחב/אורך באותיות.

איך מקבלים את הקואורדינטות

  1. פתחו Google Maps
  2. חפשו את הכתובת המדויקת של העסק
  3. לחצו עם קליק ימני על הסיכה במפה
  4. השורה הראשונה בתפריט שנפתח היא ה-latitude,longitude. לחצו כדי להעתיק
  5. הדביקו ב-schema

דוגמה, חנות אופניים בתל אביב

"geo": {
  "@type": "GeoCoordinates",
  "latitude": 32.072143,
  "longitude": 34.778890
}

כמה ספרות אחרי הנקודה

6 ספרות מספיקות לדיוק של כ-10 ס"מ. 4 ספרות = דיוק של כ-10 מטר. אל תעגלו ל-2 ספרות, זה דיוק של 1 ק"מ וזה מטריד את גוגל. השאירו 5-6 ספרות.

⚠️ הטעות שמורידה מ-Local Pack

אם ה-geo coordinates לא תואמות לכתובת ב-PostalAddress (לדוגמה, latitude של ירושלים אבל כתובת של תל אביב), גוגל מתעלם מה-schema לחלוטין ו-Local Pack שלכם נפגע. תמיד תבדקו ב-Google Maps שהקואורדינטות והכתובת מצביעות על אותו נקודה.

שילוב עם hasMap

property נוסף שגוגל אוהב, hasMap עם URL ישיר ל-Google Maps של העסק:

"hasMap": "https://maps.google.com/?cid=12345678901234567890"

ה-cid (Customer ID) של העסק נמצא ב-URL של Google Business Profile. זה ה-signal הכי חזק לגוגל שהעסק שלכם ב-schema הוא בדיוק העסק ב-GBP. אם אין לכם את ה-cid, אפשר להשתמש ב-URL הרגיל של Maps, אבל cid עדיף.

איך לחלץ את ה-cid

פתחו את Google Business Profile של העסק שלכם. ב-URL של הפרופיל יש פרמטר ?placeid= או דרך ה-API. אם זה מורכב, יש כלים חינמיים ("Google Maps CID Finder") שיעשו את זה. שווה את 5 הדקות. ‏ה-cid הוא בעצם המפתח שמקשר בין ה-schema באתר לבין ה-listing הספציפי של העסק ב-GBP. בלעדיו, גוגל צריך להסיק את הקישור לבד דרך תאימות NAP. עם cid, האות מיידי וחד-משמעי.

פרק 07

🎯 Subtype בחירה, ‏איך להחליט בין LocalBusiness ל-Restaurant/Dentist/וכו'

הכלל הברור, תמיד תבחרו את ה-subtype הספציפי ביותר שמתאים לעסק שלכם. למה? כי כל subtype יורש את ה-properties של LocalBusiness ומוסיף משלו. שימוש בטיפוס הספציפי = יותר properties = יותר rich results = יותר אינפורמציה לגוגל. שימוש בטיפוס הכללי = פחות מידע = פחות יתרון. תקשיבו, זה כל כך פשוט שזה כואב לראות כמה מקדמים מפספסים את זה.

דוגמאות מעולם המסעדנות

  • FoodEstablishment (כללי), כל סוג של עסק שמגיש אוכל. ירש מ-LocalBusiness, מוסיף servesCuisine, menu, acceptsReservations.
  • Restaurant (ספציפי יותר), מסעדה לאכילה במקום. ירש מ-FoodEstablishment, מוסיף את כל ה-properties שלו.
  • FastFoodRestaurant (הכי ספציפי), מסעדת מזון מהיר. ירש מ-Restaurant.

אם אתם בורגר רנץ', תבחרו FastFoodRestaurant. אם אתם בית קפה, תבחרו CafeOrCoffeeShop. אם אתם מסעדה ים תיכונית, תבחרו Restaurant. אל תסתפקו ב-FoodEstablishment אם יש שם ספציפי יותר.

דוגמאות מעולם הרפואה

  • MedicalBusiness (כללי), כל עסק רפואי
  • Dentist (ספציפי), קליניקת שיניים. ירש את כל ה-properties הרפואיים ומוסיף את עצמו כסוג ייחודי
  • Physiotherapy, פיזיותרפיסט
  • Optician, אופטומטריסט
  • Pharmacy, בית מרקחת

מה אם אתם משלבים כמה סוגים

השתמשו ב-array של @type. דוגמה, סלון יופי שגם נותן טיפול ספא:

"@type": ["BeautySalon", "DaySpa"]

גוגל מכבד את שני הסוגים, ויכול להציג rich results שמתאימים לשניהם. שימוש מתון, אל תוסיפו 5 סוגים סתם כי "זה לא מזיק". כל סוג שמוסיף = השער של תחזוקה.

מה אם אין subtype שמתאים

השתמשו ב-LocalBusiness ישירות, או ב-ProfessionalService אם זה שירות מקצועי. הימנעו מ-Organization (זה לא local) או מ-@type שגוי.

💡 איך לבדוק אם ה-subtype שלכם קיים

פתחו schema.org/LocalBusiness, גללו לעמודה "More specific Types". זאת הרשימה המלאה. אם מצאתם משהו קרוב לתחום שלכם, בדקו אם יש subtype עוד יותר ספציפי בעמוד שלו. אם בסוף השרשרת אתם לא בטוחים, השתמשו ב-LocalBusiness ישיר ותוסיפו description ארוך שמסביר מה אתם עושים. גוגל יקלוט את ההקשר. ‏אגב, יש כלים שעוזרים, schema.org Type Hierarchy, או פשוט חיפוש בגוגל "schema.org [שם התחום שלכם]". תמיד יש מי שכבר התלבט באותה שאלה.

בסוף, ‏בחירת ה-subtype היא ההחלטה הראשונה והכי חשובה ב-LocalBusiness schema. אל תתפשרו עליה. 5 דקות של מחקר בהתחלה חוסכות חודשים של schema לא-אופטימלי שלא מציג rich results. אגב, אחת לתקופה גוגל גם מוסיפים subtypes חדשים. אם פתחתם את העסק בקטגוריה שלא הייתה קיימת ב-schema.org לפני שנתיים, ייתכן שכבר יש subtype חדש שמתאים לכם. אחת לחצי שנה כדאי לבדוק.

פרק 08

🍝 דוגמת קוד מלאה, ‏מסעדה בתל אביב

הנה דוגמה מלאה לסוג העסק הראשון, מסעדה איטלקית בתל אביב. כוללת כל ה-properties שגוגל אוהב, כולל servesCuisine, menu, acceptsReservations שמיוחדים ל-Restaurant. תקשיבו, רוב המסעדות בישראל היום עם schema של LocalBusiness כללי. תיתנו להן schema של Restaurant עם כל ה-properties הספציפיים, ותקבלו rich results שהן לא יודעות שקיימים בכלל. כפתור "View Menu" ב-SERP, כפתור "Reserve", הצגת servesCuisine מתחת לשם המסעדה. כל אלה דורשים את ה-subtype Restaurant ולא LocalBusiness.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "@id": "https://pasta-roma-tlv.co.il/#restaurant",
  "name": "פסטה רומא",
  "image": [
    "https://pasta-roma-tlv.co.il/images/restaurant-front.jpg",
    "https://pasta-roma-tlv.co.il/images/dining-room.jpg",
    "https://pasta-roma-tlv.co.il/images/pasta-carbonara.jpg"
  ],
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "בוגרשוב 23",
    "addressLocality": "תל אביב",
    "addressRegion": "תל אביב",
    "postalCode": "6346924",
    "addressCountry": "IL"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 32.080123,
    "longitude": 34.772456
  },
  "telephone": "+972-3-5234567",
  "url": "https://pasta-roma-tlv.co.il/",
  "servesCuisine": ["איטלקית", "ים תיכונית"],
  "menu": "https://pasta-roma-tlv.co.il/menu/",
  "acceptsReservations": true,
  "priceRange": "₪₪",
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday"],
      "opens": "12:00",
      "closes": "23:30"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Friday",
      "opens": "12:00",
      "closes": "15:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "19:30",
      "closes": "23:30"
    }
  ],
  "paymentAccepted": ["Cash", "Credit Card", "Debit Card"],
  "currenciesAccepted": "ILS",
  "hasMap": "https://maps.google.com/?cid=15234567890123456789",
  "sameAs": [
    "https://www.facebook.com/pastaromatlv",
    "https://www.instagram.com/pasta_roma_tlv"
  ]
}
</script>

מה מיוחד פה

  • servesCuisine, array של סוגי מטבח. גוגל מציג ב-rich results וב-Local Pack.
  • menu, URL לדף התפריט באתר. גוגל יכול להציג כפתור "View Menu" ב-results.
  • acceptsReservations: true, גוגל יציג כפתור "Reserve" אם משולב עם reservation service.
  • priceRange: "₪₪", סולם 1-4 סמלי מטבע. "₪" זול, "₪₪₪₪" יקר.
  • שבת פתוח בערב, ‏בלוק נפרד עם שעות שונות. גוגל מציג בדיוק במפה לפי השעות הללו.
  • currenciesAccepted: "ILS", ‏קוד ISO לשקל. חשוב לתיירים שמחפשים מסעדות.
💡 לבדוק את ה-schema ב-Rich Results Test

אחרי הטמעה, פתחו את schema.org basics וקראו את הסקציה על validation. הריצו את הקוד דרך Rich Results Test של גוגל. אם הוא מציג "eligible for Restaurant rich results", אתם במצב טוב. אם יש warnings, תקנו אותם, גם אם הם "רק warnings" ולא errors. ‏כל warning מצמצם את הסיכוי להופיע. במיוחד warnings על image (recommended חזק) ו-priceRange (recommended). תמיד תוסיפו אותם, גם אם הם לא חובה טכנית. וודאו ש-3 התמונות שאתם מצרפים הן באיכות גבוהה (לפחות 1200x800), פורמט JPG/PNG/WebP, ועם alt text תיאורי אם הן מטופלות באמצעות img tags באתר.

פרק 09

🦷 דוגמת קוד מלאה, ‏קליניקת שיניים בירושלים

קליניקת שיניים היא עסק רגיש לרגולציה (YMYL) ולכן ה-schema שלה צריך להיות מדויק במיוחד. רופאי שיניים בישראל מוגבלים גם בחוק הסתדרות לרפואת שיניים על מה הם יכולים לקדם, אז ה-description חייב להיות מאוזן ולא לכלול הבטחות שלא ניתנות לקיום.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dentist",
  "@id": "https://clinic-cohen-jlm.co.il/#dentist",
  "name": "קליניקת שיניים ד\"ר כהן",
  "image": "https://clinic-cohen-jlm.co.il/images/clinic-front.jpg",
  "description": "קליניקה לרפואת שיניים כללית ושיקומית בירושלים, בהובלת ד\"ר כהן, מומחה בעל ותק של 15 שנים",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "רחוב הרצל 89, קומה 3",
    "addressLocality": "ירושלים",
    "addressRegion": "ירושלים",
    "postalCode": "9418901",
    "addressCountry": "IL"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 31.776812,
    "longitude": 35.224732
  },
  "telephone": "+972-2-6234567",
  "url": "https://clinic-cohen-jlm.co.il/",
  "medicalSpecialty": "Dentistry",
  "availableService": [
    {
      "@type": "MedicalProcedure",
      "name": "רפואת שיניים שיקומית"
    },
    {
      "@type": "MedicalProcedure",
      "name": "השתלות שיניים"
    },
    {
      "@type": "MedicalProcedure",
      "name": "יישור שיניים"
    }
  ],
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Sunday", "Monday", "Wednesday"],
      "opens": "08:30",
      "closes": "19:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Tuesday", "Thursday"],
      "opens": "08:30",
      "closes": "15:00"
    }
  ],
  "priceRange": "₪₪₪",
  "paymentAccepted": ["Cash", "Credit Card", "Bank Transfer"],
  "currenciesAccepted": "ILS",
  "hasMap": "https://maps.google.com/?cid=12345098765432109876",
  "sameAs": [
    "https://www.facebook.com/clinic-cohen-jlm"
  ]
}
</script>

מה מיוחד פה

  • @type: Dentist, ‏subtype ספציפי במקום MedicalBusiness כללי. גוגל מקבל איתות שזו קליניקת שיניים ולא בית חולים.
  • medicalSpecialty, ‏שדה ייחודי ל-Dentist שמציין את ה-specialty. "Dentistry" הוא הערך הכללי. ל-specialties ייעודיים אפשר "Orthodontics" (יישור), "Endodontics" (טיפול שורש), "Oral Surgery" (כירורגיה).
  • availableService, ‏array של MedicalProcedure objects. שירותים ספציפיים שהקליניקה מציעה. גוגל יכול להציג זאת כ-services panel.
  • description מאוזן, ‏בלי "הטוב ביותר" או "מומחה מספר אחת". "בהובלת ד"ר כהן, מומחה" + ציון ותק. נכון, נכון לרגולציה, נכון לגוגל.
  • אין aggregateRating בדוגמה הזאת, ‏רק מוסיפים אם יש לכם רייטינגים אמיתיים מאומתים. פרק מלא על reviews schema.
⚠️ Dentist + Person בנפרד

הטעות הנפוצה, להגדיר את הקליניקה כ-Dentist ולא להוסיף Person נפרד עבור הרופא. עדיף שני entities נפרדים, Dentist (העסק) + Person (ד"ר כהן עצמו). אז גוגל מבין שהעסק הוא הקליניקה והאדם הוא הרופא, ויכול לקשר ביניהם דרך property employee. נכסה את זה ב-@graph בפרק 11.

לפרספקטיבה רחבה יותר

ראו את המדריך השלם ל-SEO לרופאי שיניים, שמכסה את כל ההיבטים של קידום קליניקה, כולל ה-schema בהקשר רחב יותר של קידום YMYL.

פרק 10

⚖️ דוגמת קוד מלאה, ‏משרד עו"ד בחיפה

משרד עו"ד הוא דוגמה מצוינת ל-LegalService, subtype של LocalBusiness שמיועד ספציפית לשירותי משפט. כמו רופא, יש כאן רגולציה (חוק לשכת עורכי הדין) שמגבילה מה ניתן לפרסם, אז ה-description חייב להיות עדין. אסור להשתמש במילים "מומחה" או "מתמחה" (אלא אם יש תעודה רשמית), אסור להבטיח תוצאות ("95% הצלחה" יוצא מהכלל), ואסור להציע השוואות מסחריות עם משרדים אחרים.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LegalService",
  "@id": "https://levi-law-haifa.co.il/#firm",
  "name": "משרד עורכי דין לוי ושות'",
  "image": "https://levi-law-haifa.co.il/images/office.jpg",
  "description": "משרד עורכי דין בחיפה, עוסק בדיני משפחה, צוואות וירושות, ונדל\"ן. ‏מספק ייעוץ ראשוני ללא תשלום",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "שדרות הנשיא 124, קומה 5",
    "addressLocality": "חיפה",
    "addressRegion": "חיפה",
    "postalCode": "3464124",
    "addressCountry": "IL"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 32.812345,
    "longitude": 34.987654
  },
  "telephone": "+972-4-8123456",
  "url": "https://levi-law-haifa.co.il/",
  "email": "info@levi-law-haifa.co.il",
  "areaServed": [
    {
      "@type": "AdministrativeArea",
      "name": "חיפה והקריות"
    },
    {
      "@type": "AdministrativeArea",
      "name": "כל מחוז חיפה והצפון"
    }
  ],
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday"],
      "opens": "08:30",
      "closes": "19:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Friday",
      "opens": "08:30",
      "closes": "13:00"
    }
  ],
  "priceRange": "₪₪₪",
  "paymentAccepted": ["Cash", "Credit Card", "Bank Transfer"],
  "currenciesAccepted": "ILS",
  "hasMap": "https://maps.google.com/?cid=98765432109876543210",
  "sameAs": [
    "https://www.linkedin.com/company/levi-law-haifa"
  ]
}
</script>

מה מיוחד פה

  • @type: LegalService, ‏subtype ייעודי. גוגל מבין שזה משרד עו"ד.
  • areaServed, ‏property חשוב ל-service-area businesses. משרד עו"ד יכול לתת שירות לאזור גיאוגרפי רחב יותר ממקום המשרד. AdministrativeArea רך, אפשר לציין "חיפה והקריות" או "כל מחוז חיפה".
  • email, ‏שדה לא חובה אבל מומלץ. גוגל יכול להציג כפתור "שלח אימייל" ב-rich results.
  • description בלי "מומחה", ‏חוק לשכת עו"ד אוסר על שימוש בתואר "מומחה" או "מתמחה" בשיווק. כתבתי "עוסק בדיני" שזה תיאור פעולה ולא תואר.
  • "ייעוץ ראשוני ללא תשלום", ‏מותר לציין, חשוב להמרה ב-CTR.

הוספת prices לשירותים

אם רוצים להוסיף שירותים ספציפיים עם מחירים:

"makesOffer": [
  {
    "@type": "Offer",
    "name": "ייעוץ ראשוני",
    "price": "0",
    "priceCurrency": "ILS"
  },
  {
    "@type": "Offer",
    "name": "הסכם ממון",
    "price": "3500",
    "priceCurrency": "ILS"
  }
]

שימוש מתון, רק אם המחירים יציבים ולא משתנים. אחרת תצטרכו לעדכן את ה-schema כל פעם.

💡 קישור פנימי

למדריך מלא לקידום משרדי עו"ד, ראו את המדריך השלם ל-SEO לעורכי דין. הוא נוגע בעומק רב יותר באילוצי חוק לשכת עורכי הדין, ה-schema הוא רק חלק קטן מהתמונה הכוללת. אבל גם כשמדובר ב-schema לבד, ההקפדה על ניסוח עדין ב-description ו-name חוסכת תלונות לוועדת אתיקה בעתיד.

פרק 11

🌐 שילוב עם @graph, ‏Person + BreadcrumbList + FAQPage באותו script

עד כה הצגתי schemas פשוטים, entity יחיד בכל script. בפועל, עמוד עסק טיפוסי צריך 4-7 entities שונים, וכולם משולבים ב-@graph אחד. זה הפתרון המודרני שגוגל מעדיף. רוב המקדמים עדיין מטמיעים כל schema ב-script נפרד, וזה עובד טכנית, אבל גוגל לא רואה את הקשרים בין הישויות. כשמדובר ב-LocalBusiness עם Person בעלים, ‏BreadcrumbList, ‏FAQPage, ‏ולפעמים גם reviews, החיבור ביניהם דרך @id הוא הדבר שמעצים את ה-Knowledge Graph של גוגל לגביכם.

מה זה @graph

במקום לרשום 5 scripts נפרדים בעמוד, אנחנו רושמים script אחד עם array של entities תחת property בשם @graph. כל entity מקבל @id ייחודי, ויכול להצביע על אחר דרך {"@id": "..."}. זה יוצר graph של ישויות מקושרות.

דוגמת קוד מלאה לקליניקת רופא, ‏עם Person, BreadcrumbList, ו-FAQPage

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Dentist",
      "@id": "https://clinic-cohen-jlm.co.il/#dentist",
      "name": "קליניקת שיניים ד\"ר כהן",
      "telephone": "+972-2-6234567",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "רחוב הרצל 89, קומה 3",
        "addressLocality": "ירושלים",
        "addressRegion": "ירושלים",
        "postalCode": "9418901",
        "addressCountry": "IL"
      },
      "employee": {"@id": "https://clinic-cohen-jlm.co.il/#dr-cohen"}
    },
    {
      "@type": "Person",
      "@id": "https://clinic-cohen-jlm.co.il/#dr-cohen",
      "name": "ד\"ר ישראל כהן",
      "jobTitle": "רופא שיניים",
      "alumniOf": "האוניברסיטה העברית בירושלים",
      "worksFor": {"@id": "https://clinic-cohen-jlm.co.il/#dentist"}
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://clinic-cohen-jlm.co.il/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "דף הבית",
          "item": "https://clinic-cohen-jlm.co.il/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "השירותים שלנו",
          "item": "https://clinic-cohen-jlm.co.il/services/"
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://clinic-cohen-jlm.co.il/#faq",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "האם הקליניקה עובדת עם קופות חולים?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "כן, הקליניקה מסונפת לכלל הקופות בהסדר ישיר"
          }
        }
      ]
    }
  ]
}
</script>

הקסם של @id

שימו לב ל-employee ב-Dentist שמצביע ל-Person, ול-worksFor ב-Person שמצביע חזרה ל-Dentist. שתי ה-references דו-כיווניות יוצרות graph מקושר. גוגל יכול עכשיו לזהות את ד"ר כהן כאדם שעובד בקליניקה, ולקשר את שניהם ב-Knowledge Graph שלו. ‏זה signal חזק ל-E-E-A-T.

✅ למה @graph עדיף על scripts נפרדים

1. גוגל מבין את הקשרים בין הישויות. 2. פחות קוד מיותר (אין כפילות של @context). 3. קל יותר לתחזק. 4. תיעוד טוב יותר, כל מה שקשור לעמוד במקום אחד. 5. רוב ה-CMSs המודרניים (WordPress עם Yoast/RankMath, Drupal, Next.js) מטמיעים @graph כברירת מחדל.

קישור לפרקים אחרים

ל-BreadcrumbList schema מדריך משלו, ול-FAQ schema פרק מיוחד גם כן. ב-LocalBusiness, רוב הזמן תרצו לשלב את 3 ה-entities הללו לפחות.

פרק 12

reviews ו-aggregateRating, ‏מה גוגל מציגה ומה לא

aggregateRating ו-review הם properties שמופיעים ב-rich results כ-כוכבים זהובים, וזה הדבר הכי משפיע על CTR. עסק עם 4.7★ ב-Local Pack מקבל 30% יותר קליקים מעסק בלי כוכבים, אומרים מחקרים. אבל יש לזה כללים מחמירים, וגוגל מענישה על fake reviews. בעבר היו עסקים שהוסיפו aggregateRating מפוברק כדי לקבל כוכבים, וגוגל פתח manual action שגרר מחיקה מהאינדקס. ‏היום זה אסור באכיפה חזקה, ‏תהיו זהירים.

הכללים של גוגל

  • aggregateRating חייב להיות מבוסס על reviews אמיתיים ומאומתים, לא ערכים מומצאים
  • ה-reviews צריכים להיות גלויים באתר במקום שגוגל יכול לקרוא
  • אל תוסיפו aggregateRating בעמוד עסק שלם רק כי "רוב הלקוחות אוהבים". זה false advertising
  • חייבים ratingCount או reviewCount. גוגל לא יציג את הכוכבים בלי לדעת כמה reviews יש
  • הסולם bestRating ו-worstRating חייב להיות עקבי (לרוב 1-5)

דוגמת קוד

"aggregateRating": {
  "@type": "AggregateRating",
  "ratingValue": "4.7",
  "reviewCount": "127",
  "bestRating": "5",
  "worstRating": "1"
},
"review": [
  {
    "@type": "Review",
    "author": {
      "@type": "Person",
      "name": "דנה לוי"
    },
    "datePublished": "2026-04-15",
    "reviewBody": "שירות מקצועי, צוות אדיב. ‏ממליצה בחום",
    "reviewRating": {
      "@type": "Rating",
      "ratingValue": "5",
      "bestRating": "5",
      "worstRating": "1"
    }
  }
]

מה גוגל מציגה ומה לא

גוגל מציגה את הכוכבים ב-Local Pack וב-rich results רק אם:

  1. ה-reviews גלויים באתר

    צריך שגוגל יוכל לראות את ה-reviews בעמוד (לא רק ב-schema). אחרת היא מתעלמת.

  2. יש מספר מינימלי

    סף לא רשמי הוא 5 reviews. פחות מזה, גוגל לרוב לא תציג.

  3. ה-reviews לא נראים מפוברקים

    אם כולם 5 כוכבים מתאריכים סמוכים, גוגל יחשוד. עדיף mix טבעי עם רוב 4-5 וכמה 3-4.

  4. הכוכבים מציעים בשל הקטגוריה

    גוגל לא מציגה כוכבים ל-organization כללי, רק ל-LocalBusiness ול-Product. עוד סיבה להשתמש ב-subtype הנכון.

⚠️ אזהרה חמורה, fake reviews

אל תכניסו reviews שלא קיימים באמת באתר. גוגל מקבילה schema לתוכן הגלוי בעמוד. אם תכתבו ב-schema reviewCount: 127 אבל באתר יש רק 3 reviews, גוגל תזהה ותעניש את האתר. בעבר זה היה manual action חמור שגרר מחיקה מהאינדקס. ‏אל תיגעו בזה. ‏הוסיפו רק reviews אמיתיים.

קישור פנימי

למדריך מלא על reviews schema, ראו את aggregate rating ו-reviews schema. שם נצלול לעומק לכללי גוגל ולעבירות הנפוצות. בקיצור, רק reviews אמיתיים, גלויים באתר, בכמות מינימלית של 5+, ועם mix טבעי של ציונים. כל זיוף = סיכון אמיתי של מחיקה מהאינדקס.

פרק 13

🏬 Multi-location, ‏איך לטפל בעסק עם 5 סניפים

עסק עם כמה סניפים מבלבל הרבה מקדמים. האם schema אחד לכל הסניפים? schema נפרד לכל אחד? משולב? התשובה תלויה במבנה האתר. תקשיבו, אני אקח עמדה ברורה, multi-location דורש מבנה אתר עם עמוד נפרד לכל סניף, ו-schema נפרד לכל אחד. כל קיצור דרך אחר פוגע ב-Local Pack. נקודה.

תרחיש 1, אתר עם עמוד נפרד לכל סניף

זה המודל המומלץ. כל סניף מקבל URL ייעודי (לדוגמה /sniff/tlv, /sniff/jlm, /sniff/haifa), וכל עמוד מקבל schema של LocalBusiness עם נתוני הסניף הספציפי. אין conflict, אין confusion, וגוגל יכול לדרג כל סניף בנפרד באזור הגיאוגרפי שלו.

<!-- ב-/sniff/tlv/ -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "@id": "https://example.co.il/sniff/tlv/#restaurant",
  "name": "מסעדה X, סניף תל אביב",
  "branchOf": {"@id": "https://example.co.il/#parent-org"},
  "address": {...},
  "geo": {...},
  "telephone": "+972-3-..."
}
</script>

תרחיש 2, אתר עם עמוד אחד שמרכז את כל הסניפים

פחות מומלץ אבל קיים. דף אחד עם רשימת כל הסניפים. במקרה הזה, השתמשו ב-ItemList שמכיל מספר LocalBusiness entities:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "itemListElement": [
    {
      "@type": "Restaurant",
      "name": "מסעדה X, סניף תל אביב",
      "address": {...}
    },
    {
      "@type": "Restaurant",
      "name": "מסעדה X, סניף ירושלים",
      "address": {...}
    }
  ]
}
</script>

הוספת Organization כ-parent

אם יש לכם מותג רב-סניפים, כדאי להוסיף Organization נפרד שמייצג את הברנד עצמו (לא סניף ספציפי), ולקשר כל LocalBusiness אליו דרך branchOf:

{
  "@type": "Organization",
  "@id": "https://example.co.il/#parent-org",
  "name": "מסעדות X",
  "url": "https://example.co.il/"
},
{
  "@type": "Restaurant",
  "branchOf": {"@id": "https://example.co.il/#parent-org"},
  ...
}
💡 הכלל הכללי

סניפים = עמודים. עמודים = schemas. אל תנסו לדחוס את כל הסניפים ל-schema אחד בעמוד הבית. גוגל יתבלבל, ובמקום שכל סניף ידורג באזור שלו, אף אחד מהם לא ידורג בשום מקום. השקיעו ביצירת עמודי סניף אמיתיים עם תוכן ייחודי לכל אחד, ו-schema תקין לכל אחד.

מה לגבי Google Business Profile

בכל GBP יש עמוד נפרד לכל סניף. ב-schema שלכם, ה-hasMap של כל סניף צריך להצביע על ה-cid של הסניף הספציפי. וודאו עקביות מלאה בין ה-cid של GBP, ה-schema של עמוד הסניף, ו-NAP citations של אותו סניף בספריות. המדריך המלא ל-GBP מסביר. אגב, ב-multi-location השם של כל סניף ב-schema חייב להיות זהה לשם של אותו סניף ב-GBP. אם ב-GBP יש לכם "מסעדה X, סניף תל אביב", ב-schema צריך להיות בדיוק "מסעדה X, סניף תל אביב", לא רק "מסעדה X" או "סניף תל אביב".

פרק 14

🚫 הטעויות הנפוצות (subtype לא ספציפי, פורמט שעות שגוי, geo לא מתאים)

אחרי כל ההסברים הטכניים, בואו נדבר על הטעויות שאני רואה הכי הרבה אצל לקוחות. אם תימנעו מ-5 אלה, אתם תהיו מהיפים בכיתה. תקשיבו, חלק מהטעויות נראות תמימות, אבל הן ההבדל בין rich results לבין שקיפות מוחלטת. ‏אני רואה אותן שוב ושוב, גם אצל אתרים שטחנו עליהם עשרות אלפי שקלים בהקמה.

טעות 1, שימוש ב-LocalBusiness כללי במקום subtype

זה השכיח ביותר. מקדם מוסיף @type: LocalBusiness לעמוד מסעדה במקום Restaurant. גוגל מקבל, אבל מפסיד את rich results הספציפיים למסעדות (servesCuisine, menu, acceptsReservations). תמיד לעומק.

טעות 2, telephone בפורמט מקומי

"03-5551234" או "0501234567" לא תקינים. גוגל רוצה פורמט בינלאומי E.164. "+972-3-5551234" או "+972-50-1234567". זה ההבדל בין rich results לבין כלום.

טעות 3, openingHours כמחרוזת אחת ברשימה לא מסודרת

"א'-ה' 9-18, שישי 9-14, שבת סגור" כמחרוזת אחת. גוגל לא יודע לפענח. השתמשו ב-OpeningHoursSpecification array (פרק 5).

טעות 4, geo coordinates של ה-CRM/שרת ולא של העסק

אם אתם משלבים schema אוטומטית ב-CMS, וודאו ש-latitude/longitude הם של העסק האמיתי. ראיתי אתרים שמוסיפים את הקואורדינטות של ה-data center של החברה ב-AWS. גוגל מתעלם מ-schema שלא עקבי עם הכתובת.

טעות 5, address כמחרוזת במקום PostalAddress object

"address": "דיזנגוף 142, תל אביב" לא תקין. חייב להיות object מובנה עם streetAddress, addressLocality, וכו'. גוגל מתעלם מ-string address.

טעויות נוספות (מהיר)

  • שכחה של addressCountry = "IL"
  • שימוש ב-"Israel" במקום "IL"
  • postalCode בן 5 ספרות במקום 7 (לפני 2013)
  • currenciesAccepted בעברית ("שקל") במקום ISO code ("ILS")
  • paymentAccepted לא תקין ("מזומן" במקום "Cash")
  • כתיבת dayOfWeek בעברית ("ראשון") במקום באנגלית
  • שעות בפורמט 12h עם AM/PM (גוגל לא קולט)
  • שכפול שגוי של @id (חייב להיות ייחודי בכל ה-graph)
  • canonical loop ב-employee/worksFor (Person A worksFor Org B, Org B employee Person C, וכו')
  • aggregateRating בלי reviewCount
⚠️ הטעות הקטסטרופלית, hardcoded values לא מסונכרנים

אם תכניסו את הכתובת ב-schema ידנית במקום אחד, אבל הפוטר של האתר מציג כתובת אחרת (טעות הקלדה, שינוי לא מסונכרן), גוגל יראה inconsistency וייצא את הפרופיל. הקפידו שכל המקורות (schema, פוטר, GBP, NAP) יהיו זהים מילה במילה. פרק שלם על זה ב-NAP guide. הפתרון המעשי, להגדיר את כל ה-NAP במקום אחד ב-CMS, ולמשוך אותו לכל ה-touchpoints (schema, פוטר, contact page). אז שינוי במקום אחד מתפשט לכולם, ואין סיכון של inconsistency. אם אתם על WordPress, השתמשו ב-custom fields או ב-options page של ACF. אם אתם על Next.js, ב-environment variables. הקפדה על מקור יחיד = שקט נפשי.

פרק 15

📋 workflow הטמעה ב-10 צעדים + תחזוקה חודשית

אם תקראתם עד כאן, יש לכם את כל הידע. עכשיו צריך תהליך מעשי להטמיע. הנה ה-workflow שאני עובד לפיו אצל כל לקוח חדש, ועם checklist חודשי לתחזוקה.

10 הצעדים להטמעה ראשונית

  1. בחירת subtype

    פתחו schema.org/LocalBusiness, מצאו את ה-subtype הספציפי ביותר לעסק שלכם.

  2. אימות עם GBP

    וודאו שהשם, הכתובת, הטלפון, ושעות הפעילות זהים ל-Google Business Profile של העסק.

  3. בניית PostalAddress

    פירוק הכתובת ל-streetAddress, addressLocality, addressRegion, postalCode, addressCountry=IL. בדיקה ב-Maps.

  4. חילוץ geo coordinates

    קליק ימני ב-Maps על הסיכה, העתקת latitude/longitude. 6 ספרות אחרי הנקודה.

  5. בניית OpeningHoursSpecification

    array של blocks לכל קבוצת ימים עם שעות זהות. שישי וושבת בנפרד אם רלוונטי.

  6. הוספת properties recommended

    image (3+ images), priceRange, paymentAccepted, currenciesAccepted, hasMap עם cid.

  7. שילוב @graph

    הוספת Person (לעסק שמסונן עם דמות בולטת), BreadcrumbList, FAQPage, כולם מקושרים ב-@graph.

  8. הזרקה לעמוד

    שמירת ה-script בתוך <head> של עמוד הבית, או בעמוד הסניף הספציפי ב-multi-location. אם משתמשים ב-WP, דרך תוסף SEO (Yoast/RankMath).

  9. אימות ב-Rich Results Test

    הריצו את ה-URL בכלי הוואלידציה של גוגל. וודאו 0 errors. תיקנו warnings.

  10. בקשת re-crawl ב-Search Console

    URL Inspection, Request Indexing. גוגל יקלוט את ה-schema תוך 24-48 שעות.

צ'ק ליסט תחזוקה חודשית

  • בדיקת ה-schema ב-Rich Results Test, עדיין eligible?
  • השוואה עם GBP, כתובת/טלפון/שעות עדיין זהים?
  • אם יש aggregateRating, ‏reviewCount עדכני? הוספת reviews חדשים?
  • איסוף נתוני ה-Local Pack ב-Search Console, נשארנו או עלינו?
  • אימות openingHoursSpecification בעקבות שינויי שעות לחגים
  • בדיקה שאין warnings חדשים ב-Coverage report
  • קישור פנימי לעמוד הסניף קיים בעמוד הבית ובעמודים רלוונטיים
  • בדיקת NAP citations חיצוניות (B144, Walla Yellow, וכו') שכולם זהים
  • אם הוספתם שירות חדש לעסק, ‏הוספת availableService matching ב-schema
  • אחת לרבעון, ‏בדיקה אם schema.org פירסם properties חדשים לסוג הזה
✅ אם הולכים לפי זה, ‏הסכמה נשארת תקפה לשנים

LocalBusiness schema זה לא משהו שמטמיעים פעם ושוכחים. שעות פעילות משתנות, מספרי טלפון משתנים, סניפים חדשים נפתחים. checklist חודשי של 30 דקות שומר על האות חזק במשך שנים. רוב המקדמים מטמיעים פעם, ושוכחים. תהיו מקצועיים יותר. תשתמשו ב-calendar reminder אחת לחודש, פתחו את האתר, פתחו את GBP, השוו. זה השקעה זעירה שמשמרת את התשואה לטווח ארוך.

📖 מילון מושגים

LocalBusiness
subtype של Organization ב-schema.org, מיועד לעסקים עם נוכחות פיזית או שירות לוקאלי. תנאי בסיסי לכל קמפיין Local SEO.
PostalAddress
object מובנה לתיאור כתובת. כולל streetAddress, addressLocality, addressRegion, postalCode, addressCountry. חובה בכל LocalBusiness schema.
OpeningHoursSpecification
פורמט מודרני להגדרת שעות פתיחה. array של blocks, כל אחד עם dayOfWeek, opens, closes. עדיף על הפורמט הישן openingHours.
GeoCoordinates
object עם latitude ו-longitude, שמציין את המיקום הגיאוגרפי המדויק של העסק. דיוק של 6 ספרות אחרי הנקודה.
subtype
טיפוס משנה ב-schema.org. Restaurant הוא subtype של FoodEstablishment שהוא subtype של LocalBusiness. כל subtype יורש properties ומוסיף משלו.
@graph
ארכיטקטורת JSON-LD שמאפשרת לרשום כמה entities ב-script אחד, עם references בין הישויות דרך @id. הפורמט המודרני המומלץ.
aggregateRating
property שמסכם reviews של עסק לציון ממוצע. דורש ratingCount או reviewCount. גוגל מציג ככוכבים זהובים ב-rich results.
areaServed
property שמציין את האזור הגיאוגרפי שהעסק מעניק בו שירות. חשוב במיוחד ל-service-area businesses (שיפוצניק, עו"ד שמטפל באזור רחב).
branchOf
property שמקשר סניף ל-Organization של המותג הראשי. שימושי ב-multi-location כדי לקשר את כל הסניפים תחת ברנד אחד.
hasMap
property עם URL ל-Google Maps של העסק, רצוי עם cid (Customer ID). signal חזק לקישור בין schema לבין Google Business Profile.
פרק 16

שאלות נפוצות

מה ההבדל בין LocalBusiness ל-Organization בסכמה?
Organization זה טיפוס כללי לכל חברה או ארגון, גם וירטואלי או גלובלי. LocalBusiness זה subtype של Organization שמיועד ספציפית לעסקים עם נוכחות פיזית או שירות לוקאלי. אם יש לעסק שלכם כתובת או אזור שירות מוגדר, חייבים LocalBusiness, לא Organization. ההבדל קריטי, גוגל לא יקשר עסק עם Organization ל-Google Business Profile, ולא יציג עליו rich results לוקאליים.
האם אני חייב להשתמש ב-subtype ספציפי כמו Restaurant או Dentist, או שמספיק LocalBusiness כללי?
מספיק LocalBusiness כללי כדי שהסכמה תהיה תקפה, אבל subtype ספציפי תמיד עדיף. כל subtype יורש את ה-properties של LocalBusiness ומוסיף משלו. Restaurant מוסיף servesCuisine, menu, acceptsReservations. Dentist מוסיף medicalSpecialty. השימוש בטיפוס הספציפי מאפשר לגוגל להציג לכם rich results ייעודיים שלא יוצגו עם LocalBusiness כללי.
מהן ה-required properties של LocalBusiness לפי גוגל?
השלושה החובה לפי גוגל הם, name (שם העסק), address (PostalAddress object מובנה), ו-telephone (בפורמט בינלאומי E.164 כמו +972-3-5551234). schema.org עצמה דורשת רק name, אבל גוגל לא יחשיב את הסכמה ולא יציג rich results בלי השלושה האלה ביחד.
איך לכתוב addressCountry לכתובת ישראלית?
תמיד "IL" (קוד ISO 3166-1 alpha-2), אף פעם לא "Israel" או "ישראל". גוגל מעניק רק את הקוד הדו-אותי הסטנדרטי. בנוסף, addressRegion בישראל הוא שם המחוז (תל אביב, ירושלים, חיפה, מרכז, דרום, צפון), ו-postalCode הוא בן 7 ספרות (לא 5 כמו לפני 2013).
מה הפורמט הנכון של openingHours, הישן או openingHoursSpecification?
openingHoursSpecification עדיף ברוב המקרים. הפורמט הישן ("Mo-Fr 09:00-18:00") עדיין עובד אבל מוגבל. openingHoursSpecification מאפשר blocks נפרדים עם שעות שונות לימים שונים, חופשות חגים (validFrom/validThrough), ועיבוד מדויק יותר ע"י גוגל. בעסק ישראלי טיפוסי עם שישי קצר ושבת סגור, openingHoursSpecification הוא הפתרון הברור.
האם geo coordinates חובה ב-LocalBusiness schema?
לא חובה אבל מאוד מומלץ. ה-geo משחזר לגוגל את המיקום המדויק של העסק, מעבר למה שהוא יכול לפענח מהכתובת. במיוחד חשוב בקיבוצים, יישובים חדשים, או בתי עסק בקניון. השתמשו ב-GeoCoordinates עם latitude ו-longitude מ-Google Maps, 6 ספרות אחרי הנקודה.
האם אפשר להוסיף כמה @type לאותו עסק?
כן, ב-array. לדוגמה, סלון יופי שגם נותן טיפול ספא, @type: ["BeautySalon", "DaySpa"]. גוגל מכבד את שני הסוגים ויציג rich results שמתאימים לשניהם. שימוש מתון, אל תוסיפו 5 סוגים סתם. כל סוג שמוסיף = השער של תחזוקה ועוד properties שגוגל מצפה לראות.
מה ההבדל בין @graph לבין כמה scripts נפרדים בעמוד?
@graph מאפשר לרשום כמה entities ב-script אחד עם references דו-כיווניות בין הישויות דרך @id. עדיף על כמה scripts נפרדים כי 1) פחות קוד מיותר, 2) גוגל מבין את הקשרים בין הישויות (Dentist + Person שעובד שם), 3) קל יותר לתחזק, 4) רוב ה-CMSs המודרניים מטמיעים @graph כברירת מחדל.
האם aggregateRating יציג כוכבים בגוגל?
רק אם, 1) ה-reviews גלויים באתר במקום שגוגל יכול לקרוא (לא רק ב-schema), 2) יש מספר מינימלי של reviews (סף לא רשמי 5+), 3) ה-reviews לא נראים מפוברקים (mix טבעי של 4-5 וכמה 3-4), 4) הטיפוס הוא LocalBusiness או Product. אסור להוסיף aggregateRating מפוברק, גוגל מענישה.
איך לטפל בעסק עם 5 סניפים?
המודל המומלץ, עמוד נפרד לכל סניף עם schema של LocalBusiness ספציפי לסניף (NAP, geo, opening hours). הוסיפו Organization נפרד שמייצג את המותג הראשי, וקשרו כל סניף אליו דרך property branchOf. אל תדחסו את כל הסניפים ל-schema אחד בעמוד הבית, גוגל לא ידע איזה לדרג באיזה אזור.
מה לעשות אם אין subtype שמתאים לעסק שלי?
השתמשו ב-LocalBusiness ישירות (לא Organization), או ב-ProfessionalService אם זה שירות מקצועי. הוסיפו description ארוך ומפורט שמסביר בדיוק מה אתם עושים, כדי שגוגל יקלוט את ההקשר. רוב התחומים יש להם subtype ב-schema.org, גם אם הוא לא הכי ספציפי. בדקו את הרשימה המלאה.
האם LocalBusiness schema משפיע על Local Pack?
כן, ‏הוא אחד הגורמים המשמעותיים. schema תקין ועקבי עם GBP מחזק את האות לגוגל שהעסק לגיטימי ומעודכן. אבל schema לבד לא מספיק. צריך גם NAP citations עקביים בספריות חיצוניות, reviews חיוביים ב-GBP, תוכן עם entity coverage, ועוד. ה-schema הוא חלק חשוב מהפאזל, לא הפאזל כולו.
האם צריך לעדכן את ה-schema כל פעם ששעות הפעילות משתנות?
כן, ‏זה חלק חשוב מתחזוקה חודשית. שעות פעילות לחגים, ‏סגירה זמנית, ‏שינוי שעות בעקבות עונה, ‏הכל צריך להתעדכן גם ב-schema. אחרת גוגל יציג שעות לא נכונות ב-Local Pack וגולשים יגיעו לעסק סגור. השתמשו ב-validFrom/validThrough לתקופות מיוחדות, ועדכנו את הבלוק העיקרי לשינויים קבועים.
איך AI engines כמו ChatGPT ו-Perplexity משתמשים ב-LocalBusiness schema?
AI engines קוראים structured data כדי להבין מה העסק עושה, איפה הוא נמצא, ואיך לציין אותו במענה לשאלת המשתמש. כשמישהו שואל את ChatGPT "איזה מסעדה איטלקית טובה בתל אביב", ה-engine סורק אתרים שמופיעים ב-Google ובוחר את אלה עם schema עשיר ומדויק כדי לצטט. עסק עם LocalBusiness schema מלא = יותר סיכוי להופיע בתשובות AI engines.
באיזה תוכנות אפשר לבדוק את ה-schema?
Rich Results Test של גוגל (search.google.com/test/rich-results) הוא הסטנדרט, מציג eligibility ל-rich results. Schema Validator (validator.schema.org) של schema.org מציג תאימות תחבירית. Search Console מציג את ה-schemas שגוגל זיהה באתר שלכם וכמה rich results מציגים בפועל. השתמשו בשלושתם, הם משלימים זה את זה.
שמוליק דורינבאום

צריכים לקפוץ למישהו שכבר ראה את הסרט?

שמוליק דורינבאום, 20 שנה ב SEO, 1,200 בוגרים בקורס. אם יש לכם אתר ולא בטוחים מאיפה להתחיל או שאתם תקועים במצב לא טוב, שלחו הודעה. תשובה תוך 24 שעות, בלי דמי ייעוץ למפגש הראשון.

שלחו הודעה

אתר שלא עולה בגוגל זה חוב, לא נכס

אם אתם פה, אתם כבר מבינים שמשהו לא בסדר. שלחו הודעה, נדבר. בלי התחייבות, בלי לחץ.

✓ תשובה חוזרת תוך 24 שעות · ✓ ללא התחייבות