MVC, multi-langues et référencement

bd.webdev

Nouveau WRInaute
Bonjour,

Je lance un énième topic sur le sujet, désolé, mais j'essaie de faire le tri dans toutes les pages de topic que j'ai lu sur ce fofo et d'en tirer une bonne pratique :)

J'utilise un framework MVC et peut donc simuler un dossier différent par langue, mais ma question se pose au niveau des redirections.

Mon script vérifie le paramètre "locale" dans l'url, si non présent il regarde le cookie, si non présent il regarde la locale du navigateur. Une fois la langue définie, il vérifie que la langue est dispo, sinon prend une langue par défaut, et enfin fout ça dans un cookie.

Pour l'instant, au niveau de mon script PHP je n'effectue pas de redirection par peur d'être pénalisé. Peur justifiée ou débile par manque de compréhension du fonctionnement des moteurs ? Ça devient une véritable parano et un vrai calvaire ces histoires. Je lis aussi qu'il vaut mieux faire une redirection 301, je n'arrive pas à saisir pourquoi, il n'y a rien de définitif dans cette redirection.

Autre question, le contenu est le même pour chaque langue, seulement il est traduit, dans ce cas là, sachant que Google n'envoie pas le header Accept-Language, comment référencer indépendamment chaque version (langue) du site, et faut-il d'ailleurs le faire (duplicate content) ? La balise canonical n'aide-t-elle pas à résoudre ce type de question ?


Merci pour votre aide.
A+ benjamin.
 

UsagiYojimbo

WRInaute accro
Si le contenu est traduit, alors non, ce n'est pas le même contenu. Le duplicate content a trait aux contenus identiques dans une même langue. Un texte en français et sa traduction en anglais ne font pas de duplicate content, et heureusement.

Concernant les redirections je n'en fait pour ma part jamais, je laisse le soin à l'utilisateur de changer lui-même de langue si sa langue d'arrivée sur le site ne lui convient pas.
 

jcaron

WRInaute accro
Si tu as un dossier différent par langue (ou des sous-domaines, bref, de façon générale des URLs différentes, de préférence sans recourir à des paramètres), alors:
- les moteurs voient les différentes versions séparément
- tu n'as pas besoin de faire de détection de langue, d'utiliser un paramètre ou un cookie sur toutes les pages en question (et tu ne devrais pas).

Le seul endroit où tu peux éventuellement avoir besoin de faire une détection, c'est sur la page d'accueil, qui doit alors faire un redirect vers la version adaptée.

Ensuite ne pas oublier les liens entre les versions pour permettre à l'utilisateur de changer de langue, et aux moteurs de trouver toutes les versions.

Jacques.
 

bd.webdev

Nouveau WRInaute
tu n'as pas besoin de faire de détection de langue, d'utiliser un paramètre ou un cookie sur toutes les pages en question (et tu ne devrais pas).

Avec les framework MVC ce ne sont pas de véritables dossiers séparés, c'est le fait d'ajouter un "fr" ou "en" (www.exemple.com/fr/ ou www.exemple.com/en/) dans l'url qui donne cette illusion, mais d'un point de vue technique, je suis obligé d'envoyer le paramètre à chaque fois pour qu'il existe dans la route.

Mais à l'arrivée sur le site, le paramètre n'existe pas, quelque soit la page visitée, si par ex. j'entre directement www.exemple.com/ma-super-page/, si c'est la première visite de l'utilisateur et que la langue préférée de son navigateur est fr_FR, il faudra que je redirige par ex. vers www.exemple.com/fr-fr/ma-super-page/.

Si j'utilise un cookie c'est pour que l'utilisateur n'ait pas à re-sélectionner sa langue à chaque visite si sa langue préférée n'est pas celle par défaut ou celle de son navigateur.

Est-ce que je fais fausse route ?


Merci pour vos réponses,
A+ benjamin.
 

jcaron

WRInaute accro
Si la page tartampion est accessible via exemple.com/fr/tartampion et exemple.com/en/tartampion (quelle que soit la façon dont c'est ensuite traité en interne), il n'y a (a priori) pas de raison particulière pour gérer exemple.com/tartampion: qui ferait un lien vers cette adresse? Les liens doivent pointer vers la "bonne" version directement, y compris les liens internes.

Le seul cas particulier c'est la home, où tu dois avoir une logique qui va permettre de renvoyer exemple.com vers exemple.com/fr/ ou exemple.com/en/ etc. suivant les cas. Là tu peux effectivement faire de la détection de langue, utiliser des cookies, etc. Mais une fois qu'il est arrivé d'un côté ou de l'autre, tous les liens devraient être "complets".

Dans certains cas tu peux avoir besoin de quelques autres points d'entrée qui soient indepéndants de la langue et qui vont utiliser la même logique que la home, mais pour le reste, tu n'utilises que des liens "complets" qui intègrent la langue.

Jacques.
 

bd.webdev

Nouveau WRInaute
Ok c'est logique :)

J'ai quand même fait en sorte que si le premier paramètre dans l'url, qui est censé être la langue, n'est pas une langue possible ou disponible, je redirige vers la même avec la langue par défaut, et si la page n'existe pas dans le site, erreur 404. De cette manière si l'internaute essaie par exemple d'atteindre "www.exemple.com/contact/" directement, il est redirigé vers "www.exemple.com/fr-fr/contact/".

Je ne fais une redirection que si le paramètre langue n'existe pas. Mais dans ce cas, ça veut dire que la redirection va se faire quand google va passer, aucune incidence ?

Merci en tout cas pour vos indications :)
A+ benjamin
 

jcaron

WRInaute accro
Ben Google n'a aucune raison de passer sur la page sans la langue si tu ne fais aucun lien vers cette adresse-là (et tu ne devrais pas).

Jacques.
 

bd.webdev

Nouveau WRInaute
Uniquement sur la page d'accueil, le bot va arriver sur "http://www.monsite.com/" et comme pas de langue, je vais rediriger vers "http://www.monsite.com/langpardefaut/". Ca n'a pas d'incidence pour lui ? C'est pas dans ce genre de cas que la balise "link rel=canonical" est utile justement ?
 

jcaron

WRInaute accro
Ben non, pas de problème particulier. La balise canonical c'est plutôt si tu as la même page (ou des versions "proches") accessibles par plusieurs URLs différentes, ce n'est pas le cas ici.

Jacques.
 

bd.webdev

Nouveau WRInaute
Bonjour,

Je fais remonter ce topic car j'ai une nouvelle question :)

Je dois mettre en place un site multilangue, dont le contenu créé par les utilisateurs est international. C'est à dire qu'un élément créé en français par un utilisateur sera également en français sur la version US du site. Tout comme Youtube par ex.

Les traductions ne concernent donc que les différents textes et libellés propres au site en lui-même.

Je pensais opter pour des sous-domaines, ça me semble être la solution la plus simple à maintenir, mais aussi la plus efficace. Mais, un article intitulé "Mon super article en français" créé par un utilisateur sera strictement le même sur http://fr.monsite.com/ et http://en.monsite.com/, ce qui me parait être du "duplicate content", mais en est-ce vraiment ? :)

La balise canonical a-t'elle un rôle à jouer la dedans ?


Merci pour vos conseils.
A+ benjamin.
 

chipsy22

Nouveau WRInaute
Salut à tous,

Je viens de créer un poste sur une questions similaire (oups) mais avec des termes un peu moins techniques pour un débutant comme moi...

Vu la complexité et les multiples questions doutes que vous avez pour maintenir un site multilangues sur un même CMS et sur une même adresse exemple www.tartanpion.com qui devient fr.tartanpion.com eng.tartanpion.com, etc...

Pourquoi n est il pas forcément mieux de créer des sites avec des URL différents pour chaque langue :
www.tartanpion.fr, www.tratanpion.uk, etc...

Merci d avance pour vos réponses !!
 

UsagiYojimbo

WRInaute accro
chipsy22 a dit:
Pourquoi n est il pas forcément mieux de créer des sites avec des URL différents pour chaque langue :
www.tartanpion.fr, www.tratanpion.uk, etc...

Tu as trois choix reconnus au niveau de la mise en place d'un système multilingue :

- les dossiers, que tu peut associer à une langue via Google Webmaster Tools
- les sous-domaines, que tu peut associer à une langue via Google Webmaster Tools (hors sous-domaine de ccTLD)
- les domaines, que tu peut associer à une langue via Google Webmaster Tools (hors domaine en ccTLD)

Ta proposition correspond au 3e choix. Après, tout dépend des problématiques techniques, des budgets, etc.
 

chipsy22

Nouveau WRInaute
OK donc si je comprends bien après avoir relu quelques autres postes :

les dossiers c'est . tata.com/FR/ blabla

Les sous domaines c est fr.tata.com/blabla

Les domaines c est tata.fr

Je comprends bien ? donc ces solutions sont équivalentes en terme de ref pour chaque langue, OK, merci !!

As tu un liens vers lequel m orienter pour que je comprenne ce qu est un domaine CCLTD ?

Merci pour les infos ca m aide beaucoup !
 

Marie-Aude

WRInaute accro
Non les solutions ne sont pas équivalentes.
Tu as 2 types de domaines de haut niveau (tld / top level domain) ceux qui sont des génériques : .com .net .org etc et ceux qui appartiennent à un pays, qui sont géolocalisés d'office, et dont la géolocalisation ne peut donc pas être modifié.

fr.example.com ou example.com/fr/ ne sont pas géolocalisés, c'est à dire qu'ils ne sont pas avantagés par défaut sur les recherches sur google.fr mais ils ne sont pas désavantagés par défaut sur google.be

example.fr est géolocalisé.

La question se poste encore plus avec la langue anglaise (.com vs. .co.uk ) mais elle existe aussi sur la langue allemande (.de, .at, .ch) espagnole (toute l'amérique du sud) et le portugais (le brésil) pour ne citer qu'eux.

Donc tout dépend d'abord de ta cible.
 

chipsy22

Nouveau WRInaute
OK je crois que je suis....Merci Marie Aude mais donc pour aller plus loin si je créé des sites specifiques avec chaque adresse
. FR / .BE / .CH par exemple en voulant toucher a fond chaque marché, ce serait pire que de dupliquer le même contenu, non ?
 

Discussions similaires

Haut