Sauter la navigation

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.

Sun Mon Tue Wed Thu Fri Sat
- 6:00 – 12:00 8:00 – 12:00 6:00 – 12:00 8:00 – 12:00 6:00 – 12:00 -
- 13:00 – 15:00 13:00 – 17:00 13:00 – 15:00 13:00 – 17:00 13:00 – 15:00 -

Fuseau horaire du supporter: America/Lima (GMT-05:00)

Marqué : 

Ce sujet contient 5 réponses, a 2 voix.

Dernière mise à jour par Nicolas V. Il y a 1 jour et 19 heures.

Assisté par: Nicolas V..

Auteur Articles
Novembre 19, 2024 à 4:06 pm #16420674

olivierd-46

Contexte de la question:
WPML est installé sur le site de mon client, lien caché. C'est un site sous WordPress en anglais et ils veulent mettre en place la traduction française. Tout a été paramétré.

Symptômes:
Un souci est apparu au niveau de leur SEO. Toutes les URL ont été dupliquées en "/fr" et donc tous les méta-titre et méta-description, ce qui pose un gros souci au niveau du référencement.

Questions:
Savez-vous si cette duplication d'URL est due à un mauvais paramétrage de WPML ?

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é)
seulement lien caché apparait. Mais sur le frontend on peut aussi accéder à lien caché qui affiche le contenu de la version Anglaise.

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,
Passez une bonne journée

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,
Nico

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:
- Faites un backup complet de votre site et base de données mais surtout du fichier ci-dessous que nous allons modifier.
- Ouvrez .../wp-content/plugins/wp-seopress/inc/functions/options-titles-metas.php
- Cherchez la ligne 1022
- Remplacez:

        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.