באג ה-hreflang הגרוע ביותר ששלחתי היה שינוי תבנית בשורה אחת שהוציא ארבע גרסאות שפה מ-Google' אינדקס s. הראש חלק עיבוד תג קנוני, ומישהו שיחזר אותו כך שהקנוני נבנה ממקום ברירת המחדל ולא מהנוכחי. כל דף מתורגם התחיל להכריז על הדף באנגלית כקנוני שלו. הערות ה-hreflang לא נגעו ועדיין מושלמות. הם גם לא היו רלוונטיים לחלוטין, כי אתה לא יכול להגיש כתובת URL שהוצאה מקנוניזציה מהאינדקס.
שום דבר לא נשבר הדפים עדיין טעונים התנועה מהשווקים שאינם אנגלים ירדה במשך כשלושה שבועות, שזה בערך כמה זמן לקח לגוגל לצייר הכל מחדש, ועד שהיה ברור שהסיבה הייתה חמש התחייבויות חזרה.
Canonical ו hreflang הם שני ההערות סביר ביותר להתבלבל אחד עם השני ואת שני סביר להניח לבטל אחד את השני מדריך זה מכסה את מה שכל אחד טוען, הכלל ששומר אותם תואמים, ואת השילובים הספציפיים משתבשים זה יושב תחת ה מדריך hreflang שלם, ליד 12 שגיאות hreflang נפוצות.
TL;DR: תג קנוני אומר " של כתובות האתרים הכמעט משוכפלות הללו, אינדקס את זה." הערת hreflang אומרת " כתובות האתרים הללו הן חלופיות מקומיות, משרתות את האחת הנכונה לכל משתמש." הם עונים על שאלות שונות ואסור לסתור זה את זה הכלל הוא שכל עמוד מתגלגל לעצמו, ו-hreflang מתאר את היחסים בין אותם דפים קנוניים עצמיים. קנוניזציה של גרסת שפה אחת לאחרת מסירה אותה מהאינדקס והופכת את קבוצת ה-hreflang לחסרת טעם, מכיוון שקנוני הוא האות החזק יותר.
מה טוען תג קנוני?
תג קנוני מציין את כתובת האתר המועדפת מבין קבוצת כתובות URL המשרתות את אותו תוכן באופן מהותי:
<link rel="canonical" href="https://example.com/pricing" />
זה קיים מכיוון שניתן להגיע לאותו תוכן בכתובות URL רבות: עם ובלי פרמטרים של מעקב, עם ובלי קו נטוי נגרר, דרך תצוגת הדפסה, דרך נתיב קטגוריה ונתיב ישיר. אם נשאר לבד, גוגל בוחרת אחד ומגבשת את אותות הדירוג עליו. התג הקנוני הוא איך אתה גורם לזה לבחור בעצמך.
שני מאפיינים חשובים לדיון הזה. ראשית, זה א רמז, לא הנחיה, אם כי חזקה שגוגל עוקבת אחריה רוב הזמן. שנית, וזה החלק שנושך, כתובות האתרים הלא קנוניות מפסיקות להיות באינדקס בפני עצמן. האותות שלהם מקופלים לתוך הקנוני. זה כל העניין של התג, וזה בדיוק הדבר הלא נכון לעשות לתרגום.
מה טוען hreflang?
Hreflang טוען טענה אחרת לגמרי:
<link rel="alternate" hreflang="de-DE" href="https://example.com/de/preise" />
זה אומר: גרסה אחרת של הדף הזה קיים, הוא מכוון לדוברי גרמנית בגרמניה, וכאן הוא גר זה לא אומר כלום על איזה URL צריך להיות אינדקס כל המחליפים צפויים להיות באינדקס, באופן עצמאי, כל דירוג בשוק משלו Hreflang הוא רמז ניתוב מיושם בזמן הגשה, לא הוראה לאינדקס.
שימו את השניים זה לצד זה וההבדל ברור:
| קנוניקל | Hreflang | |
|---|---|---|
| שאלה זה עונה | איזה מכתובות האתרים האלה צריך להוסיף לאינדקס? | איזו גרסה משתמש זה צריך לראות? |
| השפעה על כתובות האתרים האחרות | הם מפסיקים להיות צמודים בנפרד | הם נשארים צמודים, כל אחד בשוק שלו |
| חל על | תוכן כפול או כמעט כפול | תוכן מתורגם או אזורי |
| כיוון | מצביע על מנצח אחד | מתאר קבוצה סימטרית |
| כוח | חָזָק; בדרך כלל בעקבותיו | רמז המשמש בדירוג ובזמן הגשה |
דפים מתורגמים אינם כפילויות הם תוכן שונה לקהלים שונים שבמקרה מקביל מבחינה מבנית התייחסות אליהם כאל כפילויות עם קנונית חוצת שפות היא שגיאת הקטגוריה שבבסיס כל כשל להלן.
מה הכלל?
כל עמוד עושה קנוניזציה לעצמו. Hreflang מתאר את היחסים בין אותם דפים קנוניים עצמיים.
באופן קונקרטי, דף התמחור באנגלית נושא:
<link rel="canonical" href="https://example.com/pricing" />
<link rel="alternate" hreflang="en" href="https://example.com/pricing" />
<link rel="alternate" hreflang="de" href="https://example.com/de/preise" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/tarifs" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing" />
ודף התמחור הגרמני נושא את בלוק ה-hreflang הזהה עם קנוני אחר:
<link rel="canonical" href="https://example.com/de/preise" />
<link rel="alternate" hreflang="en" href="https://example.com/pricing" />
<link rel="alternate" hreflang="de" href="https://example.com/de/preise" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/tarifs" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing" />
אותו hreflang שנקבע על שניהם, הפניה עצמית קנונית על כל אחד מהם זה כל הדפוס.Google מתעדת את אותה דרישה בה הנחיות לגרסאות מקומיות: ההערות חייבות להיות הדדיות, וכתובות האתרים שהן שמות חייבות להיות אלה שאתה רוצה שיוספו לאינדקס.
מה קורה כאשר הנקודות הקנוניות על פני שפות?
גרסת השפה נעלמת.
ללכת דרך זה הדף הצרפתי אומר " אינדקס הדף באנגלית במקום אותי." גוגל מחייבת ומפילה את כתובת האתר הצרפתית מהאינדקס.The English page's hreflang says "the French version is at this URL." Google מסתכלת על כתובת האתר הזו, מגלה שהיא קנונית לדף שבו היא כבר נמצאת, ואין לה מה לשרת את המחפשים הצרפתים הסט קורס לעמוד אחד.
הסימפטום הוא גרסת שפה שנסרקת, מחזירה 200, מכילה תוכן מתורגם טוב, ולעולם לא מדורגת ב-Search Console הכלי URL Inspection מדווח עליה כחלופה של דף אחר ולא כמודבקת לאינדקס הדוח הזה הוא הדרך המהירה ביותר לאשר את האבחנה, ואם אתה רודף אחרי גרסת שפה שלא תדרג, בדוק אותה לפני כל דבר אחר.
הסיבה לכך שהקנוני מנצח היא ששני האותות פועלים בשלבים שונים. Canonicalization קורה במהלך אינדקס; hreflang הוא התייעץ במהלך הדירוג וההגשה. URL שלעולם לא נכנס לאינדקס אינו זמין בשלב מאוחר יותר.
מה לגבי פרמטרים וכמעט-כפולים בתוך שפה אחת?
זה המקום שבו שני האותות פועלים באופן לגיטימי בבת אחת, והשילוב בסדר כל עוד אתה שומר על השכבות ישרות.
נניח שדף התמחור הגרמני נגיש בכתובת /de/preise ו /de/preise?utm_source=newsletter. כתובת האתר בעלת הפרמטרים מתכנסת לקנוניזציה /de/preise, וזה נכון: הם כפילויות אמיתיות בתוך שפה אחת. ערכת hreflang פועלת רמה אחת למעלה, בין /pricing, /de/preise, ו /fr/tarifs, והוא נותן רק את הצורה הקנונית של כל אחד מהם.
שני כללים שומרים על זה נקי:
- Hreflang תמיד שם כתובות URL קנוניות. לעולם אל תכוון הערה לכתובת URL בעלת פרמטרים או לא קנונית אחרת. תג ההחזרה בכתובת האתר הזו לא יתאים, מכיוון שהגרסה הקנונית היא זו הנושאת את הבלוק.
- Canonicalize בתוך שפה, לעולם לא לרוחב. פרמטרים, תצוגות הדפסה, כתובות אתרים של הפעלה, הכל בסדר שפה אחרת, לעולם לא.
אותו היגיון מכסה עימוד, כתובות URL עם פנים וכל מנגנון שכפול אחר. פתור את זה בתוך השפה, ואז תן ל-hreflang לתאר את הסט שנפתר.
האם hreflang עוזר עם תוכן כפול בין אזורים?
חלקית, ושווה לדייק בהבחנה כי לעתים קרובות היא מוגזמת.
Hreflang לא מכפיל. זה לא אומר לגוגל להתעלם מהדמיון בין דפי האנגלית שלך בארהב ובבריטניה. מה שהוא עושה זה לומר לגוגל שהדפים האלה הם גרסאות אזוריות מכוונות, מה שמשנה את האופן שבו גוגל מטפלת בדמיון: במקום לבחור אחד ולסנן את השני, הוא שומר על שניהם ובוחר לפי שאילתה ולכל משתמש.
זו התועלת המעשית עבור אתרים מרובי אזורים באותה שפה, וזו הסיבה שאתרים אלה זקוקים ל-hreflang בדחיפות רבה יותר מאשר אתרים מרובי שפות. שני עמודים בשפות שונות הם ללא ספק מסמכים שונים. שני עמודים באנגלית עם מחירים ואיות שונים אינם שונים בעליל מסורק, וללא ההערה אחד מהם מפסיד.
אם הדפים האזוריים זהים באמת, מילה במילה, התשובה הכנה היא שאולי לא תזדקק לדפים נפרדים כלל. Hreflang אינה דרך להצדיק תוכן כמעט כפול; זוהי דרך לתאר תוכן המובחן באופן לגיטימי לפי שוק.
איך מבקרים את השניים יחד?
סריקה שמחלצת את שתי ההערות עונה על כך במעבר אחד. עבור כל כתובת URL, אתה רוצה שתי עובדות: האם הקנוני שלה שווה לכתובת ה-URL שלו, והאם ערכת ה-hreflang שלו תואמת לאחיו '. מיין לפי קנוני וחפש קבוצות שבהן מספר כתובות URL חולקות קנונית אחת על פני נתיבי שפה שונים. קיבוץ זה הוא הבאג, והוא גלוי במבט חטוף.
עבור עמוד בודד, curl זה ולקרוא את שני התגים יחד:
curl -s https://example.com/de/preise | grep -E 'rel="(canonical|alternate)"'
מה שאתה בודק הוא שהקנוני href האם כתובת האתר שהבאת זה עתה, ושהגוש hreflang מכיל ערך עבור דף זה ' המקום שלו מצביע על אותה כתובת URL. שתי העובדות הללו עקביות הן רוב הקרב.
לאחר מכן בדוק שמטרות ה-hreflang הן בעצמן קנוניות עצמיות. קבוצה יכולה להיות הדדית לחלוטין ועדיין להיכשל מכיוון שאחת המטרות מתכנסת לקנוניזציה במקום אחר, שהוא הכישלון בראש מאמר זה וזה שאינו נראה מהדף שאתה מסתכל עליו.
מה לגבי canonical ומפת האתר?
אותו עיקרון, מורחב מפת אתר צריכה לרשום כתובות URL קנוניות הניתנות לאינדקס בלבד. אם מפת האתר שלך נושאת הערות hreflang כ xhtml:link ערכים, הערכים האלה נותנים את שמות אותן כתובות URL קנוניות שה-HTML יעשה.
מצב הכשל כאן הוא מפת אתר שנוצרת מטבלת מסלולים ולא ממערך כתובות האתרים הניתנות לאינדקס, כך שהיא מפרטת גרסאות עם פרמטרים או לא קנוניות לצד אלה האמיתיות. Google מתייחסת להכללת מפת אתר כאל רמז קנוניזציה חלש, כך שמפת אתר שאינה מסכימה עם התגים הקנוניים שלך היא אות אחד סותר יותר מחולל מפת אתר XML היא דרך מהירה לבנות מחדש רשימה נקייה כאשר אינך בטוח מה נמצא שם כרגע, וה כלי מחולל hreflang מייצר את ההתאמה xhtml:link חסום בפורמט מפת האתר.
שאלות נפוצות
מה ההבדל בין hreflang לקנוני?
תג קנוני מציין איזו מכמה כתובות URL כמעט משוכפלות יש להוסיף לאינדקס. הערת hreflang מצהירה שמספר כתובות URL הן חלופיות מקומיות ועוזרת למנועי החיפוש לשרת את הכתובת הנכונה לכל משתמש. Canonical מגבשת; hreflang מבדיל.
האם כל גרסת שפה צריכה להפוך לקנונית לעצמה?
כן כל דף בסט hreflang חייב להיות בעל קנונית הפניה עצמית. Canonicalizing דף מתורגם לשפה אחרת מסיר אותו מהאינדקס והופך את סט hreflang לחסר תועלת.
איזה אות מנצח אם hreflang וקנוני לא מסכימים?
קנוני, למעשה. Canonicalization קורה בזמן אינדקס, וכתובת URL שאינה מתווספת לאינדקס לא יכולה להיות מוגשת לאף אחד, מה שיגידו הערות hreflang.
האם אני יכול להשתמש בתגים קנוניים באתר רב לשוני בכלל?
כן, וכדאי להשתמש בהם כדי לפתור כפילות בתוך שפה, כגון מעקב אחר פרמטרים ותצוגות הדפסה לעולם אל תשתמש בהם בין שפות.
האם hreflang מתקן תוכן כפול בין הדפים שלי בארהב ובבריטניה?
זה לא מכפיל, אבל זה אומר לגוגל שהדפים הם גרסאות אזוריות מכוונות ולא כפילויות מקריות, אז גם להישאר באינדקס וגם את זה הנכון מוגש לכל שוק. זו הסיבה העיקרית לכך שאתרים מרובי אזורים באותה שפה זקוקים ל-hreflang.
האם hreflang צריך להצביע על כתובות URL קנוניות?
תמיד. הפניית הערה לכתובת URL עם פרמטרים או לא קנוניים שוברת את תג ההחזרה, מכיוון שהגוש חי על הגרסה הקנונית ולא על הגרסה שציינת.
איך אני יודע אם קנוני הורג גרסת שפה?
הפעל את כתובת האתר דרך Search Console's כלי בדיקת כתובות אתרים. אם הוא מדווח על הדף כחלופה של כתובת URL אחרת ולא כאינדקס, קנונית בין שפות היא הסיבה.
האם כתובות אתרים של מפת אתר צריכות להתאים לתגים הקנוניים שלי?
כן. Sitemaps צריך לרשום כתובות URL קנוניות, הניתנות לאינדקס בלבד. sitemap שמפרט גרסאות לא קנוניות מוסיף אות סותר על גבי התגים שאתה כבר פולט.



