The Direct Index
Guide

Structured data for a restaurant website, copy and paste

Structured data is a short block of JSON in the page that states the facts an assistant needs: who you are, where, when you are open, what you serve, where the menu is, whether you take bookings. It is the single cheapest fix on this site and the one every assistant reads first.

The block

Replace the values, keep the keys. One block on the homepage is enough.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "name": "Your Business",
  "url": "https://yourbusiness.com/",
  "telephone": "+351 21 000 0000",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Rua Exemplo 1",
    "addressLocality": "Lisbon",
    "postalCode": "1100-000",
    "addressCountry": "PT"
  },
  "openingHoursSpecification": [
    { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Tuesday","Wednesday","Thursday","Friday","Saturday"], "opens": "12:00", "closes": "23:00" },
    { "@type": "OpeningHoursSpecification", "dayOfWeek": "Sunday", "opens": "12:00", "closes": "16:00" }
  ],
  "servesCuisine": "Portuguese",
  "priceRange": "€€",
  "hasMenu": "https://yourbusiness.com/menu",
  "acceptsReservations": "https://yourbusiness.com/book"
}
</script>

Not a restaurant? Change the type: HairSalon, Dentist, Store, TouristAttraction, or LocalBusiness when nothing fits, and drop servesCuisine and hasMenu.

Where to paste it

Where your site is builtWhere the setting lives, October 2026
WordPressYoast and Rank Math generate a LocalBusiness block from their Local SEO settings; or paste the block into the header with a code snippets plugin, or the theme's header scripts field.
WixSEO, then Structured data markup on the homepage settings, add a custom markup; or Wix's own Restaurant preset, then add the missing fields.
SquarespaceSettings, Developer tools, Code injection, Header. Squarespace adds a basic block of its own; yours can sit next to it.
ShopifyOnline Store, Themes, Edit code, theme.liquid, before the closing head tag.
WebflowSite settings, Custom code, Head code; or on the homepage's page settings.
GoDaddy, Jimdo, Duda, WeeblyLook for header code or custom code in the site settings; where there is none, the host's support can add it.

Dashboards move things around. If a name here does not match, search the dashboard for the word in bold.

Check what you wrote

Paste your page address into Google's Rich Results Test or schema.org's validator, then rescan here: the report lists address, phone and hours as found or missing.

Check it

Already have a block and not sure it is complete? Run the free scanner on your address: the report names each crawler that was refused, what it found for the menu, the structured data and the booking path, and what to fix first. Rescans are free.

More guides

Updated 2026-10-14. Dashboard names are as of that date.