Blog Miért dob 404-et a Vodafone főoldala? Ezért!
vodafone 404 főoldal
Írta:

Miért dob 404-et a Vodafone főoldala? Ezért!

Kaptam egy screenshotot üzenetben, amiben azt írták, hogy a Vodafone szóra történő keresés során az első találatra kattintva 404-re fut a vodafone.hu. Utánajártam, hogy igaz-e, és tényleg! Mi az oka és mi ment félre? Ennek jártam utána.

A hiba

Ha ma, 2022. február 10-én rákeresel arra a szóra, hogy „Vodafone”, akkor az első organikus találat egy 404-es hibaoldal lesz. Title: „Hiba 404 | Vodafone”

Az érintett oldal pedig a Vodafone angol nyelvű főoldala, a https://www.vodafone.hu/english

Ha ezt az oldalt megnyitod (vagy rákattintasz a Google találatra), akkor ez fogad. Egy 404-es oldal. Magyar nyelven.

Lehetséges okok

Elsőre tippem az volt, hogy ez egy átirányítási hiba lehet. Itt két irányba lehet elindulni.

  1. Először megnézzük, hogy magán a weboldalon el tudunk-e jutni az angol nyelvű főoldalra. És az betölt-e?! Honnan van linkelve?
  2. Megnézzük, hogy technikailag mi történik a hibás URL megnyitása után? Átirányít? Vagy nem? Redirect loop jön elő? Vagy valami csak rosszul van beállítva?

Weboldal elemzése

Az első opció az egyszerűbb. Felmegyünk az oldalra, és a forráskódban megkeressük az adott linket. Meg is találjuk itt:

<a href="/english" class="_2nioI1dn" target="_self" data-analytics="{&quot;mdd_menu_click&quot;:&quot;Portal:Consumer:Entry:MDD:English&quot;}"> For foreign visitors </a>

A link a „For foreign visitors” anchor text alatt található a navigáció jobb felső sarkában és sima <a>-ba vagy ágyazva.

Amikor egy böngészőben rákattintunk, mint átlag user, akkor pedig át is navigál sikeresen az angol oldalra.

Ami viszont feltűnő, hogy az angol oldal fő URL-je menet közben megváltozott: https://www.vodafone.hu/english/home

Vagyis a korábbi /english/-ből /english/home lett. Direkt vagy véletlen? Az első tippem az volt, hogy itt megy valami félre, ami igaz is. Meg nem is. Merthogy félremegy, de nem azért, amit sejtettem.

Technikai elemzés

Itt kell elindulni a második vonalon és megnézni, hogy technikailag mi történik az eredeti /english/ URL megnyitásakor. Ehhez használhatunk bármilyen redirect ellenőrző programot. Itt most a Screaming Frog elemzése alapján (Always Follow Redirects beállítás mellett) ezt kapjuk.

Először betölt a https://www.vodafone.hu/english, majd az 302 átirányít az sso.vodafone.hu/oam/server.obrareq.cgi-ra, ami pedig továbbvisz a vodafone.hu/obrar.cgi-ra. A végállomás pedig? A https://www.vodafone.hu/english.

Vagyis tesz egy kört a böngésző, aztán elakad. És elszáll. Jön a 404-es hibaüzenet. De pontosan miért? Hisz amikor a böngészőből kattintunk, akkor meg (néha) működik.

Ez a rész itt lehet kínai sokaknak, de a lényeg, hogy menet közben nem egy szimpla átirányítás történik, hanem a lekérések közben egy „hitelesítés” (post authentication) is van. És ez a hitelesítés fut valamilyen hibára, aminek a forrása az Oracle Access Managerben keresendő. Röviden:

A fenti URL folyamatban van egy OAM login, és amikor az OAM-től jön vissza a request az alkalmazásba, akkor jön a 404, mert elhasal a hitelsítés. Ez a hitelesítés pedig bizonyos feltételek mellett nem megy végbe. És a bizonyos esetekbe beletartozik a Google robotja is. Vagyis a Google felmegy, majd elhasal a hitelesítésnél és 404-et kap. Ráadásul egy olyan oldalon, ami a főoldali navigációban van. És közben a főoldal is (angol nyelven).

Felhasználói oldalon a hitelesítés megtörténik, tehát egy átlag user a weboldalon navigálva elvileg eljut a megfelelő oldalra (bár itt sincs 100% garancia rá). De ha Google találatokból érkezik valaki, vagy a linkre kattint valahol a neten, akkor szinte biztosan 404-re fog futni. És a Google találatok között is egy 404-es URL fog megjelenni.

A probléma relatív újkeletű, mert netes források alapján az Oracle Access Manager 12.2.1.2.0 utáni verziókat érinti, amire pár napja úgy tűnik a Vodafone is frissített.

Ami első körben nem tiszta, hogy miért van szükség egy szimpla nyelvváltás során ilyen technikai megoldást alkalmazni? Miért kell az SSO és a OAM használata? Miért nem lehet egyszerűen csak a végső URL-t megadni, ami egyébként be is tölt mindenféle „varázslás” nélkül: https://www.vodafone.hu/english/home

Nyilván megvan a történelmi oka, hogy miért így működik a weboldal, de kívülről ez végtelenül „overengineered” megoldásnak tűnik. Túl van bonyolítva és ez magában hordozza az ilyen jellegű hibákat is. Ha például megnézzük a Vodafone cseh oldalát, akkor ott így van megoldva az angol nyelvre váltás:

SWITCH TO ENGLISH, ami behozz ezt: https://www.vodafone.cz/en/

És hogy mi történik, ha megnyitjuk a fenti linket? Az URL mindenféle SSO, OAM és varázslás nélkül betölt egy sima 200-as response kód mellett.

Vagyis itt úgy van beállítva a nyelvváltás, ahogy logikusnak és egyszerűnek tűnik. Szerintem a magyar nyelvű oldalon is érdemes lenne hasonlóan faék egyszerű, de biztosan működő megoldást keresni.

Miért? Mert hasonló hibák nem csak itt fordulnak elő a Vodafone oldalán, hanem szinte bármilyen Vodafone branded keresésnél tele van hibás URL-lel a SERP.

Van sima hibaüzenet, „We’re sorry but Vodafone.hu doesn’t work properly withouth Javascript enabled” meta leírás és hasonlók. De akad „Hoppá! Hoppá, valami nem jó.” is.

Tanulság és megoldás

Amikor olyan rendszereket használunk, amiknek a fejlesztése és karbantartása tőlünk független, akkor érdemes körültekintőnek lenni. Még akkor is ha nagy, ismert rendszerekről van szó. Tegyük fel, hogy a fenti hibát nem javítják 3 hónapig. Akkor mostantól 3 hónapig a top 1 organikus találat egy hibaoldal lesz a Vodafone-nál?

Emellett minden egyes frissítés során érdemes körültekintően eljárni. A frissítés után tesztelni kell, hogy az oldal jól működik-e vagy sem?!

Ha pedig nem indokolt, akkor nem szabad túlbonyolítani egy oldal működését. Mert az olyan problémákhoz vezethet, mint a fenti eset. Jelen esetben a legegyszerűbb megoldás az lenne, hogyha az angol nyelvű verzióra történő átállás egy sima 200-as response kóddal történne és a nyelvváltáshoz a final URL-t adnák meg.


Hozzászólások

Moderáld magad – vagy mi fogunk. :)
Na jó, nem fogunk, szóval csak ésszel!