Brief
What the client wanted
- Replace the outdated website with a modern presentation of the store
- Online booking for eye tests with no phone calls
- Fewer missed appointments thanks to reminders
- Better visibility in Google when people search for an optician in Košice
Challenge
What the client came with
Optik Petrík is an optician on Komenského street in Košice that has been in business since 1991. It offers eye tests, custom Rodenstock lenses, contact lenses and around 1 500 spectacle frames in stock.
The original website was outdated and did not match the way the store looks today, with its new natural interior and moss wall. Clients booked their eye tests over the phone.
With booked appointments, forgetting is a problem too. A missed appointment is an empty slot in the schedule that can no longer be offered to another client. So the store wanted appointments confirmed and recalled automatically, without phoning anyone.
Solution
What we did and why
A redesign in a natural style. The new look picks up the moss wall in the store: green tones, large photographs and a clear structure: home, services, range, team and contact. The site is built on plain HTML5 and Tailwind CSS with no unnecessary libraries, so it loads fast on a phone too.
A custom booking system. On the website the client picks a day and then one of the free times for an eye test, up to the end of the following month. The appointments are managed in a simple administration, so the optician has an overview without a paper diary.
Automated SMS. Right after booking, the client gets a confirmation SMS, and the day before the appointment a reminder with the date, the time and the type of service. The messages are sent by our SMS API, which records for every SMS whether it was delivered.
Local SEO. Page titles and descriptions are written for searches like “optician Košice”, the site has structured data for the store, the services and the FAQ, and it is optimized for Core Web Vitals (the loading speed Google measures).
After launch we spent three months collecting data. The first version was a single page with the booking form. Then we waited and watched what Search Console and Bing would show. For July to September 2026 one thing was clear: the website appeared mostly for the brand and for „optika košice“, where it had 992 impressions and third position. The queries „očná optika košice“, „meranie zraku košice“ and „kontaktné šošovky“ had hundreds of impressions, but position 8 to 19 and zero clicks. The demand was there, the website simply had nothing to catch it with.
One page for one question. Six offer pages were added: eye tests, contact lenses, spectacle lenses, glasses, sunglasses and glasses repair. Services and Range turned into signposts. We moved the texts onto the new pages rather than copying them, so that the website does not compete with itself. Every page carries frequently asked questions, which are in the structured data as well, and each answer opens with the answer itself, because that is exactly the part search engines and AI assistants quote.
We also fixed what the website claimed about itself. The original structured data said that the eye test was not charged for. That is not true, and it was bringing people into the shop who only came to get their eyes measured. Now both the data and the text say correctly that what is paid for is the expertise, and that the free service is contact lens fitting, marked as an offer at zero price. We added that the optician has contracts with the health insurers VšZP, Dôvera and Union, and that it is the only Rodenstock B.I.G. EXACT® Sensitive partner in Košice. Alongside them an llms.txt file, the plain summary of the website for AI assistants, and the exact city district, Košice-Sever, verified in OpenStreetMap.
We cleared out what Google was seeing on top. The privacy page had 636 impressions and two clicks, and it was taking up a slot under the brand result. It was given noindex and dropped out of the sitemap. An old covid page now redirects to the home page, and the image folder, which held a whole copy of the old website, returns a refusal. Until then Google saw it as a duplicate page. The sharing image and the logo the website pointed to did not exist on the server at all, so we added them.
Speed: from 842 kB to 200 kB. The photos are served as AVIF through a source tag with WebP as the fallback, each one has its dimensions set, so the page does not jump while loading, and anything below the first screen loads only once the visitor scrolls. The images are resized to the size they are actually displayed at. The moss background has its own crop for mobile. Heavy brand logos, one of which weighed 220 kB, are now WebP files of a few kilobytes each. We moved the fonts onto our own server, so the website does not need Google Fonts and Google does not receive visitors' IP addresses.
Forms that need no cookie. The contact form and the booking form moved to the same anti-spam sieve as the InGlory website. Instead of a cookie or a session, the form carries a signed timestamp that cannot be forged. A caught message gets the same answer as a delivered one, so that a bot does not learn what it tripped over, and it is set aside in case of a mistake. The administration got a login limit, protection against forged requests, and a record of who cancelled an appointment and whether an SMS went out about it.
How it turned out. In our own audit the website now scores 100 out of 100 on mobile as well as on desktop, and a full score in speed, SEO and security too. Before the changes it was 82 on mobile, 85 on desktop, 75 for speed, 89 for SEO and 80 for security, and eight checks did not pass. Today not a single one fails. The page lost weight from 1 747 kB to 595 kB, the server response went from 159 to 68 milliseconds and loading on mobile from 2 080 to 1 046 milliseconds. Google PageSpeed gives it 95 on mobile and 100 on desktop.
Delivery
What the client got
- A fast custom website (HTML5 + Tailwind CSS, no unnecessary libraries)
- A custom booking system with appointment management
- Online choice of a free appointment up to the end of the following month
- An automated SMS confirmation right after booking
- An SMS reminder the day before the appointment
- SEO structure, schema.org structured data and Core Web Vitals optimization
- Six offer pages added after launch, based on Search Console data
- An overview of fifteen brands of frames, lenses and sports eyewear
- A contact form with a choice of subject and anti-spam protection without a cookie
- Photos in AVIF and WebP, an llms.txt file and corrected structured data
Results
What you can verify
The audit figures come from our own tool: the measurement before the changes is from 4 October 2026 and the one after them from 5 October 2026.
Process
How the project ran (4 weeks)
-
Consultation and analysis
Goals, the customer journey from searching for an optician to booking, and the design of the booking process.
-
Design and UX
From the wireframe to the final look in two rounds of feedback.
-
Development
The website, the booking system and the connection to the SMS API.
-
Testing and launch
Checks on phones, speed, deployment and staff training.
-
Collecting data
Three months in Search Console and in Bing: what the website appears for, and where it holds a position without clicks.
-
Expansion and optimization
Six new offer pages, corrected structured data, images converted to AVIF and WebP, self-hosted fonts and form protection.
Technologies
What it runs on
- HTML5 and Tailwind CSS
- clean code with no unnecessary libraries, so the site loads fast on a phone too
- PHP
- the booking system and the appointment admin
- SMS API
- our interface for sending confirmations and reminders
- Schema.org
- structured data that tells Google this is an optician and what services it offers
Gallery
Examples
(opens the full size image in a new window)
(opens the full size image in a new window)
(opens the full size image in a new window)