// Studija slučaja

Ivković Prevoz — jedna strana za ogrevno drvo, prevoz i šlepovanje

Jedna firma iz Leskovca radi tri stvari koje nemaju ništa zajedničko: prodaje ogrevno drvo, vozi robu kamionom po Srbiji i šlepuje vozila. Sve tri traže se različitim rečima, u različito doba godine, i sve tri se ugovaraju telefonom. Zato je ovo jedna strana bez ijedne kontakt forme, na kojoj svaki put vodi do poziva.

Klijent
Ivković Prevoz
Delatnost
Ogrevno drvo, kamionski prevoz robe i šlepovanje vozila
Područje
Drvo i šlepovanje: Leskovac, Lebane i okolina · Prevoz: cela Srbija
Tip
Jednostrani sajt sa tri servisne sekcije
Kontakt kanal
Telefon, bez kontakt forme
Tehnologije
Custom PHP 8.3 · Nginx · JSON-LD · Consent Mode v2
Status
Živ sajt, u aktivnom održavanju
Naslovna strana sajta Ivković Prevoz sa naslovom Kvalitetno ogrevno drvo
Prvi ekran — drvo, prevoz i šlepovanje u jednom naslovu, pa dugme za poziv

Čime se Ivković Prevoz bavi

Ivković Prevoz je firma iz Leskovca koja radi tri posla odjednom. Prodaje ogrevno drvo — bukvu, hrast i grab — sa dostavom i istovarom u Leskovcu, Lebanu i okolini. Vozi robu kamionom na celoj teritoriji Srbije. I šlepuje vozila šlep prikolicom, za Leskovac, Lebane, Vlasotince, Grdelicu, Bojnik i širu okolinu.

Drvo se isporučuje na metar, u dužini od jednog metra, a istovar na željeno mesto radi firma. Bukva se na sajtu opisuje kao najkvalitetnija za ogrev zbog duge toplote i malo pepela, hrast kao tvrdo drvo sa vrlo dugim gorenjem, grab kao povoljnija varijanta koja brzo razgoreva. To su opisi ponude, ne naše merenje.

Šlepovanje je najhitniji deo posla. Tu spada kvar na putu, ali i mirniji slučaj — čovek koji je kupio auto u drugom gradu i hoće da mu ga neko doveze. Kamionski prevoz je jedini deo koji izlazi iz okruga: od Subotice do Vranja, kako piše na sajtu.

Radi se od ponedeljka do subote, od 07 do 20 časova, nedeljom po dogovoru. Postoje dva broja telefona i nijedna druga adresa — ni forma, ni mejl, ni profil na društvenoj mreži. Za sajt to nije ograničenje nego polazna tačka.

Šta je trebalo rešiti

Zadatak nije bio „napravi sajt za prevoznika". Bio je da jedna adresa opsluži tri posla koji nemaju istog kupca, isto područje ni istu sezonu.

  • Tri različite pretrage, jedna strana. Neko kuca „ogrevno drvo Leskovac" u avgustu, neko „šlep služba Leskovac" u pola noći, neko „kamionski prevoz Srbija" iz kancelarije. Ista strana mora da odgovori svima trima, a da nijednom ne deluje kao da je zalutao.
  • Različito područje po usluzi. Drvo se dostavlja u Leskovcu i Lebanu, prevoz ide po celoj Srbiji, šlepovanje pokriva pet mesta u okrugu. Jedna rečenica tipa „pokrivamo celu Srbiju" bila bi netačna za dve od tri usluge i koštala bi poziva.
  • Sve se ugovara telefonom. Nema magacina sa radnim vremenom šaltera, nema kataloga sa cenama po komadu. Cena zavisi od količine, razdaljine i termina — to je razgovor, ne formular.
  • Telefon je i uređaj i kanal. Čovek čiji je auto stao na putu za Grdelicu gleda sajt na malom ekranu, na slaboj vezi, jednom rukom.

Iz tog poslednjeg uslova ispala je i najveća odluka na projektu: strana se pravi tako da se učitava brzo i na lošoj vezi, čak i po cenu toga da na njoj neće biti fotografija.

Jedna strana, tri posla

Sajt je jednostrani. Sav sadržaj stoji u jednom PHP fajlu, a navigacija su sidra: početna, usluge, vrste drveta, prevoz, šlepovanje, kontakt. Uz to postoje samo dve prave podstrane, obe pravne — politika privatnosti i uslovi korišćenja.

Odluka da to ostane jedna strana, a ne sajt od pet, bila je namerna. Tri tanke strane koje dele isti telefon, isti futer i isti opseg posla se za pretraživač otimaju međusobno, a za vlasnika znače tri mesta koja treba održavati umesto jednog. Firma ove veličine menja sadržaj nekoliko puta godišnje — jedna strana koja je uvek tačna vredi više od pet koje se raziđu.

Da bi to radilo, svaka usluga je dobila svoju punopravnu celinu, ne pasus. Sekcija usluga daje tri kartice — drvo, prevoz, šlepovanje — pa se ispod nje svaka razrađuje zasebno: vrste drveta sa opisom po vrsti, prevoz sa šest stavki o pokrivenosti i vozilima, šlepovanje sa šest situacija u kojima se zove.

Područje dostave je izdvojeno u sopstvenu kutiju u kontaktu, sa tri odvojena reda — drvo, prevoz, šlepovanje — jer se razlikuju. To je jedno od retkih mesta gde je bolje ponoviti se nego biti kratak.

Sajt bez kontakt forme

Na ovoj strani nema nijedne kontakt forme. Ne postoji nijedno polje za unos, nigde.

Razlog je isti kao i kod svakog majstora koji je ceo dan na terenu: forma stvara obavezu koju niko ne ispunjava. Posetilac pošalje upit, čeka odgovor, ne dobije ga i pozove nekog drugog. Kod šlepovanja je to još oštrije — čovek pored puta neće čekati odgovor na mejl, on zove prvi broj koji vidi.

Umesto forme, strana nosi deset mesta sa kojih se zove: dugme u zaglavlju, dugme u prvom ekranu, poziv na kraju sekcije o prevozu, poziv na kraju sekcije o šlepovanju, oba broja u kontaktu, u završnom pozivu i u futeru. Dva broja su razdvojena po nameni onako kako ih firma i koristi.

Na telefonu se pri dnu ekrana drži traka sa brojem, koja se ne gubi pri skrolu. Ona dolazi iz zajedničke komponente koja stoji na jednom mestu za celu flotu sajtova, pa se ispravka na njoj rasprostire svuda odjednom — što se već isplatilo, jer je jedna njena verzija imala stil ubačen na mestu koje W3C provera ne prihvata.

Bočna korist se lako previdi: strana bez ijednog polja za unos nema šta da primi od automata. Nema neželjenih poruka, nema kapije protiv robota, nema sandučeta koje se puni smećem.

Šlepovanje — ista usluga, tri rečnika

Sekcija o šlepovanju je pisana drugačije od ostatka strane, jer se traži drugačije.

Isti posao ljudi u pretragu kucaju kao „šlep služba", „vuča vozila", „pomoć na putu", „šlepovanje automobila" i „transport vozila". To nisu sinonimi koje treba nabrojati u jednom redu — to su različiti ljudi u različitim nevoljama. Zato sekcija ima šest celina koje pokrivaju situaciju, a ne uslugu: šlepovanje automobila, laka dostavna vozila i kombiji, kvar na putu, prevoz kupljenog vozila iz drugog grada, područje koje se pokriva i brzina izlaska.

Podela po situaciji radi dve stvari odjednom. Posetiocu daje red u kojem prepozna sebe za dve sekunde, umesto da čita opšti opis usluge. Pretraživaču daje tekst koji odgovara na upit oblikovan kao rečenica, a ne samo na dve reči.

Šlepovanje je jedina usluga na sajtu koja je i u strukturisanim podacima izdvojena kao zasebna, sa nabrojanih pet mesta koja pokriva — Leskovac, Lebane, Vlasotince, Grdelica i Bojnik. Drvo i prevoz stoje u ponudi firme, a šlep služba stoji i kao usluga za sebe, jer se tako i traži.

Strana koja se učitava bez ijedne fotografije

Ovo je najneobičnija stvar na projektu i vredi je reći otvoreno: na celoj strani nema nijedne fotografije. Nijedan <img>, nijedan <picture>, nijedan zahtev ka serveru za sliku.

Pozadina prvog ekrana je vektorska ilustracija upisana direktno u stil strane — nekoliko oblika i krugova u zemljanim tonovima, bez ijednog kilobajta preuzimanja. Sve ostalo što liči na sliku su ikone iz jedne porodice ikonica i emodži znakovi. Paleta je zemljana i topla, izvučena iz jednog mesta u stilu: braon boja drveta, dve nijanse narandžaste za vatru i krem podloga.

Praktična posledica je da strana na telefonu nema šta da čeka. Nema velike slike iznad pregiba, nema galerije koja se učitava dok se skroluje, nema fotografije koja se ispod prsta pomera kada joj konačno stignu dimenzije.

Da to ne ispadne hvalisanje: ovo je i ograničenje. Fotografija složene metrice bukve, kamiona na terenu i šlep prikolice sa vozilom na njoj bila bi najjača stvar koju ova strana može da ima — takva slika prodaje bolje od svakog opisa. Kada takve fotografije budu postojale, one su prva stvar koja na ovaj sajt treba da uđe, uz optimizaciju koja ih neće pretvoriti u teret. Za deljenje na mrežama već postoji posebna slika, koja se na samoj strani ne učitava.

Fontovi, ikone i keš na serveru

Kada nema slika, prvi prikaz koče fontovi i ikone. Zato su i oni sređeni redom.

Sajt koristi Inter i Montserrat. Oba su skinuta sa Google servera i sada se serviraju sa istog domena, a pravila za njih upisana su direktno u zaglavlje strane, pa prvi prikaz ne čeka nijedan dodatni fajl sa stilovima. Četiri izdanja fonta koja se stvarno koriste najavljuju se brauzeru unapred, da ih ne otkriva tek kada naiđe na prvi tekst. Bočna korist prelaska na sopstveni domen: nijedan zahtev ne odlazi trećoj strani pre nego što posetilac išta klikne.

Porodica ikonica prošla je isti put — sa tuđe mreže na naš server, jer ikonica koja stiže sa strane koja je trenutno spora nije ikonica nego prazan kvadrat.

Ispred PHP-a stoji nginx sa kešom gotove strane. Odgovor se čuva sat vremena, a ako PHP iz bilo kog razloga zakaže, posetilac dobija poslednju ispravnu verziju umesto greške. Keš se osvežava u pozadini i zaključava se dok se sprema, pa deset istovremenih poseta na hladan keš ne pravi deset istih poslova.

Mereno u maju 2026, posle prvog kruga popravki: desktop 96/100/100/100 i mobilni 73/100/100/100. Taj broj na mobilnom nije lep i nema svrhe ga ulepšavati — glavni teret je skripta za analitiku, koja je najveći pojedinačni fajl na strani. Odlaganje njenog učitavanja do prve interakcije podiglo bi ocenu, ali dira u trenutak u kome se traži pristanak za kolačiće, pa nije urađeno na brzinu. Fontovi i ikone su u međuvremenu prebačeni lokalno, što je taj teret smanjilo.

Kartice koje su nestajale na telefonu

Najzanimljiviji kvar na ovom sajtu nije se video ni u kodu ni na računaru.

Kartice usluga, vrste drveta i ostali blokovi ulaze u prikaz uz blago klizanje odozdo. To radi posmatrač koji javlja kada element uđe u vidno polje. Bio je podešen tako da se javi tek kada element bude vidljiv desetinom svoje visine — što zvuči razumno i u devedeset devet posto slučajeva jeste.

Problem nastaje kod skokovitog skrola. Kada posetilac klikne stavku u meniju, pritisne dugme za kraj strane ili munjevito prevuče prstom po telefonu, niska kartica ume da se parkira na osam posto vidljivosti. Posmatrač tada ne dobije nijedan poziv — jer prag nije pređen — pa kartica ostaje potpuno providna. Zauvek, dok se strana ne osveži. Na strani koja se cela obilazi preko sidara iz menija to nije redak slučaj nego uobičajen način kretanja.

Rezultat je bio da su na telefonu dve kartice ostajale nevidljive. Klijent takvu stvar ne prijavi kao grešku — on vidi stranu na kojoj nešto fali i ne zna šta.

Popravka je bila dvodelna: prag spušten na nulu, i u istom pozivu prolaz kroz sve još neotkrivene blokove sa pravilom da se otkriju i ako su već prošli iznad ekrana. Provereno posle toga na živom sajtu — nijedan blok ne ostaje sakriven. Vredi zapamtiti i kako se ovo uopšte našlo: fini skrol od dvesta piksela ne reprodukuje kvar. Mora se skakati.

Ono što niko ne bi prijavio

Sajt prolazi kroz redovne provere. Nekoliko nalaza sa njih govori više od bilo kakvog obećanja o održavanju, jer nijedan od njih klijent ne bi mogao da primeti.

  • Adrese koje su lagale da postoje. Zahtevi za fajlovima kojih na sajtu nema — servisni radnik, oglasni fajl, slika za deljenje kada je nije bilo — vraćali su celu naslovnu stranu sa odgovorom „u redu". Za pretraživač je to strana koja postoji, pa se indeksira duplikat naslovne pod tuđim imenom. Sada svaka od tih adresa vraća pravu grešku ili pravi fajl.
  • Sajt koji je radio samo delu posetilaca. Domen je imao IPv6 adresu, a server je za ovaj sajt slušao samo na IPv4. Posetioci sa mreža koje prvo probaju IPv6 padali su na tuđi podrazumevani sertifikat i dobijali upozorenje pregledača. Za njih je sajt izgledao kao da je provaljen, a za sve ostale je radio besprekorno. Rešeno dodavanjem listen [::]:443 ssl u konfiguraciju.
  • Merenje pre pristanka. Analitika je bila postavljena bez podrazumevanog odbijanja, dakle merila je pre nego što posetilac išta klikne. Dodat je pun režim pristanka po standardu Consent Mode v2 sa odbijanjem kao polaznim stanjem.
  • Kontrast koji se vidi na suncu. Glavno dugme i traka za kolačiće imali su boje na kojima beli tekst nije prolazio prag čitljivosti. Dugme je pomereno na tamniju crvenu, traka na tamniju zelenu. To nije akademska tema za čoveka koji gleda telefon napolju, pored pokvarenog auta.

Uz to: četiri greške u W3C proveri svedene su na nulu, ikone su generisane iz jednog vektorskog izvora u sve formate koje uređaji traže, dodat je manifest za dodavanje na početni ekran telefona i fajl sa kontaktom za prijavu bezbednosnih propusta. Godina u futeru je upisana ručno, a ne računata iz datuma na serveru.

SEO, schema i vidljivost

Naslov strane u rezultatu pretrage nosi sve tri usluge i grad, jer strana i jeste jedina adresa za sva tri posla. Opis ide dalje i imenuje vrste drveta i oba područja.

Strana nosi sedam blokova strukturisanih podataka. Firma je opisana sa adresom, koordinatama, radnim vremenom i područjem koje pokriva. Uz to idu podaci o sajtu, o organizaciji, o bukvi kao proizvodu, pitanja i odgovori, putanja kroz sekcije i šlepovanje kao zasebna usluga sa spiskom mesta. Pitanja i odgovori nisu ukras — to su doslovno pitanja koja se postavljaju telefonom, ista koja se čuju na drugoj strani veze.

Mapa sajta ima tačno tri adrese: naslovnu i dve pravne strane. Ranije je sadržala i adrese sa tarabom — sidra unutar iste strane. Sidro nije adresa i u mapi nema šta da traži, jer se ista strana prijavljuje pretraživaču nekoliko puta pod različitim imenima. Fajl sa pravilima za robote propušta i pretraživače veštačke inteligencije, a zabranjuje samo strane za održavanje.

Domen je potvrđen u Google Search Console-u preko DNS zapisa, a ne preko fajla na sajtu — potvrda koja ne može da nestane pri sledećem objavljivanju. Jezik je označen kao srpski, sa alternativama za srpsko govorno područje i podrazumevanom verzijom, i sa jednom kanonskom adresom.

Granica ovakvog pristupa je poštena i vredi je znati unapred: jedna strana može da rangira za onoliko koliko jedna adresa može. Ako šlepovanje jednog dana preraste ostatak posla, ta sekcija postaje sopstvena strana, a sidro sa nje vodi dalje. To je izmena od pola dana, ne nov sajt.

Šta klijent na kraju ima

Jednu adresu koja je njegova, sa punim setom bezbednosnih zaglavlja, sertifikatom pod automatskom obnovom i kodom koji stoji na serveru i može se prekopirati i preseliti. Nema mesečne pretplate platformi, nema dodataka koji se raspadnu pri sledećem ažuriranju, nema panela koji se otvara dvaput godišnje.

Praktično, dan izgleda ovako. Neko u septembru traži ogrevno drvo u Leskovcu, otvori stranu sa telefona, pročita razliku između bukve, hrasta i graba, vidi da se dostavlja na metar i da istovar radi firma — i pozove. Neko drugi ostane bez auta na putu za Bojnik, ukuca šlep službu, dobije stranu koja se otvara odmah i traku sa brojem pri dnu ekrana — i pozove. Treći traži kamion za robu i vidi da se pokriva cela Srbija, pa pozove i on. Sva tri poziva stižu na isti telefon, jer je to jedini kanal koji ova firma stvarno koristi.

Pravne strane su napisane za ovaj posao, a ne prekopirane sa tuđeg sajta, i tekst na njima odgovara onome što sajt stvarno radi.

Sajt je i dalje u aktivnom održavanju. Ono što se menja, menja se na živom sajtu, uz rezervnu kopiju pre svake izmene i proveru u pravom pregledaču posle nje. Na ovom projektu se to isplatilo bar tri puta — kartice koje nestaju samo pri skokovitom skrolu, sertifikat koji vidi samo deo posetilaca i adrese koje vraćaju naslovnu umesto greške ne mogu se naći čitanjem koda. Nađu se samo kada se sajt stvarno otvori i izmeri.

// Sajt uživo

Ivković Prevoz

Ogrevno drvo na metar sa dostavom i istovarom, kamionski prevoz po Srbiji i šlep služba za Leskovac, Lebane i okolinu.

ivkovicprevoz.rs

Često postavljana pitanja

Zašto jedna strana, a ne sajt sa više strana?
Zato što firma ove veličine menja sadržaj nekoliko puta godišnje. Pet tankih strana koje dele isti telefon i isti opseg posla otimaju se međusobno u pretrazi, a vlasniku znače pet mesta koja mogu da se raziđu. Jedna strana sa jakim sekcijama drži sav signal na jednoj adresi i uvek je tačna.
Zašto sajt nema kontakt formu?
Zato što se ovaj posao ugovara telefonom. Cena drveta zavisi od količine i razdaljine, a šlepovanje se traži onda kada niko ne čeka odgovor na mejl. Forma bi obećavala odgovor koji ne bi stizao. Umesto nje na strani postoji deset mesta sa kojih se zove, a na telefonu i traka sa brojem koja se ne gubi pri skrolu.
Kako jedna strana može da se nađe i za drvo, i za prevoz, i za šlepovanje?
Tako što svaka usluga ima svoju punopravnu celinu sa sopstvenim naslovima, a ne pasus. Naslov i opis strane pokrivaju sve tri usluge i grad, a šlepovanje je i u strukturisanim podacima izdvojeno kao zasebna usluga sa spiskom mesta koja se pokrivaju.
Zašto na sajtu nema fotografija?
Zato što ih u trenutku izrade nije bilo u upotrebljivom obliku, a strana je morala da se otvara brzo na slaboj vezi. Pozadina prvog ekrana je vektorska ilustracija upisana u stil, ostalo su ikone. Kada prave fotografije radova budu postojale, one su prva stvar koja na ovaj sajt treba da uđe.
Može li vlasnik sam da menja sadržaj?
Ne, i to je namerno. Sadržaj se menja nekoliko puta godišnje — kada se doda usluga ili promeni radno vreme. Admin panel za takav ritam košta više nego što vredi, pa izmene idu kroz nas, uz rezervnu kopiju pre svake.
Šta ako posao poraste — može li se ovakva strana razdvojiti?
Može. Svaka sekcija je već zaokružena celina sa svojim naslovima i svojim sidrom, pa se izdvajanje u zasebnu stranu radi bez ponovnog pisanja sadržaja. Sidro sa naslovne ostaje i vodi na novu stranu, tako da nijedan podeljen link ne prestaje da radi.

Treba vam ovakav sajt?

Recite mi čime se bavite i šta sajt treba da uradi za vas — dobijate fiksnu ponudu i rok, u pisanoj formi.

Pozovi