Golden Pets Hotel — sajt pansiona za pse malih rasa u Beogradu
Pansion za pse koji radi već godinama imao je sajt zamrznut u 2019. godini, na graditelju stranica koji je u međuvremenu ugašen zbog bezbednosnog propusta. Trebalo je napraviti nov sajt, preneti sve što je Google godinama poznavao i pri tom ne dodati nijedan formular — vlasnik je izričito tražio da se ništa ne svede na automatiku.
- Klijent
- Golden Pets Hotel
- Delatnost
- Pansion za pse malih rasa, nega i prevoz
- Grad
- Beograd
- Tip
- Višestrani sajt sa cenovnikom i galerijom
- Tehnologije
- PHP 8.3 · bez baze · WebP · Schema.org
- Status
- Živ sajt, sadržaj i pošta kod nas
U ovom tekstu
- Čime se Golden Pets Hotel bavi
- Sa čega se prelazilo
- Poziv umesto formulara
- Struktura sajta i sadržaj
- Cenovnik koji odgovara pre nego što neko pita
- Fotografije, galerija i znak
- Tehnička izvedba
- Sto trideset devet adresa koje nisu smele da nestanu
- Brzina, pristupačnost i linija kroz skrol
- Bez kolačića, bez pristanka, sa pravnim delom
- Šta klijent na kraju ima
Čime se Golden Pets Hotel bavi
Golden Pets Hotel je pansion za pse malih rasa u Beogradu, u naselju Braće Jerković. Psi ne borave u boksovima nego u kući i ograđenom dvorištu prilagođenom malim rasama, sa slobodom kretanja tokom celog dana. Prijem i preuzimanje idu u radno vreme, od 9 do 21 h, a nadzor nad psima traje 24 sata.
Pansion je registrovan kod nadležnih republičkih organa, pa je plaćanje moguće i preko računa. Ekipa je osposobljena za čuvanje životinja u pansionima i prihvatilištima na Fakultetu veterinarske medicine u Beogradu, a ordinirajući veterinar dr vet. med. Nebojša Milivojević radi preglede i lakše terapije na zahtev vlasnika, dok je pas na boravku. Za boravak duži od tri dana traži se lekarski izveštaj, a radi se 365 dana godišnje, i za praznike.
Primaju se psi do petnaest kilograma. Uz smeštaj idu i šišanje i kupanje po dogovoru, svakodnevna osnovna higijena i prevoz psa sa kućne adrese do pansiona i nazad. O pansionu su snimani prilozi Nacionalnog dnevnika TV Pink i emisije „Novo jutro" — taj deo istorije do sada je živeo samo na društvenim mrežama i dobio je svoje mesto na sajtu.
Sa čega se prelazilo
Zatečeni sajt je bio WordPress zamrznut u 2019. godini: jezgro 4.9.26, WooCommerce 3.5, Yoast 11, i tema kupljena na berzi šablona koja je pisana za vodoinstalatersku firmu pa prenamenjena za pansion.
Problem nije bila starost nego to što se sajt nije mogao ažurirati. Ceo raspored stranica bio je izgrađen u graditelju KingComposer, koji je wordpress.org zatvorio u februaru 2022. zbog bezbednosnog propusta — nema više ni preuzimanja ni proizvođača. Ako se ukloni, stranice ostaju kao goli tekst sa oznakama; ako ostane, ostaje i rupa koju niko više ne krpi. Zato „ažuriraj sve" nije bila opcija ni na papiru, koliko god tako izgledalo iz administracije.
Uz to je išla i prodavnica koju niko nije koristio. Demo proizvodi iz teme — majica, duks, kapa, kaiš — stajali su u bazi i bili uredno prijavljeni Google-u kroz sitemap prodavnice. Pansion za pse čije indeksirane strane nose imena artikala iz tuđeg šablona nije problem koji se rešava boljim tekstovima.
Drugi domen istog vlasnika, goldenpets.rs, nije bio obično preusmerenje. Tamo je živeo ceo stariji WordPress: naslovna jeste preusmeravala, ali su unutrašnje strane i dalje vraćale sadržaj. Dva živa sajta sa istim tekstovima znače duplikat za pretraživač i dvostruku površinu za napad, pa je i taj domen morao da uđe u posao.
Poziv umesto formulara
Prvo što je vlasnik tražio bilo je da se ništa ne svede na automatiku. Bez online rezervacija, bez kalendara sa slobodnim terminima, bez zahteva koji negde čeka odobrenje. Čovek koji nekome ostavlja psa hoće prvo da čuje glas sa druge strane, a pansion hoće da pita za rasu, uzrast, navike i datume pre nego što bilo šta potvrdi.
Zbog toga na sajtu ne postoji ni kontakt forma. Uklonjena je zajedno sa kodom koji je slao poštu, a na kontakt strani stoje kanali kojima se ljudi ionako javljaju: poziv, Viber, WhatsApp i Instagram. Kroz ceo sajt ide plutajuće dugme za poziv sa Viber prečicom pored njega, dok u zaglavlju nema nijednog dugmeta — i to je bio izričit zahtev.
Kad je jedina konverzija poziv, telefonski broj je najosetljiviji podatak na sajtu. Zatečeno stanje: svaki tel: link zvao je broj bez poslednje cifre. Ispisani tekst je bio tačan, pa se golim okom nije videlo ništa — greška se otkrivala tek pozivom koji ne prolazi. Za ovakav posao je to najskuplja pojedinačna greška koja može da stoji na sajtu.
Drugo pravilo je jedan broj na celom sajtu. Stariji broj, koji i danas stoji po imenicima, obrisan je svuda na zahtev vlasnika — zajedno sa konstantama koje su ga držale, da se ne bi vratio sam od sebe pri nekoj kasnijoj izmeni.
Struktura sajta i sadržaj
Sajt ima naslovnu i četiri strane — o pansionu, galeriju, novosti i kontakt — uz pojedinačne strane vesti i politiku privatnosti. Ništa više. Pansion ima jednu uslugu i jednu lokaciju, pa bi svaka dodatna strana bila prazan hodnik.
Naslovna je složena po redosledu pitanja koja vlasnik psa postavlja: šta je ovo mesto, šta pas tamo radi ceo dan, šta još može da se dogovori, koliko košta, kako izgleda i kako da se javim. Odmah ispod uvodnog dela ide traka sa četiri stvari koje se najčešće proveravaju — osiguranje psa tokom boravka, boravak bez boksova, veterinar 24 h i registrovan hotel sa plaćanjem preko računa.
Strana O nama nosi duži tekst o kući i dvorištu, o tome da se ekipa prilagođava ritmu psa umesto obrnuto, i o pozivu da vlasnik dođe u obilazak sa psom pre nego što išta rezerviše. Tu je i sekcija „Pisali su o nama" sa novinskim isečkom, koji je pre toga stajao usred galerije i kvario je.
Vesti su prenete sa starog sajta i tu je iskrslo nešto neprijatno: datumi objava bili su pogrešni, jedan i na pogrešnom članku, a dva teksta su tvrdila stvari kojih u izvoru nema — između ostalog da je ekipa gostovala u televizijskom studiju, dok izvor kaže da su voditelji posetili pansion. Datumi su ispravljeni iz RSS zapisa starog sajta, a tekstovi prepisani na ono što ima oslonac. Sajt koji o sebi tvrdi netačno je gori od sajta koji o sebi ne tvrdi ništa.
Cenovnik koji odgovara pre nego što neko pita
Cene stoje na naslovnoj, u tri paketa i jednoj rubrici za popust. Standardni paket je označen kao najtraženiji, drugi dodaje hranu iz hotela, treći je vrtić — dnevni boravak dok je vlasnik na poslu, sa mesečnom cenom i mogućnošću kraćih termina po dogovoru. Popust se dogovara za duži boravak i za dva psa iz istog doma, a praznici se ne naplaćuju skuplje. Poslednje je podatak koji ljudi traže baš u decembru, kad je konkurencija skuplja.
Prevoz psa ima svoju cenu koja počinje od iznosa navedenog na sajtu i dalje zavisi od dela grada. Napisano je namerno tako: pansion nema tabelu po ulicama i nikad je neće imati, ali početna cifra sprečava da razgovor krene od nule.
Sitna greška iz izrade koja pokazuje zašto cenovnik nije samo tekst: jedinica cene bila je zakucana u kodu, pa je mesečna cena vrtića bila prikazana kao dnevna. Cifra tačna, značenje pogrešno, i to na najskupljem paketu. Sada svaki paket nosi svoju jedinicu.
Objavljene cene su odluka, ne propust. Pansion prima pozive ceo dan i svaki poziv koji počinje pitanjem „koliko košta" troši vreme obema stranama. Ko posle pročitane tabele ipak nazove, zove zato što mu cena odgovara.
Fotografije, galerija i znak
Klijent je poslao dvadeset osam svojih fotografija. U galeriju ih je ušlo šesnaest i na svakoj je pas. Zahtev je bio jasan — nigde prazne sobe ni ležajevi, jer pansion se ne prodaje enterijerom nego time kako psi izgledaju dok su tamo.
U mreži se prikazuje manja verzija, a klik otvara veću u pregledaču slika. Svaka fotografija ima i usku varijantu za male ekrane, pa telefon skida ono što mu stvarno treba umesto pune slike. Posle toga cela mreža od šesnaest slika teži oko 210 kilobajta — pre toga je devet slika povlačilo dvostruko više.
AVIF je probavan i odbačen. Na ovim fotografijama — starijim, zrnastim, snimljenim telefonom — AVIF je ispao veći od WebP-a. Format koji je u proseku bolji ovde nije bio bolji, pa je odlučilo merenje, a ne pravilo iz uputstva.
Znak je stigao kao fotografija odštampanog logotipa, sa moiré šarom preko celog polja. Obrada je išla u koracima: uklanjanje šare, izdvajanje tamnog znaka od podloge i kompozit na ravnomeran žut krug. Iz toga su izvedeni logo, favicon, ikone za dodavanje na početni ekran telefona i boja teme u pregledaču. Ako jednog dana stigne vektor, biće oštrije; do tada je ovo najviše što se iz te jedne fotografije moglo izvući.
Tehnička izvedba
Novi sajt je ručno pisan PHP 8.3. Nema WordPress, nema dodatke, nema graditelja stranica i nema bazu podataka. Ceo sajt su dve datoteke sa zajedničkim slojem, po jedna datoteka za svaku stranu i jedan stilski fajl.
Sadržaj stoji odvojeno od prikaza, u jednoj datoteci sa podacima: naziv i slogan, adresa objekta i sedište firme, matični broj i PIB, telefon, radno vreme, profili mreža, uvodni slajdovi, paketi cenovnika, dodatne usluge i vesti. Izmena cene je izmena jednog reda, a ne traženje broja po deset strana.
Zašto bez baze: sadržaj se menja retko i menja ga jedan čovek. Baza bi ovde bila jedan sistem više koji može da padne i jedna rezervna kopija više koja mora da se pravi. Ovako je ceo sajt folder koji se prekopira u sekundi, a svaka izmena teksta se vidi kao razlika u običnom tekstualnom fajlu.
Adresa objekta i sedište firme razdvojeni su u kodu, uz komentar zašto: sedište ide isključivo u pravni blok podnožja, dok kontakt podaci i schema nose adresu objekta. Ulica objekta je u međuvremenu preimenovana, pa uz novo ime stoji i staro — mape još vode staro, a ljudi po njemu i dalje traže.
Jedna zamka iz konfiguracije servera vredi da se zapiše. Dodavanje jednog zaglavlja unutar bloka za PHP tiho je poništilo sva nasleđena bezbednosna zaglavlja iz nadređenog bloka — pravilo je da se zaglavlja ne dopunjuju nego zamenjuju na nivou na kome se pomenu. Rešenje je da se skup bezbednosnih zaglavlja ponovo uključi baš u tom bloku. Sajt pri tom radi isto, pa se propust ne vidi dok se zaglavlja ne izmere.
Sto trideset devet adresa koje nisu smele da nestanu
Stari sajt je bio u indeksu godinama i imao je 139 poznatih adresa. To je jedina imovina koju prelazak na nov sajt može da uništi u jednom danu, i to tako da se šteta vidi tek kroz nekoliko meseci.
Nove strane su zato podignute na starim putanjama — o pansionu, galerija, novosti i kontakt zadržali su adrese koje su već imali, pa te adrese nisu ni morale da se preusmeravaju. Verzije sa nastavkom .php trajno vode na čiste.
Za 82 stare adrese koje nemaju parnjaka napravljena je mapa preusmerenja na nivou servera. Sitna zamka: dugački ključevi u toj mapi zahtevaju povećanu veličinu razdelnika, inače server odbija da se pokrene sa greškom koja ne pominje ni jednu adresu.
Sedamdeset šest adresa nije dobilo preusmerenje nego status 410 — demo proizvodi, prazna višejezična grana, kategorija bez sadržaja i infrastruktura starog sistema. Razlika je u poruci: preusmerenje kaže „preselilo se ovde", a 410 kaže „ovoga više nema, izbaci iz indeksa". Guranje svega što je ostalo na naslovnu je najčešća greška pri ovakvim prelascima i pretraživač je razume kao šum.
Stari sitemapi vode na jedan novi. Posle prelaska su sve adrese proverene pojedinačno, na živom domenu, i sve su odgovorile onako kako je planirano. Nove strane su prijavljene i kroz IndexNow, pa je indeksiranje krenulo istog dana.
Sajt nosi LocalBusiness podatke sa adresom, radnim vremenom, telefonom, matičnim brojem i PIB-om, cenovnim rasponom i profilima mreža, a podstrane i BreadcrumbList. Za lokalni posao je taj zapis ono što spaja sajt sa profilom na mapama.
Brzina, pristupačnost i linija kroz skrol
Tri greške u učitavanju su nađene i uklonjene: najava učitavanja gađala je drugu adresu od one koju pregledač zaista bira, pa se uvodna slika skidala dvaput; sva četiri uvodna slajda učitavala su se odmah, iako se vide jedan po jedan; a na podstranama je najveća slika bila označena kao odložena, što je usporavalo baš ono po čemu se meri brzina prikaza.
Pristupačnost je rađena kao deo posla, ne kao dodatak. Neaktivni slajdovi i zatvoreni meni izuzeti su iz reda za tastaturu, jer su nevidljivi elementi hvatali fokus; kontrast dugmadi je podignut sa 3,16 na 5,16 prema jedan; uklanjanje obrisa fokusa zamenjeno je vidljivom oznakom; pregledač slika zadržava fokus dok je otvoren; a oznake za kartice bez pripadajućih panela zamenjene su običnom grupom, jer su čitaču ekrana obećavale ponašanje kojeg nema.
Na širini od 390 piksela dugme za meni izlazilo je 23 piksela van ekrana, pa se meni nije mogao otvoriti na jednom od najčešćih formata telefona. Za sajt kome najveći deo posetilaca dolazi sa telefona to je bila mrtva navigacija, a u pregledaču na računaru se ne vidi nikad.
Vizuelni potpis sajta je tanka linija koja vijuga kroz sekcije i crta se dok se skroluje, sa tačkicom na čelu. Ritam joj je namerno neravnomeran — usporava pred svakom sekcijom i nadoknađuje između njih, tako da prati čitanje umesto da trči ispred njega. Ispod 1100 piksela se gasi, kao i kod posetilaca koji su u sistemu tražili manje kretanja na ekranu.
Bez kolačića, bez pristanka, sa pravnim delom
Sajt ne pravi nijedan zahtev van svog servera. Nema analitiku, piksele društvenih mreža, ugrađene mape, spoljne fontove, video plejer ni proveru robota. Facebook i mapa su obični linkovi, ne ugrađeni okviri koji vuku podatke posetioca.
Posledica je da nema kolačića, pa nema ni prozora za pristanak. To piše i u politici privatnosti, otvoreno: nema na šta da se pristane. Baner na sajtu koji ne postavlja nijedan kolačić je smetnja bez svrhe, a ipak ga ima na većini sajtova jer se prepisuje sa tuđih.
Politika privatnosti je pisana za ono što pansion stvarno prikuplja — ime vlasnika, telefon i mejl, podatke o psu i njegovim navikama, vakcinalni karton i lekarski izveštaj kad je potreban. U njoj stoji i koliko se podaci čuvaju, kome se prosleđuju (veterinaru kod hitne intervencije i knjigovodstvu kad se traži račun) i kako se traži brisanje. Matični broj i PIB stoje u podnožju, kako Zakon o elektronskoj trgovini traži od svakog ko nudi uslugu preko sajta.
Šta klijent na kraju ima
Sajt koji može da se održava. Nema graditelja stranica koji je ugašen, nema dodatke koji čekaju ažuriranje koje nikad neće stići, nema prodavnicu koja se nikad nije koristila a Google je o njoj godinama pisao izveštaje.
Uz sajt su prešli i domen i pošta. Sanduče pansiona sa nekoliko stotina poruka preneto je u celini, a klijent pri tom nije morao da menja lozinku ni da podešava telefon — stara prijava je nastavila da radi. Za nekoga ko poslovnu poštu čita sa jednog uređaja i ne voli podešavanja, to je razlika između mirne selidbe i dana bez pošte.
Praktično, sada izgleda ovako: cena se menja u jednom redu, nova vest se doda i odmah je u spisku i u sitemapu, galerija se dopunjava novim fotografijama u istom formatu, a telefon na sajtu zove tačan broj. Sve što je stari sajt imao u indeksu i dalje stoji na svom mestu, samo vodi na strane koje se otvaraju na telefonu.
Ono što je ostalo van sajta ostalo je namerno. Nema rezervacija, nema chat prozora, nema obaveštenja koja iskaču. Pansion i dalje radi telefonom, a sajt služi tome da ljudi pozovu već znajući šta ih čeka.
Sajt u slikama
Golden Pets Hotel
Kuća i ograđeno dvorište umesto boksova, nadzor 24 sata i veterinar na poziv, nadomak centra Beograda.
hotelpansionzapse.comČesto postavljana pitanja
Zašto sajt nema online rezervacije?
Zašto nov sajt, a ne popravka postojećeg WordPress-a?
Ko menja cene i dodaje vesti?
Šta se desilo sa pozicijama starog sajta na Google-u?
Šta je bilo sa drugim domenom pansiona?
Zašto na sajtu nema pitanja o kolačićima?
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.