באתר הבינלאומי הראשון ששלחתי היו אחת עשרה גרסאות שפה ואפס hreflang.Traffic נראה בסדר במצטבר, אז אף אחד לא הטיל ספק בזה במשך חודשים ואז עמית בברלין חיפש את המוצר שלנו ב-google.de וקיבל את הדף באנגלית.לא הגרמני. הגרמני היה קיים, היה באינדקס, והיה כתוב טוב יותר מהמקור האנגלי. לגוגל פשוט לא הייתה סיבה להעדיף אותו, אז הוא שירת את כל הגרסה שהצביעו עליה הכי הרבה קישורים, וזה היה זה שקידמנו בטוויטר באנגלית במשך שנתיים.
כלומר מצב הכשל hreflang קיים כדי למנוע, והוא בלתי נראה מתוך השוק שלך אתה מחפש מהמדינה שלך בשפה שלך, מקבל את הדף הנכון ומסיק שהכל עובד האנשים שמקבלים את הדף הלא נכון הם אלה אתה אף פעם לא שומע, כי הם קפצו.
מדריך זה מכסה hreflang מקצה לקצה: מהי ההערה, כיצד בנויים הקודים, שלושת המקומות שאתה יכול לשים אותו, הכללים שגורמים לגוגל לסמוך עליו, וכיצד הוא מקיים אינטראקציה עם תגים קנוניים ומפות אתר. זהו המרכז לסט של חלקים ממוקדים x-ברירת מחדל, השגיאות ששוברות יישומים, hreflang מול קנוני, והגדרות ספציפיות למסגרת עבור Next.js ו וורדפרס.
TL;DR: תג hreflang הוא א
rel="alternate" hreflang="xx-XX"ביאור שאומר למנועי החיפוש איזו שפה וגרסה אזורית של דף לשרת כל משתמש הערך הוא קוד שפה ISO 639-1, אופציונלי בתוספת קוד אזור ISO 3166-1 alpha-2, כך שבריטניה היאGBולאUK. הערות חייבות להיות הדדיות: כל עמוד בסט מפרט כל גרסה כולל את עצמה, או שגוגל משליך את הסט. אתה יכול ליישם אותו כ-HTML<link>תגיות, ערכי מפת אתר XML או HTTPLinkכותרת, אבל רק שיטה אחת לכל ערכת כתובת URL. ה גנרטור hreflang בונה את כל שלושת הפורמטים בדפדפן ומאמת את הקודים לפני שאתה שולח אותם.
מהו תג hreflang?
תג hreflang הוא ביאור שמצהיר " גרסה אחרת של דף זה קיימת עבור שפה ואזור זה, והוא חי בכתובת URL זו." זה נראה כך:
<link rel="alternate" hreflang="fr-CA" href="https://example.com/fr-ca/" />
קרא משמאל לימין: rel="alternate" אומר שזהו גרסה ולא דף אחר, hreflang="fr-CA" אומר שהגרסה מיועדת לדוברי צרפתית בקנדה, ו href נותן את כתובת האתר המוחלטת שום דבר כאן הוא לא הנחיה גוגל מתייחסת hreflang כרמז חזק על איזה כתובת URL להחליף עבור מחפש נתון, לא כפקודה זה חייב לציית, וזה יהיה לעקוף את הרמז כאשר הראיות נקודות במקום אחר.
ההערה מוגדרת ב-Google's תיעוד על גרסאות מקומיות של דף, וערכי הקוד מגיעים מ BCP 47, תקן IETF עבור תגי שפה. Bing תומך באותה הערה. Yandex אינו משתמש ב-hreflang ומסתמך על הגדרות אזוריות משלו, מה שחשוב אם השווקים בשפה הרוסית הם חלק מהתוכנית שלך.
מתי צריך hreflang, ומתי זה בזבוז זמן?
אתה צריך את זה כאשר אותו תוכן קיים ביותר משפה אחת, או בשפה אחת המכוונת ליותר מאזור אחד אתה לא צריך את זה עבור אתר שקיים רק באנגלית עבור שוק אחד בלבד, ולהוסיף אותו שם לא עושה דבר מלבד להוסיף סימון.
שלוש צורות עולות בפועל:
| צורת האתר | דוגמה | צריך hreflang? |
|---|---|---|
| שפה אחת, שוק אחד | אתר שיווק SaaS בארהב בלבד | לא |
| שפות מרובות | /en/, /de/, /ja/ גרסאות של אותם דפים |
כן |
| שפה אחת, שווקים מרובים | example.com/us/ ו example.com/uk/, שניהם אנגלים |
כן, וזה המקרה לרוב החמצה |
השורה השלישית היא זו ששווה להשהות עליה שני דפים באנגלית עם מחירים שונים, עותק משלוח ואיות נראים כמו כפילויות לסורק ללא hreflang, גוגל בוחרת אחד ומסננת את השני, וכך חנות בבריטניה בסופו של דבר בלתי נראית ב-google.co.uk בעוד שהדו-דרגות התאומות שלה בארהב ההערה היא מה שאומר לגוגל שאלו גרסאות אזוריות מכוונות ולא שכפול מקרי.
כיצד בנויים קודי hreflang?
לערך שני חלקים, ורק הראשון נדרש.
ה שפה האם קוד ISO 639-1 בן שתי אותיות, אותיות קטנות: en, fr, de, ja, pt. ה אזור האם קוד ISO 3166-1 אלפא-2 בן שתי אותיות, אותיות רישיות, מחובר עם מקף: en-US, pt-BR, de-AT. המעטפת היא מוסכמה ולא דרישה קשה, מכיוון שתגי שפה מותאמים ללא רגישות רישיות, אבל כל סקירת קוד עוברת מהר יותר כשאתה עוקב אחריה.
הכללים שאנשים טועים, לפי הסדר שאני רואה שהם טועים:
- הממלכה המאוחדת היא
GB.UKאינו קוד ISO 3166-1.en-UKזוכה להתעלמות שקטה, וזה יותר גרוע משגיאה כי שום דבר לא אומר לך. - אזור לבדו הוא לא דבר. אין דרך לומר "כולם בקנדה" בלי לתת שם לשפה.
hreflang="CA"אינו חוקי אתה כותבen-CAוfr-CAכערכים נפרדים. - אמריקה הלטינית היא
es-419. זהו קוד אזור מספרי של UN M49, תקף ב-BCP 47, והתשובה הנכונה כאשר הספרדית שלך מכוונת לאזור ולא לספרד או למקסיקו באופן ספציפי. - סינים בדרך כלל רוצים תסריט, לא מדינה.
zh-Hantעבור מסורתי וzh-Hansעבור Simplified תאר את מערכת הכתיבה, וזה מה שאכפת לקוראים.zh-CNוzh-TWעבודה אבל לשלב תסריט עם גיאוגרפיה. - שפה ואזור הם צירים עצמאיים.
en-CAוfr-CAיכול שניהם קיימים. So canen-US,en-GB, וen-AU. אל תניח עמוד אחד לכל מדינה או עמוד אחד לכל שפה; למפות את השילובים שהאתר שלך משרת באמת.
ה גנרטור hreflang בודק כל קוד מול הצורה הצפויה ותגי משנה של דגלים שאינם ערכי שפה או אזור מוכרים, אז en-UK נכשל במקלדת במקום בזחילה שלושה שבועות לאחר מכן.
לאן הולכים תגי hreflang?
שלוש שיטות יישום נתמכות, והן שוות ערך למעשה הבחירה היא מבצעית.
| שיטה | איפה זה גר | הטוב ביותר עבור | עלות |
|---|---|---|---|
HTML <link> |
כל עמוד's <head> |
רוב האתרים; הכי קל לנפות באגים | כל עמוד נושא את הסט המלא, שגדל עם ספירת השפות |
מפת אתר XML xhtml:link |
ערכים מפת האתר | אתרים גדולים, הרבה מקומות | מפת האתר חייבת להישאר מסונכרנת; לאט יותר להרים |
HTTP Link כותרת |
תגובת שרת | קובצי PDF וקבצים אחרים שאינם HTML | זקוק להגדרת שרת; בלתי נראה בדפדפן's view-source |
תגיות HTML בראש:
<link rel="alternate" hreflang="en-US" href="https://example.com/us/pricing" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/pricing" />
<link rel="alternate" hreflang="de-DE" href="https://example.com/de/preise" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing" />
אותה קבוצה כמו ערכי מפת אתר, שזקוקה ל xhtml מרחב השמות הוכרז על <urlset>:
<url>
<loc>https://example.com/us/pricing</loc>
<xhtml:link rel="alternate" hreflang="en-US" href="https://example.com/us/pricing"/>
<xhtml:link rel="alternate" hreflang="en-GB" href="https://example.com/uk/pricing"/>
<xhtml:link rel="alternate" hreflang="de-DE" href="https://example.com/de/preise"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/pricing"/>
</url>
וככותרת HTTP, שהיא האפשרות היחידה עבור PDF:
Link: <https://example.com/us/whitepaper.pdf>; rel="alternate"; hreflang="en-US",
<https://example.com/de/whitepaper.pdf>; rel="alternate"; hreflang="de-DE"
בחר שיטה אחת לכל סט כתובת URL ערבוב של תגי HTML וערכים של מפת אתר עבור אותם דפים אינו קטלני, אבל זה נותן לגוגל שני מקורות שיכולים להתרחק, וביום שהם לא מסכימים לא תדע איזה מהם זכה אם אתה כבר מייצר מפת אתר עם ה מחולל מפת אתר XML, פורמט מפת האתר נופל ישר לתוכו.
מדוע הרפלנג חייב להיות הדדי?
כי טענה חד כיוונית אינה ניתנת לאימות אם בדף שלך באנגלית כתוב " הגרסה הצרפתית נמצאת שם" והעמוד הצרפתי לא אומר כלום, כל אחד יכול להצביע על כל אחד. Google's הכלל הוא ששני הצדדים חייבים להסכים, וה דרישת תג החזרה מצוין בבירור בתיעוד שלו: מתעלמים מהערות ללא אישור תגי החזרה.
הצורה המעשית של הכלל פשוטה יותר ממה שהיא נשמעת שים את קבוצת ההערות המלאה והזהה בכל עמוד בקבוצה, כולל ערך הפניה עצמית עבור הדף עצמו הדף באנגלית מפרט אנגלית, צרפתית, גרמנית ו-x-default כך גם הדף הצרפתי כך גם הדף הגרמני באותו בלוק, בייט עבור בייט, בכולם.
היתירות הזו היא התכונה. זה הופך את הסט לאימות עצמית וזה הופך את הפריסה למכנית: בנה את הבלוק פעם אחת לכל קבוצת כתובות אתרים ורינדור אותו ממקור בודד ולא עריכה ידנית לכל עמוד. עריכה ידנית היא הדרך שבה קבוצה של תשעה עמודים מסתיימת בשמונה בלוקים נכונים וערך אחד חסר, וערך חסר אחד מספיק כדי שגוגל לא תסמוך על הזוג שאליו היא שייכת.
מה עושה x-default?
x-default שמות הדף לשרת כאשר אין ערך אחר תואם למשתמש מישהו גלישה בקוריאנית אדמות באתר עם אנגלית, צרפתית, וגרמנית גרסאות: ללא x-default, מנחש גוגל. בעזרתו, אתה מחליט, והתשובה היא בדרך כלל בורר שפות או דף הבית הבינלאומי הראשי שלך.
זה לא קוד שפה והוא לא מחליף אחד הדף שלך באנגלית עדיין צריך משלו en או en-US כניסה, ו x-default יושב לצד כמלכוד הכל. גוגל מתייחסת לזה כאופציונלי, ואני מתייחס לזה כנדרש, כי " האלגוריתם בוחר משהו" היא לא אסטרטגיית ניתוב. ה מדריך x-default מלא מכסה לאן לכוון אותו, מה קורה כאשר אתה מכוון אותו להפניה מחדש, ומדוע דף בורר שפות זקוק לטיפול משלו.
כיצד פועלים אינטראקציה בין hreflang ותגים קנוניים?
הם עונים על שאלות שונות ואסור להם לסתור אחד את השני.
תג קנוני אומר " של כתובות האתרים הכמעט זהות הללו, אינדקס את זה." הערת hreflang אומרת " כתובות האתרים הללו הן חלופיות מקומיות, משרתות את הכתובת הנכונה לכל משתמש." הכישלון שאוכל גרסאות של שפה שלמה הוא קנוניזציה בין שפות: הדף הצרפתי שלך מכריז על הדף האנגלי כקנוני, מה שאומר לגוגל להוריד את כתובת האתר הצרפתית מהאינדקס, ו-hreflang לא יכול להחיות כתובת URL שעברה קנוניזציה.
הכלל קצר. כל עמוד עושה קנוניזציה לעצמו. Hreflang מתאר את היחסים בין אותם דפים קנוניים עצמיים קבל את שתי העובדות האלה ישר ושתי המערכות משתפות פעולה; להצליב אותם והאות החזק יותר, הקנוני, מנצח ומוחק בשקט את התרגומים שלך. Hreflang לעומת קנוני עובד דרך השילובים, כולל מקרה פרמטר-URL שבו שניהם פועלים בבת אחת.
איך בודקים שהרפלאנג עובד?
התחל עם Search Console.דוח המיקוד הבינלאומי מפרט את שני הכשלים החשובים בקנה מידה, " ללא תגיות החזרה" ו-"קוד שפה לא ידוע", על פני כל הנכס, מה שמנצח את בדיקת הדפים אחד בכל פעם. שימו לב שזה בפיגור: תיקונים מופיעים רק לאחר שגוגל סורקת מחדש כל עמוד בסט המושפע, כך ששבוע ללא שינוי הוא נורמלי ואינו עדות לכך שהתיקון נכשל.
לאחר מכן סרוק אתר משלך. כל סורק שמציג הערות hreflang יראה לך את הסט שכל כתובת URL נושאת, והבדיקה שאתה מפעיל היא האם כל עמוד בקבוצה נושא את הבלוק המלא הזהה. מיין לפי קבוצה וגלגל עין את הספירות; דף עם ארבעה ערכים בקבוצה של חמישה הוא הבאג.
לאחר מכן בדוק את פתרון המטרות. כל אחד href חייב להיות כתובת URL מוחלטת שמחזירה 200 וניתנת לאינדקס יעד שמפנה מחדש עדיין עובד אבל מוסיף הופ, יעד ש-404s מרעיל את הסט, ויעד שהוא noindex היא סתירה: אתה מפרסם דף שאמרת לגוגל להתעלם ממנו.
מה נשבר לרוב?
בסדר גס של התדירות שבה אני מוצא אותם:
- תגיות החזרה חסרות. עמוד א' מצביע על B, B לא מצביע אחורה גוגל משליך את הזוג.
- אין x-ברירת מחדל. משתמשים ללא תחרות מקבלים את הגרסה שגוגל מנחשת.
- קודים שאינם ISO.
en-UKלידים, ואחריהם מומצאים כמוen-EU. - כתובות URL יחסיות. hreflang דורש כתובות URL מוחלטות, פרוטוקול ומארח כלולים.
- אי התאמה של קו נטוי נגרר.
/fr/ו/frהן כתובות URL שונות, והביאור חייב להתאים לטופס הניתן לאינדקס. - הצבעה קנונית על פני שפות. מבטל את כל הסט.
- שיטות מעורבות. תגי HTML וערכי מפת אתר עבור אותן כתובות אתרים, מתרחקים זה מזה.
כל אחד מאלה מייצר סימון שנראה נכון. זה מה שהופך את hreflang למייגע: הכישלון תמיד שקט. 12 שגיאות hreflang נפוצות עובר על כל אחד מהם עם הסימפטום שהיית מתבונן בו והתיקון.
איך מייצרים ומתחזקים את התגים?
עבור קומץ כתובות URL, כתיבת הבלוק ביד היא בסדר פעם אחת וכואבת בשינוי השני. לכל דבר גדול יותר, צור אותו.
ה מחולל תג hreflang לוקח שורה אחת לכל גרסה - קוד וכתובת URL מוחלטת - ופולט את הבלוק כתגיות קישור HTML, ערכי מפת אתר או כותרת HTTP. הוא מאמת כל קוד מול צורת ה-ISO, מסמן תגי משנה לא מזוהים, תופס קודים כפולים, דוחה כתובות URL יחסיות ומזהיר כאשר לסט אין ברירת מחדל x. הוא פועל כולו בדפדפן, כך שמבנה כתובת האתר שלך, הממפה את כל הארכיטקטורה הבינלאומית שלך, לעולם לא מועלה לשום מקום.
עבור אתר שכבר מעוצב בתבנית, התשובה הטובה יותר לטווח ארוך היא להציג את הבלוק מתצורת הניתוב שלך כך שהוא לא יכול להיסחף. זה מה ש Next.js ו וורדפרס כריכת המדריכים: מקור אחד של אמת עבור מפת המקום, רכיב אחד או מסנן המציג את הסט ההדדי המלא בכל עמוד בקבוצה. המחולל הוא אז הדבר שבו אתה משתמש כדי לבדוק את הפלט ולא כדי לייצר אותו, שהיא חלוקת העבודה הנכונה ברגע שאתר עבר כמה עשרות כתובות אתרים.
אם אתה מרכיב את שאר שכבת ה-SEO הטכנית בו-זמנית, ה מחולל מטא תגים מטפל בראש לכל עמוד וב- מחולל robots.txt מכסה הנחיות זחילה. ה מדריך כלי Hreflang מעמיק יותר על הגנרטור עצמו.
שאלות נפוצות
מהו תג hreflang?
תג hreflang הוא א rel="alternate" hreflang="xx-XX" ביאור שאומר למנועי חיפוש איזו שפה וגרסה אזורית של דף לשרת משתמש נתון. זה עוזר לאתרים בינלאומיים לדרג את הגרסה הנכונה בכל שוק ומונע מדפים אזוריים כמעט זהים להיות מסוננים ככפולים.
האם אני צריך hreflang אם האתר שלי הוא רק באנגלית?
רק אם אתה מכוון ליותר משוק אחד דובר אנגלית עם כתובות URL נפרדות אתר באנגלית יחיד לשוק יחיד לא צריך hreflang חנויות נפרדות בארהב ובבריטניה, שתיהן באנגלית, כן צריכות את זה, כי ללא ההערה השניים נראים כמו כפילויות.
האם האזור הוא חלק מקוד hreflang הנדרש?
מס 'קוד השפה נדרש והאזור הוא אופציונלי. en תקף בפני עצמו מה שלא תקף הוא אזור ללא שפה: אין דרך למקד למדינה מבלי לתת שם לשפה.
האם hreflang מבטיח איזה עמוד גוגל מציגה?
מס 'Hreflang הוא אות חזק, לא הנחיה. Google עדיין יכול לשרת גרסה אחרת כאשר ראיות אחרות, כגון המשתמש & #39;s הגדרות שפה מפורשות או שפת השאילתה, מצביע במקום אחר.
כמה זמן לוקח עד ששינויי hreflang נכנסים לתוקף?
Google צריכה לסרוק מחדש כל דף בסט לפני שהיא יכולה לאשר את תגי ההחזרה, כך ששינויים בדרך כלל לוקחים ימים עד שבועות, תלוי בתדירות שבה האתר שלך נסרק. דוח המיקוד הבינלאומי ב-Search Console מתעדכן באותו פיגור.
האם אני יכול להשתמש ב-hreflang ובתגים קנוניים ביחד?
כן, וכדאי לך כל דף עושה קנוניזציה לעצמו, והרפלנג מתאר את היחסים בין אותם דפים קנוניים עצמיים הקנוניזציה של גרסת שפה אחת לאחרת מסירה אותה מהאינדקס ומבטלת את ערכת ה-hreflang.
האם בינג תומך ב-hreflang?
כן. בינג תומך באותו rel="alternate" hreflang ביאור. Yandex אינה משתמשת ב-hreflang ומסתמכת במקום זאת על ההגדרות האזוריות שלה.
לאן צריכים ללכת תגי hreflang, ב-HTML או במפת האתר?
כל אחד מהם עובד תגיות קישור HTML קל יותר לנפות באגים והם הבחירה הנפוצה ערכי מפת אתר לשמור ראשי עמוד רזה ולהתאים אתרים עם locales רבים השתמש בשיטה אחת לכל סט כתובת URL ולא בשניהם.



