Websites
A restaurant website in Milan: menu and bookings
A restaurant site in Milan must state cuisine, today's hours and booking on one screen: 1,354,196 residents in 2023 (Wikidata) size the audience, not the price.
Key points
- The municipality of Milan has 1,354,196 residents in 2023, read from Wikidata on 1 November 2026: that is the potential audience, not a quote.
- Write the menu in HTML with prices and allergens: a PDF does not read on a phone and gets no indexing.
- Booking fits three fields plus phone and WhatsApp, with a visible confirmation.
- Price ranges stay national: our dataset holds no per-city prices.
A restaurant site in Milan must say three things on one screen: what food you cook, whether you are open today, and how to book. Menu, photos and address come straight after. If booking takes more than three steps, another venue in the same neighbourhood gets the table.
The local fact is population: 1,354,196 residents in 2023, read from Wikidata on 1 November 2026, in the Città metropolitana di Milano, Lombardia. That is the municipal figure, not the metropolitan area, and it sizes the audience rather than the quote.
The pages that bring covers in
| Page | What it must contain |
|---|---|
| Home | Cuisine, today's hours, call button and booking button |
| Menu | Dishes, prices, allergens, fixed or seasonal menu |
| Book | Date, time, covers, name and phone, plus WhatsApp |
| Find us | Address, map, parking, underground, accessibility |
| About | Dining room, kitchen and real people with names and roles |
| Events and groups | Private room, agreed menu, deposit, contact person |
| Privacy and cookies | Notice, controller, how long booking data is kept |
The menu is the most searched page and the most neglected. A PDF uploaded two years ago does not read well on a phone, gets no indexing and nobody updates it. Write the menu in HTML: one line per dish, price alongside, one section per course, last-updated date at the bottom of the page.
Allergens: fourteen entries, not a generic note
Regulation EU 1169/2011 requires allergen information to be available before the order is placed. On a site the most useful form is a per-dish card with the fourteen entries of Annex II, or a table crossing dishes with allergens. «Ask the staff» works in the dining room, not online: someone with a serious allergy picks another venue instead of calling.
Booking: three fields and one alternative
Milan: people walking past and people booking from the office
A city venue serves two audiences on the same page. The first decides now, often standing up: they want to know whether you are open and how far the underground stop is. The second plans from a desk and wants to see the menu with prices before choosing. The home page serves both with today's hours and a booking button above the fold, without three screens of photos in the way.
Costs are national, not Milanese
A six or seven page site for a single venue sits in the low thousands of euro when copy, photos and menu arrive ready; with a photo shoot and copy written from scratch the bill rises. Those are national ranges, published as such: our dataset holds no per-city prices, and a «Milan» figure would be an estimate with no source. The line that gets missed is menu maintenance.
Three catalogue records
Gallery 01 from Shadcn Space is a photo grid for the dining room. Table 01 from ephraimduncan is the table to fill with dishes, prices and allergens. The contact category holds 33 blocks from 10 publishers, the widest choice for a booking form. The licence is declared by the publisher and needs checking on each block; previews are free, the full code sits in the Pro plan.
The limitation to state up front
The catalogue holds React and Tailwind components: there is no booking engine, no table management and no integration with Google Reserve. The blocks cover the interface, real availability arrives from an external service. On WordPress these blocks do not install as they are: they work as a reference for structure and visual hierarchy.
# il menu è in HTML e non in PDF?
curl -s https://www.esempio.it/menu | grep -c "<li"
# quali dati strutturati dichiara la home
curl -s https://www.esempio.it | grep -o '"@type":"[A-Za-z]*"' | sort -u
# peso della pagina menu su un telefono
curl -s -o /dev/null -w "%{size_download} byte\n" https://www.esempio.it/menu
The full guide is a restaurant website; the menu blocks already counted are in the best menu blocks, costs item by item in what a website costs. If the venue does not show on Maps, the site alone brings no tables: you also need to get the site indexed by Google.
Frequently asked questions
How much does Milan's population matter for a restaurant website?
It sizes the audience, it does not set the quote. The municipality has 1,354,196 residents in 2023, read from Wikidata on 1 November 2026, which describes a wide catchment with guests outside the city too. Price depends on pages, copy and photos, not on the city.
Is a PDF menu or an on-page menu better?
On-page, always. A PDF is awkward on a phone, does not get indexed and nobody updates it. An HTML menu can be changed in a minute and the prices stay searchable.
What does a restaurant website cost in Milan?
We hold no per-city prices: the ranges we publish are national. A six or seven page site for a single venue sits in the low thousands of euro with copy and photos ready. Ask for a menu you can edit yourself, without a quote for every new printed card.
Are allergens required on the website?
The information must be available before the order is placed, as Regulation EU 1169/2011 requires. You can put it in the menu, on a per-dish card or in a table. Pointing to the staff is not enough when the guest orders online.
Do I need an online booking system?
You need a way to book without calling, and a three-field form is enough for a small room. With many covers an external service handles availability and no-shows better than a form: the site connects to it, it does not replace it.