Πώς να εφαρμόσετε τις ετικέτες hreflang για ένα πολύγλωσσο WordPress

Μεταφράσατε ολόκληρο τον ιστότοπό σας στο WordPress σε έξι γλώσσες. Τα αρχεία .po είναι καθαρά, τα αρχεία .mo έχουν μεταγλωττιστεί, κάθε συμβολοσειρά αποδίδεται τέλεια στα Γαλλικά, Γερμανικά και Ιαπωνικά. Ωστόσο, εβδομάδες μετά την κυκλοφορία, ελέγχετε το Google Search Console και ανακαλύπτετε κάτι αινιγματικό: η γαλλική σας σελίδα κατατάσσεται για γερμανικά ερωτήματα, η ισπανική-μεξικανική σας σελίδα προβάλλεται σε χρήστες στην Ισπανία, και δύο από τις γλωσσικές σας εκδόσεις αλληλοεξουδετερώνονται σιωπηλά στις κατατάξεις. Το περιεχόμενο είναι εντάξει. Το πρόβλημα είναι ότι η Google δεν έχει ιδέα ποια έκδοση ανήκει σε ποιο κοινό.
Αυτό ακριβώς έχουν σχεδιαστεί να διορθώσουν οι ετικέτες hreflang WordPress. Το Hreflang είναι το σήμα που λέει στις μηχανές αναζήτησης ποια γλωσσική και τοπική έκδοση μιας σελίδας να προβάλλουν σε ποιον χρήστη. Αν γίνει λάθος, τότε υποφέρετε από αραίωση διπλότυπου περιεχομένου, αποτελέσματα σε λάθος γλώσσα και σπαταλημένο crawl budget. Αν γίνει σωστά, κάθε μεταφρασμένη σελίδα φτάνει στο κοινό για το οποίο γράφτηκε. Αυτός ο οδηγός καλύπτει τη σύνταξη, τη διαφορά μεταξύ κωδικών γλώσσας και κωδικών γλώσσας-περιοχής, το υποχρεωτικό x-default, την αμοιβαιότητα των ετικετών επιστροφής, και τρεις πρακτικούς τρόπους για να το εφαρμόσετε στο WordPress.
Τι πραγματικά κάνει το hreflang
Το hreflang δεν μεταφράζει τίποτα. Είναι ένας χάρτης σχέσεων. Όταν έχετε την ίδια σελίδα σε πολλές γλώσσες, οι σημειώσεις hreflang λένε στην Google "this URL is the English version, this one is the German version, this one is for Spanish speakers in Mexico." Η Google χρησιμοποιεί αυτόν τον χάρτη για να προβάλλει τη σωστή έκδοση στα αποτελέσματα αναζήτησης με βάση τις ρυθμίσεις γλώσσας και την τοποθεσία του χρήστη.
Η σημείωση βρίσκεται στην <head> του HTML σας ως ένα σύνολο στοιχείων <link>. Κάθε στοιχείο ονομάζει μια σελίδα-στόχο και τη γλώσσα (και προαιρετικά την περιοχή) που εξυπηρετεί. Ακολουθεί ένα σωστό σύνολο ετικετών hreflang για μια σελίδα διαθέσιμη στα Αγγλικά ΗΠΑ, Αγγλικά ΗΒ και Μεξικάνικα Ισπανικά, με μια προεπιλεγμένη εφεδρεία:
<link rel="alternate" hreflang="en-US" href="https://example.com/en-us/pricing/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/pricing/" />
<link rel="alternate" hreflang="es-MX" href="https://example.com/es-mx/pricing/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing/" />
Κάθε σελίδα στο σύνολο θα πρέπει να παράγει αυτό το ίδιο μπλοκ, παραθέτοντας κάθε εναλλακτική, συμπεριλαμβανομένου του εαυτού της. Αυτό το τελευταίο σημείο μπερδεύει τους περισσότερους ανθρώπους, και θα επιστρέψουμε σε αυτό.
Γιατί αυτό είναι σημαντικό για το SEO
Χωρίς hreflang, η Google αντιμετωπίζει τις μεταφρασμένες σελίδες σας ως σχεδόν διπλότυπα που ανταγωνίζονται για τις ίδιες λέξεις-κλειδιά. Το αποτέλεσμα είναι αραίωση: τα σήματα κατάταξης διαχωρίζονται σε όλες τις εκδόσεις αντί να ενοποιούνται. Με το σωστό hreflang, κάθε έκδοση κληρονομεί την εξουσία του συνόλου ως ολόκληρο και εμφανίζεται στους σωστούς αναζητητές. Αυτή είναι μία από τις πιο σημαντικές κινήσεις SEO που μπορεί να κάνει ένας πολύγλωσσος ιστότοπος, και συμπληρώνει αντί να αντικαθιστά την πραγματική μετάφραση περιεχομένου στα αρχεία .po σας. Καλύπτουμε την πλευρά του περιεχομένου σε βάθος στον οδηγό μας για το πώς η μετάφραση αρχείων PO επηρεάζει τις κατατάξεις της Google.
Κωδικοί γλώσσας έναντι κωδικών γλώσσας-περιοχής
Ποιον πρέπει να χρησιμοποιήσετε, en ή en-GB; Χρησιμοποιήστε τον απλούστερο κωδικό που είναι αληθής. Αν το αγγλικό σας περιεχόμενο είναι γενικό και δεν διατηρείτε ξεχωριστές βρετανικές και αμερικανικές εκδόσεις, χρησιμοποιήστε μόνο το en. Προσθέστε ένα υποταγκ περιοχής μόνο όταν πραγματικά παρέχετε διαφορετικό περιεχόμενο σε διαφορετικές χώρες.
Οι τιμές hreflang ακολουθούν τη μορφή language ή language-region. Το μέρος της γλώσσας είναι ένας κωδικός ISO 639-1 (en, es, de, pt). Η προαιρετική περιοχή είναι ένας κωδικός χώρας ISO 3166-1 Alpha 2 (US, GB, MX, BR). Έτσι:
- Το
enστοχεύει όλους τους αγγλόφωνους ανεξαρτήτως χώρας. - Το
en-GBστοχεύει αγγλόφωνους στο Ηνωμένο Βασίλειο. - Το
esστοχεύει όλους τους ισπανόφωνους. - Το
es-MXστοχεύει συγκεκριμένα ισπανόφωνους στο Μεξικό.
Μια κρίσιμη λεπτομέρεια: το υποταγκ περιοχής είναι μια χώρα, όχι μια γλωσσική παραλλαγή. Το es-MX δεν σημαίνει "μεξικανική ισπανική διάλεκτος", σημαίνει "Ισπανικά, που προβάλλονται σε χρήστες στο Μεξικό." Η Google το προβάλλει ακόμα με βάση την τοποθεσία του χρήστη. Εάν διατηρείτε τοπικές διαλέκτους στις μεταφράσεις σας, ο κωδικός περιοχής είναι ο τρόπος με τον οποίο τις δρομολογείτε. Αναλύουμε την γλωσσολογική πλευρά αυτού στον οδηγό μας για τις περιφερειακές ισπανικές και πορτογαλικές παραλλαγές.
Ένα κοινό λανθασμένο παράδειγμα
Ακολουθεί ένα λανθασμένο μπλοκ hreflang που βλέπουμε συνεχώς:
<link rel="alternate" hreflang="en-uk" href="https://example.com/uk/" />
<link rel="alternate" hreflang="sp" href="https://example.com/es/" />
<link rel="alternate" hreflang="pt-PT_BR" href="https://example.com/pt/" />
Τρία λάθη. Το en-uk είναι άκυρο επειδή ο κωδικός χώρας για το Ηνωμένο Βασίλειο είναι GB, όχι UK. Το sp δεν είναι καθόλου κωδικός γλώσσας· τα Ισπανικά είναι es. Και το pt-PT_BR αναμειγνύει δύο περιοχές με μια κάτω παύλα που δεν έχει νόημα στο hreflang. Οι μηχανές αναζήτησης αγνοούν σιωπηλά τις κακοσχηματισμένες τιμές, οπότε δεν λαμβάνετε κανένα σφάλμα και κανένα όφελος, παρά μόνο ώρες εντοπισμού σφαλμάτων αναρωτώμενοι γιατί τίποτα δεν άλλαξε.
Σημειώστε ότι το hreflang χρησιμοποιεί παύλα (en-GB), ενώ τα αρχεία τοποθεσίας του WordPress χρησιμοποιούν κάτω παύλα (en_GB). Μην αντιγράφετε τους κωδικούς αρχείων .po απευθείας στις ετικέτες hreflang.
Το x-default και η αμοιβαιότητα των ετικετών επιστροφής
Δύο κανόνες προκαλούν περισσότερες σιωπηλές αποτυχίες hreflang από οτιδήποτε άλλο: το χαμένο x-default και η σπασμένη αμοιβαιότητα.
Η τιμή x-default λέει στην Google ποια σελίδα να προβάλλει όταν καμία άλλη γλώσσα δεν ταιριάζει με τον χρήστη. Είναι η εφεδρική σας επιλογή, συνήθως ο επιλογέας γλώσσας ή η αρχική σας σελίδα για την πρωταρχική αγορά. Δεν είναι αυστηρά υποχρεωτικό από την προδιαγραφή, αλλά στην πράξη θα πρέπει πάντα να το συμπεριλαμβάνετε. Χωρίς αυτό, ένας πορτογαλόφωνος επισκέπτης για τον οποίο δεν έχετε πορτογαλική έκδοση, λαμβάνει ένα τυχαίο αποτέλεσμα αντί για μια σκόπιμη προεπιλογή.
Η αμοιβαιότητα των ετικετών επιστροφής είναι μη διαπραγματεύσιμη. Κάθε σελίδα σε ένα σύνολο hreflang πρέπει να παραπέμπει σε κάθε άλλη σελίδα, συμπεριλαμβανομένου του εαυτού της. Αν η αγγλική σας σελίδα παραθέτει τα Γερμανικά ως εναλλακτική, η γερμανική σας σελίδα πρέπει να παραθέτει τα Αγγλικά ως εναλλακτική. Εάν η γερμανική σελίδα παραλείψει την αναφορά επιστροφής, η Google δυσπιστεί σε ολόκληρη τη σχέση και αγνοεί τις σημειώσεις.
<!-- On the German page, the set must still list ALL versions -->
<link rel="alternate" hreflang="de" href="https://example.com/de/about/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/about/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/about/" />
Η αυτο-αναφορά (το de που παραπέμπει στη γερμανική σελίδα ενώ βλέπετε τη γερμανική σελίδα) είναι υποχρεωτική, όχι προαιρετική. Ένα σύνολο πέντε γλωσσικών εκδόσεων σημαίνει ότι κάθε μία από τις πέντε σελίδες εξάγει και τις πέντε ετικέτες <link> συν το x-default.
Τρεις τρόποι για να εφαρμόσετε το hreflang στο WordPress
Έχετε τρεις πρακτικές επιλογές, που κυμαίνονται από τον πλήρη χειροκίνητο έλεγχο έως την πλήρως αυτοματοποιημένη εφαρμογή.
Μέθοδος 1: Χειροκίνητα μέσω wp_head
Για ένα μικρό στατικό σύνολο σελίδων, μπορείτε να εισάγετε ετικέτες hreflang απευθείας μέσω της ενέργειας wp_head στο αρχείο functions.php του θέματός σας:
add_action( 'wp_head', function () {
if ( ! is_page( 'pricing' ) ) {
return;
}
$alternates = array(
'en-US' => 'https://example.com/en-us/pricing/',
'es-MX' => 'https://example.com/es-mx/pricing/',
'x-default' => 'https://example.com/pricing/',
);
foreach ( $alternates as $lang => $url ) {
printf(
'<link rel="alternate" hreflang="%s" href="%s" />' . "\n",
esc_attr( $lang ),
esc_url( $url )
);
}
} );
Αυτό σας δίνει ακριβή έλεγχο, αλλά δεν επεκτείνεται. Η χειροκίνητη διατήρηση της αμοιβαιότητας σε εκατοντάδες δημοσιεύσεις είναι μια παγίδα συντήρησης.
Μέθοδος 2: Ένα πολύγλωσσο πρόσθετο
Εάν χρησιμοποιείτε Polylang, WPML ή TranslatePress, το hreflang δημιουργείται αυτόματα με βάση τις σχέσεις μετάφρασής σας. Αυτή είναι η σωστή απάντηση για τους περισσότερους ιστότοπους, επειδή το πρόσθετο γνωρίζει ήδη ποια δημοσίευση είναι η μετάφραση ποιας, οπότε η αμοιβαιότητα και το x-default αντιμετωπίζονται για εσάς. Το κόστος είναι το runtime overhead που προσθέτουν αυτά τα πρόσθετα, το οποίο είναι η ανταλλαγή που εξετάζουμε στη σύγκρισή μας χειροκίνητων έναντι προσεγγίσεων μετάφρασης με τεχνητή νοημοσύνη.
Μέθοδος 3: XML Sitemap με xhtml:link
Αντί να τοποθετείτε το hreflang στην <head> κάθε σελίδας, μπορείτε να δηλώσετε τις σχέσεις στο XML sitemap σας χρησιμοποιώντας τον χώρο ονομάτων xhtml:link. Κάθε καταχώριση <url> παραθέτει όλες τις γλωσσικές της εναλλακτικές:
<url>
<loc>https://example.com/en/about/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/about/" />
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/about/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/about/" />
</url>
Αυτό διατηρεί το HTML της σελίδας σας ελαφρύ και κεντροποιεί τον γλωσσικό χάρτη σε ένα ανιχνεύσιμο αρχείο, το οποίο η Google διαβάζει ευχαρίστως. Τα περισσότερα πρόσθετα SEO μπορούν να το δημιουργήσουν αυτόματα.
Το hreflang συμπληρώνει τη μετάφραση, δεν την αντικαθιστά
Εδώ είναι το σημείο που όλοι παραβλέπουν: το hreflang είναι άχρηστο αν οι υποκείμενες σελίδες δεν είναι στην πραγματικότητα μεταφρασμένες. Η ετικέτα λέει στην Google "this is the German version," αλλά αν η γερμανική URL εξακολουθεί να εμφανίζει αγγλικές συμβολοσειρές προσθέτων, μη μεταφρασμένες ετικέτες ολοκλήρωσης αγοράς, ή ημιτελή αρχεία .po, έχετε απλώς πει στην Google να προβάλλει χαλασμένο περιεχόμενο σε Γερμανούς χρήστες με πλήρη εμπιστοσύνη.
Το πραγματικό πολύγλωσσο SEO αποτελείται από δύο επίπεδα. Το επίπεδο περιεχομένου είναι τα μεταφρασμένα αρχεία .po, .pot, .json και .xliff που οδηγούν κάθε συμβολοσειρά θέματος και πρόσθετου στη γλώσσα-στόχο. Το επίπεδο σήματος είναι το hreflang που δρομολογεί κάθε ολοκληρωμένη έκδοση στο κοινό της. Και τα δύο πρέπει να είναι σταθερά. Ένα άψογο σύνολο hreflang πάνω σε έναν κατά 40 τοις εκατό μεταφρασμένο ιστότοπο απλώς εγγυάται μια χειρότερη εμπειρία πιο γρήγορα.
Εδώ είναι που η διατήρηση του επιπέδου μετάφρασης καθαρού έχει τη μεγαλύτερη σημασία. Όταν μεταφράζετε τα αρχεία διεπαφής σας, οι θέσεις κράτησης όπως %s, %1$s και {name} πρέπει να παραμείνουν άθικτες, διαφορετικά η "μεταφρασμένη" γερμανική σας σελίδα αποδίδεται με κυριολεκτικές ενδείξεις %s που φαίνονται χαλασμένες τόσο στους χρήστες όσο και στις μηχανές αναζήτησης. Μια διοχέτευση μετάφρασης με γνώση gettext και Syntax Locking προστατεύει αυτές τις ενδείξεις αυτόματα, ώστε κάθε εναλλακτική σελίδα στην οποία παραπέμπετε με hreflang να είναι πραγματικά έτοιμη για παραγωγή. Επειδή λειτουργεί στο cloud με Smart Batching, μπορείτε να περάσετε έναν ολόκληρο ιστότοπο πολλών γλωσσών από αυτό χωρίς να εγκαταστήσετε πρόσθετα μετάφρασης που φουσκώνουν τον χρόνο εκτέλεσης που εξυπηρετεί αυτές τις ίδιες σελίδες.
Πάρτε πρώτα το περιεχόμενο σωστά, και μετά αφήστε το hreflang να κάνει τη δουλειά του. Τα δύο μαζί είναι αυτά που ενοποιούν τα σήματα κατάταξης, εξαλείφουν τα αποτελέσματα σε λάθος γλώσσα και τοποθετούν κάθε μεταφρασμένη σελίδα μπροστά στους ανθρώπους που μπορούν να τη διαβάσουν.
Έτοιμοι να διορθώσετε τα αποτελέσματα αναζήτησης σε λάθος γλώσσα στην πηγή; Δοκιμάστε το SimplePoTranslate δωρεάν — δεν απαιτείται πιστωτική κάρτα. Μεταφράστε τα αρχεία
.po,.potκαι.jsonσας στην δωρεάν βαθμίδα, και μετά κατευθύνετε τις ετικέτες hreflang σας σε σελίδες που είναι πραγματικά έτοιμες για κάθε αγορά.