Trubači Stars — sajt trubačkog orkestra za slavlja u celoj Srbiji
Orkestar koji svira na slavama, krštenjima i rođendanima ne prodaje proizvod iz kataloga. Kupac zove telefonom i pita dve stvari: da li ste slobodni tog datuma i koliko košta. Ceo sajt je građen oko ta dva pitanja — sto pet strana, nijedna forma i broj koji je uvek na dohvat palca.
- Klijent
- Trubači Stars (Stefan Tenor)
- Delatnost
- Trubački orkestar za slavlja i svadbe
- Područje
- Leskovac, Niš, Beograd — cela Srbija
- Tip
- Višestrani sajt, 105 adresa
- Tehnologije
- PHP 8.3 · nginx · deljeni includes · JSON-LD
- Sajt
- trubacizaslavlja.rs
- Status
- Živ sajt, u aktivnom održavanju
U ovom tekstu
- Čime se Trubači Stars bave
- Šta je trebalo rešiti
- Struktura — 105 adresa u tri sloja
- Dva domena, dve namere
- Poziv umesto forme
- Cenovnik koji objašnjava cenu umesto da je krije
- Padeži gradova — šezdeset puta ista greška
- Ocena koje nije bilo
- Pomeranje koje se videlo samo na hladnoj poseti
- SEO, schema i mašine koje čitaju umesto ljudi
- Šta klijent na kraju ima
Čime se Trubači Stars bave
Trubači Stars su trubački orkestar iz Leskovca. Vodi ga Stefan Tenor, a sastav se prilagođava prilici — od tri do osam muzičara, sa trubom, tubom, dobošem, tenor hornom i baritonom. Na sajtu stoji da orkestar svira više od petnaest godina i da iza sebe ima preko petsto nastupa; to su njihove brojke, ne naše merenje.
Posao je sezonski i vezan za kalendar. Slave, krštenja, rođendani, mature, ispraćaji u vojsku, serenade, veridbe, jubileji, otvaranja lokala, dočeci Nove godine, sahrane — i svadbe, koje su ceo svoj deo priče. Svaka prilika ima svoj običaj i svoj repertoar: Đurđevdan se ne svira kao ispraćaj, a slavski ustajanje ne liči na kolo u dva ujutru. Sedište je u Leskovcu i Jablaničkom okrugu, ali orkestar putuje po celoj Srbiji, a prevoz je uračunat u cenu.
Tu se ovaj posao razlikuje od prodavnice. Nema korpe, nema porudžbine, nema kataloga sa dugmetom „kupi". Postoji datum koji je ili slobodan ili nije, i cena koja se dogovara u razgovoru. Sajt zato nema zadatak da proda — ima zadatak da čoveka koji traži trubače u svom gradu, za svoju priliku, dovede do telefonskog broja u što manje koraka.
Šta je trebalo rešiti
Sajt nije nastao kao jedan zadatak nego kao niz prolaza kroz 2026. godinu. Svaki je počinjao merenjem, ne pretpostavkom, i svaki je našao nešto što se sa strane ne vidi:
- Kontakt forma koja je slala u prazno. Forma na kontakt strani gađala je fajl koji na serveru ne postoji — server je vraćao 404, a upit nije stizao nigde. Koliko je dugo tako radila, ne može se utvrditi. Kasnije je ista forma, kad je popravljena, korisniku ispisivala sirov JSON odgovor umesto poruke da je upit poslat.
- Dva domena istog vlasnika koji se otimaju o iste upite. Vlasnik ima i sestrinski domen. Oba su nudila i svadbe i slavlja, na šezdeset gradskih strana oba sajta stajao je identičan H1, a jedina prava prijava sa forme stigla je na ovaj sajt — i to za svadbu.
- Ocena koje nije bilo. U strukturiranim podacima stajala je prosečna ocena 5 od 127 glasova, bez ijedne prikazane recenzije koja bi je pokrivala i bez Google profila iza nje.
- Pomeranje rasporeda pri prvom otvaranju koje Googleova laboratorija nije videla, a pravi brauzer jeste.
- Broj u reklami i broj na sajtu nisu bili isti. Orkestar ima dve linije, a reklama je vodila na jednu, sajt na drugu.
Uz to je išao jasan zahtev vlasnika: fokus na poziv i poruku, forma da se skloni. Njemu je telefon radni alat, a upit koji stigne na mejl i čeka pola dana je izgubljen termin.
Struktura — 105 adresa u tri sloja
Sitemap danas ima 105 adresa i sve su žive strane, ne generisani prazan sadržaj. Podeljene su u tri sloja.
Jezgro je šest strana koje ljudi otvaraju iz menija: naslovna, o nama, usluge, galerija, cenovnik i kontakt. Naslovna je duga i namerno tako radi — od heroja sa brojem telefona, preko četiri koraka rezervacije, do instrumenata, spiska prilika, utisaka, spiska gradova i pitanja koja stižu najčešće.
Prilike su dvadeset sedam strana, po jedna za svaki povod: slava, krštenje, rođendan, jubilej, matura, serenada, veridba, žurka, sahrana, otvaranje lokala, ispraćaj u vojsku, prvi maj, doček Nove godine, pa i pojedinačne slave — Nikoljdan, Đurđevdan, Aranđelovdan, Jovanjdan, Mitrovdan, Sveti Sava. Uz njih idu i vodiči koji nisu prodajni: slavski običaji i muzika, repertoar za slavu, svadbeni repertoar.
Gradovi su šezdeset strana, od Beograda i Novog Sada do Bujanovca i Bajine Bašte. To je sloj koji nosi najviše dolazaka sa pretrage, jer se trubači traže lokalno — čovek iz Pirota ne kuca „trubački orkestar Srbija" nego „trubači Pirot".
Sve to drži sedam deljenih PHP fajlova u includes/ — zaglavlje, navigacija, podnožje, poziv na akciju i šablon za landing strane. Jedna izmena u head.php stiže na svih sto pet adresa. Bez toga bi svaki popravak bio skripta nad sto fajlova, što je tačno ono kroz šta je prošao sestrinski sajt koji includes/ nije imao.
Dva domena, dve namere
Klijent je u avgustu tražio treći domen, da bi se „bolje rangirao". Umesto da se to uradi, izmereno je šta rade prva dva. Za četrnaest dana: ovaj sajt 167 organskih klikova, sestrinski dvadeset. Za sestrinski Google nije imao ni podatke o pravim posetiocima — sopstvena Googleova potvrda da sajt nema saobraćaj. I najvažnije: za svadbene upite Google je rangirao ovaj sajt, a ne domen koji je za svadbe napravljen.
Treći domen bi ponovio istu grešku. Umesto njega urađeno je razdvajanje namere. Trinaest slavljanskih strana koje su stajale na svadbenom domenu prebačeno je ovamo, a onda i ceo svadbeni sadržaj — sa 301 preusmerenjem sa starih adresa, da se ništa od već stečenog ranga ne izgubi. Sitemap je sa 92 narastao na 105.
Sestrinski domen je zatim izgrađen ispočetka kao nešto potpuno drugo — sajt fokusiran na jedan grad, sa svojom strukturom i svojim ciljem. O njemu piše zasebna studija: Trubači Beograd. Ovde je bitno samo jedno: dva sajta istog vlasnika više ne konkurišu jedan drugom, nego se ukrštaju linkovima.
Detalj koji je zamalo srušio ceo prenos: na serveru je od ranije stajalo pet preusmerenja u suprotnom smeru. Da su ostala, novi 301 lanac bi napravio petlju i obe adrese bi prestale da rade. Uklonjena su pre nego što je novo pravilo pušteno.
Poziv umesto forme
Na celom sajtu danas nema nijedne kontakt forme. To je odluka vlasnika i ona je za ovaj posao ispravna: čovek koji planira slavu za sledeću subotu neće pisati poruku i čekati odgovor, nego zove sledećeg iz Google rezultata.
Umesto forme, sajt ima pet puteva do telefona i svi su isti broj: zlatno dugme sa brojem u zaglavlju, plutajuće dugme za poziv na svakoj strani, lepljiva traka na dnu ekrana telefona sa izborom poziv / Viber / WhatsApp, dugme u heroju i broj u podnožju. Na kontakt strani stoje obe linije orkestra, radno vreme i lokacija. Primarni broj je od kraja jula 061, isti onaj koji je u Google reklami — pre toga je sajt vodio na jednu liniju, a reklama na drugu, pa se nije znalo odakle poziv dolazi. Zamena je prošla kroz 992 mesta u kodu.
Da bi se uopšte znalo koliko poziva sajt donosi, dodat je sopstveni brojač: klik na bilo koji tel: link šalje beacon na /api/track-call.php, koji upisuje vreme, putanju i tip dugmeta u log van webroota. Bez kolačića, bez IP adrese, bez ijednog ličnog podatka. Google analitika radi paralelno, ali tek pošto posetilac pristane — kolačići idu po Consent Mode v2 sa podrazumevanim odbijanjem.
Kad su forme brisane, obrisani su i njihovi serverski handleri i mrtav JavaScript koji ih je slao. Ostao je samo obrazac za lozinku na strani za održavanje, koja sa kontaktom nema veze.
Cenovnik koji objašnjava cenu umesto da je krije
Najčešće pitanje u ovoj branši je cena, a najčešći odgovor konkurencije je „pozovite nas". Zato je cenovnik trubača napravljen kao zasebna strana koja objašnjava mehanizam.
Tri paketa su prikazana i kao kartice i kao uporedna tabela, sa tri kolone: trajanje nastupa, broj muzičara i za koju je priliku paket namenjen. Ispod toga je šest faktora koji cenu pomeraju — udaljenost od Leskovca, trajanje, broj muzičara, dan u nedelji i sezona, tip događaja i posebni zahtevi kao što je učenje nove pesme. Pa način plaćanja, pa garancija, pa deset najčešćih pitanja.
Tabela je namerno bez cifara po paketu, jer ih orkestar nema — cena se sklapa u razgovoru. Ono što strana daje jeste okvir i razlog: čovek zna šta pomera cenu pre nego što digne slušalicu, pa razgovor počinje od konkretnog, a ne od nagađanja.
Ta tabela je i unutrašnji kanon. Iste tri stavke — trajanje, broj muzičara, prilika — moraju se poklapati svuda gde se pominju. Ranije su četiri identične cenovne kartice bile zalepljene na 74 landing strane, bajt za bajt iste, i konkurisale samoj strani cenovnika u pretrazi. Skinute su sa svih osim sa one kojoj su cene tema, a na njihovo mesto je došla lokalizovana napomena i link ka cenovniku.
Padeži gradova — šezdeset puta ista greška
Gradske strane su rađene iz šablona i tu je nastao problem koji nijedan automatski test ne prijavljuje: generator je nastavke lepio na nominativ. Na sajtu je pisalo „u Šabacu" umesto „u Šapcu", „u Indijau" umesto „u Inđiji", „do Ćuprijaa" umesto „do Ćuprije", „Pitanja Zrenjaninana" umesto „Pitanja koja nam stižu iz Zrenjanina".
Ukupno 191 mesto na 58 strana. Za posetioca iz tog grada to je prva rečenica koju pročita i jedini utisak koji mu treba — sajt je stranac koji ne zna kako se njegov grad zove. Popravljeno je tablicom padeža za svih šezdeset gradova, uz zaštitu ručno pisanih naslova koji su već bili ispravni, tipa „Pitanja koja nam Beograđani najčešće postavljaju".
Ista klasa greške bila je i u naslovima strana: Indija umesto Inđije, što je ime države a ne grada u Sremu, pa Knazevac, Sid i Vrnjacka Banja bez dijakritike. Naslov je ono što Google prikazuje u rezultatu — tu se ne štedi.
Zamka koja je iz ovoga naučena: masovna zamena po obrascu trubaci-* zahvatila je i strane koje nisu gradske, pa je strana o trubačima za slavu i njoj slične moralo posebno da se proveri. Posle svake grupne izmene ide provera na stranama koje u šablon ne spadaju.
Ocena koje nije bilo
U strukturiranim podacima sajta stajala je ocena 5,0 na osnovu 127 glasova. Na 76 strana ovog sajta i 82 strane sestrinskog — ukupno 158 mesta. Iza toga nije stajala nijedna prikazana recenzija koja bi je pokrivala, ni Google profil, ni bilo koji izvor koji se može proveriti.
Google to tretira kao neistinite strukturirane podatke i kazna nije upozorenje nego skidanje bogatih rezultata za ceo domen, ručno i bez roka. Ocena je skinuta sa svih 158 strana. Uz nju je skinuta i vidljiva tvrdnja „5/5 ocena klijenata" sa 155 strana, a na njeno mesto je došla činjenica koja se sa cenovnika može proveriti: sastav ima od četiri do osam muzičara.
Detalj koji je posao učinio dužim nego što izgleda: ocena je na dva sajta bila zapisana u dva različita oblika — kao JSON tekst na jednom i kao PHP niz na 47 strana drugog. Jedan izraz za pretragu hvata samo jedan oblik, pa je prvi prolaz ostavio polovinu nedirnutu, a provera po fajlovima je lagala da je čisto dok se nije proverilo ono što server stvarno servira.
Kasnije su skinuta i dva ručno upisana Review bloka sa izmišljenim imenima. Utisci koje je vlasnik dao ostali su na sajtu kao njegov tekst, bez ijedne zvezdice i bez tvrdnje o proseku — jer utisak je utisak, a ocena je podatak koji neko mora da izmeri.
Pomeranje koje se videlo samo na hladnoj poseti
Ovo je bio najteži deo celog posla. Googleov alat je za naslovnu prijavljivao pomeranje rasporeda od 0,002 — odlično. Prava hladna poseta u pravom brauzeru na desktopu davala je između 0,21 i 0,58 — loše. Oba merenja su bila tačna.
Uzrok nije bio font sam po sebi. Tri dugmeta u heroju su velikim slovima, sa telefonskim brojem i razmaknutim slovima, i taj red je tačno na granici prelamanja. Dok se pravi font ne učita, tekst se crta rezervnim, a rezervni je za baš te natpise bio širi od pravog — red od 866 piksela u kontejneru od oko 860. Dugmad padnu u drugi red, hero poraste, font se učita i sve skoči nazad.
Amplifikator je bio ukras: dekorativni sloj iznad heroja bio je dvostruko veći od njega i vezan za njegov okvir, pa je svaku promenu visine množio sa dva. Prvi pokušaj popravke — proširivanje rezervnog fonta — pogoršao je stvar, jer je red postao još širi.
Rešenje je izmereno, ne pogođeno: rezervni font sa size-adjust: 95% tako da je uvek uži od pravog i nikad širi, font-display: optional na svih osamnaest deklaracija, dekor vezan za veličinu prozora umesto za hero, i asinhrono učitavanje fontova. Naslovna je sa 0,578 pala na 0,002 na desktopu i sa 0,188 na 0 na telefonu, cenovnik sa 0,138 na 0, gradska strana sa 0,333 na 0,004.
Pravilo koje je iz ovoga ušlo u naš postupak: rezervni font sme da bude uži od pravog, nikad širi, a prihvatanje popravke je hladna poseta bez prelamanja na oba širine ekrana. Google danas za ovaj domen iz podataka pravih posetilaca prijavljuje LCP 1553 ms i CLS 0.
SEO, schema i mašine koje čitaju umesto ljudi
Svaka od 105 strana ima svoj naslov, svoj opis i svoj kanonik. Posle poslednjeg prolaza nema nijednog dupliranog naslova, nijednog dupliranog opisa, nijedne strane bez telefona i nijedne koja se sakrila od indeksiranja. Sitemap se poklapa sa kanonicima jedan na jedan.
Strukturirani podaci pokrivaju LocalBusiness, MusicGroup, Organization, WebSite, mrvice i pitanja sa odgovorima — pedeset tri bloka, sva ispravna. Adresa, koordinate, radno vreme, oblast rada i profili na Instagramu i YouTube-u su u njima, jer za lokalni upit Google traži baš to.
Za odgovarajuće mašine, ne samo za pretraživače, dodat je llms.txt, a robots.txt izričito dozvoljava GPTBot, ClaudeBot, PerplexityBot i ostale — sa ovakvim sadržajem, gde svaka prilika ima svoju stranu sa običajima i repertoarom, biti citiran u odgovoru vredi koliko i biti u rezultatima. Svaka izmena se prijavljuje kroz IndexNow, što pokriva Bing i Yandex; Google ide svojim tempom.
Jedna stvar je ovde namerno ostavljena „pogrešnom". Naslovi naslovne, strane usluga i strane za Leskovac su duži od preporuke i svaki audit ih prijavljuje. Te tri strane rangiraju, a naslov koji rangira se ne dira zbog preporuke iz alata. To stoji zapisano da sledeći prolaz ne bi „popravio" ono što radi.
Ostalo je i ono što se bez vlasnika ne može: Google Business Profile ne postoji, a to je za lokalne upite najjača poluga koja stoji neiskorišćena.
Šta klijent na kraju ima
Jedan sajt koji drži obe namere, sto pet adresa koje se ne otimaju međusobno, i sestrinski domen koji radi svoj posao umesto da ponavlja isti. Bez platforme, bez mesečne pretplate, bez dodatka koji se raspadne pri sledećem ažuriranju — običan PHP i nginx na serveru, kod u git istoriji, rezervna kopija pre svake izmene.
Merenja posle poslednjeg prolaza: sve strane odgovaraju sa 200, nula mrtvih linkova, HTML bez ijedne greške po W3C validatoru, na desktopu 99 do 100 za brzinu i 100 za pristupačnost, dobru praksu i SEO, na telefonu 100 za pristupačnost, dobru praksu i SEO uz brzinu u gornjem delu skale. Pošta domena ima potpis, SPF i DMARC, a HTTPS je na Googleovoj preload listi.
Praktično, dan izgleda ovako: neko iz Kruševca kuca „trubači Kruševac", otvara stranu svog grada, vidi broj u zaglavlju i lepljivoj traci, zove i dogovara termin u istom razgovoru. Klik na broj se upiše u log, pa se posle meseca zna koliko je poziva sajt doneo i sa kojih strana.
Sajt nema panel za uređivanje i to je svesna odluka — sadržaj se menja retko, a kad se menja, menja se kroz kod, sa proverom uživo posle svakog puštanja. Ono što je otvoreno, otvoreno je kod vlasnika: profil na Google mapama, snimci sa nastupa pod jednim nalogom na YouTube-u i utisci koje bi trebalo zameniti pravim recenzijama. To su stvari koje se ne mogu napisati umesto njega.
Sajt u slikama
Trubači Stars
Trubački orkestar za slave, krštenja, rođendane i sve vrste proslava — Leskovac, Niš, Beograd i cela Srbija.
trubacizaslavlja.rsČesto postavljana pitanja
Zašto orkestar ima dva sajta, a ne jedan veliki?
Zašto na sajtu nema kontakt forme?
Zašto na sajtu nema ocene sa zvezdicama?
Može li vlasnik sam da menja sadržaj?
Koliko strana ovakav sajt može da izdrži?
Da li se sajt vidi kako treba na telefonu?
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.