Website2026-08-21

Klimatronik 016 — site for installation and service of air conditioners in Leskovac

The master is in the field all day and the work comes to him by phone, not by email. That's why this site doesn't have a contact form — every path through it ends with a phone number or a Viber message. The rest of the job was to make the content worth the call: a price list before questions, five service pages that explain exactly what is being done, and a gallery where the works can be seen.

The homepage of the Klimatronik 016 site with the slogan In summer and winter, let yourself be conditioned
The homepage - the slogan, then the call button immediately
Client
Klimatronik 016 (MARKO ČUPIĆ PR, Leskovac)
Activity
Installation, service and sale of air conditioners
Area
Leskovac and Jablanički district
Type
Multi-page site, 18 pages
Contact channel
Phone and Viber, without contact form
Technologies
Custom PHP · nginx · JSON-LD · Consent Mode v2
Technology
Custom PHP · Nginx · JSON-LD schema · Consent Mode v2
01

Problem and context

What does Klimatronik 016 do

Klimatronik 016 installs, services and cleans air conditioners in Leskovac and the whole Jablanica district. Behind the name stands the artisan shop MARKO ČUPIĆ PR, active since June 2019, with a store in Leskovac and a branded vehicle on the field. As he himself states, he has been a master for eighteen years in the profession.

The work is divided into five things that are constantly in demand: installation of split and multi-split systems, service and fault diagnosis, cleaning and annual maintenance, refilling of freon and heat pumps. Along with this comes emergency services and appliances from all the usual brands — Daikin, Mitsubishi Electric, LG, Samsung, Toshiba, Gree, Haier and Midea. Appliances that were not purchased from him are also serviced, within the warranty and non-warranty period.

The field is Leskovac, then Vlasotince, Lebane, Bojnik, Grdelica, Vučje, Predejane, Crna Trava and Medveđa. For the site, it is more important than it sounds: a person from Vlasotince does not type in the search "climate Jablanički district", but "climate Vlasotince", and the site must have a page that answers him in his words.

Works from Monday to Saturday, from 08:00 to 16:00, closed on Sundays. And that one sentence was one of the biggest problems on the site — more on that below.

Section Why choose Klimatronik 016 on the homepage
Section "Why choose Klimatronik 016"
02

What needed to be solved

The site existed and was working. The problem was not something not working, but a series of things that are not visible until the files are opened. The work was reduced to four units:

  • The channel to the client was wrong. The site offered a contact form and an email, and business comes to this trade by calling — a customer with a failed air conditioner calls rather than writing. An inquiry sent to the inbox instead of the phone is an inquiry that waits until someone checks the inbox.
  • The service pages were blank. The five service pages were only 75–123 words long — just enough to confirm the service exists, without explaining about what it actually does.
  • The website contradicted itself. The working hours were written in three ways, the location pages promised call-outs without extra charge for the trip, and the price list charged for the trip.
  • Silent technical errors. From a redirection that loses its path to a font that does not have Serbian letters — things that no one reports, because no one recognizes them.

None of those items required a redesign. The layout of the site remained the same — blue, same structure, same arrangement of sections. What decides whether The changes focused on whether the phone would ring.

Service cards: installation, service and cleaning of air conditioners
Overview of services - installation, service, cleaning, with a guarantee of work
03

Site without contact form

The biggest decision was to remove the contact form and business email from the site. Not to hide down on the side, but to be wiped out.

The reason is prosaic. The client is a craftsman who is in the field all day. The form on the site creates an obligation that no one fulfills: the visitor sends an inquiry, waits for an answer, does not receive it, and calls someone else. A site that clearly states that it can be reached by phone is more honest and successful than a site that promises an answer that will not come.

Instead of a form, on the contact page there is a "It's best to call" box: a number in capital letters, a button for a Viber message for those who call after hours, and a list of five things to prepare before the call — what service is required, the brand and power of the device if it has already been purchased, the floor and whether crane work is required, approximately how many meters are there from the indoor to the outdoor unit, and the location. That list is not a decoration. He turns the call "how much does the air conditioner cost" into a call to which the master can respond with a price, without a second round of negotiations.

On the phone, there is a bar with a number and Viber at the bottom of the screen, in the navigation the number is like a button, and the nine buttons that previously led to the form now lead to a call or a Viber message.

Deleting email was a job in itself. The address appeared in ten places: in the footer, in the three meta descriptions, on both legal pages, in the answer to the FAQ — and in the structured data read by search engines and AI assistants. If she had only stayed there, the assistant would have still advised to fill out the contact form, which is no longer on the site. The privacy policy has therefore been rewritten: the site now has no input field and the text says so.

Klimatronik 016 website at phone
Same site on phone
04

Structure: from the homepage to five service pages

The site has eighteen pages, all with clean URLs, without file extensionss in the URL. The division is intentionally shallow — from the homepage to any service, you can go with one click.

The backbone of the page is about services: installation of air conditioners, service, cleaning and maintenance, refilling freon and heat pumps. Above them is a summary of external services, below them is a price list. Along with that, there are brands, a gallery of works, about us, frequently asked questions and contact.

Two pages exist solely for the search: Klima Vlasotince and Klima Lebane. Both places are about twenty kilometers from Leskovac, and people from there look for a craftsman by the name of their place, not by the name of the district. Those two pages were previously ninety-five percent the same text — which to a search engine is one page, not two. Now each of them talks about their terrain: Vlasotince about the slopes above Vlasina, the thicker walls of older houses and the condensate drainage along the river, Lebane about the plain, ground floor units and buildings next to farms.

There is also a page that does not sell anything — advice for buying an air conditioner, with power calculation according to the size of the room, an explanation of the difference between inverter and on/off devices and energy classes. She catches a man who hasn't bought the device yet, a month before he needs installation. When it comes to buying, he already knows who he will contact.

05

A transparent price guide, and two contradictions

On the price list there is a table with approximate ranges for assembly, disassembly, service, cleaning, refilling freon and emergency interventions, and below it six things that move the price: the length of the pipe run beyond the standard five meters, the type of device, additional work such as breaking through the wall or the base for the outdoor unit, the property location, urgency and season.

A range instead of an exact figure is a deliberate decision. Installation on the ground floor of the house and installation on the fourth floor from a truck crane are not the same job, so one price would be either a lie or too high protection. The range along with the list of factors gives the visitor what he came for — an order of magnitude — and leaves it to the craftsman to tell the exact price when he sees the object. There is no charge for the exit and assessment, so that call costs nothing.

This is where a contradiction surfaced that had been on the website for months: the city pages wrote that there was no extra charge for the trip, and the price list charged arrival fees for places outside of Leskovac. The second one was of the same type — the price list offered emergency interventions on weekends, and the footer said that they do not work on Sundays. Both are agreed according to the price list and according to how the company actually works.

Prior to that, the working hours stood in three versions in three places on the same page: in the upper bar, in the footer and on the contact. Now it's the same everywhere, including the structured data that Google displays next to search results. A visitor who sees three different working hours does not conclude that the site is messy — he concludes that the company is messy.

06

Content written firsthand

The five service pages were expanded from 75–123 words each to roughly 1,000 words per page. It is not text padding for the sake of length. It is the only way for the page to answer the question that the visitor came for in the first place.

The installation page now explains why the indoor unit requires about fifteen centimeters of free space up to the ceiling and on the sides, why it doesn't go above the bed, why each copper pipe is insulated separately — shared insulation allows condensation to form on the thinner pipe — and what happens when the flare nut is overtightened: it cracks, and the freon comes out months later, when no one associates the fault with the installation anymore. It also explains why the installation is vacuumed before commissioning, and when the best time for installation is: spring, because appointments are easier to secure, and the devices are cheaper than in July.

Such text does two things at once. It shows a customer choosing an installer that the business understands the work. It gives the search engine a reason to display the page for a query that is not "air conditioning installation Leskovac", but "how long does air conditioning installation take" or "why is the air conditioning dripping from the indoor unit".

Each of the five pages was given a title with a location within it, nine to eleven thematic units and five questions with answers at the bottom. None of them make up a price — they all refer to the price list, to one place that is maintained. When the price changes, it changes in one place, not six.

The Brands page had the thinnest content: ninety-three words and no links. It gained a section explaining what an installer explains to customers in person anyway — the brand is less important than who installs it, because most of the failures he sees in the field do not come from the manufacturer, but from an insufficiently vacuumed installation, a route that is too long without additional charging, or an outdoor unit pushed into a space where it has nowhere to blow the heat.

07

Missing Serbian characters and 402 KB of icons

This is a find worth opening the files for, not just looking at the site.

Site uses Poppins, hosted locally instead of Google servers. That local font was truncated to 217 characters, and in that truncated there were physically no letters ч, ј, ш, ж and д — and the range of characters reported to the browser did not include them either. The result: all our fonts on the entire site were drawn in Arial. The word "cleaning" was half Poppins, half Arial, on each page, for months. No one reports it, because the eye registers that something is sticking out, but cannot name what.

The fix was to recut the font from the full source file, with the code points for our letters explicitly specified. The new files, as a side benefit, turned out to be smaller than the old ones.

Right next to it was another payload: a 402-kilobyte icon set for the sixty-one icons actually in use. The whole family was loading for a handful of arrows, phones and ticks, including a part that the site never even invited. It was cut down to 10.7 kilobytes — a drop of ninety-seven percent — by extracting the classes used from the markup itself, mapping them to code points, and regenerating the font with minimal CSS.

The sum of those two changes is not visible on the fast internet in the office. It can be seen on the first opening of the site on a phone, on the connection that is actually used in Leskovac and its surroundings.

08

Speed, gallery and accessibility

After the repairs, the measurement on the server shows the mobile homepage with a performance score of 100 instead of the previous 92, and a Largest Contentful Paint of 1.3 seconds instead of 2.7. Fifteen of sixteen pages score 100 for performance, accessibility and good practices. The gallery has 99, because the page is image-heavy.

The gallery was the hardest part. The photos of the work are the most valuable thing the company has — the outdoor units on the facade, a four-unit multi-split system, the assembly from the truck crane on the upper floor, installations in a hall and workshop — but they weighed 2.64 megabytes in total. Now they weigh 881 kilobytes: the page loads 520-pixel thumbnails with responsive source descriptions, and the original opens only when the visitor clicks on the image. Filters by job type and full-size image viewer also work with the keyboard, which was not the case before.

Accessibility went from a dozen places where the contrast was 2.71 to 1 to a full score on all pages. The drop-down menu only opened on mouseover, the back-to-top button was a plain div with no button semantics, and there was no jump to main content. This is not an academic topic: it affects both people with impaired vision and those who look at the site on their phone, in the sun, in front of the building where the air conditioner needs to be installed.

Analytics are set up to respect the visitor's decision — until cookies are accepted, optional measurement remains disabled. Its loading also needed adjustment: when it loaded instantly, it dropped the phone's performance score by nearly thirty points. Now it starts only after the first interaction of the visitor or after a few seconds, so it does not compete with the first render.

In the end, even the simplest one was checked: seventy-eight internal links and files on the site returned the expected response, without a single dead one.

09

SEO, schema and what had to be removed

The site carries forty blocks of structured data and none of them are defective. The homepage is presented as HVACBusiness with address, coordinates, hours of operation and a list of places covered. Each service page has its own Service, question pages its own FAQPage, gallery list of images, and all subpages a path back to the homepage.

Three things had to be fixed or removed:

  • Fake reviews. The site had two signed praises and an average rating of five out of five from three votes, without a single real review behind it. That's a violation of Google's rules and grounds for a manual penalty. It has been removed and replaced with something that can be verified: photos of the works, information about the company and an invitation to the visitor to leave a rating on Google Maps.
  • Link that does not exist. Ten pages referred to information about the company through a tag that did not exist on that page. The search engine does not combine these tags between addresses, so for it ten pages were without performers. An abbreviated but full record is inserted throughout.
  • A type that does not exist. The price list used a type name that does not exist in the schema.org dictionary, so no search engine read it. It has been replaced by the correct one.

The image shared on social media was a 900 by 1200 pixel portrait and reported to the server as 1200 by 630 — every link shared looked broken. A real card was created with a branded vehicle and phone number. The link to the Facebook page was leading to a temporary sharing address instead of the page itself, so that has been fixed.

By the way, it was also found that the key for IndexNow, which informs search engines about changes to the site, disappeared in a server cleanup and returned the error from June to mid-August. A dead key doesn't raise an alarm — it's only detected by going through the entire site like this.

10

What happens to the site after delivery

A site that stands alone is not a done deal. This one goes through regular checks, and a few things found on those checks speak louder than any promise of maintenance.

The certificate expired once and the site was down for three days. The cause was not a missed deadline, but a certificate that was left without auto-renewal settings — an empty file was in place of the configuration. After the fix, a daily check was added that notifies by email if any certificate has less than two weeks left on the server.

The second time the site looked dead only to a part of the visitors. The DNS record was sending traffic via IPv6 to an address where the server for this domain was not listening, so those visitors were reaching another site’s certificate and getting a warning in their browser. Users of one mobile operator saw an error, all others saw a completely correct site. Such a report from the client sounds like "it does not work for me, but it works for my neighbor" and it cannot be resolved without testing from an external connection.

The third finding is the most banal and the most expensive: the phone number in the Viber links and in the structured data had one extra zero. The button looked correct and the click worked, it just didn't call anyone. It has been corrected to the number that the company actually uses.

Additionally, there are things that are not visible to the naked eye: redirection from www was losing its path, so every such link to a subpage ended on the homepage; URLs with a trailing slash returned an error response instead of a redirect; backup copies of the PHP files were sitting on the web, from where the server could serve them as plain text if misconfigured. All three are resolved, and none would ever be reported by the client.

11

Outcome

What the client received

An eighteen-page site that does one job — make the phone ring — and leads to that call from every page and every device.

Practically, it looks like this: a customer from Vlasotince finds a side for his place, reads what is included in the work and what is extra, sees the order of magnitude of the price in the price list, looks in the gallery of works to see what the installation from a crane on the fourth floor looks like, and calls. If he calls on a Sunday, send a Viber message and get an answer on Monday morning — instead of a promise that no one will keep.

No monthly platform subscriptions, no plugins that break at the next update, no panel that pops up twice a year. Code and content are on the server, they can be copied and moved, and changes are backed up before each change.

There is one thing that is independent of the site and worth saying out loud: the company does not yet have a profile on Google Maps. For a craftsman whose only channel is the phone, it is the biggest missed source of calls and the first thing that should be done after the website.

FAQ

Frequently asked questions

Why does the website have no contact form?

The owner does not use email as the working contact channel. A form would collect enquiries that nobody opens, so every page offers a call and Viber message together with the information needed to quote the work.

How can a customer enquire outside working hours?

They can send a Viber message. The contact page and mobile action bar explain that the team replies on the next working morning, and the stated working hours are consistent across the site.

Why are the price ranges on the site and not the exact prices?

Because assembly on the ground floor and assembly from a crane on the fourth floor are not the same job. The price list gives a range and lists six things that move the price — route length, device type, additional work, location, urgency and season. There is no charge for the exit and assessment, so the exact price is stated on the spot.

Can the owner change the content himself?

No, and this is intentional. A site of this size changes several times a year — before the season, when a service is added, or when prices are adjusted. An admin panel for such a rhythm costs more than it's worth, so the changes go through us, with a backup before each one.

Is the site on WordPress?

No. It is written in PHP, platform-free and without plugins to update. For a site with a fixed number of pages, this means fewer moving parts, a smaller attack surface, and no monthly fees.

What happens to the site after delivery?

Goes through regular checks: certificate, speed, dead links, structured data, phone behavior. An expired certificate, a wrong number in Viber links and a redirect that was losing its way were found on those passages — all three things that the client would never report, because they are not visible from his point of view.

Next step

Have a project that needs to work better?

Send me your goal and current situation. I will reply with a concrete scope proposal.

Start a project