Home / Resources / Restaurant website checklist

Checklist

Restaurant website checklist

A restaurant website needs the same few things every time: a menu as a normal web page, correct hours and address in text, one page per location, and details that match your Google profile. Structured data is optional and must match what the page shows. A starter is at the end.

For the reasoning behind each item, read what a restaurant website must have and restaurant structured data in plain English.

1. The menu

2. Basic details in plain text

3. Pages

4. Consistency with your listings

5. Structured data (optional)

Structured data is extra code that describes a page to machines. Google's local business documentation (updated 2026-09-08) lists name and address as required, and lists menu, servesCuisine, openingHoursSpecification, telephone, priceRange, geo and url as recommended. Google says no special markup is needed for its AI features (see the SEO and AI-search checklist), so treat this as optional. Only mark up what is visible on the page.

Starter markup to copy

Paste it into the head or body of your location page, or give it to whoever manages your site. The values below are placeholders, not real details. Google's page says the hour format in its property table is hh:mm:ss while its examples use hh:mm, so check against the current page. For days that are closed all day, or open 24 hours, or hours that run past midnight, follow Google's documentation.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "name": "YOUR RESTAURANT NAME",
  "url": "https://www.example.com/",
  "menu": "https://www.example.com/menu/",
  "servesCuisine": "Vegan",
  "telephone": "+00-000-0000000",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "STREET AND NUMBER",
    "addressLocality": "CITY",
    "postalCode": "POSTCODE",
    "addressCountry": "COUNTRY CODE"
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "09:00",
      "closes": "17:00"
    }
  ]
}
</script>

Not sure where the markup goes in your website builder? Put it in the brief you give your designer: web designer brief.

Sources (accessed 2026-10-21):

Items not tied to a source are good practice, not guarantees. Allergen and claims rules differ by country; this is general information, not legal advice. Want a review of your site? See the free program.