Proverite šta se dešava kada neko pokuša da pristupi vašem blogu koristeći nepostojeću adresu strane. Do takve situacije može da dođe zbog raznih razloga, a najčešće tako što neko pogrešno ukuca adresu ili pokuša da pristupi nekom sadržaju koji ste uklonili.
Postoje razne preporuke šta u stvari sajt treba da uradi u ovakvim slučajevima.
Neko će vam reći da je najbolje da umesto neispravne strane korisniku prikažete naslovnu, pa će se on već snaći da potraži šta ga interesuje.
Neko drugi će preporučiti da korisniku prikažete da je pokušao da pristupi strani koja ne postoji pa ga uputite da može da krene sa naslovne i potraži šta mu treba.
Neki idu tako daleko da preporučuju da izanalizirate adresu koju je korisnik ukucao pa da probate da ustanovite šta je on u stvari hteo i da mu to pokažete – ili direktno traženi sadržaj, ili makar listu strana koje bi mogle da mu budu interesantne.
Ideja šta u ovakvom situacijama može da se uradi ima na pretek.
Vordpres u ovakvim slučajevima učita i prikaže uobičajen šablon strane, ali umesto sadržaja prikaže poruku: Error 404 – Not Found.
Da li je to dobro? Ja bih rekao da nije. Ne bih ulazio u to šta zaista treba prikazati korisniku. To je stvar afiniteta vlasnika sajta i njegovog odnosa prema posetiocima. Ipak, rekao bih da je neophodno da šta god radili, to učinite tako da ne trošite nepotrebne resurse jer se, na kraju, ipak radi smo o poruci o grešci.
Vordpres, nažalost, troši mnogo resursa na ovu poruku. Prikazom običajenog šablona on pokreće ceo mehanizam za generisanje izgleda i sadržaja strane. To znači da će dobrano da trkeljiše po bazi na serveru da bi generisao glavni meni, listu kategorija, sve moguće sadržaje u bočnim kolonama i ko zna šta sve još šablon bloga ima predviđeno da se prikazuje na svakoj strani.
Mislim da je to sve nepotrebno samo zato da bi se posetiocu prikazala poruka o grešci – da nije ukucao dobro adresu strane.
Ja sam se odlučio za minimalistički pristup: kada korisnik promaši adresu sam veb čitač mu prosto prikaže da dokument ne postoji. Verujem da je svaki posetilac mog bloga dovoljno inteligentan da vidi da je pogrešio, pogleda šta je ukucao kao adresu i unese ispravku. A ako ne zna tačnu adresu i baš želi da ipak ode na moj blog, on će naprosto sam ukucati osnovnu adresu sajta. Prikaz takve poruke ne troši skoro nikakve resurse.
Kako promeniti način prikaza 404 greške u vordpresu?
Postupak je veoma jednostavan, samo ne baš i očigledan. U sistemu šablona vordpresa predviđeno je da, ako dođe do greške 404, program prosto prikaže stranu definisanu u šablonu pod nazivom 404.php. Ta strana postoji u osnovnom šablonu koji se dobija u vordpressu, ali ne mora postojati u nekom dodatnom šablonu koji instalirate na blog. Ako ne postoji, vordpress će automatski učitati onu iz podrazumevanog šablona, kao što i inače radi sa svakom drugom stranom šablona. Sadržaj ove datoteke je otprilike ovakav:
<?php get_header(); ?> <div id="content"> <h2><?php _e('Error 404 - Not Found', 'kubrick'); ?></h2> </div> <?php get_sidebar(); ?> <?php get_footer(); ?>
Kao što vidite, skript pokreće prikazivanje celog vordpres šablona samo umesto prikaza sadržaja strane, prikazuje poruku o grešci.
Dakle, sve što treba da uradite, to je da u svom aktivnom šablonu na blogu izmenite stranu 404.php (ili je napravite ako ne postoji), a u njoj podesite šta želite da ona čini.
Kod mene, ova strana izgleda ovako:
<html> <head> <title>Error 404 - Page not found - Predrag Supurovic, blog</title> <meta name=”robots” content=”noarchive, noindex, nofollow”> </head> <body> <h1>Error 404 - Not Found</h1> <p><img src="wp-content/themes/atahualpa3/images/pedja-logo.png"></p> <h2>Pedja Supurovic, beleznica</h2> <p>Predrag Supurovic – uputstva, ideje, pogledi, beleske</p> <p>Page you typed in does not exist on this site. Maybe you misspelled it, or page was removed. You may go to blog home page: <a href="https://pedja.supurovic.net?lang=lat">https://pedja.supurovic.net</a></p> </body> </html>
Ovo skoro uopšte i neopterećuje server jer i ne radi ništa drugo do da prikaže poruku o grešci.
Imajte u vodu da veb čitači neće prikazati sadržaj strane ako je ona kraća 512 bajtova. Umesto nje će prikazati svoju poruku o grešci ili nešto drugo.
Samo setuj UTF-8 encoding strane ;)
Kad pre primeti?! :)
Da, WordPress definitivno troši previše resursa kada je 404 u pitanju. Definitivno je bolje dati mu samo html, i to je to. U brojkama to dodje ovako:
1 slika/baner
100 sajtova linkuju na sliku/baner
10 ljudi dodje na svaki sajt, i obrne 10 strana
10000 obrnutih strana gde se uvek zahteva slika/baner
10000 nepotrebnih sql konekcija
ovde ne pominjem upit za pretragu koji wordpress uvek uradi.
Kad se sve ovo desi u par minuta, zna da bude problem.
Najveći problem kad ljudima skreneš pažnju na ovo, je što oni uzmu i instaliraju plugine za 404, koji rade još gore stvari, prave veću pretragu i sl.
Povrh svega, terba redovno proveravati veb log i analizirati 404 greške pa ih predupređivati na odgovarajući način, na primer redirekcijom u .htaccess.
Nedavno sam naleteo na jedan plugin koji kada vidi da je korisnik dosao na error 404 stranicu preusmerava ga na stranicu koja je najslicnija po imenu toj na koju je hteo doci. Ako nekoga zanima, mozda bi uspeo ponovo da ga nadjem :)
Isto tako, Google nudi da unapredite svoju Error 404 stranicu sa svojim widgetom za pretragu http://www.google.com/support/webmasters/bin/answer.py?answer=136085
Saša, naš cilj je u stvari da smanjimo opterećenje servera na 404 strani a ne da ga povećamo :)
Jasno je meni to, ali iskreno, po meni je to mizerno opterećenje. Svakako su serveri skoro svakodnevno sve jači, brži, bolji, ovakve male stvari ne opterećuju mnogo. A i koliki je recimo procenat poseta tvoje 404 stranice na ovom blogu ? Siguran sam da je maksimum 5%, a to je skoro pa zanemarljivo :)
BTW, završio si mi u spam direktorijumu sa odgovorom :)
Ovaj problem je zanemarljiv na slabo posećenim stranicama koje pogoni Vordpres (kad kažem „slabo posećenim“ smatram ispod 5.000 poseta dnevno). Ali, čak i sa tako „niskim“ hitovima, a da ne pominjem mnogo veće hitove, neka samo 5% upita završi na 404 pa je nepotrebno.
Ovim sam se pozabavio svojevremeno kada sam primetio da 404 strane troše značajan deo resursa (dovoljno je skloniti nekoliko fotografija ili koji članak) i eto ih.
Moj blog, je na deljenom hostingu i praktično je stalno na ivici sa resursima.
Rešenje koje smo naveli ovde:
http://adriatek.com/2010/10/06/wordpress-i-404-nocna-mora/
uspešno rešava problem sajtova sa velikom posetom, kada su u pitanju slike. Pošto WP izbacuje 404 stranu i za svaku sliku koja vise nije na serveru, i samim tim podiže SQL i sve, ume da predstavi veliki problem. Kao što sam naveo u prošlom komentaru, dovoljno je da sajt sa velikom posetom ukloni jednu sliku sa servera i eto problema.
Da stvar bude gora, postoji plugin koji se zove WP 404 images fix, na prvu pomislite da rešava problem, ali on pravi još goru situaciju, otvorite kod plugina, pa ćete videti u čemu je stvar.
Postoji i jedna loša stvar u dodavanju .htaccess koda koji smo naveli, a to je da nemate kompletan uvid u 404 strane, dakle npr Awstats ih ne vidi kao omašene strane. Što je i logično.
I dalje mozgam da li je moguće da su autori WordPress-a napravili toliki propust, ili ima neko drugo rešenje.
Jedna stvar mi je samo na pameti, WP nije idealno rešenja za ogromne sajtove :)
Odlično, znači ipak je RewriteCond %{REQUEST_FILENAME} !-f
rešilo stvar.
Onda mora biti do hostinga i do optimizacije servera, iliti administracije :)
Gorane, Techcrunch, Mashable i Lifehacker, iliti tri najveća bloga koja se bave računarima i tako tim, korsite WP. Pretpostavljam da onda nemaju isto na pameti što i ti kad je u pitanju mišljenje WP sa velikim sajtovima.
Ono što primećujem, a da je vezano za pomenuta tri bloga je da jedino Lifehacker ima „promenjenu“ 404 stranicu. Primer: http://lifehacker.com/5652275/proba
Saša, svidja mi se kako razmišljaš, jer sam i ja odmah pomislio ‘Pa šta onda radi Mashable?’ i vidim da imaju default ponašanje WordPressa. Kasnije sam video da im je SQL na posebnom serveru, naravno.
Kada uložiš dosta novca i napraviš dobar raspored, nećeš imati ovaj problem o kom pričamo, to će biti mačji kašalj.
Ovde pričamo o deljenom hostingu, i Uslovima korišćenja servera, jer ako jedan klijent ima ovaj problem, ugrožava i druge. Mi nismo hteli ovaj problem da rešavamo suspenzijom, nego smo pomogli klijentu.
Ne verujem da je Lifehacker promenio 404 tek tako, iz dosade. Svi vole da im 404-ka bude u stilu sa sajtom.
Dabome :) Hvala na odgovoru
Hvala.
Prepisano.
:-)