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

PageWhat it must contain
HomeCuisine, today's hours, call button and booking button
MenuDishes, prices, allergens, fixed or seasonal menu
BookDate, time, covers, name and phone, plus WhatsApp
Find usAddress, map, parking, underground, accessibility
AboutDining room, kitchen and real people with names and roles
Events and groupsPrivate room, agreed menu, deposit, contact person
Privacy and cookiesNotice, 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.