תג html lang בוורדפרס: שפת דף לקוראי מסך, תרגום ו-SEO

ללא lang="he" קוראי מסך מקריאים עברית באנגלית. כך מוודאים שהאטריביוט נכון בכל דף ובכל תבנית.

האטריביוט lang על תג <html> מציין לכל הצרכנים של הדף - דפדפן, קורא מסך, Google, שירותי תרגום - מה השפה הראשית של התוכן. זה אטריביוט אחד של חמישה תווים שמשפיע על איך עיוור שומע את האתר ועל איך Google מציג אותו בתוצאות חיפוש.

למה זה משנה

קוראי מסך כמו NVDA ו-VoiceOver משתמשים ב-lang כדי לבחור את מנוע ההגייה הנכון. דף שכתוב בעברית עם <html lang="he"> יוקרא בעברית; אותו דף בלי האטריביוט (או עם lang="en" כברירת מחדל אנגלית) יוקרא באנגלית - כלומר אותיות עבריות יישמעו כרעש בלתי מובן או יוקראו בהגייה לטינית מעוותת. זה הופך את האתר לבלתי שמיש לעיוורים דוברי עברית.

זוהי דרישה ב-תקני נגישות בינלאומיים רמה A, תקן 3.1.1 Language of Page. גם תקן 3.1.2 Language of Parts מדבר על שינוי שפה בקטעים בודדים (<span lang="en"> סביב מילים אנגליות בטקסט עברי). מבחינת SEO, Google משתמש ב-lang כסיגנל של language targeting - דף עם lang="he" נוטה להופיע בתוצאות חיפוש לדוברי עברית במדינות שונות. כלי תרגום (Google Translate, dictionary popups) גם הם תלויים ב-lang כדי לזהות שפת מקור.

איך לזהות

גש לדף הבית של האתר > View Source. השורה הראשונה של ה-HTML צריכה להיות:

<html lang="he-IL" dir="rtl">

או:

<html lang="en-US">

אם רואה <html> ריק, או lang="", או שפה לא נכונה - יש בעיה. כלי בדיקה: axe DevTools, Lighthouse, WAVE כולם מסמנים. RankPlus קורא את ה-DOM של דף הבית ובודק את ערך ה-lang.

איך לתקן

  1. גש להגדרות > כללי > Site Language. וודא שמוגדר "עברית" (או השפה הנכונה). הערך הזה משפיע ישירות על מה ש-language_attributes() ב-PHP מחזיר.
  2. בדוק את header.php של התבנית הפעילה (wp-content/themes/THEME/header.php). השורה הפותחת חייבת להיות:
    <html <?php language_attributes(); ?>>
    לא <html> בלי הפונקציה.
  3. אם תבנית block (FSE) ב-WordPress 6.0+: ערוך דרך מראה > עורך > תבניות > Header.
  4. בדוק שאין שורה ב-functions.php או בתוסף שמכבה את הפילטר:
    grep -rn "language_attributes" wp-content/themes/ wp-content/plugins/
    אם יש remove_filter או החזרה ריקה - מצא והסר.
  5. נקה page cache (W3 Total Cache, WP Rocket, LiteSpeed) אחרי השינוי - דפים מקושיים ישנים עדיין יישלחו עם השפה הישנה.
  6. לאתר multilingual (WPML, Polylang, TranslatePress): התוסף מטפל ב-lang אוטומטית לכל גרסת שפה. וודא שהתוסף פעיל ושיש לכל דף locale תקין.
  7. למקטעי טקסט בשפה אחרת (ציטוט באנגלית בתוך פוסט עברי), עטוף ב-<span lang="en">...</span>.

טעויות נפוצות

  • חיתוך ה-lang דרך תוסף אופטימיזציה: חלק מתוספי minify אגרסיביים מסירים אטריביוטים. בדוק את ה-output אחרי הם.
  • מחיקת language_attributes() לטובת "קוד נקי": מבטל את כל המנגנון.
  • שימוש ב-lang="iw" במקום lang="he" (קוד ישן ש-IANA כבר לא ממליץ עליו).
  • שכחה של dir="rtl" בעברית: גם אם יש lang="he", צריך גם dir="rtl" כדי שהדפדפן יציג RTL נכון. language_attributes() אמורה להחזיר את שניהם.
  • multilingual שלא עודכן: WPML שאינו פעיל מציג lang של ברירת מחדל בכל הדפים.

בדיקה לאחר תיקון

פתח View Source על דף הבית, על פוסט יחיד ועל דף קטגוריה. בכולם השורה הראשונה צריכה להיות <html lang="he-IL" dir="rtl"> (או השפה הנכונה). הרץ Lighthouse - הקטגוריה Best Practices > Accessibility > "document has a valid lang attribute" אמורה להיות ירוקה. RankPlus יחזור לירוק.

טיפ: אם יש לאתר גרסה אנגלית בנפרד, השתמש ב-hreflang בנוסף ל-lang - זה אומר ל-Google שיש גרסאות באותו תוכן בשפות אחרות. <link rel="alternate" hreflang="en" href="...">.