Home Restaurant Schema Attributes
Restaurant Schema
Restaurant Schema
The Restaurant Schema organises restaurant identity, contact, location, opening hours, cuisine, menu, facilities and diner information into a consistent format, using Schema.org vocabulary where applicable.
2.1 Identity
| Name | Type | Schema.org | Description |
|---|---|---|---|
Identifierrestaurant.id | text | @id | The permanent unique identifier already assigned to the restaurant. JSON-LD states the same value as @id. The identifier is not calculated from the name, telephone, or address. |
Titlerestaurant.title | text | name | The name of the restaurant. |
Descriptionrestaurant.description | text | description | A text description of the restaurant. |
2.2 Incorporation details
| Name | Type | Schema.org | Description |
|---|---|---|---|
Company namerestaurant.company.name | text | legalName | The registered company name, when the business is registered at Companies House and states that name. A missing value stays unknown. This is not the trading name. JSON-LD uses legalName. |
Company numberrestaurant.company.number | text | additionalProperty | The company number, when the business is registered at Companies House and states that number. A missing value stays unknown. This is not a VAT number. When a number is stated, JSON-LD uses a PropertyValue named companyNumber. |
Incorporation daterestaurant.company.incorporated_on | date | foundingDate | The incorporation date, when the business is registered at Companies House and states that date. A missing date stays unknown. JSON-LD uses foundingDate for that stated date. |
VAT numberrestaurant.company.vat | text | vatID | The VAT number, when the business is registered for VAT and states that number. A missing value stays unknown. This is not the company number. JSON-LD uses vatID. |
2.3 Contact
| Name | Type | Schema.org | Description |
|---|---|---|---|
Phonerestaurant.contact.phone | text | telephone | The telephone number of the restaurant. |
Urlrestaurant.contact.url | url | url | The website address of the restaurant. |
Emailrestaurant.contact.email | An email address for the restaurant, when one is stated. Leave it empty when none is known. |
2.4 Location and coordinates
| Name | Type | Schema.org | Description |
|---|---|---|---|
Addressrestaurant.location.address | text | address | The postal address of the restaurant. The original address line stays intact. |
Latituderestaurant.location.latitude | number | latitude | The WGS84 latitude of the restaurant. |
Longituderestaurant.location.longitude | number | longitude | The WGS84 longitude of the restaurant. A coordinate pair is required before JSON-LD includes GeoCoordinates. |
Postcoderestaurant.location.postcode | text | postalCode | The UK postcode when one postcode is present in the postal address. |
Streetrestaurant.location.street | text | streetAddress | The street line when the postal address separates it from the town. A borough is not the street. |
Localityrestaurant.location.locality | text | addressLocality | The town or city when the postal address states it as its own part. A borough is not the locality. |
Regionrestaurant.location.region | text | addressRegion | The county or region when the postal address states it as its own part. A media-market code is not a region and is left empty. |
Countryrestaurant.location.country | text | addressCountry | The country when the address states it. A two-letter country code is recorded as the country name. Leave it empty when the country is not stated. |
2.5 Opening hours
| Name | Type | Schema.org | Description |
|---|---|---|---|
Opening hoursrestaurant.hours.opening | object | openingHoursSpecification | The regular opening hours when a weekly timetable states each open day and its opening and closing times. A current open or closed status is not opening hours. Busy periods are not opening hours. A day with no stated times is left empty. |
2.6 Images
| Name | Type | Schema.org | Description |
|---|---|---|---|
Logorestaurant.image.logo | url | logo | The address of the restaurant logo, when one is stated. A missing address is omitted. |
Main imagerestaurant.image.main | url | image | The address of the main image of the restaurant, when one is stated. A count of photographs is not an image. A missing address is omitted. |
2.7 Reputation
| Name | Type | Schema.org | Description |
|---|---|---|---|
Review ratingrestaurant.review.rating | number | ratingValue | A review score from one provider. It is not a qualification or an award. A scale is recorded only when that provider states it. The score stays in the native record and is not copied into the core business JSON-LD. |
Review countrestaurant.review.count | integer | reviewCount | The number of reviews accompanying a review rating from the same provider. It is not calculated from another provider. |
Rating countrestaurant.review.rating_count | integer | ratingCount | The number of ratings when the provider states it separately from the number of reviews. It is not calculated from the distribution. |
Rating distributionrestaurant.review.distribution | object | — | Numbers recorded against scores 1 to 5. They are not the review count. Schema.org has no single property for the five counts, so this stays unmapped. |
Rating scalerestaurant.review.scale | object | — | The lowest and highest points of a review scale, when the scale is stated. Schema.org records those points as separate properties, so this attribute is not given one of them. |
Review providerrestaurant.review.provider | text | — | The organisation that published these figures. Figures from another provider are a separate observation and are not averaged together. |
Observation daterestaurant.review.observed_on | date | — | The date on which these figures were observed, when that date is stated. |
2.8 Price
| Name | Type | Schema.org | Description |
|---|---|---|---|
Price levelrestaurant.price_range | text | priceRange | A price indication using £, ££, £££, or ££££. Leave it empty when none is stated. This is not a dish price. |
2.9 Cuisine
| Name | Type | Schema.org | Description |
|---|---|---|---|
Cuisine servedrestaurant.cuisine | list | servesCuisine | The cuisines the restaurant serves. Use only these names: British, Italian, Greek, Spanish, Turkish, Indian, Thai, Mexican, Japanese, French, American, Mediterranean, Seafood, Steakhouse, European, Middle Eastern, Chinese, Vegetarian. Any other name is omitted. A named dish is not a cuisine. A missing value stays unknown. JSON-LD uses servesCuisine. |
2.10 Menu
| Name | Type | Schema.org | Description |
|---|---|---|---|
Dessertsrestaurant.service.desserts | boolean | Service | Whether the restaurant offers desserts, including cakes and ice cream. Afternoon tea is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Private event hirerestaurant.service.private_hire | boolean | Service | Whether the restaurant offers private hire, including a wedding, canapés, or a buffet. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Winerestaurant.service.wine | boolean | Service | Whether the restaurant offers wine, including prosecco, sangria, or a wine pairing. Cocktails are a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Coffee and tearestaurant.service.coffee | boolean | Service | Whether the restaurant offers coffee or tea, including smoothies and milkshakes. Afternoon tea is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Sunday roastrestaurant.service.roast | boolean | Service | Whether the restaurant offers a Sunday roast, including Sunday lunch, a carvery, or Yorkshire pudding. Dinner is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Breakfastrestaurant.service.breakfast | boolean | Service | Whether the restaurant offers breakfast, including brunch, pancakes, or French toast. A bottomless brunch is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Cocktailsrestaurant.service.cocktails | boolean | Service | Whether the restaurant offers cocktails. Wine and a bar on site are separate. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Steak and grillrestaurant.service.steak | boolean | Service | Whether the restaurant offers steak or grilled meat, including a mixed grill or ribs. Burgers and a Sunday roast are separate. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Seafoodrestaurant.service.seafood | boolean | Service | Whether the restaurant offers seafood. Fish and chips are a separate service. Seafood as a cuisine name is separate. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Lunch menurestaurant.service.lunch | boolean | Service | Whether the restaurant offers a lunch menu, including an early sitting or a reduced-price lunch. Breakfast and dinner are separate. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Sandwiches and light lunchesrestaurant.service.sandwiches | boolean | Service | Whether the restaurant offers sandwiches or light lunches, including toasties, panini, wraps, jacket potatoes, soup, or salads. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Tapas and small platesrestaurant.service.tapas | boolean | Service | Whether the restaurant offers tapas or small plates, including a platter or mezze. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Burgersrestaurant.service.burgers | boolean | Service | Whether the restaurant serves burgers. Steak and a grill are separate. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Fish and chipsrestaurant.service.fish_and_chips | boolean | Service | Whether the restaurant offers fish and chips. A wider seafood menu is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Pizza and pastarestaurant.service.pizza_pasta | boolean | Service | Whether the restaurant offers pizza or pasta, including lasagne, gnocchi, or risotto. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Real ale and local beerrestaurant.service.ale | boolean | Service | Whether the restaurant offers real ale or local beer. Wine and cocktails are separate. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Tasting or set menurestaurant.service.tasting_menu | boolean | Service | Whether the restaurant offers a tasting menu, a set menu, or a supper club. Dinner is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Dinnerrestaurant.service.dinner | boolean | Service | Whether the restaurant offers dinner, including an à la carte menu. Lunch is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Afternoon tearestaurant.service.afternoon_tea | boolean | Service | Whether the restaurant offers afternoon tea or cream tea. Coffee and tea as drinks are a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Bottomless brunchrestaurant.service.brunch | boolean | Service | Whether the restaurant offers a bottomless brunch. Breakfast is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
Christmas menurestaurant.service.christmas | boolean | Service | Whether the restaurant offers a Christmas menu. A Sunday roast is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing. |
2.11 Amenities
| Name | Type | Schema.org | Description |
|---|---|---|---|
Good for childrenrestaurant.amenity.children | boolean | amenityFeature | Whether the restaurant suits children, including a children's menu. A play area is separate. A missing value is unknown, not absent. |
Outdoor seatingrestaurant.amenity.outdoor_seating | boolean | amenityFeature | Whether the restaurant has outdoor seating, including covered seating or a garden. Indoor seating is not recorded separately. A missing value is unknown, not absent. |
Table servicerestaurant.amenity.table_service | boolean | amenityFeature | Whether the restaurant serves guests at the table. A missing value is unknown, not absent. |
Bar on siterestaurant.amenity.bar | boolean | amenityFeature | Whether the restaurant has a bar. Cocktails are a separate service. A missing value is unknown, not absent. |
Dog friendlyrestaurant.amenity.dog_friendly | boolean | amenityFeature | Whether the restaurant welcomes dogs. A missing value is unknown, not absent. |
Free parkingrestaurant.amenity.parking | boolean | amenityFeature | Whether the restaurant has free parking. Limited parking stays with this amenity. A missing value is unknown, not absent. |
Step-free / wheelchair accessrestaurant.amenity.wheelchair_access | boolean | amenityFeature | Whether the restaurant has step-free or wheelchair access. A missing value is unknown, not absent. |
Live musicrestaurant.amenity.live_music | boolean | amenityFeature | Whether the restaurant has live music. A missing value is unknown, not absent. |
Customer toiletsrestaurant.amenity.toilets | boolean | amenityFeature | Whether the restaurant has customer toilets. A missing value is unknown, not absent. |
Wi-Firestaurant.amenity.wifi | boolean | amenityFeature | Whether the restaurant offers Wi-Fi. A missing value is unknown, not absent. |
Children's play arearestaurant.amenity.play_area | boolean | amenityFeature | Whether the restaurant has a children's play area. A children's menu is separate. A missing value is unknown, not absent. |
EV chargingrestaurant.amenity.ev_charging | boolean | amenityFeature | Whether the restaurant has EV charging. Parking is separate. A missing value is unknown, not absent. |
2.12 Restaurant details
| Name | Type | Schema.org | Description |
|---|---|---|---|
Accepts reservationsrestaurant.details.reservations | boolean | acceptsReservations | Whether the restaurant accepts reservations. Walk-in visits stay with this field. This is not a reservation record and not a price. A missing value stays unknown. JSON-LD uses acceptsReservations only when the value is stated as yes or no. |
Vegetarian optionsrestaurant.details.vegetarian | boolean | additionalProperty | Whether the restaurant offers vegetarian options. Vegan options and gluten-free options are separate. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named vegetarianOptions. |
Takeaway availablerestaurant.details.takeaway | boolean | additionalProperty | Whether the restaurant offers takeaway or delivery, including an order placed through a food app. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named takeaway. |
Allergy-friendlyrestaurant.details.allergy | boolean | additionalProperty | Whether the restaurant states that it can cater for allergies. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named allergyFriendly. |
Vegan optionsrestaurant.details.vegan | boolean | additionalProperty | Whether the restaurant offers vegan options. Vegetarian options are separate. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named veganOptions. |
Gluten-free optionsrestaurant.details.gluten_free | boolean | additionalProperty | Whether the restaurant offers gluten-free options. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named glutenFreeOptions. |
Seasonal or regularly changing menurestaurant.details.seasonal | boolean | additionalProperty | Whether the restaurant changes its menu with the season, including specials. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named seasonalMenu. |
Locally sourced producerestaurant.details.local | boolean | additionalProperty | Whether the restaurant states that it uses local or sustainably produced food. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named locallySourced. |
Online bookingrestaurant.details.online_booking | boolean | additionalProperty | Whether the restaurant offers online booking, including pre-ordering. Reservations are a separate field. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named onlineBooking. |
Overnight accommodation on siterestaurant.details.rooms | boolean | additionalProperty | Whether the restaurant has overnight accommodation on site, including glamping. This is not a hotel listing. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named overnightStays. |
Deposits takenrestaurant.details.deposit | boolean | additionalProperty | Whether the restaurant takes a deposit. This is not a price and not a reservation record. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named deposit. |
