Local Business

When users search for businesses on Google Search or Maps, Search results may display a prominent Knowledge Graph card with details about a business that matched the query. When users query for a type of business, such as a restaurant, they may see a carousel of listings hosted by restaurant listing providers.

Examples

You can try out the following examples using the Structured Data Testing Tool.

Local Business Listing

Category searches like “Spanish restaurants” or entity searches like “Cascal” (A Steak house)

Place Action

Location-based queries such as "nearby barbers" or "hair salons within 15 miles"

Business hours

The following examples demonstrate how to mark up different types of business hours.

Standard hours
Standard Hours Excluding the validFrom and validThrough properties signify that the hours are valid year-round.This example defines a business that is open weekdays from 9am to 9pm, with weekend hours from 10am until 11pm.
"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"
  }
]
Late night hours
For hours past midnight, define opening and closing hours using a single OpeningHoursSpecification property. This example defines hours from Saturday at 6pm until Sunday at 3am.
"openingHoursSpecification": {
  "@type": "OpeningHoursSpecification",
  "dayOfWeek": "Saturday",
  "opens": "18:00",
  "closes": "03:00"
}
All-day hours
To show a business as open 24 hours a day, set the open property to "00:00" and the closes property to "23:59".To show a business is closed all day, set both opens and closes properties to "00:00". This example shows a business open all day Saturday and closed all day Sunday.
"openingHoursSpecification": [
  {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": "Saturday",
    "opens": "00:00",
    "closes": "23:59"
  },
  {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": "Sunday",
    "opens": "00:00",
    "closes": "00:00"
  }
]
Seasonal hours
Use both the validFrom and validThrough properties to define seasonal hours. This example shows a business closed for winter holidays.
"openingHoursSpecification": {
  "@type": "OpeningHoursSpecification",
  "opens": "00:00",
  "closes": "00:00",
  "validFrom": "2015-12-23",
  "validThrough": "2016-01-05"
}

Multiple departments

For a business with sub-departments, each with its own distinct properties such as opening hours or telephone numbers, you can mark up the department property with an element for each sub-department. Define properties that differ from the main store individually in each respective department element.

Follow these guidelines for department names in your markup:

  • Include the store name with the department name in the following format: {store name} {department name}.

    For example, gMart and gMart Pharmacy.

  • Use a department name by itself when it is explicitly branded. For example: Best Buy and Geek Squad.

Restaurant lists

When a user searches for best dinner in NYC or provides similar list-seeking queries, your marked up restaurant content can appear as a host-specific carousel in Search Results. To enable host-specific lists for restaurants, build your restaurant list pages in AMP HTML with ItemList markup and mark up individual restaurant pages. For implementation details, see the carousels documentation.

Order & reservation scenarios

Business markup can specify multiple Action types and qualify the actions with other parameters. Depending upon your offering, you might mark up your content with more than a single combination of actions and qualifying parameters.

Scenarios
OrderAction
Supported parameters
  • potentialAction.@type
  • potentialAction.target.inLanguage
  • potentialAction.target.actionPlatform
ReserveAction
Supported parameters
  • potentialAction.@type
  • potentialAction.target.inLanguage
  • potentialAction.target.actionPlatform
  • potentialAction.result.provider

The following examples show markup for a single action target for different businesses.

Order food
{
  "@context": "http://schema.org",
  "@type": "Restaurant",
  "@id": "http://davescafe.example.com/",
  "name": "Dave's Cafe",
  "image": [
    "https://example.com/photos/1x1/photo.jpg",
    "https://example.com/photos/4x3/photo.jpg",
    "https://example.com/photos/16x9/photo.jpg"
   ],
  "address" :{
    "@type": "PostalAddress",
    "streetAddress": "123 William St",
    "addressLocality": "New York",
    "addressRegion": "NY",
    "postalCode": "10038",
    "addressCountry": "US"
  },
  "geo":{
    "@type": "GeoCoordinates",
    "latitude": 40.709312,
    "longitude": -74.007136
  },
  "telephone": "+19172423826",
  "potentialAction": {
    "@type": "OrderAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://www.example.com/daves-cafe-new-york",
      "inLanguage": "en-US",
      "actionPlatform": [
        "http://schema.org/DesktopWebPlatform",
        "http://schema.org/IOSPlatform",
        "http://schema.org/AndroidPlatform"
      ]
    },
    "deliveryMethod": [
      "http://purl.org/goodrelations/v1#DeliveryModePickUp",
      "http://purl.org/goodrelations/v1#DeliveryModeOwnFleet"
    ],
    "priceSpecification": {
      "@type": "DeliveryChargeSpecification",
      "appliesToDeliveryMethod": "http://purl.org/goodrelations/v1#DeliveryModeOwnFleet",
      "priceCurrency": "USD",
      "price": 0.0,
      "eligibleTransactionVolume": {
        "@type": "PriceSpecification",
        "priceCurrency": "USD",
        "price": 12.00
      }
    }
  }
}
Book a class
{
  "@context": "http://schema.org",
  "@type": "HealthClub",
  "@id": "http://daveshouseofyoga.example.com/",
  "name": "Dave's House of Yoga",
  "image": [
    "https://example.com/photos/1x1/photo.jpg",
    "https://example.com/photos/4x3/photo.jpg",
    "https://example.com/photos/16x9/photo.jpg"
   ],
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "3986 Rivermark Pkwy",
    "addressLocality": "Santa Clara",
    "addressRegion": "CA",
    "postalCode": "95054",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 37.3952149,
    "longitude": -121.9474023
  },
  "telephone": "+14085551135",
  "potentialAction": {
    "@type": "ReserveAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://www.example.com/reserve?merchantId=20373",
      "inLanguage": "en-US",
      "actionPlatform": [
        "http://schema.org/DesktopWebPlatform",
        "http://schema.org/IOSPlatform",
        "http://schema.org/AndroidPlatform"
      ]
    },
    "result": {
      "@type": "Reservation",
      "name": "Book a class"
    }
  }
}
Reserve a table
{
  "@context": "http://schema.org",
  "@type": "Restaurant",
  "@id": "http://davescafe.example.com/",
  "name": "Dave's Cafe",
  "image": [
    "https://example.com/photos/1x1/photo.jpg",
    "https://example.com/photos/4x3/photo.jpg",
    "https://example.com/photos/16x9/photo.jpg"
   ],
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 William St",
    "addressLocality": "New York",
    "addressRegion": "NY",
    "postalCode": "10038",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 40.709312,
    "longitude": -74.007136
  },
  "telephone": "+19172423826",
  "potentialAction": {
    "@type": "ReserveAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://www.example.com/reserve?merchantId=20373",
      "inLanguage": "en-US",
      "actionPlatform": [
        "http://schema.org/DesktopWebPlatform",
        "http://schema.org/IOSPlatform",
        "http://schema.org/AndroidPlatform"
      ]
    },
    "result": {
      "@type": "FoodEstablishmentReservation",
      "name": "Reserve table"
    }
  }
}

Many other combinations of actions and parameters are possible. When developing more complex business actions, be sure to use only a single value in either potentialAction.target.url OR potentialAction.target.urlTemplate.

The following illustrates some scenarios for using OrderAction and ReserveAction types:

  • One OrderAction and one ReserveAction: A restaurant that accepts delivery orders and table reservations.
  • One OrderAction for each provider: A restaurant that accepts delivery orders from two different providers.
  • One ReserveAction for the following:
    • A yoga studio that offers different classes through a single provider that includes all classes.
    • A hair salon that has multiple stylists, each with a unique menu of services that includes all stylists.

Guidelines

Follow these guidelines for Action markup for businesses:

  • Provide only a single value in either potentialAction.target.url OR potentialAction.target.urlTemplate.
  • The target web page or app must let the user complete the action online. For example, a web page that displays the menu of a restaurant is not a valid action page if the user must make a telephone call to place an order or reserve a table.

Structured data type definitions

The following tables list properties and usage for local business and business action types, based on the full definitions at schema.org/LocalBusiness.

You must include the required properties for your content to be eligible for display as a rich result. You can also include the recommended properties to add more information about your content, which could provide a better user experience.

LocalBusiness

The full definition of LocalBusiness is available at schema.org/LocalBusiness. Define each local business location as a LocalBusiness type. Use the most specific LocalBusiness sub-type possible; for example, Restaurant, DaySpa, HealthClub, and so on.

Required properties
@id

URL

Globally unique ID of the specific business location in the form of a URL. The ID should be stable and unchanging over time. Google Search treats the URL as an opaque string and it does not have to be a working link. If the business has multiple locations, make sure the @id is unique for each location.

address

PostalAddress

Address of the specific business location.

address.addressCountry

Text

The 2-letter ISO 3166-1 alpha-2 country code.

address.addressLocality

Text

City

address.addressRegion

Text

State or province, if applicable.

address.postalCode

Text

Postal or zip code.

address.streetAddress

Text

Street number, street name, and unit number (if applicable).

name

Text

Business name.

Recommended properties
acceptsReservations

Boolean

For food establishments, True or False. If True, the best practice is to also define potentialAction.

department

LocalBusiness

A nested item for a single sub-department you can define using any of the properties in this table.

geo

GeoCoordinates

Geographic coordinates of the business.

geo.latitude

Number

The latitude of the business location. The precision should be at least 5 decimal places.

geo.longitude

Number

The longitude of the business location. The precision should be at least 5 decimal places.

menu

URL

For food establishments, the fully-qualified URL of the menu.

openingHoursSpecification

Array or single object (both supported) of OpeningHoursSpecification

Hours during which the business location is open.

openingHoursSpecification.closes

Time

The time the business location closes, in hh:mm:ss format.

openingHoursSpecification.dayOfWeek

Text

One or more of the following:

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

Time

The time the business location opens, in hh:mm:ss format.

openingHoursSpecification.validFrom

Date

The start date of a seasonal business closure, in YYYY-MM-DD format.

openingHoursSpecification.validThrough

Date

The end date of a seasonal business closure, in YYYY-MM-DD format.

potentialAction

ReserveAction or OrderAction

Read more about specifying business actions.

telephone

Text

A business phone number meant to be the primary contact method for customers. Be sure to include the country code and area code in the phone number.

url

URL

The fully-qualified URL of the specific business location. Unlike the @id property, this URL property should be a working link.

Restaurant properties

To include a restaurant in a host-specific list, include the following properties:

Required properties
image

Repeated field of URL or ImageObject

An image of the business.

Additional image guidelines:

  • Every page must contain at least one image (whether or not you include markup). Google will pick the best image to display in Search results based on the aspect ratio and resolution.
  • Image URLs must be crawlable and indexable.
  • Images must represent the marked up content.
  • Images must be in .jpg, .png, or. gif format.
  • For best results, provide multiple high-resolution images (minimum of 50K pixels when multiplying width and height) with the following aspect ratios: 16x9, 4x3, and 1x1.

For example:

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

Text

Business name.

servesCuisine

servesCuisine

If marking up a restaurant, provide the type of cuisine they serve.

Business action properties

Structured data in Google Search supports two types of business actions:

  • OrderAction—represents an order for products or services to be delivered.
  • ReserveAction—represents a reservation for a physical object such as a restaurant table, automobile, or hotel room for a specific date and time.

The following two tables list the properties for each action type.

OrderAction properties

Recommended properties
deliveryMethod

DeliveryMethod

Method by which the order is delivered to the user. Use one of the following values:

  • http://purl.org/goodrelations/v1#DeliveryModePickUp
  • http://purl.org/goodrelations/v1#DeliveryModeOwnFleet
priceSpecification

DeliveryChargeSpecification

Cost of delivery service if applicable.

priceSpecification.appliesToDeliveryMethod

DeliveryMethod

This property applies only to the delivery method: http://purl.org/goodrelations/v1#DeliveryModeOwnFleet

priceSpecification.price

Number

Total delivery cost as a numerical only value. Use the priceCurrency property to denote the type of currency instead of currency symbols.

priceSpecification.priceCurrency

Text

The 3-letter ISO 4217 currency code.

priceSpecification.eligibleTransaction.price

Number

Numeric only minimum order amount. Use the eligibleTransaction.priceCurrency property to specify the type of currency instead of including currency symbols.

priceSpecification.eligibleTransaction.priceCurrency

Text

The 3-letter ISO 4217 currency code.

priceSpecification.eligibleTransactionVolume

PriceSpecification

The minimum order amount to be eligible for the delivery service.

ReserveAction properties

Required properties
result

Reservation

The details of the reservation. Use the most granular sub-type of Reservation possible; for example, FoodEstablishmentReservation to reserve a restaurant table.

result.name

Text

The name of the object being reserved; for example, "Table at La Boheme."

Properties
result.provider

Person

Details of the individual assisting the customer.

result.provider.name

Text

Name of the provider.

Şunun hakkında geri bildirim gönderin...