Site multilingue / Problème référencement page d'accueil

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour à tous,

J'ai un site en deux langues français et anglais, chacune des langues dans un sous-répertoire (monsite.com/en et monsite.com/fr). J'utilise le module i18n pour la gestion multilingue avec l'option 'prefixe de langue avec fallback'.

Le problème apparait lorsque l'on active le cache du site. La langue de la page d'accueil monsiste.com mise en cache correspond alors à la langue du premier visiteur : ie si après que le cache se soit vidé, le premier visiteur est français, alors la page monsite.com mise en cache sera en français et ce jusqu'à la prochaine mise en cache. Inversement si le premier visiteur est anglais.

Donc suivant le cas rencontré lors de la dernière visite du robot, j'ai dans l'index google soit les pages monsite.com (en anglais) et monsite.com/fr , soit les pages monsite.com (en français) et monsite.com/en

Résultat c'est assez gênant pour le référencement puisque de manière aléatoire monsite.com bascule du français à l'anglais et les pages monsite.com/fr et monsite.com/en disparaissent/apparaissent.
Idéalement j'aimerais que ne soient indexées que les pages monsite.com/fr et monsite.com/en (et pas monsite.com).

Je pensais avoir trouvé une solution après avoir lu cette discussion: j'ai décidé de procéder lors du chargement de la page d'accueil à une redirection 302 via le fichier htaccess suivant la langue détectée par HTTP:Accept-Language

  RewriteCond %{HTTP:Accept-Language} ^fr.$ [NC]
  RewriteCond %{REQUEST_URI} ^/$ [NC]
  RewriteCond %{QUERY_STRING} !(^q\=) [NC]
  RewriteRule ^(.
)$ /fr [L,R=302]

  RewriteCond %{REQUEST_URI} ^/$ [NC]
  RewriteCond %{QUERY_STRING} !(^q\=) [NC]
  RewriteRule ^(.*)$ /en [L,R=302]

ie: si le visiteur est francophone, il est tout de suite redirigé vers la page en cache monsite.com/fr sinon il est redirigé vers monsite.com/en

Quelles vont être les répercutions en terme de référencement ? Est-ce que j'ai une chance de retomber sur la situation souhaitée ou seules monsite.com/fr et monsite.com/en sont référencées ? Et en général est-ce que cette solution est une bonne idée ?

Merci d'avance pour votre aide ! J'espère que j'ai été à peu près clair....

Version de Drupal : 

Bonjour,

On lit un peu de tout sur le référencement, si j'ai bien compris :
- une redirection 301 ne relai qu'une partie du page rank
- une redirection 302 ne relai aucun page rank

Après est-ce que ça veut dire que si les gens mettent des liens vers http://mon-site.com et que cette adresse redirige en 302 ton adresse http://mon-site.com/fr/ ne gagnera aucun page rank ?

A confirmer par un professionnel.

Je suis dans le même cas, si je ne trouve pas de réponse je pense faire deux site : un .fr et un .com que je référencerai indépendamment.