Technikai alapok Szakszó

W3C HTML-validáció

Szerző: · 8 perc olvasás · Frissítve:
W3C HTML-validáció - Technikai alapok (szakszó) a tudástárban
W3C HTML-validáció - Technikai alapok | eClick GEO-audit tudástár

A W3C HTML-validáció az a vizsgálat, amely megnézi, hogy az oldal HTML-kódja megfelel-e a szabvány formai szabályainak: minden tag zárva van-e, az attribútumok léteznek-e, és a struktúra logikus-e. A hivatalos ellenőrzőeszköz a W3C Markup Validation Service, ami hibákat (error) és figyelmeztetéseket (warning) ad vissza.

Hogyan működik

A validátor letölti az oldal HTML-forrását, és összeveti a HTML Living Standard szabályaival. Nem futtat JavaScriptet, tehát a nyers, szerver által küldött kódot nézi. Ezért egy React- vagy Vue-oldal validációs eredménye gyakran félrevezető: a kliensen generált markup nem kerül bele.

Tipikus hibák: lezáratlan <div>, duplikált id, kötelező alt hiánya, érvénytelen attribútum-érték, rossz egymásba ágyazás. A doctype és charset hiánya szintén azonnal hibát dob, mert a validátor ilyenkor nem tudja, milyen szabályrendszert alkalmazzon.

Mit kezdenek vele a böngészők és a keresők

A böngészők hibatűrők. A HTML-parser szabványosan definiált hibajavítási logikát követ, ezért egy lezáratlan tag általában nem töri szét az oldalt. A Google ugyanazt a Chromium-alapú parsert használja rendereléshez, tehát a validációs hibák túlnyomó része rangsorolási szempontból közömbös.

Ami viszont számít: az olyan szerkezeti hiba, ami elmozgatja a DOM-ot a szándékolt formától. Ha egy rosszul zárt <div> miatt a fő tartalom beleszalad a láblécbe, akkor a fő tartalom aránya és a szövegkivonat is romlik.

Miért más a generatív keresőknek

Az AI-crawlerek jó része nem futtat JavaScriptet, és egyszerűbb HTML-feldolgozót használ, mint egy böngésző. Ezek az eszközök érzékenyebbek a rontott struktúrára. A riportokban azt látjuk, hogy a súlyosan kevert markup miatt a szövegkinyerés összefolyik, és a címhierarchia eltűnik.

A tiszta HTML tehát nem önmagáért érték. Azért érdekes, mert a gépi olvasat pontossága múlik rajta.

Röviden: a validációs hiba önmagában ritkán baj, de a szerkezetet elrontó hiba a gépi szövegkinyerést is elrontja.

Miért fontos

SEO-hatás

A validációs hibák többsége nem befolyásolja a rangsorolást. A Google renderelő motorja ugyanúgy javítja a hibás markupot, mint a Chrome. Ezért ez a szabály alacsony hatású: nem ettől fogsz előrébb kerülni.

Két kivétel van, ahol tényleg fáj:

  • Szerkezeti összeomlás. Egy lezáratlan konténer miatt a tartalom rossz helyre kerül a DOM-ban.
  • Duplikált id. Ilyenkor a JavaScript és a CSS is rossz elemre hivatkozhat, és az akadálymentességi kapcsolatok (for, aria-labelledby) elromlanak.

AI-értelmezhetőség

A AI-crawlerek egyszerűbb feldolgozót használnak. Ha a címsorok félrecsúsznak, a modell nem látja, mi tartozik mihez. A címhierarchia ilyenkor értelmét veszti.

Üzleti olvasat

A validációs hibák száma jó proxy a kód általános állapotára. Ha egy oldalon 200 hiba van, ott általában technikai adósság is halmozódik. A riportokban ezt látjuk: a sok hibás oldalakon gyakran elavult tagek és inline stílusok is vannak.

A validáció nem cél, hanem mérőszám. Nulla hiba nélkül is lehet jó oldalad, de 300 hibával biztosan van valami takarítanivalód.

Kikre vonatkozik

Kikre vonatkozik

  • Minden publikus weboldalra, ahol a HTML-t szerver küldi (WordPress, Shopify, Unas, Shoprenter, egyedi PHP).
  • Sablonalapú oldalakra különösen, mert egy sablonhiba az összes aloldalon megismétlődik.
  • Webshopokra, ahol a terméklisták ismétlődő markupja sokszorozza a hibát.

Kikre vonatkozik kevésbé

  • Erősen JavaScript-alapú SPA-kra. Itt a validátor csak az üres HTML-vázat látja, az eredmény nem informatív. Ilyenkor a renderelt DOM-ot kell vizsgálni.
  • Staging- és fejlesztői környezetekre. Ott a hiba normális, javítani élesítés előtt kell.
  • Belső admin-felületekre, amiket robot nem lát.

Mikor halaszd

Ha az oldalon HTTPS-hiba, indexelési tiltás vagy sebességprobléma van, azokat vedd előre. A validáció a takarítási feladatok közé tartozik, nem a tűzoltás közé.

Hogyan ellenőrzöd

Lépések

  1. Nyisd meg a validator.w3.org címet, és válaszd a Validate by URI fület.
  2. Írd be a kezdőoldal teljes URL-jét, és futtasd le.
  3. Nézd meg a lista tetején a hibák (Error) és figyelmeztetések (Warning) számát.
  4. Ismételd meg legalább három oldaltípuson: kezdőlap, egy szolgáltatás- vagy termékoldal, egy blogbejegyzés.
  5. Ha az oldal JavaScripttel épül fel, másold be a renderelt DOM-ot a Validate by Direct Input mezőbe. A DevTools Elements paneljén jobb klikk a <html> elemre, majd Copy > Copy outerHTML.
  6. Kereszt-ellenőrzésként futtasd le a Lighthouse Best Practices auditot. Az átfedő hibákat (duplikált id, érvénytelen attribútum) itt is látod.

Jó jel

  • 0-10 hiba oldalanként, és azok is apróságok (pl. felesleges type attribútum).
  • Nincs „Unclosed element” vagy „End tag ... seen, but there were open elements” üzenet.
  • Nincs „Duplicate ID” hiba.
  • A hibák nem ismétlődnek minden aloldalon.

Rossz jel

  • 50 fölötti hibaszám egyetlen oldalon.
  • Lezáratlan <div>, <p> vagy <li> elemek.
  • Ugyanaz az id többször szerepel (gyakori a slider- és popup-pluginoknál).
  • Hiányzó doctype vagy karakterkódolás.
  • Elavult tagek: <center>, <font>, <marquee>.

Mit néz ebből a riport

Az audit lefuttatja a W3C-validátort a vizsgált oldalon, és megszámolja a hibákat. Az eredmény alacsony hatású jelzés: önmagában nem rontja a pontszámot drámaian, de mutatja a kód általános állapotát. A riport ajánlása egyszerű: javítsd a validátor által jelzett HTML-hibákat.

Hogyan javítod

Általános sorrend

  1. Rendezd a hibákat típus szerint, ne sorrend szerint. Egy hibatípus általában egy helyen javítható.
  2. Kezdd a lezáratlan elemekkel. Ezek okozzák a további hibák nagy részét.
  3. Javítsd a duplikált id értékeket.
  4. Cseréld le az elavult tageket.
  5. Futtasd újra a validátort, és nézd meg, mennyi maradt.

WordPress

  1. Kapcsold ki egyesével a pluginokat, és mindegyik után futtass validációt. Így kiderül, melyik generálja a hibát.
  2. Ha a sablon a forrás, a header.php, footer.php és single.php fájlokban keresd a lezáratlan konténereket.
  3. Gyermeksablonban javíts, ne a szülőben. Frissítéskor különben elvész.
  4. Page builderek (Elementor, WPBakery) gyakran duplikált id-t generálnak ismételt szekcióknál. Nevezd át a szekció-azonosítókat a builder felületén.
  5. Ha a hiba a bejegyzés tartalmából jön, nyisd meg a blokk-szerkesztő kód-nézetét, és zárd le a kézzel beillesztett tageket.

Shopify

  1. Online Store > Themes > Edit code.
  2. A theme.liquid, product.liquid és a section-fájlokban keresd a hibát.
  3. A Liquid-ciklusokban ({% for %}) generált id értékekhez fűzd hozzá a termék- vagy blokk-azonosítót, hogy egyedi legyen.
  4. Duplikáld a sablont javítás előtt, és a másolaton dolgozz.

Unas

  1. A sablonhibákat a Design > Sablonszerkesztő felületén javítod.
  2. A saját HTML-blokkokban (fejléc-, lábléc-beszúrás) keresd a lezáratlan tageket. A riportokban ezek a leggyakoribb forrás.
  3. A beépített sablonelemek hibáit a szolgáltató ügyfélszolgálatának jelezd, azokhoz nincs hozzáférésed.

Shoprenter

  1. Design > Sablonszerkesztő, majd a Twig-sablonfájlok.
  2. A termékdoboz-sablonban egy hiba az egész kategórialistán megismétlődik. Itt érdemes kezdeni.
  3. A saját beillesztett kódrészeket (banner, HTML-modul) külön nézd át.

Egyedi fejlesztés

  1. Tedd be a validációt a build-folyamatba. A html-validate npm-csomag lokálisan futtatható, nem kell külső szolgáltatás.
  2. Sablonmotornál (Blade, Twig, Liquid) a hibát majdnem mindig a részleges sablon (partial) okozza. Ott keresd.
  3. Ha JavaScript generálja a markupot, a renderelt DOM-ot validáld, nem a forrást.
  4. Állíts be egy küszöböt: a CI bukjon el, ha új hiba keletkezik. A meglévőket fokozatosan vidd le.

Gyakori hibák

  • Nulla hibát céloznak meg mindenáron. A harmadik féltől jövő widgetek (chat, térkép, fizetési modul) hibáit nem tudod javítani, felesleges rájuk időt fordítani.
  • Csak a kezdőlapot validálják. A sablonhibák termék- és blogoldalon másképp jelennek meg, ott is mérni kell.
  • SPA-t nyers forrásból validálnak. Az üres váz alapján hozott következtetés hibás, a renderelt DOM-ot kell nézni.
  • A figyelmeztetést hibaként kezelik. A Warning legtöbbször stílusbeli megjegyzés, nem szabálysértés.
  • Duplikált id-t figyelmen kívül hagynak. Ez valódi működési hibát okoz a JavaScriptben és az akadálymentességi kapcsolatokban.
  • Szülősablonban javítanak. A következő frissítés felülírja a munkát, és a hiba visszajön.
  • A validációt SEO-eszköznek hiszik. A rangsorolásra gyakorolt hatása minimális, a SEO-alapok máshol dőlnek el.

Technikai példa

Tipikus hibák és a javított változat:

<!-- Hibás: lezáratlan div, duplikált id, elavult tag -->
<div class="card">
  <h2 id="cim">Szolgáltatásaink</h2>
  <p>Weboldal-fejlesztés és karbantartás.
<div class="card">
  <h2 id="cim">Referenciák</h2>
  <center>Több mint 200 projekt</center>
</div>

<!-- Javított -->
<div class="card">
  <h2 id="szolgaltatasok">Szolgáltatásaink</h2>
  <p>Weboldal-fejlesztés és karbantartás.</p>
</div>
<div class="card">
  <h2 id="referenciak">Referenciák</h2>
  <p class="center">Több mint 200 projekt</p>
</div>

A <center> helyett CSS-osztály megy, az id értékek egyediek lettek, és minden konténer zárva van.

Parancssorból is futtathatod a validátort, JSON-válasszal:

curl -s "https://validator.w3.org/nu/?doc=https%3A%2F%2Fpelda.hu%2F&out=json" \
  | jq '[.messages[] | select(.type=="error")] | length'

Ez visszaadja a hibák darabszámát. Több URL-re futtatva gyorsan látod, melyik oldaltípus a legrosszabb.

Saját HTML-fájl ellenőrzése feltöltés nélkül:

curl -s -H "Content-Type: text/html; charset=utf-8" \
  --data-binary @index.html \
  "https://validator.w3.org/nu/?out=json"

Gyakori kérdések

Rontja a Google-helyezésemet, ha sok validációs hiba van?
Közvetlenül nem. A Google ugyanazt a hibatűrő HTML-parsert használja, mint a Chrome, ezért a hibák nagy részét automatikusan javítja renderelés közben. Közvetve akkor árt, ha a hiba elrontja a DOM-szerkezetet, és a tartalom rossz helyre kerül. Ilyenkor a kivonatolás és a címhierarchia is sérül.
Miért nem tudom lenullázni a hibákat?
Mert a hibák egy része nem a te kódodból jön. A beágyazott chat-widgetek, térképek, fizetési modulok és hirdetési szkriptek saját markupot injektálnak. Ezekhez nincs hozzáférésed. A reális cél az, hogy a saját sablonjaid hibamentesek legyenek.
Melyik oldalakat érdemes validálni?
Oldaltípusonként egyet-egyet. Egy kezdőlapot, egy szolgáltatás- vagy termékoldalt, egy blogbejegyzést és egy listaoldalt. A sablonalapú rendszerekben a hiba oldaltípusonként ismétlődik, tehát négy mérésből látod a teljes képet.
Mi a különbség a validátor hibája és figyelmeztetése között?
A hiba (Error) szabályszegés: valami olyan van a kódban, amit a szabvány tilt. A figyelmeztetés (Warning) inkább javaslat, például felesleges attribútum vagy szokatlan, de megengedett szerkezet. Javításkor a hibákkal kezdj, a figyelmeztetések általában ráérnek.
Érdemes a validációt automatizálni?
Ha van build-folyamatod, igen. Az npm-es html-validate csomag lokálisan fut, és beköthető a CI-be. Állíts be egy küszöböt a jelenlegi hibaszámra, és ne engedd, hogy nőjön. A meglévő hibákat így fokozatosan tudod ledolgozni.

Források

Kapcsolódó fogalmak

A te oldaladon hogy áll a(z) „W3C HTML-validáció”?

Futtass egy SEO-auditot: pontszám, fejlesztői ítélet, a leggyorsabb javítások, és minden tételhez bizonyíték.

Ingyenes SEO-audit indítása