Méltatlanul elhanyagolva: HTTP 404 – A Keresett Oldal Nem található

Visszatérő probléma, hogy a legtöbb weboldal nem kezeli megfelelően a nagy “szép URL” korszakban azokat a tartalmakat, címeket, amelyek (már) nem élnek, vagyis amikor azt az üzenetet kapjuk, hogy “A keresett oldal nem található”. A minap kerestem rá a “samsung fényképezőgépek” kifejezésre, amikor is az alábbi eredmény fogadott:

"A Keresett Oldal Nem Található" - vagy mégis?

"A Keresett Oldal Nem Található" - vagy mégis?

Nézzük meg, milyen hibák vezettek ehhez az eredményhez és azt is, hogyan lehet elkerülni az ilyen találati listás eredményeket.

A HTTP státuszkódokról röviden

Amikor egy felhasználó beírja a böngésző címsorába, hogy www.example.com, akkor megindul egy párbeszéd az example.com szervere és a felhasználó számítógépe között. Nagyjából így hangzik a kérdés: “Megvan neked a /hu/valami/dokumentum.html fájl?”. A kérdésre egy státuszkóddal felel az example.com. Ha ez a kód például 200, akkor az azt jelenti, hogy “igen, megvan és küldöm is neked a tartalmát”.

Két másik fontos kódunk keresőoptimalizálás során a 301 és a 302-es státuszkód. Ezzel közöljük a böngészővel, hogy az adott oldal már nem elérhető, de van egy alternatív javaslatunk, vagyis van mit megjeleníteni a felhasználónak, át szeretnénk irányítani őt erre az új tartalomra. A 301-es kód azt jelenti, hogy ez az átirányítás végleges, a 302-es pedig, hogy ideiglenes.

Visszakanyarodva a fenti problémára, a keresett oldal nem található státuszkódja a 404, amivel valószínűleg már sokan találkoztak. Ezt mondjuk úgy, ideiglenes problémának lehet tekinteni a weboldalon, vagyis olyan hibáról, aminek elhárítása várhatóan bekövetkezik. Ennél határozottabb és véglegesebb formája újabban a megszűnt tartalmaknak a 410-es státuszkód.

A keresőrobotok és a HTTP státuszkódok

A keresőrobotok lényegében közel ugyanolyan látogatók weboldalainkon, mint az emberek. Ugyanúgy kéréseket küldenek a szerverek felé és ugyanúgy fogadják és értelmezik a HTTP státuszkódokat, mint a böngésző programok.

De mégis van különbség!

Az emberek, akik a monitor előtt ülnek, nem válaszkódokat olvasnak. Azt látják, ami a böngészőben megjelenik. Ha egy weboldal HTTP 200-al válaszol egy kérésre, de ezzel együtt visszaad a böngészőnek egy tartalmat, amiben leírják, hogy a keresett oldal nem található, akkor a látogató ezt fogja látni, ezt fogja értelmezni. A keresőrobotok azonban nem látnak grafikát, nem értelmezik ilyen formában a szöveges üzenetet. Ha az example.com nem közli a keresőrobottal a 404-es státuszkódot, de olyan tartalmat ad vissza, amiben az szerepel, hogy a keresett oldal nem található, akkor egyszerűen leindexeli ezzel a tartalommal, mint bármilyen más weboldalt.

Ha egy nem található tartalom esetén egy 302-es átirányítással válaszolunk, akkor a keresőrobot ezt is értelmezni fogja és az eddig tárolt weboldal tartalom helyét át fogja venni az az oldal, ahová átirányítjuk mind a felhasználók böngészőit, mind a keresőrobotokat.

Két hiba a Samsung oldalán

Ahhoz, hogy a bejegyzés elején megjelenő találati listát sikerüljön elérnie a Samsungnak, két hibát is el kellett, hogy kövessenek:

Egyrészt eltávolítottak egy oldalt, ami önmagában még nem volna gond. De ha valaki ennek az oldalnak a címét meghívja akár könyvjelzőből, akár a Google találati listájából kibányászva, akkor azt közlik mind a böngészőkkel, mind a keresőrobotokkal, hogy menjenek egy új helyre a meglevő helyett, vagyis átirányítanak:

HTTP 302 státuszkód a hiányzó oldalra

HTTP 302 státuszkód a hiányzó oldalra

Önmagában még ez sem volna gond, ez bevett módszer, hogy a megszűnt termék adatlapokra érkező látogatókat például a megfelelő alkategória termék listájára irányítják, hogy lehetőségük legyen másik terméket választani. A probléma ott van, hogy egy olyan oldalra irányítanak, ami “A Keresett oldal nem található” üzenetről szól!

Az első hiba tehát, hogy rossz helyre történik a 302-es átirányítás vagy angol nevén redirect.

A második hiba, hogy ezt a notfound.html fájlt HTTP 200-as kóddal szolgálják ki, ami normál tartalmat jelent, nem hibát.

samsung-fenykepezogepek-http-valasz-fejlecek-notfound

notfound.html státuszkódja: 200

Mi történik tehát, amikor a Googlebot megérkezik a már megszűnt oldalra?

  1. HTTP 302: az oldalt áthelyezték ide: notfound.html
  2. HTTP 200: itt a notfound.html tartalma, nesze neked

A régi tartalmat máris felülírta a hibaoldal tartalmával ahelyett, hogy törölte volna a kereső indexből.

Hogyan kerüljük el?

Nos, arra nincs kotta, hogy mit kell tenni akkor, ha egy oldal megszűnik létezni. Webáruházaknál például ajánlott ilyenkor átdobni arra az oldalra a látogatót (és így a keresőrobotot is), ahol hasonló termékeket listázunk. Ez nem csak keresőoptimalizálás szempontjából jó, hanem a felhasználót is releváns tartalommal látjuk el akkor is, ha konkrétan az adott termék már nem elérhető nálunk.

Ha viszont nincs hova átirányítani, akkor ne 302-es átirányítással vigyük a “nem található” oldalra, vagy ha már mégis, akkor ne feledkezzünk meg a 404-es státuszkódról!

Konkrét PHP megoldásokkal hamarosan jelentkezem.

Megosztás:
  • Google Bookmarks
  • Twitter
  • Facebook
  • iWiW
  • MySpace
  • Tumblr
  • Netvibes
  • LinkedIn
  • Digg
  • del.icio.us
  • Propeller
  • Live
  • Suggest to Techmeme via Twitter
  • Slashdot
  • Print
  • Add to favorites
  • email
  • PDF

Kapcsolódó bejegyzések

Egy visszajelzés to “Méltatlanul elhanyagolva: HTTP 404 – A Keresett Oldal Nem található”

  1. Webmester Eszközök: hibás 404-es hibaoldalak feltérképezése | DuracellTomi Google AdWords blogja szerint:

    2010. június 08. 08:15

    [...] már írtam a jelenségről, amikor látszólag azt a hibaüzenetet kapjuk egy oldalon, hogy a keresett oldal nem található, de a webszerver által visszaadott állapotkód nem ezt tükrözi. Mostantól az ilyen ál 404-es [...]


Szólj hozzá Te is!