Scenario · Website with bookings · Hotel and restaurant
A hotel that takes bookings
even when reception is closed.
A property with great reviews that gets bookings almost only by phone and through booking portals, paying a commission on every room. A website that takes direct bookings for rooms and tables, 24 hours a day.
Website scenario — hotel with a gourmet restaurant
An Umbrian gem
invisible online.
The scenario: a boutique hotel in the Umbrian countryside with a long history. A dozen rooms, a gourmet restaurant, a well-kept wine cellar. A reputation built on word of mouth, with guests who come back every year. Yet the website is stuck a few years back: a badly configured Elementor template, 4 MB photos never optimised, no online booking.
A paradoxical but common situation: a place with great Google reviews and no working "Book" button. Bookings come only by phone or email, and reception manages the whole calendar by hand. On peak-season weekends the rooms still fill up — but the restaurant loses tables every night, because people passing through can't find a way to book ahead.
The goal: a website that keeps working when the phone is busy.
"We manage bookings in a paper diary. My daughter says it's absurd. She's right."
— Something I often hear at family-run placesRequirements for a professional restaurant website
What was
really needed.
Six areas of work that come out of talks with the owners, a review of the existing site and watching the real booking flow — phone calls, emails and WhatsApp included.
24/7 online hotel booking
Real-time room booking with an availability calendar, room-type choice, automatic quote and email confirmation. It has to work at 2 a.m. too, when reception is asleep.
Restaurant table booking
A separate system for the restaurant: choice of date, time and number of guests, with service management (lunch/dinner), maximum seats per service and special requests (allergies, occasions, high chair). Automatic confirmation and SMS reminder.
Self-managed digital menu
The chef changes the menu often, following the seasons. It needs a WordPress interface to update dishes, prices, ingredients and allergens without touching code — even from a tablet in the kitchen.
Professional photo gallery
Dishes, rooms, garden, cellar: hundreds of high-resolution photos that must load fast without losing quality. The owners upload new photos every month and shouldn't depend on anyone to do it.
Local SEO to reach tourists
Every year lots of tourists search for "gourmet restaurant Umbria", "spa hotel Perugia", "where to eat in Umbria". An old site often doesn't even show up for the property's own name. That needs fixing at the root.
Mobile-first for tourists on the move
Most "restaurant near me" and "hotel Umbria" searches come from smartphones. An old site is usually unusable on a phone: tiny text, buttons hard to tap, a contact form broken on iOS. Top priority.
Technical challenges of a restaurant site with bookings
Where the real
problems hide.
Hospitality and restaurants look easy to handle with WordPress. In reality they hide operational complexity that only shows up once you dig into the details. These are the five most critical challenges.
Development process for a restaurant website
How I
organise the work.
Six to eight weeks in four phases. The priority is to have online booking live before peak season. Each phase ends with a live demo for the owners — no surprises at launch.
Review of the existing site, the real booking flow (observed on site) and direct competitors (boutique hotels in Umbria and Tuscany), content map and information architecture.
A custom WordPress theme with a consistent identity (e.g. a warm dark palette, an elegant serif, a gold accent). A complete Figma wireframe shared with the owners and the chef. The room and table booking flow is signed off before a single line of code.
Full build: custom theme, ACF Pro for menu and rooms, a booking engine with channel manager (e.g. Beds24, synced with Booking.com and Airbnb), custom table booking with PHP and the WP REST API. Optimised WebP images. Restaurant and LodgingBusiness structured data.
Full testing of every booking flow (rooms, tables, cancellations, email/SMS notifications). CMS training for reception and the chef. Content migration, 301 redirects, Google Business profile update, controlled go-live.
Technical solution for online bookings and menu
How I solve
each problem.
Beds24: channel manager and booking engine in one
For the rooms I use a booking engine such as Beds24, for three reasons: it syncs in real time with Booking.com, Airbnb and Expedia (no double bookings), its widget can be fully restyled, and the monthly cost is sustainable even for a small property.
The widget is fully customised to match the site — colours, fonts, borders. Booking comes down to three steps: pick dates → choose a room → confirm and pay. Goal: a booking completed in under 3 minutes, checked with tests on real users.
The same system handles confirmation emails, pre-arrival reminders and post-stay review requests — all automatic, zero manual work for reception.
Menu updated in 5 minutes, no code
The menu is built on Advanced Custom Fields Pro with repeatable fields: each section (starters, pasta, mains, desserts) is a group with dish name, description, price, allergen icons and a vegetarian/vegan flag.
The WordPress interface gets stripped down to the essentials: unneeded boxes hidden, clear labels, instructions next to each field. Goal: the chef updates the menu in under 5 minutes from the kitchen tablet, without ever seeing code.
Rich snippets, Google Business and structured markup
A complete local SEO stack. LodgingBusiness structured data for the hotel and Restaurant for the restaurant, with every field Google expects: hasMenu, servesCuisine, priceRange, openingHoursSpecification, precise coordinates.
Google Business profile updated with photos, seasonal hours, a menu linked to the site and a direct link to table booking. Goal: appearing in the Local Pack for searches like "gourmet restaurant Umbria" or "restaurant near me" in the area, with stars and hours highlighted.
What to expect: for niche local searches (e.g. "gourmet hotel Umbria") top positions are reachable within a few months, and local organic traffic can double in the first year.
Restaurant website tech stack
Technologies chosen, not imposed.
WordPress as the base — the right choice for a place that has to manage its own content. Every plugin has a clear reason: nothing superfluous, no dependency that causes trouble a year later.
No page builders (Elementor, Divi), by choice: they bloat the page and hurt performance. The theme uses native WordPress templates and custom CSS. Lighthouse goal: 90+ on mobile, 95+ on desktop — excellent for a site full of food photos.
Example goals — site with bookings
What to expect
in the first season.
Example figures, not a client's results: realistic goals for a scenario like this, to be measured by comparing the season after launch with the previous one (Google Analytics 4, Search Console, booking-engine reports and table bookings).
"Saturday night: a full restaurant and three rooms booked — all through the site, while I was asleep." That's the scenario to aim for: a website that takes bookings when reception is closed.
— The project's concrete goalLessons for a restaurant website
What I bring
to every project like this.
These are the points I always keep in mind in hospitality projects.
Booking isn't a plugin, it's a business flow. Before choosing the technical tool, you need to understand exactly how the property's real booking process works — with all its exceptions, seasonality and unwritten rules. Only then do you choose the software.
Training is part of the delivery, not an extra. With non-technical hospitality clients, even the simplest CMS is useless without a dedicated training session. That's why I always include it in the quote.
Local SEO beats generic SEO for accommodation. A boutique hotel doesn't compete with Booking.com on generic keywords. It competes on hyperlocal searches ("spa hotel Umbrian hills", "where to stay near Spello") where a well-optimized website can beat the portals with a tenth of the effort.
No-shows drop with automation, not rules. Many places would like to ask a deposit for every booking. An automatic SMS reminder 24 hours before creates less friction and gets almost the same result, without bookings dropping.
WordPress with a custom theme beats Elementor on speed in food and hospitality. Photos are already the bottleneck: adding 2 MB of page-builder JavaScript is unforgivable. A lean theme with ACF gives the same flexibility at a tenth of the weight.
Have a similar project in mind?
Tell me about it: we start from goals and priorities, and the first call is free.