Tovább a tartalomhoz

404-kezelés

Megnézzük, hogy egy nem létező címre az oldal 404-et ad-e; ha 200-at, az úgynevezett soft 404, ami hamis oldalakat vihet az indexbe.

Amikor valaki olyan címet nyit meg, ami nem létezik, a szervernek 404 Not Found (vagy végleg megszűnt oldalnál 410 Gone) kóddal kell válaszolnia. A kód a gépeknek szól: a böngésző, a keresőrobot és a hivatkozásellenőrzők ebből tudják, hogy az oldal nincs meg. A látogatónak közben szép, használható hibaoldalt mutathatsz.

A gyakori hiba az úgynevezett soft 404: a szerver barátságos „nem található” oldalt rajzol, de közben 200-as kódot küld. A Google ezt hibaként jelzi a Search Console-ban, mert a tartalom hibára utal, miközben a kód sikert mond, és az index hamis oldalakkal telhet meg.

A riport a nyitóoldal származási címére (origin) egy véletlenül generált, biztosan nem létező útvonalat kér le, ilyen formában: /hellowp-report-404-<12 véletlen karakter>. Legfeljebb 3 átirányítást követ, és a végső válasz kódját nézi.

  • Megfelelő: 404 vagy 410.
  • Hiba, soft-404: 200. Ide számít az is, ha a szerver a nem létező címet átirányítja a nyitóoldalra vagy egy keresőoldalra, ami 200-zal válaszol.
  • Hiba, status: bármilyen más kód (például 403, 500, 301 vagy 302 a lánc végén).
  • Ha a kérés nem sikerült vagy elfogyott a kéréskeret, a teszt nem értékelhető, és kimarad.

A teszt egyetlen véletlen útvonalat próbál, ezért a fájlkiterjesztéshez vagy konkrét útvonalhoz kötött eseteket (például egy hiányzó .jpg) nem fedi le.

A cél: minden nem létező cím valódi 404-et adjon, és a hibaoldal tartalma is ezzel együtt jöjjön.

  1. Ne irányítsd át a hiányzó oldalakat a nyitóoldalra. A gyakori „minden 404 menjen a főoldalra” szabály soft 404-et okoz. Hagyd a 404-et 404-nek.
  2. A hibaoldal kódja legyen 404. Ha egyedi hibaoldalt használsz, ellenőrizd, hogy a szerver a kódot is helyesen küldi-e.
  3. Szükség esetén 410. Ha egy oldalt tudatosan és végleg töröltél, a 410 Gone pontosabb jelzés, de a 404 is elfogadott.
  4. Átirányítás csak akkor, ha az oldalnak valódi, megfelelő utódja van. Ilyenkor 301-es átirányítás kell a konkrét új címre.

A statikus fájlokat kiszolgáló location blokkban a try_files utolsó paramétere dönti el, mi legyen, ha egyik fájl sincs meg. Az =404 közvetlenül 404-es kódot ad:

nginx
location / {
try_files $uri $uri/ =404;
}

WordPressnél a permalinkek miatt az utolsó paraméter általában /index.php?$args; ilyenkor a 404-et a WordPress adja, ezért a témának kell helyes kódot küldenie.

Az ErrorDocument direktívában helyi útvonalat adj meg, ne teljes URL-t. A teljes URL (például http://-vel kezdődő) átirányítást küld a kliensnek, és az eredeti hibakód elvész, ami összezavarja a robotokat:

.htaccess
ErrorDocument 404 /404.html

WordPressben a 404.php sablon (vagy blokkos témánál a 404-es sablon) jeleníti meg a hibaoldalt. Ha a nem létező címre mégis 200 jön:

  • kapcsold ki az átirányítás-, SEO- vagy gyorsítótár-bővítmények olyan funkcióit, amelyek a nem létező címeket a nyitóoldalra irányítják;
  • nézd meg, hogy a téma 404.php fájlja nem ír-e ki saját fejlécet, vagy nem irányít-e át.

Futtasd újra a riportot. Parancssorból:

Terminál
curl -sIL -o /dev/null -w "%{http_code} %{url_effective}\n" https://pelda.hu/ez-az-oldal-nincs-meg-12345

Az eredmény 404 legyen, és a végső cím maradjon az, amit kértél (ne a nyitóoldal). A Google Search Console jelzi a soft 404 hibákat, ha a keresőrobot már találkozott velük (Google Search Console).

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások