Skip to content
Law, privacy & accessibility

Restaurant website: menu, allergens, ordering

The menu as a page instead of a PDF: declaring allergens under Annex II, stating total prices correctly and building an ordering path that holds up.

15 min read GastronomieOnlineshopRecht

In short and in plain language

This article is for restaurants. It is about the menu on your website.

If the menu is only a file, it is hard to read on a phone. A menu as its own page is better. It is also easier to keep up to date.

The article explains how to show prices, notes and allergens on the menu. Allergens are things that some guests cannot eat.

It also explains the path from the menu to an order.

We build your menu as its own page. If you wish, we add ordering for pickup or delivery too.

Among hospitality businesses that sell electronically, 99.05 percent take their orders through a website or an app; that is what Eurostat reports for 2024. In the same year, accommodation and food service activities recorded 20.4 percent of turnover from web sales, the highest share of all sectors covered (Eurostat). The menu is therefore no longer a card next to the door. It is the most-read content of the entire site: read before the visit, before the reservation, before collection and before every order. On many restaurant websites it still sits there as a PDF file — typeset once, exported once, uploaded and then left untouched for two years. On a phone it is a document to pinch and zoom, for search engines an attachment without structure, for a screen reader a wall of characters, and for the kitchen a format that has to be typeset again with every change to a recipe. This article shows how the menu becomes a page that can actually be maintained: with prices, notices and allergens in the right place, with a clean path to collection or delivery, and with the information that has to be available before anyone presses the order button.

Key points at a glance

  • Annex II of Regulation (EU) No 1169/2011 lists 14 substance groups that must be declared, from cereals containing gluten to molluscs. The list ends with entry number 14, molluscs and products thereof.
  • In distance selling, mandatory food information has to be available before the purchase contract is concluded and has to appear on the material supporting the distance selling (Article 14 of Regulation (EU) No 1169/2011). A file that only shows up after the click does not meet that requirement.
  • For food sold loose, the German food information implementing regulation allows several routes, including the menu itself. What matters is the moment: the guest has to be able to take note before the purchase is concluded and before the food is handed over (Section 4 LMIDV).
  • Prices on the menu are total prices (Section 3 PAngV). Where there is delivery, the delivery charge belongs in the same view, not in a footnote at the bottom of the page.
  • Under Section 312j of the German Civil Code the order button has to read, in clearly legible form, that the order is placed subject to payment, or carry a correspondingly unambiguous wording. A button labelled Submit leaves the contract without a basis.
  • Services provided in electronic commerce fall under the German Accessibility Strengthening Act (Section 1(3) BFSG). Micro-enterprises with fewer than ten staff and no more than 2 million euros in annual turnover or balance sheet total are exempt from the service requirements (Sections 2 and 3 BFSG).

Why the menu as a PDF creates three problems at once

A PDF menu is a document made for a printer that happens to land in a browser. On a phone that means zooming in, sliding sideways and finding the line you were on again. Two columns that sit neatly side by side on paper end up stacked or overflowing on a screen 390 points wide. Anyone reading the menu on the way to the restaurant, which is the normal case, gives up after the second zoom gesture. The loading speed of the page does not help: the menu is a separate file, often several megabytes in size, and it opens in a viewer that is no longer part of the website. Food law states the standard plainly: mandatory food information must be available and easily accessible (Article 12 of Regulation (EU) No 1169/2011). A file that has to be downloaded and then magnified rarely satisfies the second half of that sentence. Mobile presentation is therefore not a side issue for the menu but its core.

The second problem is findability. A search engine can read a PDF, but it cannot attach the content to a page that can be assessed: no clean title, no heading levels, no prices in a structure that could feed an enriched result. Run the menu as a page instead and the dishes can be marked up with structured data, so the dishes themselves appear in results, not just the name of the restaurant. For a business that is found mostly by people nearby, that feeds straight into local visibility. The third problem is maintenance. As long as the menu exists only as an exported file, every change needs the layout software, the person who can operate it and a second export for the daily specials. In practice, the change simply does not happen.

Whoever maintains the menu decides its format

The question of format is really a question of responsibility. As long as the menu is a layout document, maintenance sits with the person who owns the layout software, and that is rarely someone from the kitchen. Once the menu is a page, the head chef changes a price, removes a dish and adds a notice in the same form in which the dish is described. The difference does not show on the day of the switch. It shows on the first day a supplier changes a product and an allergen notice has to be added because of it.

The menu as a page: a structure you can maintain

A maintainable menu starts with one simple decision: a dish is not a paragraph, it is a record. Name, description, price, notices about allergens and additives, markers such as vegetarian or vegan, plus whether the dish is currently available — those are fields, not formatting. Draw that line once and you gain three things at a stroke. The menu can be displayed differently in every view without the content being copied. A notice attached to a dish travels with it when it moves from the daily specials to the standard menu. And a change happens in exactly one place instead of three, two of which will be forgotten later.

Those records then form the groups guests expect: starters, mains, drinks, lunch menu, daily specials, seasonal additions. A group is only a sorting, not a separate piece of content — otherwise maintenance doubles again. In practice a menu works well when it sits completely on one page, is opened up by jump navigation and is accompanied by a print view. That keeps one address for every purpose: for the link in a message, for the notice in the window and for the search engine. How such a page is built without turning into a permanent development project is one of the basic questions of web design for businesses with a changing offer.

One dish, one record

Name, description, price and notices belong together in a single entry. Keeping the price in the menu and the allergen notice in a separate document creates two versions that drift apart.

Groups instead of page breaks

Starters, mains, drinks and daily specials are sortings of the same records. A dish can appear in several groups without its text existing twice.

One place for the change

Price, availability and notice are edited where the dish is described. The menu, the daily specials and the ordering path pick up the new state without anyone having to remember.

  • The name under which the dish is ordered, spelled the way the kitchen spells it
  • A description naming the ingredients that give the dish its character
  • The total price, with a separate price for each size where sizes differ
  • Notices for the declarable substance groups the dish actually contains
  • Additive declarations using the same footnote logic as the allergens
  • Markers such as vegetarian, vegan or spicy wherever they are advertised
  • Availability: all year, seasonal, lunchtime only or collection only
  • Names and notices in German — food has to be labelled in German when placed on the market (Section 2 LMIDV); a translation comes on top

14 substance groups: labelling allergens without cluttering the menu

Annex II of Regulation (EU) No 1169/2011 lists 14 substance groups that have to be declared. The list starts with cereals containing gluten and ends with entry number 14, molluscs and products thereof. In between sit crustaceans, eggs, fish, peanuts, soybeans, milk, nuts, celery, mustard, sesame seeds, sulphur dioxide and sulphites, and lupin. For a menu, the number matters less than its reach: it is not only the obvious dish with nuts but also the sauce with celery, the dressing with mustard and the coating made with wheat flour. Run the menu as records and the substance groups are checked once per recipe, not again every time a dish turns up on the daily specials.

That the requirement also applies to food sold loose follows from Article 44 of the regulation: for non-prepacked food, the particulars under Article 9(1)(c) are mandatory. How clearly the declaration has to stand out is shown by the rule for prepacked goods, where the name of the substance listed in Annex II is emphasised through a typeset that clearly distinguishes it from the rest of the list of ingredients (Article 21(1)(b)). Applied to a menu, that means the notice belongs with the dish, not on a separate page, and it has to stand out from the body text. A superscript figure does the job as long as the key is within sight and does not appear several screen heights further down.

Clearly visible, clearly legible

The German food information implementing regulation sets the standard for food sold loose in plain words: the required particulars have to be provided for the individual food item in a clearly visible, distinct and clearly legible form. Three things fail that test: pale grey small print under the price column, a footnote key that exists only in the printed version, and a block of notices hidden behind an expander with no recognisable label.
RouteHow it looks in practiceWhat to watch
Declaration at the dishThe notice sits in the same line as the dish or directly underneathThe regulation expressly allows the particulars to appear on menus and drinks lists or in price lists (Section 4 LMIDV)
Numbered footnotesSuperscript figures at the dish, the key at the end of the sectionPermitted where the footnote is referred to in a prominent way at the name of the food (Section 4 LMIDV)
Information from staffSpoken information on request, with a notice to that effect on the menuOnly permitted where a written or electronic record of the ingredients and processing aids used exists and is accessible (Section 4 LMIDV)
Reference to a separate documentA sheet at the counter or a second fileOnly works if the particulars are directly and easily accessible and can be taken note of before the purchase is concluded

Prices and notices: what has to sit in the same line

The German price indication regulation is short and clear here: a trader offering goods or services to consumers, or advertising them with prices, has to state the total prices (Section 3(1) PAngV). For the menu that means one price per dish, including VAT and every component, with no asterisk pointing to a surcharge. If a dish comes in two sizes, there are two prices. If packaging costs extra on collection, that amount belongs visibly with the dish and not in the order confirmation. Anyone showing promotions with struck-through prices should also know the rules on price reductions and the prior price, because they apply even when the offer only runs for a week.

A second point concerns VAT. German VAT law names a reduced rate of seven percent and includes restaurant and catering services in the list, with the exception of the supply of drinks (Section 12(2) number 15 UStG). For the menu that is not a tax technicality but a question of presentation: where the same dish carries different gross prices for eating in and taking away, the page needs two maintained price fields and a switch guests can understand. Show one price and charge another during checkout and you produce exactly the kind of discrepancy Article 7 of Regulation (EU) No 1169/2011 has in mind when it states that food information must not be misleading.

One dish, two prices — and an invoice that matches

As soon as the website accepts orders, every price also carries a document. A business that calculates differently for eating in, collection and delivery needs three clean price states and invoicing that shows the right rate of tax. For businesses that also deliver to corporate customers — law firms, practices, trades businesses with a lunch arrangement — structured invoicing comes on top. That is no reason to make the menu more complicated, but it is a reason to keep the price fields separate from the start rather than untangling them later.
  • Daily specials showing yesterday's prices because they live in a second document
  • A minimum order value that only appears in the basket instead of on the menu
  • Delivery charges graded by distance but quoted only as a range
  • A deposit on reusable packaging that is missing from the total price
  • Surcharges for extras that are absent from the menu and only appear during selection
  • Drink prices adjusted in only one of two views after a change of size

From menu to order: what has to be available beforehand

As soon as orders are placed through the website, a second duty joins the menu, and it has a clear moment attached. Article 14(1)(a) of Regulation (EU) No 1169/2011 requires mandatory food information, apart from the date of minimum durability, to be available before the purchase contract is concluded and to appear on the material supporting the distance selling. In this case the supporting material is the ordering page itself. In practice that means the particulars for a dish have to be visible where it is added to the basket — not on another page, not in a file to download and not in the confirmation email. An expander at the dish meets the requirement as long as it is reachable without a detour and its label says what is behind it.

The second duty concerns the conclusion itself. Under Section 312j(3) of the German Civil Code the trader has only met the obligation if the button is labelled, in clearly legible form, with nothing other than wording stating that the order is placed subject to payment, or with a correspondingly unambiguous formulation. In ordering flows that come out of a website builder, experience shows the button usually says Submit, Continue or the name of the payment provider. Directly above the button belongs the summary: dishes, quantities, total price, delivery or collection charges and the time. Build that part properly and you are effectively running a small online shop — and it deserves to be treated like one, with an order summary, a confirmation and a traceable record.

Before the basket

Name, description, total price and the notices on substance groups sit at the dish. Showing only a picture and a price moves the mandatory particulars into a step where they arrive too late.

In the basket

Subtotal, delivery or collection charges, minimum order value and the requested time. Changing a quantity must not leave the total price to update one step later.

On the button

An unambiguous label under Section 312j BGB, with the full summary above it. The button is the point where a selection turns into a contract, and it does not tolerate a creative label.

What cannot be made up after the click

Particulars that only appear in the confirmation email arrive too late in law and in practice: someone with an intolerance does not order on suspicion and check afterwards. The same applies to payment. Which methods are offered has a direct bearing on whether an order happens at all; an overview of the common payment methods in an online shop helps with the choice. What matters is that any cost attached to a method is visible before the button, not after it.

Collection and delivery: withdrawal, times and your own site

One question comes up with every ordering flow: does the right of withdrawal apply? For food, Section 312g(2) of the German Civil Code gives the answer, because contracts for the supply of goods that are liable to deteriorate rapidly or whose expiry date would quickly be exceeded are among the exceptions. For a hot meal that exception holds. It does not release anyone from the remaining distance selling duties: identity of the provider, main characteristics, total price, delivery and collection terms, and the time of performance. Anyone who already maintains mandatory details inside a listing view knows the mechanics from another context — for instance from the mandatory details in an online property listing, where the same question of completeness and timing is asked.

That leaves the question of the route. Eurostat reports that in 2024 17.99 percent of enterprises in the EU conducted e-sales using only websites or apps; in hospitality, the share of businesses taking orders through a website or app is far higher, as mentioned at the start. Your own site carries an advantage that does not show up in percentage points: guest data, the menu, the prices and the contact stay in the house, and no commission is due per order. A website for restaurants with its own ordering flow does not replace every other channel, but it makes the business independent of any single one. Where tables are booked as well, online appointment booking is worth a look, because reservations and orders draw on the same master data.

  1. The hours during which orders can be placed, kept separate from the opening hours of the restaurant
  2. The delivery area as a list of places or postcodes instead of an approximate radius
  3. The cut-off by which an order has to arrive for a requested time
  4. A confirmation that the order has been accepted, not merely that it has been received
  5. A contact that can actually be reached if a dish sells out or the time shifts

Accessible and findable: a menu everyone can read

The German Accessibility Strengthening Act names services provided in electronic commerce in its scope (Section 1(3) BFSG). A website through which people order and pay therefore weighs differently from a plain business card on the web. There is an exception: the requirements for services do not apply to micro-enterprises (Section 3(3) BFSG). A micro-enterprise, under Section 2 BFSG, is a business employing fewer than ten people with either an annual turnover of no more than 2 million euros or a balance sheet total of no more than 2 million euros. Many restaurants sit below that threshold, which does not settle the question so much as move it: a menu that can be read aloud reaches more guests, and the requirements are essentially the same as for any other accessible website. What the act demands in detail is set out in our article on the obligations under the BFSG.

For the menu itself there are only a few very concrete points. Prices belong in text and not in an image, because a screen reader does not read an image and a search engine cannot evaluate it. Footnote figures need a key that stays readable when the text is enlarged. Colour markers such as a green dot for vegetarian need a second distinction, a word or a symbol, so that they still land without colour perception. And pictures of dishes need alternative text describing what can be seen. How images stay both light and sharp is covered in the article on optimising website images.

Have the menu read aloud once

One check that costs less than ten minutes: run the menu through the read-aloud function of a phone. It immediately surfaces what gets in the way — prices embedded as images and therefore skipped; footnote figures announced as bare numbers in mid-sentence; expanders announced as an unnamed button; and dish names that come after the price, so the connection is lost. Every one of these can be fixed without touching the design.

How to get the menu and the ordering path in order

The route does not start with design, it starts with the recipes. First, record for every dish which of the declarable substance groups it contains and which additives have to be declared; that list is the basis of every piece of information anyway, and under Section 4 LMIDV it is the precondition for staff being allowed to give the information verbally. Then the menu moves out of the layout document and into a structure with fields. Only in the third step does the presentation follow, and the ordering path comes last. That sequence sounds laborious, but it avoids the most expensive case: a finished ordering flow into which the notices have to be retrofitted at a point where no field was ever provided for them.

After that the menu is no longer a project but part of the daily routine: prices change when they change, dishes are hidden when they sell out, and a new sauce gets its notice before it appears on the menu. If you would like to bring the menu, the declarations and the ordering path together in one place, take a look at how we build websites for restaurants, or hand the ongoing maintenance to our website care. For a first assessment of your own operation, a message through the contact form is enough, noting whether it should cover the menu only or ordering as well.

Sources and legal basis

This article draws on the Eurostat compilation of e-commerce statistics and on the official texts of Regulation (EU) No 1169/2011, the German food information implementing regulation, the German price indication regulation, the German VAT act, the German Civil Code, the German Accessibility Strengthening Act and the German food and feed code. The figures quoted refer to the state of the respective publication. The article places the legal position in the context of work on a website and does not replace legal or food law advice in an individual case.

Related Articles

Law, privacy & accessibility

Wine, spirits, e-cigarettes: age checks in your webshop

What the German Youth Protection Act requires when shipping alcohol, tobacco and e-cigarettes, and how a shop checks per product, at checkout and on delivery.

12 min read
Online shop & e-commerce

Selling to EU consumers: threshold, OSS and VAT rates

Above 10,000 euros of distance sales to other EU countries, the VAT of the delivery country applies. What the shop needs: rates, prices, checkout, OSS report.

14 min read
Law, privacy & accessibility

Structured e-invoicing for online shops from 2027

Structured e-invoicing from 2027: how a structured format differs from a PDF, who still has time until the end of 2027, and what to change in your shop, customer account and invoice delivery.

14 min read