Изборник Затворити

Error 404 – Not Found: предупредите траћење ресурса у WordPress-у

Скраћена веза: https://pedja.supurovic.net/veza/4857

Проверите шта се дешава када неко покуша да приступи вашем блогу користећи непостојећу адресу стране. До такве ситуације може да дође због разних разлога, а најчешће тако што неко погрешно укуца адресу или покуша да приступи неком садржају који сте уклонили.

Постоје разне препоруке шта у ствари сајт треба да уради у оваквим случајевима.

Неко ће вам рећи да је најбоље да уместо неисправне стране кориснику прикажете насловну, па ће се он већ снаћи да потражи шта га интересује.

Неко други ће препоручити да кориснику прикажете да је покушао да приступи страни која не постоји па га упутите да може да крене са насловне и потражи шта му треба.

Неки иду тако далеко да препоручују да изанализирате адресу коју је корисник укуцао па да пробате да установите шта је он у ствари хтео и да му то покажете – или директно тражени садржај, или макар листу страна које би могле да му буду интересантне.

Идеја шта у оваквом ситуацијама може да се уради има на претек.

Вордпрес у оваквим случајевима учита и прикаже уобичајен шаблон стране, али уместо садржаја прикаже поруку: Error 404 – Not Found.

Да ли је то добро? Ја бих рекао да није. Не бих улазио у то шта заиста треба приказати кориснику. То је ствар афинитета власника сајта и његовог односа према посетиоцима. Ипак, рекао бих да је неопходно да шта год радили, то учините тако да не трошите непотребне ресурсе јер се, на крају, ипак ради смо о поруци о грешци.

Вордпрес, нажалост, троши много ресурса на ову поруку. Приказом обичајеног шаблона он покреће цео механизам за генерисање изгледа и садржаја стране. То значи да ће добрано да тркељише по бази на серверу да би генерисао главни мени, листу категорија, све могуће садржаје у бочним колонама и ко зна шта све још шаблон блога има предвиђено да се приказује на свакој страни.

Мислим да је то све непотребно само зато да би се посетиоцу приказала порука о грешци – да није укуцао добро адресу стране.

Ја сам се одлучио за минималистички приступ: када корисник промаши адресу сам веб читач му просто прикаже да документ не постоји. Верујем да је сваки посетилац мог блога довољно интелигентан да види да је погрешио, погледа шта је укуцао као адресу и унесе исправку. А ако не зна тачну адресу и баш жели да ипак оде на мој блог, он ће напросто сам укуцати основну адресу сајта. Приказ такве поруке не троши скоро никакве ресурсе.

Како променити начин приказа 404 грешке у вордпресу?

Поступак је веома једноставан, само не баш и очигледан. У систему шаблона вордпреса предвиђено је да, ако дође до грешке 404, програм просто прикаже страну дефинисану у шаблону под називом 404.php. Та страна постоји у основном шаблону који се добија у вордпрессу, али не мора постојати у неком додатном шаблону који инсталирате на блог. Ако не постоји, вордпресс ће аутоматски учитати ону из подразумеваног шаблона, као што и иначе ради са сваком другом страном шаблона. Садржај ове датотеке је отприлике овакав:

<?php get_header(); ?>
<div id="content">
<h2><?php _e('Error 404 - Not Found', 'kubrick'); ?></h2>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Као што видите, скрипт покреће приказивање целог вордпрес шаблона само уместо приказа садржаја стране, приказује поруку о грешци.

Дакле, све што треба да урадите, то је да у свом активном шаблону на блогу измените страну 404.php (или је направите ако не постоји), а у њој подесите шта желите да она чини.

Код мене, ова страна изгледа овако:

<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">https://pedja.supurovic.net</a></p>
</body>
</html>

Ово скоро уопште и неоптерећује сервер јер и не ради ништа друго до да прикаже поруку о грешци.

Имајте у воду да веб читачи неће приказати садржај стране ако је она краћа 512 бајтова. Уместо ње ће приказати своју поруку о грешци или нешто друго.

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.

    • Peđa

      Саша, наш циљ је у ствари да смањимо оптерећење сервера на 404 страни а не да га повећамо :)

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

        • Александар

          Овај проблем је занемарљив на слабо посећеним страницама које погони Вордпрес (кад кажем „слабо посећеним“ сматрам испод 5.000 посета дневно). Али, чак и са тако „ниским“ хитовима, а да не помињем много веће хитове, нека само 5% упита заврши на 404 па је непотребно.

        • Peđa

          Овим сам се позабавио својевремено када сам приметио да 404 стране троше значајан део ресурса (довољно је склонити неколико фотографија или који чланак) и ето их.

          Мој блог, је на дељеном хостингу и практично је стално на ивици са ресурсима.

  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.

Оставите одговор на Sasa Одустани од одговора

Ваша адреса е-поште неће бити објављена. Неопходна поља су означена *

Попуните израз тако да буде тачан: *

Ово веб место користи Акисмет како би смањило непожељне. Сазнајте како се ваши коментари обрађују.