Izbornik Zatvoriti

Error 404 – Not Found: predupredite traćenje resursa u WordPress-u

Skraćena veza: https://pedja.supurovic.net/veza/4857

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.

15 Comments

  1. Goran

    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.

      • Sasa

        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 :)

        • Aleksandar

          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.

        • Peđa

          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.

  2. Goran

    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 :)

  3. Sasa

    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

  4. Goran

    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.

Ostavite odgovor na Sasa Odustani od odgovora

Vaša adresa e-pošte neće biti objavljena. Neophodna polja su označena *

Popunite izraz tako da bude tačan: *

Ovo veb mesto koristi Akismet kako bi smanjilo nepoželjne. Saznajte kako se vaši komentari obrađuju.