Ce sujet est résolu. Voici une description du problème et de la solution.
Problème : Le client utilise WPML sur un site WordPress pour ajouter des traductions en français. Un problème de SEO est survenu avec des URL dupliquées.
Solution : Nous recommandons de suivre ces étapes pour résoudre le problème temporairement en attendant une mise à jour du plugin SEOPress :
1. Faites une sauvegarde complète de votre site et de votre base de données, en particulier du fichier
.../wp-content/plugins/wp-seopress/inc/functions/options-titles-metas.php
.
2. Ouvrez le fichier et localisez la ligne 1022.
3. Remplacez le code existant par le nouveau code présenté dans cet erratum: https://wpml.org/errata/seopress-canonical-urls-not-pointing-to-default-language-for-untranslated-content/.
Ce correctif vérifie si le post est traduit et, si ce n'est pas le cas, bascule vers la langue par défaut avant de générer l'URL canonique, puis revient à la langue actuelle.
Si cette solution ne résout pas votre problème ou semble obsolète, nous vous recommandons de vérifier les problèmes connus, de vérifier la version du correctif permanent et de confirmer que vous avez installé les dernières versions des thèmes et plugins. Si le problème persiste, n'hésitez pas à ouvrir un nouveau ticket de support.
Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.
Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.
Marqué : Compatibility
Ce sujet contient 11 réponses, a 2 voix.
Dernière mise à jour par Nicolas V. Il y a 2 mois et 2 semaines.
Assisté par: Nicolas V..
Auteur | Articles |
---|---|
Novembre 19, 2024 à 4:06 pm #16420674 | |
olivierd-46 |
Contexte de la question: Symptômes: Questions: |
Novembre 19, 2024 à 5:21 pm #16420939 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, Merci d'avoir contacté le support de WPML. Je pense que cela vient du fait que vous avez choisi la préférence de traduction "Translatable - use translation if available or fallback to default language" pour vos articles, pages et catégories. Avec cette préférence, si la page n'existe pas encore en Français (pas encore traduite), WPML montrera la version d'origine (Anglais) à la place. C'est pour cela que dans votre sitemap (lien caché) Veuillez vous rendre dans "WPML > Settings > Post Types Translation" pour changer cela à "Translatable - only show translated items". Faites de même pour les catégories dans "WPML > Settings > Taxonomies Translation". |
Novembre 20, 2024 à 8:41 am #16422996 | |
olivierd-46 |
Bonjour, Merci pour votre réponse si rapide. J'ai utilisé "Translatable - use translation if available or fallback to default language" parce que mon client n'a pas l'objectif de traduire l'entièreté de son site en français. De ce fait, il aimerait que les contenus anglais continus d'apparaître malgré que le visiteur switch en français. C'est pour cela que j'avais utilisé cette option ... Y a t-il une alternative afin de ne pas engendrer de problème SEO ? Merci d'avance, |
Novembre 21, 2024 à 12:44 pm #16428994 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, Nous avons une documentation expliquant les 3 méthodes pour montrer un contenu non traduit. La seule qui devrait créer du contenu dupliqué est la copie du contenu. Je vais faire quelques tests avec SEOPress et Yoast SEO car je pense que les URLs canonical de dans les deux premières solutions ("Fallback" et "Duplication") devraient renvoyer vers la langue d'origine pour indiquer à Google de ne pas indexer la langue secondaire. Je reviens vers vous après mes tests et que mes collègues de deuxième niveau me confirme si c'est le comportement attendu ou si c'est un bug ou autre problème de compatibilité. Merci de patienter, |
Novembre 21, 2024 à 1:55 pm #16429406 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, D'après mes tests il semble que ce soit un problème de compatibilité avec SEOPress car en utilisant Yoast SEO+ WPML SEO le problème est résolu. Je viens de faire remonter votre ticket avec le site test que j'ai créé. Je reviens vers vous dès que j'ai un feedback de l'équipe de compatibilité mais comme notre documentation n'indique pas que WPML SEO soit nécessaire avec SEOPress, il se peut que le problème soit du côté de SEOPress. Je vous tiens informé dès que possible. Merci d'avoir reporté ce problème! |
Novembre 22, 2024 à 12:05 pm #16433694 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, Voici une solution d'appoint en attendant que l'auteur du plugin modifie son code: function seopress_titles_canonical_hook() { global $wp; $current_url = user_trailingslashit(home_url(add_query_arg([], $wp->request))); if (is_search()) { $seopress_titles_canonical = '<link rel="canonical" href="' . htmlspecialchars(urldecode(get_home_url() . '/search/' . get_search_query())) . '">'; } elseif (is_paged() && is_singular()) {//Paginated pages $seopress_titles_canonical = '<link rel="canonical" href="' . htmlspecialchars(urldecode(get_permalink())) . '">'; } elseif (is_paged()) { $seopress_titles_canonical = '<link rel="canonical" href="' . htmlspecialchars(urldecode($current_url)) . '">'; } elseif (is_singular()) { $seopress_titles_canonical = '<link rel="canonical" href="' . htmlspecialchars(urldecode(get_permalink())) . '">'; } else { $seopress_titles_canonical = '<link rel="canonical" href="' . htmlspecialchars(urldecode($current_url)) . '">'; } //Hook on post canonical URL - 'seopress_titles_canonical' if (has_filter('seopress_titles_canonical')) { $seopress_titles_canonical = apply_filters('seopress_titles_canonical', $seopress_titles_canonical); } echo $seopress_titles_canonical . "\n"; } - Par: function seopress_titles_canonical_hook() { global $wp; $current_url = user_trailingslashit(home_url(add_query_arg([], $wp->request))); // WPML Workaround for compsupp-7703 if (class_exists('SitePress')) { $post_ID = get_the_ID(); $post_type = get_post_type( $post_ID ); $transl_status = apply_filters( 'wpml_element_translation_type', NULL, $post_ID, $post_type ); // If the post is not translated, switch to the default language if ($transl_status != 1) { $my_default_lang = apply_filters('wpml_default_language', NULL ); $my_current_lang = apply_filters( 'wpml_current_language', NULL ); do_action( 'wpml_switch_language', $my_default_lang ); } } if (is_search()) { $seopress_titles_canonical = '<link rel="canonical" href="' . htmlspecialchars(urldecode(get_home_url() . '/search/' . get_search_query())) . '">'; } elseif (is_paged() && is_singular()) {//Paginated pages $seopress_titles_canonical = '<link rel="canonical" href="' . htmlspecialchars(urldecode(get_permalink())) . '">'; } elseif (is_paged()) { $seopress_titles_canonical = '<link rel="canonical" href="' . htmlspecialchars(urldecode($current_url)) . '">'; } elseif (is_singular()) { $seopress_titles_canonical = '<link rel="canonical" href="' . htmlspecialchars(urldecode(get_permalink())) . '">'; } else { $seopress_titles_canonical = '<link rel="canonical" href="' . htmlspecialchars(urldecode($current_url)) . '">'; } // Then switch back to the current language if (class_exists('SitePress')) { do_action( 'wpml_switch_language', $my_current_lang ); } //Hook on post canonical URL - 'seopress_titles_canonical' if (has_filter('seopress_titles_canonical')) { $seopress_titles_canonical = apply_filters('seopress_titles_canonical', $seopress_titles_canonical); } echo $seopress_titles_canonical . "\n"; } Merci de me confirmer si cette solution fonctionne correctement pour vous. PS: Après votre confirmation, nous contacterons l'auteur pour reporter le problème. Je vous recommande de faire de même de votre coté en tant qu'utilisateur. |
Novembre 25, 2024 à 9:19 am #16438503 | |
olivierd-46 |
Bonjour, Merci pour ces informations. Nous allons essayer de mettre ce code en place. Petite question, avec ce code je peux à nouveau passer ma traduction en "Translatable - use translation if available or fallback to default language" ? Je reviens vers vous pour vous dire si ça fonctionne et que les soucis de duplication ont disparus ! Merci encore, |
Novembre 25, 2024 à 4:56 pm #16441378 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, Oui avec ce code vous pouvez réactiver le "fallback". Avec cette condition: if ($transl_status != 1) { si le status de traduction est différent de "traduit", nous basculons à nouveau dans la langue par défaut pour que l'URL canonique soit celle de la langue par défaut. Cela évitera donc les "duplicate content". Deux choses: |
Novembre 28, 2024 à 1:54 pm #16455567 | |
olivierd-46 |
Bonjour, Merci beaucoup pour votre aide. Le client a toujours le problème qui remonte dans ubersuggest ... Je ne sais pas si ubersuggest remonte des URLs dupliquées mais qui ne sont pas indexées ou si elles le sont par Google. Si elles le sont c'est là que le souci se pose ... J'ai reporter via message à SEOPress le problème auquel je fais face. Bonne journée |
Novembre 28, 2024 à 7:30 pm #16456809 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, Le fait que les pages soient dupliquées est normal, car vous montrer dans les langues secondaires exactement le même contenu que la la langue primaire. Le point important est que l'URL canonique pointe correctement vers la langue primaire pour indiquer à Google que c'est la page dans la langue primaire qui devrait être indexée et éviter le "duplicate content". Pourriez-vous confirmer cela? Notez qui faudra peut être purger vos caches afin que le code source HTML reflète ces changements. |
Novembre 29, 2024 à 9:27 am #16458339 | |
olivierd-46 |
Bonjour Nicolas, Super je vous confirme que c'est ok de notre côté, la search console renvoie bien que l'info comme quoi c'est l'url canonique de la langue primaire qui est prise en compte. Vous pouvez donc contacter Seopress (ils ne nous ont pas répondu à ce stade). |
Novembre 29, 2024 à 11:46 am #16459204 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, Merci pour votre feedback. Je ferme donc ici et j'informe notre équipe de compatibilité. |