WordPress landing page for guided tours in Dagestan
The tour project already had a landing page built in an online site builder. We rebuilt it on WordPress and checked it against the original by measurement: nine screens in the same places and at the same sizes. The client can now edit the site in the admin area, and the form sends requests to email and Telegram.

The task
The landing page had nine screens: first screen, guides, tour route, dates, extra experiences, gallery, reviews, questions and a form. It had to move to the client's own hosting and domain.
There were three conditions. The look stays as in the layout. On opening, the site no longer calls the builder. Texts, photos, prices per day and departure dates can be changed in the admin area without a developer.
Our approach
We did not import the builder's code and wrote our own WordPress theme from the layout. This way the markup, speed and form stay in the hands of the client and their contractors.
Each screen is a separate Gutenberg editor block. The block panel controls texts, images, cards, prices, questions, background and visibility. The order of screens changes with standard WordPress tools, and the menu is edited in the regular menu editor.
We checked the match with the layout by measurement. We opened the original and the new site in identical 1440 and 390 px windows and compared sizes of headings, buttons, the form and the guides' photos. On desktop the heights of all nine sections differed by less than 0.1 px.


How the work went
Layout build
Nine screens, Oswald and Manrope fonts stored locally, photos and logo taken from the client's project. On a phone the strips swipe by finger and the form fields are large so the browser does not zoom in while typing.
Tour interface
A switch for 3, 4 and 5 days changes the price. Two independent guide sliders. The month button opens a window with departures, and the chosen date goes into the request by itself.
Request form
A request is first written to a private log, then sent to email and Telegram. A failed notification is sent again, and a repeat of the same request does not create a duplicate. Spam is handled by a hidden field, a check of the request source and a rate limit.
Move
The site moved to the client's hosting with HTTPS and a separate domain mailbox. For background jobs we set up a server run every five minutes instead of a run on page open.
Speed
The home page for regular visitors is served as ready HTML, bypassing PHP and the database. We noticed that the first screen photo in AVIF went through a slow server path with no cache, so we replaced it with a WebP of about 180 KB.
Testing
We ran the site in Chrome, Firefox and Safari engines at widths from 320 to 1905 px. A real request was sent from a phone and read in email and in Telegram. We made a backup and tested restoring the database.
What we delivered
- custom WordPress theme built from the ready layout
- 9 screens, each edited as a separate block
- dates window that passes the departure into the form
- vertical 9:16 video cards in the experiences block: the video loads only on tap
- request log, email and a Telegram bot
- booking terms, privacy policy and consent pages
- Metrica is connected by counter number and starts after the visitor's consent
- ready HTML for the home page and a server task scheduler
- backup with a tested restore


Result
The landing page opens on the client's domain and makes no calls to the builder on load. The client has their own admin account and can change the content without us.
We put the comparison with the original into a document of 18 screenshot pairs: all nine sections at two widths. 14 measured parameters matched on desktop and the same number on mobile.
PageSpeed on 22 October gave 100 points on mobile and 100 on desktop. LCP was 1.4 and 0.7 seconds, and Speed Index on mobile fell from 12.4 to 1.7 seconds. This is a Google lab measurement.
- 9screens edited as separate blocks
- 14 of 14parameters matched the layout at 1440 and 390 px
- 100 / 100PageSpeed, mobile and desktop, 22.10.2026
- 12.4 s to 1.7 sSpeed Index on mobile, before and after
- 1.4 sLCP on mobile, 22.10.2026