Restaurant website: menu and online orders

What a restaurant or pizzeria website needs: a text menu, 14 allergens for online orders, your own orders next to the portals and a Google Business Profile.

Illustration: a smartphone with a pizzeria menu, a pizza box with allergen symbols, a delivery scooter and a location pin
AI-generated illustration

When someone looks for a pizzeria or a restaurant nearby, they usually have a phone in hand and three questions: what do you serve, how much does it cost, and will you deliver to me today. If the menu is only a photo on Facebook and the only way to order is through a portal, some customers drop out along the way, and from the rest you pay a commission.

In this guide I show what a restaurant website should have: a menu that reads well on a phone, allergens given in line with EU rules, your own orders next to the portals, and a completed Google Business Profile before 11 November (Independence Day) and the holidays. I describe the situation as of 1 November 2026.

What a customer must see in 10 seconds

On the first phone screen, without scrolling, there should be:

  • an “Order” button (online or by phone) and a phone number to tap,
  • today’s opening hours, and holiday hours on holidays,
  • the address and delivery zone: towns or neighborhoods, the minimum order amount and the delivery cost,
  • a link to the menu and, if you take reservations, a “Book a table” button.

Further down you can put photos of dishes, the dining room, guest reviews and the story of the place. What lets people order should be at the top, though. A common mistake is a large full-screen photo of the interior with the phone number tucked away in the footer.

A photo of the menu or a PDF file is the quickest solution, but on a phone you have to zoom in, pan and often download it. Text inside an image can’t be read by the screen reader of a blind person, translated by a tourist’s browser, or searched. A menu entered on the page as plain text has only advantages:

  • it reads comfortably on any phone, without zooming,
  • search engines and AI assistants see dish names and prices the same way as the rest of the page,
  • changing a price takes a minute in the panel and doesn’t require a new graphic design and a new file.

For each item give the name, a short list of ingredients, the size or weight, the price and the allergen numbers. In a pizzeria, a table with sizes works well (the prices below are only an example of the layout):

Pizza Ingredients 32 cm 42 cm Allergens
Margherita tomato sauce, mozzarella, basil PLN 29 PLN 39 1, 7
Capricciosa tomato sauce, mozzarella, ham, mushrooms PLN 35 PLN 46 1, 7

You can keep the PDF as an extra for printing. Just make sure the menu on the website and in your Google Business Profile is always up to date. An outdated price in Google is a simple way to get an annoyed customer at pickup.

Allergens: what the law says and how to show them

EU Regulation No 1169/2011 lists, in Annex II, 14 substances and products that cause allergies or intolerance reactions. In the menu, the simplest way is to mark them with numbers and a legend:

  1. cereals containing gluten,
  2. crustaceans,
  3. eggs,
  4. fish,
  5. peanuts,
  6. soy,
  7. milk (including lactose),
  8. tree nuts,
  9. celery,
  10. mustard,
  11. sesame seeds,
  12. sulfur dioxide and sulfites (above 10 mg/kg or 10 mg/l),
  13. lupin,
  14. mollusks.

Dishes in a restaurant are non-prepacked food, and for that, Art. 44 of the regulation requires exactly this: allergen information. When you sell at a distance, that is, through a website, an app or by phone, Art. 14 says that this information must be available before the purchase is made and at the moment of delivery. The European Commission describes this directly on its page about distance selling of food.

In practice it looks like this:

  • on the website: allergen numbers next to every dish and a legend under the menu,
  • in the cart: a link to the legend before the order button,
  • at delivery: a list of the allergens in the ordered dishes on the order printout or a sticker, or a flyer with the menu and the legend in the bag,
  • on the portals: allergens filled in in the restaurant panel. The portal displays the data it received from you, and Art. 8 of the regulation names as responsible the business under whose name the food is sold.

Sanitary-epidemiological stations (stacje sanitarno-epidemiologiczne, the local offices of Poland’s State Sanitary Inspectorate) stress that allergen information should not depend on a waiter’s memory. A notice from the county station (PSSE) in Strzelce Opolskie lists a menu and a monitor, among others, as possible forms. So prepare the labels in the venue, on the website and on the portals from one shared list of ingredients from the kitchen.

This is not legal advice. I describe the regulations as of 1 November 2026. How allergens are communicated in your venue is best confirmed with your county sanitary-epidemiological station.

Online orders: portals or your own system

Pyszne.pl, Glovo and Uber Eats give you something that a new website can’t offer at the start: customers who don’t know you yet, and often couriers. You pay a commission for it. The rates depend on the contract, and I haven’t found current official price lists for restaurants, so I don’t give any figures. Calculate your own: take the settlement from the last month and divide the sum of all fees paid to the portal by the value of the orders. Multiply the result by 100 and you get the percentage you hand over.

Portal Your own orders on the website
New customers yes, the portal brings them in mainly regular customers and traffic from Google
Cost a commission on every order the system (one-off or a subscription) and the payment operator’s commission
Customer data mostly with the portal with you
Delivery often the portal’s couriers your drivers or pickup
Menu and prices according to the portal’s rules you change them right away, with no middleman

A reasonable plan for most venues: stay on the portals and invite regular customers to your own channel. You can add a flyer with a QR code for ordering on your website, or with your phone number, to the order bag. Before you do, check your contract with the portal for any clauses about such materials and about prices on your website.

Your own online orders are a contract concluded at a distance, so the ustawa o prawach konsumenta (Poland’s Consumer Rights Act) applies. Three things that are easy to forget:

  • the order button must be labeled “order with an obligation to pay” or another unambiguous wording (Art. 17(3)). Without it, the contract is not concluded,
  • order terms and conditions with the company details, delivery costs, payment methods and the complaints procedure,
  • the right of withdrawal does not apply to goods that spoil quickly (Art. 38(1)(4)), but you are still liable for an order that does not conform to the contract.

I connect payments by BLIK, card and quick bank transfer as part of the Online payments service: from PLN 490 net on a ready-made CMS and from PLN 1,490 net on a website with custom code.

Google Business Profile: menu, orders and reservations

Some customers don’t visit the website at all: they call or order straight from Google results and Maps. That is why you should complete the profile as carefully as the website.

Menu. Google has a menu editor for food businesses: in the profile panel choose Edit menu and add sections and items with prices. Separately, in Edit profile → Business information → Contact → Menu link, paste the address of the menu on your website. According to Google’s help page on the menu editor, publishing changes in search and on Maps can take 24–48 hours.

Orders. In the Food ordering section you can add a link to orders on your own website and set it as preferred (Set as preferred option). You can also ask for the removal of the link of a provider you no longer work with: according to Google’s help page on food ordering, the provider has 5 business days to respond. Google keeps developing these settings (at the end of October 2026 new options for provider links appeared), so the button names may differ slightly.

Reservations. In the profile click Reservation, then Add link and paste the address of your table reservation system. You can have up to 10 links in one category. I implement a ready-made reservation system with a calendar and confirmations from PLN 990 net (Booking systems), and I complete and optimize the whole profile in the Google Business Profile service.

Holiday hours

Enter the changed hours in Edit profile → Hours → Special hours. Google itself suggests holiday dates (the Check button) and recommends confirming hours on public holidays, even if they don’t change (Google help on hours).

The nearest dates are 11 November (a Wednesday), Christmas Eve (24 December, a day off work since 2025), both days of Christmas, New Year’s Eve, New Year’s Day and 6 January (Epiphany). Set the same hours on your website and in the portals’ panels. Otherwise a portal may show your venue as open on a day when the kitchen isn’t working.

Restaurant structured data: what to add and what not to expect

Structured data is a short piece of JSON-LD code that describes the venue in a form search engines understand. In the Google documentation for local businesses only the name and address are required, and for food establishments the recommended properties include the menu address (menu), the type of cuisine (servesCuisine), the price range (priceRange) and the opening hours. An example for a pizzeria:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "name": "Pizzeria Przykładowa",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "ul. Przykładowa 1",
    "addressLocality": "Giżycko",
    "postalCode": "11-500",
    "addressCountry": "PL"
  },
  "telephone": "+48 600 000 000",
  "url": "https://www.example.pl/",
  "menu": "https://www.example.pl/menu",
  "servesCuisine": ["Pizza", "Kuchnia włoska"],
  "priceRange": "$$",
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
    "opens": "12:00",
    "closes": "22:00"
  }]
}
</script>

This code doesn’t guarantee any special appearance in search results. It helps Google understand what the venue is and where the menu is, but the data must match what is visible on the website and in the Google Business Profile. I write more about what schema gives a local business in 2026 in the guide on structured data for a local business.

A checklist for one evening

  1. The phone number, the “Order” button and today’s hours are visible on a phone without scrolling.
  2. The menu is text on the page, with prices and sizes.
  3. Every dish has allergen numbers, and the legend of the 14 allergens is under the menu and in the cart.
  4. At delivery the customer gets the allergen information for the ordered dishes.
  5. The order button is labeled “order with an obligation to pay” or an equivalent, and the terms and conditions are linked.
  6. The Google Business Profile has the menu, the menu link, the preferred orders link and the reservation link.
  7. The hours for 11 November and the holidays are set in Google, on the website and on the portals.
  8. The structured data matches the address, phone number and hours on the website.

Summary

A good restaurant website tells people in a few seconds what you serve, how much it costs and how to order, and a menu with allergens and an up-to-date Google Business Profile work toward that every day. You can check your current website for free in the Check your website tool: after about 30 seconds you will see, among other things, its speed on a phone and its SEO errors. If you want me to build a website with a menu, allergens and orders, see the Turnkey business website from PLN 4,900 net. New customers get 20% off their first project.

Frequently asked questions

Related services

Have a similar project?

Describe what you need and I’ll send a quote within 24 hours. New clients get 20% off their first project.

Get a quoteBook a call (20 min)

Read more