Kalo te përmbajtja
SEO Analyzer

Ndërkombëtare

Përputhja e deklarimeve të gjuhës

A pajtohet atributi lang i <html> me etiketën e vjetër content-language; kontroll i ngushtë.

Çfarë është

Gjuha e një faqeje mund të deklarohet në disa vende: te atributi lang i <html>, te koka HTTP Content-Language, dhe te etiketa e vjetër <meta http-equiv="content-language">.

Nga këto, vetëm lang te <html> përdoret sot nga shfletuesit dhe nga teknologjitë ndihmëse. Etiketa http-equiv="content-language" është e hequr nga standardi i HTML-së dhe nuk duhet përdorur më.

Kur të dyja ekzistojnë dhe thonë gjëra të ndryshme, kemi një dokument që e deklaron veten në dy gjuhë njëherësh.

Pse ka rëndësi

Mospërputhja vetë është rrallë problemi kryesor. Problemi i vërtetë është ai që ajo zbulon: dikush e ka ndryshuar gjuhën e sajtit në një vend dhe e ka harruar në tjetrin.

Zakonisht kjo do të thotë se shablloni ka një vlerë të fiksuar diku — lang="en" i trashëguar nga tema origjinale — ndërsa përmbajtja është shqip. Atëherë pasoja e vërtetë nuk është mospërputhja, por fakti që lexuesit e ekranit e lexojnë shqipen me fonetikë angleze.

Për motorët, deklarimet kontradiktore janë sinjal i dobët dhe zakonisht shpërfillen në favor të analizës së vetë tekstit. Pra dëmi te renditja është i vogël.

Dëmi i vërtetë është te aksesueshmëria, dhe ai matet nga kontrolli i atributit lang, jo nga ky.

Si rregullohet

<!-- e drejtë: një burim i vetëm i së vërtetës -->
<html lang="sq">

<!-- hiqe: e hequr nga standardi -->
<meta http-equiv="content-language" content="en">

Hapat:

  • Mbaj vetëm `lang` te `<html>`. Hiq etiketën http-equiv.
  • Nëse dërgon kokën `Content-Language`, sigurohu që përputhet.
  • Gjeneroje vlerën nga gjuha aktuale, jo nga një konstante.
  • Kontrollo shabllonin bazë të temës — aty rri zakonisht vlera e ngecur.
  • Për faqe shumëgjuhëshe, kontrollo disa faqe të secilës gjuhë, jo vetëm faqen kryesore.

Si e mat ky mjet

InternationalSeoAnalyzer::checkLanguageConsistency() (services/InternationalSeoAnalyzer.php:135) lexon //html/@lang dhe //meta[@http-equiv="content-language"]/@content. Nëse të dyja ekzistojnë, i ndan te vija e parë dhe krahason kodet bazë (:148).

Kur nuk përputhen, jepet paralajmërim me −8 pikë (:60). Kur lang mungon krejt, jepet një paralajmërim i veçantë me −10 pikë (:53).

Çfarë NUK e mat

Krahasimi bëhet vetëm midis dy deklarimeve HTML. Koka HTTP Content-Language, e cila ka përparësi, nuk lexohet fare — ndonëse metoda e mëmë i merr kokat si parametër.

Kur etiketa http-equiv mungon — rasti i shumicës absolute të faqeve moderne, sepse ajo është e hequr nga standardi — kontrolli nuk krahason asgjë dhe kalon gjithnjë. Pra ky kontroll praktikisht nuk aktivizohet kurrë te faqe të shkruara sot.

Më e rëndësishmja: nuk krahasohet gjuha e deklaruar me gjuhën e vërtetë të tekstit. Një faqe krejt shqip me lang="en" dhe pa etiketë të dytë raportohet si plotësisht e rregullt. Kjo është pikërisht mospërputhja që ka rëndësi, dhe ajo nuk matet.

Kodi që e kryen matjen

  • services/InternationalSeoAnalyzer.php:135InternationalSeoAnalyzer::checkLanguageConsistency
  • services/InternationalSeoAnalyzer.php:60Language Mismatch Detected

Standardi