Lokales Unternehmen

Wenn Nutzer in der Google-Suche oder in Google Maps nach Unternehmen suchen, wird in den Suchergebnissen möglicherweise eine hervorgehobene Knowledge Graph-Karte mit Details zu einem Unternehmen angezeigt, das der Anfrage entspricht. Bei der Suche nach einem Unternehmenstyp, z. B. "beste Restaurants in New York", wird unter Umständen ein Karussell mit Unternehmen angezeigt, die mit den Kriterien der Suchanfrage übereinstimmen. Mithilfe der strukturierten Daten für lokale Unternehmen kannst du Google unter anderem über deine Öffnungszeiten, die verschiedenen Abteilungen innerhalb des Unternehmens und die Rezensionen zu deinem Unternehmen informieren. Wenn du Nutzern die Möglichkeit geben möchtest, direkt in den Suchergebnissen eine Reservierung vorzunehmen oder eine Bestellung aufzugeben, kannst du mithilfe der Google Maps Booking API Buchungen, Zahlungen und andere Aktionen aktivieren.

So fügst du strukturierte Daten hinzu

Strukturierte Daten sind ein standardisiertes Format, mit dem du Informationen zu einer Seite angeben und die Seiteninhalte klassifizieren kannst. Falls du mit strukturierten Daten noch nicht vertraut bist, findest du hier weitere Informationen dazu, wie sie funktionieren.

In der folgenden Übersicht haben wir zusammengefasst, wie du strukturierte Daten erstellst, testest und veröffentlichst. Eine detaillierte Anleitung dazu, wie du einer Webseite strukturierte Daten hinzufügst, findest du im Codelab zu strukturierten Daten.

  1. Füge die erforderlichen Properties hinzu. Informationen dazu, wo strukturierte Daten auf der Seite platziert werden, erhältst du in diesem Video: JSON-LD structured data: Where to insert on the page.
  2. Folge den Richtlinien.
  3. Prüfe deinen Code mit dem Test für Rich-Suchergebnisse.
  4. Stelle ein paar Seiten mit deinen strukturierten Daten bereit und teste mit dem URL-Prüftool, wie Google die Seiten sieht. Achte darauf, dass die Seiten für Google zugänglich sind und nicht durch eine robots.txt-Datei, das noindex-Tag oder Anmeldeanforderungen blockiert werden. Wenn die Seiten in Ordnung sind, kannst du Google bitten, deine URLs noch einmal zu crawlen.
  5. Damit Google über künftige Änderungen auf dem Laufenden bleibt, empfehlen wir dir, eine Sitemap einzureichen. Mit der Search Console Sitemap API lässt sich dieser Vorgang automatisieren.

Beispiele

Einfacher lokaler Brancheneintrag

Hier ein Beispiel für einen einfachen lokalen Brancheneintrag in JSON-LD.


<html>
  <head>
    <title>Dave's Steak House</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Restaurant",
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
      "@id": "http://davessteakhouse.example.com",
      "name": "Dave's Steak House",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "148 W 51st St",
        "addressLocality": "New York",
        "addressRegion": "NY",
        "postalCode": "10019",
        "addressCountry": "US"
      },
      "review": {
        "@type": "Review",
        "reviewRating": {
          "@type": "Rating",
          "ratingValue": "4",
          "bestRating": "5"
        },
        "author": {
          "@type": "Person",
          "name": "Lillian Ruiz"
        }
      },
      "geo": {
        "@type": "GeoCoordinates",
        "latitude": 40.761293,
        "longitude": -73.982294
      },
      "url": "http://www.example.com/restaurant-locations/manhattan",
      "telephone": "+12122459600",
      "servesCuisine": "American",
      "priceRange": "$$$",
      "openingHoursSpecification": [
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": [
            "Monday",
            "Tuesday"
          ],
          "opens": "11:30",
          "closes": "22:00"
        },
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": [
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "opens": "11:30",
          "closes": "23:00"
        },
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": "Saturday",
          "opens": "16:00",
          "closes": "23:00"
        },
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": "Sunday",
          "opens": "16:00",
          "closes": "22:00"
        }
      ],
      "menu": "http://www.example.com/menu",
      "acceptsReservations": "True"
    }
    </script>
  </head>
  <body>
  </body>
</html>

Hier siehst du ein Beispiel für ein Restaurantkarussell. Diese Funktion ist derzeit nur für eine kleine Anzahl von Restaurants verfügbar. Wenn du teilnehmen möchtest, füll bitte unser Formular für Interessenten aus.

<html>
  <head>
    <title>Trattoria Luigi</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org/",
      "@type": "Restaurant",
      "name": "Trattoria Luigi",
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
       "priceRange": "$$$",
       "servesCuisine": "Italian",
       "address": {
         "@type": "PostalAddress",
         "streetAddress": "148 W 51st St",
         "addressLocality": "New York",
         "addressRegion": "NY",
         "postalCode": "10019",
         "addressCountry": "US"
       }
    }
    </script>
  </head>
  <body>
  </body>
</html>

Öffnungszeiten

Die folgenden Beispiele zeigen, wie verschiedene Öffnungszeiten ausgezeichnet werden.

Normale Geschäftszeiten

Wenn die Properties validFrom und validThrough nicht verwendet werden, bedeutet dies, dass die Öffnungszeiten für das gesamte Jahr gelten. In diesem Beispiel hat das Geschäft wochentags von 9:00 bis 21:00 Uhr und am Wochenende von 10:00 bis 23:00 Uhr geöffnet.

"openingHoursSpecification": [
  {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": [
      "Monday",
      "Tuesday",
      "Wednesday",
      "Thursday",
      "Friday"
    ],
    "opens": "09:00",
    "closes": "21:00"
  },
  {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": [
      "Saturday",
      "Sunday"
    ],
    "opens": "10:00",
    "closes": "23:00"
  }
]
Öffnungszeiten nach Mitternacht

Öffnungs- und Schließzeiten gibst du mit einer einzigen OpeningHoursSpecification-Property an. Im folgenden Beispiel sind die Öffnungszeiten von Samstag um 18:00 Uhr bis Sonntag um 3:00 Uhr definiert.

"openingHoursSpecification": {
  "@type": "OpeningHoursSpecification",
  "dayOfWeek": "Saturday",
  "opens": "18:00",
  "closes": "03:00"
}
Ganztägige Öffnungszeiten

Wenn du ein Geschäft als rund um die Uhr geöffnet auszeichnen möchtest, dann setz die Property open auf "00:00" und die Property closes auf "23:59". Möchtest du dagegen signalisieren, dass ein Geschäft den ganzen Tag geschlossen ist, dann setz die beiden Properties opens und closes auf "00:00". Das folgende Beispiel zeigt ein Geschäft, das samstags den ganzen Tag geöffnet und sonntags den ganzen Tag geschlossen ist.

"openingHoursSpecification": [
  {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": "Saturday",
    "opens": "00:00",
    "closes": "23:59"
  },
  {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": "Sunday",
    "opens": "00:00",
    "closes": "00:00"
  }
]
Saisonal abweichende Öffnungszeiten

Mit den Properties validFrom und validThrough definierst du saisonal abweichende Öffnungszeiten. Das folgende Beispiel zeigt ein Geschäft, das in den Weihnachtsferien geschlossen ist.

"openingHoursSpecification": {
  "@type": "OpeningHoursSpecification",
  "opens": "00:00",
  "closes": "00:00",
  "validFrom": "2015-12-23",
  "validThrough": "2016-01-05"
}

Mehrere Abteilungen

Bei einem Unternehmen mit verschiedenen Abteilungen mit jeweils eigenen Properties für Öffnungszeiten oder Rufnummern kannst du die Property department jeweils mit einem eigenen Element pro Abteilung auszeichnen. Definiere die Properties, die sich in bei der betreffenden Abteilung vom übergeordneten Geschäft unterscheiden.

<html>
  <head>
    <title>Dave's Department Store</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Store",
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
      "@id": "http://davesdeptstore.example.com",
      "name": "Dave's Department Store",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "1600 Saratoga Ave",
        "addressLocality": "San Jose",
        "addressRegion": "CA",
        "postalCode": "95129",
        "addressCountry": "US"
      },
      "geo": {
        "@type": "GeoCoordinates",
        "latitude": 37.293058,
        "longitude": -121.988331
      },
      "url": "http://www.example.com/store-locator/sl/San-Jose-Westgate-Store/1427",
      "priceRange": "$$$",
      "telephone": "+14088717984",
      "openingHoursSpecification": [
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday",
            "Saturday"
          ],
          "opens": "08:00",
          "closes": "23:59"
        },
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": "Sunday",
          "opens": "08:00",
          "closes": "23:00"
        }
      ],
      "department": [
        {
          "@type": "Pharmacy",
          "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
          "name": "Dave's Pharmacy",
          "telephone": "+14088719385",
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "dayOfWeek": [
                "Monday",
                "Tuesday",
                "Wednesday",
                "Thursday",
                "Friday"
              ],
              "opens": "09:00",
              "closes": "19:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "dayOfWeek": "Saturday",
              "opens": "09:00",
              "closes": "17:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "dayOfWeek": "Sunday",
              "opens": "11:00",
              "closes": "17:00"
            }
          ]
        }
      ]
    }
    </script>
  </head>
  <body>
  </body>
</html>

Richtlinien

Damit dein Brancheneintrag in den Rich-Suchergebnissen für lokale Unternehmen angezeigt wird, musst du diese Richtlinien einhalten.

Definitionen strukturierter Datentypen

In den folgenden Tabellen sind die Properties und ihre Verwendung für lokale Unternehmen sowie die Geschäftsaktionstypen entsprechend den vollständigen Definitionen unter schema.org/LocalBusiness aufgeführt.

Du musst alle erforderlichen Properties hinzufügen, damit die Inhalte als Rich-Suchergebnis angezeigt werden können. Du kannst auch die empfohlenen Properties einbinden, um weitere Informationen zu deinen Inhalten hinzuzufügen und deinen Nutzern so einen Mehrwert zu bieten.

LocalBusiness

Die vollständige Definition von LocalBusiness findest du unter schema.org/LocalBusiness. Definiere jeden Standort des lokalen Unternehmens als LocalBusiness-Typ. Verwende einen möglichst konkreten LocalBusiness-Untertyp. Beispiele hierfür sind Restaurant, DaySpa oder HealthClub.

Erforderliche Properties
@id

URL

Global eindeutige ID des jeweiligen Unternehmensstandorts in Form einer URL. Die ID muss immer gleich bleiben und darf sich im Laufe der Zeit nicht ändern. Die URL wird in der Google-Suche als opaker String behandelt und muss kein gültiger Link sein. Verfügt das Unternehmen über mehrere Standorte, muss @id für jeden Standort eindeutig sein.

address

PostalAddress

Der Standort des Unternehmens. Hier ist es sinnvoll, möglichst viele Properties anzugeben. Je mehr Properties du angibst, desto informativer ist das Ergebnis für die Nutzer. Beispiel:


"address": {
  "@type": "PostalAddress",
  "streetAddress": "148 W 51st St Suit 42 Unit 7",
  "addressLocality": "New York",
  "addressRegion": "NY",
  "postalCode": "10019",
  "addressCountry": "US"
}
name

Text

Der Name des Unternehmens

Empfohlene Properties
aggregateRating

AggregateRating

Die Durchschnittsbewertung für das lokale Unternehmen basierend auf verschiedenen Bewertungen und Rezensionen. Bitte beachte die Richtlinien für Rezensions-Snippets und die Liste der erforderlichen und empfohlenen Properties für Gesamtbewertungen.

department

LocalBusiness

Ein verschachteltes Element für eine einzelne Abteilung. In dieser Tabelle kannst du beliebige Properties für eine Abteilung definieren.

Zusätzliche Richtlinien:

  • Gib den Geschäftsnamen mit dem Abteilungsnamen im folgenden Format an: {store name} {department name}. Beispiel: gMart und gMart Pharmacy.
  • Wenn der Abteilungsname explizit eine Marke darstellt, gib ihn separat an. Beispiel: Best Buy und Geek Squad.
geo

GeoCoordinates

Die geografischen Koordinaten des Unternehmens

geo.latitude

Number

Der Breitengrad des Unternehmensstandorts. Er muss mit einer Genauigkeit von mindestens fünf Nachkommastellen angegeben werden.

geo.longitude

Number

Der Längengrad des Unternehmensstandorts. Er muss mit einer Genauigkeit von mindestens fünf Nachkommastellen angegeben werden.

menu

URL

Für Gastronomiebetriebe die vollständig qualifizierte URL der Speisekarte

openingHoursSpecification

Ein Array oder ein einzelnes Objekt vom Typ OpeningHoursSpecification. Beide werden unterstützt.

Öffnungszeiten des Geschäftsstandorts

openingHoursSpecification.closes

Time

Uhrzeit, zu der der Unternehmensstandort schließt, im Format "hh:mm:ss"

openingHoursSpecification.dayOfWeek

Text

Mindestens eines der folgenden Elemente:

  • Monday
  • Tuesday
  • Wednesday
  • Thursday
  • Friday
  • Saturday
  • Sunday
openingHoursSpecification.opens

Time

Uhrzeit, zu der der Unternehmensstandort öffnet, im Format "hh:mm:ss"

openingHoursSpecification.validFrom

Date

Das Anfangsdatum einer vorübergehenden Geschäftsschließung im Format JJJJ-MM-TT

openingHoursSpecification.validThrough

Date

Das Enddatum einer vorübergehenden Geschäftsschließung im Format JJJJ-MM-TT

priceRange

Text

Die relative Preisspanne eines Unternehmens. Sie wird normalerweise entweder als numerischer Bereich, z. B. "$10-15", oder durch eine normalisierte Anzahl von Währungszeichen wie etwa "$$$" angegeben.

review

Review

Eine Rezension des lokalen Unternehmens. Bitte beachte die Richtlinien für Rezensions-Snippets und die Liste der erforderlichen und empfohlenen Properties für Rezensionen.

servesCuisine

servesCuisine

Die Art der Küche, die im Restaurant serviert wird

telephone

Text

Eine geschäftliche Telefonnummer, die als primäre Kontaktmöglichkeit für Kunden vorgesehen ist. Gib in jedem Fall auch die Landes- und Ortsvorwahl an.

url

URL

Die vollständig qualifizierte URL des jeweiligen Unternehmensstandorts. Im Gegensatz zur @id-Property muss diese URL-Property ein funktionierender Link sein.

Wenn auf deiner Website mehrere Restaurants aufgeführt sind und diese in einem Hostkarussell angezeigt werden sollen, füge das Karussellobjekt hinzu. Definiere zusätzlich zu den standardmäßigen Karussell-Properties die unten aufgeführten Properties in deinem Karussellobjekt. Die Karussell-Properties sind zwar nicht obligatorisch, aber du musst die folgenden Properties hinzufügen, wenn deine Restaurantliste in einem Hostkarussell angezeigt werden soll.

Erforderliche Properties
image

Wiederholte URL oder wiederholtes ImageObject

Mindestens ein Bild des Restaurants

Zusätzliche Richtlinien für Bilder:

  • Jede Seite muss unabhängig davon, ob Markup eingebunden ist oder nicht, mindestens ein Bild enthalten. Google wählt für die Anzeige in den Suchergebnissen das beste Bild entsprechend dem Seitenverhältnis und der Auflösung aus.
  • Die Bild-URLs müssen crawlbar und indexierbar sein.
  • Bilder müssen den mit Markup ausgezeichneten Inhalt darstellen.
  • Bilder müssen in einem Dateiformat vorliegen, das von Google Bilder unterstützt wird.
  • Für optimale Ergebnisse sollten Sie mehrere hochauflösende Bilder einbinden, die bei Multiplikation von Höhe und Breite mindestens 50.000 Pixel umfassen. Empfohlen werden die Seitenverhältnisse 16:9, 4:3 und 1:1.

Beispiel:

"image": [
  "https://example.com/photos/1x1/photo.jpg",
  "https://example.com/photos/4x3/photo.jpg",
  "https://example.com/photos/16x9/photo.jpg"
]
name

Text

Der Name des Restaurants

Empfohlene Properties
address

PostalAddress

Der Standort des Unternehmens. Hier ist es sinnvoll, möglichst viele Properties anzugeben. Je mehr Properties du angibst, desto informativer ist das Ergebnis für die Nutzer. Beispiel:


"address": {
  "@type": "PostalAddress",
  "streetAddress": "148 W 51st St",
  "addressLocality": "New York",
  "addressRegion": "NY",
  "postalCode": "10019",
  "addressCountry": "US"
}
servesCuisine

servesCuisine

Die Art der Küche, die im Restaurant serviert wird

Fehlerbehebung

Falls du Probleme bei der Implementierung von strukturierten Daten hast, versuch es mit diesen Lösungsansätzen:

  • Möglicherweise sind deine strukturierten Daten fehlerhaft. Näheres dazu findest du in der Liste der Fehler bei strukturierten Daten.
  • Eine Fehlerbehebung für den Fall, dass Rich-Suchergebnisse fehlen oder die Gesamtzahl der Rich-Suchergebnisse zurückgeht, findest du hier.
  • Antworten auf allgemeine Fragen zum Crawlen und Indexieren erhältst du auf der Seite Häufig gestellte Fragen von Webmastern.
  • Wenn du eine Frage hast, kannst du sie bei der Webmaster-Online-Sprechstunde stellen.
  • Poste deine Fragen im Webmaster-Forum.