// Studija slučaja

AutoSet Niš — sajt za autostakla sa osam strana za lokalnu pretragu

Čovek kome je kamen pukao vetrobran ne pretražuje dugo. Ukuca „zamena vetrobrana Niš", otvori prvi sajt koji se brzo učita i pozove broj koji vidi na ekranu. Ovaj sajt je pravljen tačno oko te scene — od toga kako su podeljene strane do toga koliko dugo se učitava na mobilnom internetu.

Klijent
AutoSet Niš
Delatnost
Autostakla — prodaja, ugradnja, zamena, reparacija
Područje
Niš i okolina
Tip
Višestrani sajt sa osam strana za lokalnu pretragu
Tehnologije
HTML · PHP 8.3 · nginx · PHPMailer · Consent Mode v2
Sajt
autoset.rs
Status
Živ sajt, u održavanju
Naslovna strana sajta AutoSet Niš
Naslovna — naslov i jedna rečenica o firmi, pa usluge i kontakt

Čime se AutoSet bavi

AutoSet je servis i prodavnica autostakala u Nišu. Radi od 2005. godine, kako stoji na strani o firmi. Prodajni prostor i radionica su na Matejevačkom putu 24 u Nišu, sedište je u Svrljigu, a posao je uzak i jasan: vetrobrani, bočna i zadnja stakla, stakla za kombije, kamione i autobuse — prodaja, ugradnja, zamena i reparacija.

To je delatnost u kojoj kupac gotovo nikad ne planira posetu. Kamen sa auto-puta udari u vetrobran u sredu ujutru, ili vozilo osvane obijeno i bez bočnog stakla. Čovek uzme telefon, ukuca uslugu i grad, otvori prvi sajt koji se učita i pozove broj. Između njegovog problema i poziva stoji manje od minuta, i ceo sajt je građen za tih manje od minuta.

Pun pregled ponude stoji na strani sa uslugama, a svaka od osam usluga dobila je svoju stranu. Firma na sajtu navodi garanciju od pet godina na staklo i rad, vođenje prijave štete kod osiguravajuće kuće i izlazak na teren po dogovoru u Nišu i okolini. To su njihovi uslovi i tako su preneti — sajt ih iznosi, ne izmišlja.

Šta je trebalo rešiti

Zadatak nije bio „napravi prezentaciju firme". Sajt je morao da uradi četiri konkretne stvari:

  • Da se nađe na lokalnoj pretrazi. Ne po reči autostakla, gde se takmiči cela Srbija, nego po upitima koji u sebi nose i uslugu i grad.
  • Da telefon bude na dohvat prsta. Čovek sa pukotinom preko pola vetrobrana ne popunjava formu — on zove. Broj mora da bude vidljiv na svakom ekranu i klikabilan na telefonu.
  • Da poruka sa forme stvarno stigne. Poruka koja nestane u prolazu je izgubljen posao, a forma bez zaštite se za mesec dana pretvori u kantu za smeće.
  • Da se otvara brzo na mobilnom internetu. Najveći deo poseta dolazi sa telefona, često sa puta i sa vezom kakva se zatekne.

Peta stavka je stigla mnogo kasnije i nema veze sa javnim sajtom: lager stakala od preko sedamsto stavki živeo je u knjigovodstvenom programu, a u radnji je trebalo da bude na ekranu, pretraživ, dok kupac stoji za pultom. O tome je posebna sekcija pri dnu.

Struktura — osamnaest strana i čiste adrese

Sajt ima osamnaest strana. Četiri su nosive: naslovna, usluge, o nama i kontakt. Osam je odvojenih strana za pojedinačne usluge, a uz njih idu cene, česta pitanja, zakazivanje i jedan savet za vozače. Dve su pravne — politika privatnosti i uslovi korišćenja. Nema bloga, nema vesti, nema sekcije koja se popuni jednom pa zauvek stoji sa prošlogodišnjim datumom.

Naslovna ispod naslova nosi jednu rečenicu: Svakoga dana hiljade ljudi gleda svet kroz stakla koja je ugradio AutoSet. Ispod nje idu četiri kratke oznake — godine iskustva, garancija, izlazak na teren, Google ocena — pa blok Zašto AutoSet? sa šest kartica, pa preporuke sa Google profila, česta pitanja i kontakt sa mapom i dve telefonske linije. Meni ima šest stavki, a usluge su u padajućem spisku, jer ih je osam.

Tehnički, strane su PHP fajlovi sa zajedničkim zaglavljem i podnožjem, ali adrese nemaju nastavak — /usluge, a ne /usluge.php. To radi server: try_files traži tačan fajl, pa PHP verziju, a stare adrese sa .html trajno preusmerava na adresu bez nastavka. Korist se videla u septembru 2026, kada su sve strane prepisane iz HTML-a u PHP: adrese su ostale iste i stari linkovi i dalje vode na prave strane.

Četiri strane za četiri pretrage

Ovo je deo koji je AutoSetu najviše vredeo. Jedna strana usluge na kojoj se pomene sve ne rangira ni za šta, jer nema o čemu da bude najbolja. Zato su napravljene četiri odvojene strane, svaka za jedan upit koji čovek stvarno ukuca:

  • Zamena vetrobrana Niš — postupak u tri koraka od ponude do kontrole zaptivanja, spisak marki za koje se vetrobrani nabavljaju, i pitanja koja se najčešće postavljaju: koliko traje, koliko se čeka pre vožnje, kako ide preko osiguranja.
  • Reparacija vetrobrana Niš — dve liste jedna pored druge, šta se može popraviti i šta traži zamenu, pa tabela koja poredi reparaciju i zamenu po ceni, po vremenu i po tome kada je vozilo spremno za vožnju, pa tri koraka postupka sa smolom i UV lampom.
  • Auto stakla Niš — ponuda po tipu stakla i po marki vozila, sa razlikom između originalnog i zamenskog stakla objašnjenom rečima koje kupac razume.
  • Bočna stakla Niš — prednja i zadnja bočna, fiksna trokutasta, stakla za stubove karoserije i za klizna vrata kombija.

Svaka od njih nosi svoja pitanja i odgovore, a u strukturisanim podacima opis usluge i mrvice. Najviše saobraćaja nose dve: zamena vetrobrana, jer je to najskuplji i najhitniji zahvat, i reparacija vetrobrana, jer većina ljudi ni ne zna da se mali krater može popraviti umesto da se menja celo staklo. Tabela poređenja na toj strani nije marketing — ona zapravo odgovara na pitanje sa kojim čovek dolazi.

Danas ima osam strana za usluge, uz ove četiri još zadnja stakla, stakla za kamione i kombije, izlazak na teren i zamena preko osiguranja. Sve su u mapi sajta, pravne strane nisu, jer nose oznaku da se ne indeksiraju, a domen je u Google Search Console-u verifikovan kao domenska svojina preko DNS zapisa, što je najjača verifikacija koja postoji. Sajt je uveden i u Bing Webmaster Tools sa istom mapom.

Telefon, forma i to da poruka zaista stigne

AutoSet ima četiri linije — jednu fiksnu i tri mobilne. Na sajtu stoje dve, fiksna i mobilna, u podnožju svake strane i u kontakt bloku, i obe su klikabilne na telefonu. Broj unutar veze ne sme da ima razmake, inače se na nekim telefonima poziv ne pokrene — sitnica koja se otkrije tek kad neko pokuša da pozove sa sajta.

Forme stoje na strani sa kontaktom i na strani za zakazivanje: ime, telefon, mejl i poruka, a na zakazivanju još vozilo, vrsta stakla, osiguranje i fotografija oštećenja, uz potvrdu o privatnosti. Iza obe je jedan PHP fajl koji, posle zajedničke zaštite sa nevidljivom proverom, radi tri odvojene provere pre nego što uopšte pokuša da pošalje poštu.

  • Mamac. U svakoj formi postoji skriveno polje koje pravi posetilac nikad ne vidi ni popuni. Ako je popunjeno, poruka se odbacuje.
  • Filter linkova. Ako telo poruke sadrži adresu sajta, oznaku za link ili punycode domen, poruka se tiho odbacuje, a pošiljalac dobije uobičajenu potvrdu. Bot koji ne dobije grešku ne pokušava ponovo drugačije.
  • Kočnica po IP adresi. Najviše tri poruke na sat sa iste adrese.

Kočnica broji svaki pokušaj koji prođe proveru polja, i onaj kod kog slanje ne uspe, pa čovek koji pogreši mejl dobije opis greške i ne troši pokušaj.

Pošta ne ide kroz ugrađenu funkciju jezika nego kroz PHPMailer i pravi nalog za slanje sa autentikacijom, preko šifrovane veze na portu 587. Razlog je prizeman: poruka koju veb server ispali iz sebe nema ni potpis ni istoriju i završava u nepoželjnoj pošti, a poruka poslata kroz nalog na domenu prolazi kroz SPF, DKIM i DMARC proveru i stiže u sanduče. Poslednja provera pravom porukom potvrdila je dostavu, sa odgovorom servera 250.

Kolačići, pristanak i merenje

Baner za kolačiće nije nalepljen preko sajta nego dolazi iz zajedničkog uključivanja koje deli više mojih sajtova, pa se održava na jednom mestu. Za AutoSet je prebojen u njihovu paletu — svetloplava sa naglascima, isti font kao ostatak sajta.

Bitan je redosled, ne izgled. Google Consent Mode v2 postavlja podrazumevani odgovor na odbijeno pre nego što se učita bilo šta Google-ovo. Merenje se pali tek posle klika na prihvatanje. Baner nudi i Samo neophodni, izbor se pamti i poštuje pri sledećoj poseti, a analitika se ne pokreće dok pristanka nema.

Jedan detalj odatle pokazuje kako sitnice ulaze u kod. Prebojavanje banera je prvobitno stajalo kao stil upisan direktno u telo strane — radi u brauzeru, ali W3C provera na tome javlja grešku. Izvučeno je u zaseban fajl koji ne blokira prvi prikaz: ista boja, jedna greška manje.

Brzina — merač koji ne blokira prvi prikaz

Na ovom sajtu plafon brzine nije bio ni slika ni kod, nego Google Tag Manager. Šezdesetak kilobajta skripte koju posetilac ne koristi, a koja se izvršava dok on čeka da vidi tekst. Na testu preko usporene mobilne veze to se videlo kao vreme u kojem strana ne reaguje na dodir.

Rešenje je odloženo učitavanje: skripta za merenje se povlači tek posle prve radnje posetioca — skrola, klika, dodira ili pritiska tastera — ili posle pet sekundi, šta pre dođe. Podrazumevano odbijanje pristanka ostaje pre svega toga, pa se redosled saglasnosti ne narušava.

Mereno pre i posle, na mobilnom Lighthouse profilu: ocena performansi sa 74 na 86, ukupno vreme blokiranja sa 368 na 54 milisekunde, najveći prikaz sadržaja sa 4,7 na 4,1 sekundu, pomeranje rasporeda ostalo na nuli. Provera preko Google-ovog živog alata dala je mobilni 76 i desktop 95, uz stotku za pristupačnost, dobru praksu i SEO na oba.

Pošteno je reći i ono što se u tim brojevima ne vidi: sajt nema podatke o stvarnim posetiocima u Google-ovoj bazi merenja, jer nema dovoljan obim saobraćaja. Ocene su simulirane — valjan pokazatelj, ali ne i merenje na hiljadama pravih poseta. Slike i fontovi stoje u godišnjem kešu, stilovi i skripte u nedeljnom.

Kod, bezbednost i pošta

Pun prolaz kroz W3C proveru na svih deset strana krenuo je sa dvadeset sedam grešaka i završio na nuli. Nisu bile dramatične — razmaci unutar telefonske veze, naslov četvrtog nivoa bez trećeg iznad sebe, pogrešno ugnežđen blok, pomenuti stil u telu strane. Nijedna od njih ne obara sajt. Sve zajedno su razlika između koda koji je neko pregledao i koda koji je neko samo pustio da radi.

Na nivou servera: prelazak na šifrovanu vezu je trajno preusmerenje, adresa sa www vodi na osnovnu uz očuvanu putanju, sertifikat se obnavlja sam. Zaglavlja koja brauzeru govore šta sme a šta ne — HSTS, zabrana ugnežđivanja u tuđi okvir, zabrana pogađanja tipa sadržaja, izolacija prozora — postavljena su i proverena. Skriveni fajlovi i rezervne kopije se ne serviraju. Ocena spoljne provere šifrovane veze je najviša.

U DNS zapisima domena stoji ograničenje koje izdavaocima sertifikata izričito kaže ko sme da izda sertifikat za ovaj domen, sa adresom za prijavu pokušaja. Pošta ima SPF, DKIM i DMARC, a politika je pomerena sa karantina na odbijanje — poruka koja se lažno predstavlja kao AutoSet ne završava u nepoželjnoj pošti nego se odbija na ulazu. To nije sitnica za firmu koja sa svog domena šalje ponude i prima upite.

Kvar koji se vidi samo na telefonu

U julu 2026. sajt je prošao kroz kontrolu u pravom pregledaču — svih jedanaest adresa, na desktop širini i na telefonu. Konzola čista, nijedan mrtav link, nijedna polomljena slika, preusmerenja i sertifikat u redu. Ali na četiri strane sa uslugama, u opsegu širina između 384 i 797 piksela, strana je imala vodoravni preliv, a bočna kolona sa cenovnikom, prednostima i hitnom pomoći je bila potpuno van ekrana. Nevidljiva. Na najvažnijim stranama sajta, na širini na kojoj gleda većina posetilaca.

Uzrok je bio jedan nasleđen red u stilovima. Bočna kolona je na užim ekranima prelazila iz reda u kolonu, ali pravilo o prelamanju iz šireg opsega nije bilo poništeno. U kolonskom rasporedu osnovna veličina se odnosi na visinu, ne na širinu, pa je svaki blok dobio sopstvenu vodoravnu kolonu i otišao van ivice ekrana.

Popravka je bila dva reda: zabrana prelamanja i osnovna veličina po sadržaju umesto pune. Uz to je na strani sa bočnim staklima rešeno i razvlačenje mreže na desktopu, gde je red od pet koraka postupka gurao kolonu preko njene širine.

Pouka je opštija od ovog sajta: prelazak sa reda na kolonu unutar upita za medij ne poništava pravilo o prelamanju iz šireg opsega — mora se izričito ugasiti. I još važnije, ovakav kvar ne postoji ni u jednoj automatskoj oceni. Lighthouse na toj strani i dalje daje visoku ocenu. Vidi se samo kada neko stvarno otvori sajt na telefonu i pokuša da nađe cenovnik.

Panel za lager — poseban posao

Javni sajt je jedna stvar. U avgustu 2026. dodat je drugi deo koji sa njim nema veze: interni panel na sopstvenom poddomenu, iza prijave, u kojem stoji lager stakala od 713 stavki i kalendar zakazivanja. To je alat za pult u radnji, ne za posetioca.

Knjigovodstvo firme radi u poslovnom programu koji se koristi kroz brauzer, a baza je kod isporučioca. Pre nego što je išta pisano, provereno je da li se dva sistema mogu spojiti direktno. Odgovor je bio ne: javno dokumentovanog servisa za mašinsku razmenu nema, a sedamdesetak strana njihove pomoći ne pominje ništa takvo. Ono što postoji jeste izvoz lagera u tabelu. Znači, most je fajl.

Panel je zato dobio uvoz tabele u tri koraka: otpremanje, mapiranje kolona sa automatskim prepoznavanjem, pa pregled koji pre upisa kaže koliko stavki je novo a koliko izmenjeno. Pre svakog upisa se pravi kopija celog lagera, tako da se pogrešan uvoz može poništiti.

Teško je bilo u podacima, ne u kodu:

  • Šifra nije jedinstvena. Ista šifra postoji dvaput, pod dva različita proizvođača. Ključ spajanja mora biti šifra zajedno sa proizvođačem — inače uvoz spoji dve različite stavke u jednu.
  • Kad fajl nema kolonu proizvođača, proizvođač mora da ispadne iz ključa — i to sa obe strane, i iz fajla i iz baze. Ako ispadne samo sa jedne, svaka stavka izgleda kao nova i jedan jedini uvoz udvostruči ceo lager.
  • 94 od 713 stavki nema naziv, samo šifru. Prva verzija uvoza ih je tiho preskakala, jer je naziv bio postavljen kao obavezan. Sada je red upotrebljiv ako ima naziv ili šifru.

Kontrola je usput našla i zatečen kvar koji je tiho gutao podatke: tabela je cene prikazivala zaokruženo, a prozor za izmenu je te zaokružene brojeve čitao nazad iz ćelija tabele i upisivao u bazu. Izmena bilo kog polja jedne stavke trajno je gubila decimale — 1234,75 postane 1235. Popravka je bila da izvorne vrednosti stoje uz red, a da izmena čita njih, ne ono što je nacrtano na ekranu.

Panel je zatim testiran pravim klikom miša, ne programskim, i ta razlika je otkrila dve stvari. Prva: podnožje prozora za uvoz se nije moglo doskrolovati — na maksimizovanom laptopu od 1366 piksela dugme Dalje je bilo 189 piksela ispod ivice ekrana, a ništa nije skrolovalo. Uvoz je bio neupotrebljiv na najčešćem laptopu u radnji, a programski poziv klika svejedno prolazi jer zaobilazi proveru vidljivosti; automatski test bi rekao da sve radi. Druga: lebdeća oznaka „Sinhronizovano" je gutala klik — vizuelno bezazlena, ali je primala klikove, pa dugmad Izmeni i Obriši ispod nje nisu reagovala, bez greške i bez traga. Razmak ispod tabele tu ne pomaže; jedini lek je da oznaka prestane da prima klik.

Bezbednosni pregled je najozbiljniji nalaz našao u samom uvozu. XLSX je zapravo arhiva, pa fajl od 1,84 megabajta može da se raspakuje u 529 megabajta u memoriji i obori radnika servera, a sa njim i ostale sajtove iz istog skupa. Ograničenje broja redova ne pomaže, jer se primenjuje tek nad već izgrađenim stablom — provera se sada radi pre čitanja, nad prijavljenom veličinom i nad odnosom sažimanja. Sve to pokrivaju testovi koje panel nosi sa sobom: 129 provera nad podacima i 43 preko mreže, uključujući i namerno napravljenu arhivu-bombu.

Šta klijent na kraju ima

Sajt od osamnaest strana, od kojih je osam usmereno tačno na pretragu koju čovek radi sa pukotinom na vetrobranu. Strane indeksirane, sa mrvicama koje se vide u rezultatima. Forme koje stižu u sanduče, sa više slojeva zaštite ispred sebe. Dve telefonske linije koje se biraju jednim dodirom.

Javni sajt namerno nema sistem za uređivanje sadržaja i to je odluka, ne propust. Osamnaest strana bez baze nema šta da se pokvari, nema dodatke koji se raspadnu pri sledećem ažuriranju i nema prijavu koju neko sa strane može da pogađa. Sadržaj se menja retko — telefon, radno vreme, opis usluge — i te izmene idu preko mene, sa rezervnom kopijom pre svake i sa kodom koji stoji u privatnom repozitorijumu.

Alat koji klijent koristi svakog dana je drugi: panel sa lagerom i kalendarom, sa uvozom iz knjigovodstva kad stigne nov izvoz. Sedamsto stavki se pretraži za sekundu, cena se vidi tačna do dinara, a nova isporuka ulazi kroz jednu tabelu umesto kroz sedamsto ručnih unosa.

Podela je namerna. Sajt radi za nekoga ko AutoSet još ne poznaje. Panel radi za nekoga ko u AutoSetu radi. To su dva različita posla i nisu ni trebalo da budu ista aplikacija.

// Tehnički rezultati

Kako živi sajt stoji na merenjima

Izmereno
Performanse na mobilnom
100 od 100
Performanse na računaru
100 od 100
100 od 100 Performanse
100 od 100 Pristupačnost
100 od 100 Dobre prakse
100 od 100 SEO
  • Najveći sadržaj (LCP) 1,4 s
  • Blokiranje glavne niti (TBT) 12 ms
  • Pomeranje rasporeda (CLS) 0,006
  • Prvi sadržaj (FCP) 1,2 s
  • Indeks brzine 1,2 s
100 od 100 Performanse
100 od 100 Pristupačnost
100 od 100 Dobre prakse
100 od 100 SEO
  • Najveći sadržaj (LCP) 337 ms
  • Blokiranje glavne niti (TBT) 0 ms
  • Pomeranje rasporeda (CLS) 0,016
  • Prvi sadržaj (FCP) 281 ms
  • Indeks brzine 314 ms

Stvarni posetioci (Chrome UX Report)

Sajt još nema dovoljno poseta za Google-ov javni uzorak sa terena, pa su prikazana samo laboratorijska merenja.

Bezbednosna zaglavlja

  • HSTS
  • Politika sadržaja (CSP)
  • X-Content-Type-Options
  • Referrer-Policy
  • Permissions-Policy
  • Zaštita od uokviravanja

SSL ocena

A+

testssl.sh

Validan HTML

0

grešaka, W3C Nu HTML Checker

Pristupačnost

0

kršenja WCAG 2.2 AA, axe-core

Strukturirani podaci

AutoPartsStore · AutoRepair · WebPage · WebSite

0 grešaka u obaveznim poljima

PageSpeed izveštaj, mobilni uređaj za autoset.rs, 24.09.2026.
PageSpeed izveštaj, mobilni uređaj
PageSpeed izveštaj, računar za autoset.rs, 24.09.2026.
PageSpeed izveštaj, računar

Google PageSpeed Insights (Lighthouse), medijana tri uzastopna merenja po uređaju. Ocene se razlikuju od merenja do merenja. Izmeri ponovo

// Sajt uživo

AutoSet Niš

Autostakla za sve marke vozila — prodaja, ugradnja, zamena i reparacija u Nišu i okolini.

autoset.rs

Često postavljana pitanja

Zašto javni sajt nema sistem za uređivanje sadržaja?
Zato što bi koštao više nego što bi vredeo. Sadržaj se na ovakvom sajtu menja nekoliko puta godišnje — telefon, radno vreme, opis usluge. Statične strane nemaju dodatke koji se raspadnu pri ažuriranju ni prijavu koju neko može da pogađa. Izmene idu preko mene, sa rezervnom kopijom pre svake.
Zašto odvojene strane za usluge umesto jedne strane sa uslugama?
Zato što strana koja govori o svemu ne rangira ni za šta. Čovek u pretragu ne kuca samo reč autostakla, nego uslugu i grad zajedno. Svaka od osam strana odgovara na jedan takav upit i ima svoj postupak, svoja pitanja i svoj naslov. Zbirna strana sa uslugama i dalje postoji, ali kao pregled, ne kao ulaz iz pretrage.
Da li poruka sa kontakt-forme stvarno stiže?
Stiže, i to je provereno pravom porukom sa potvrdom prijema od servera. Pošta ne ide preko ugrađene funkcije jezika nego preko naloga na domenu, sa autentikacijom i šifrovanom vezom, pa prolazi sve tri provere identiteta pošiljaoca. Bez toga poruka najčešće završi u nepoželjnoj pošti.
Zašto baner za kolačiće kad se preko sajta ništa ne prodaje?
Zato što sajt meri posete, a merenje se oslanja na kolačiće. Baner nudi i odbijanje, a merenje je podrazumevano isključeno sve dok posetilac ne pristane. Redosled je bitan koliko i sam baner: odbijanje se postavlja pre nego što se učita bilo šta Google-ovo.
Kako lager iz knjigovodstva stiže u panel?
Kroz izvoz u tabelu. Knjigovodstveni program nema javno dokumentovan način mašinske razmene, pa je most fajl: izvoz iz njega, uvoz u panel uz mapiranje kolona i pregled pre upisa. Pre svakog upisa se pravi kopija celog lagera, tako da se pogrešan uvoz može poništiti.
Da li se ovakav sajt može proširiti kasnije?
Može, i već jeste — četiri strane za usluge su dodate posle prve verzije, a panel za lager godinama kasnije. Adrese su bez nastavka baš zato: kada su u septembru 2026. sve strane prepisane u PHP, adrese su ostale iste.

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