Référencement qui ne démarre pas.

WRInaute passionné
Bonsoir à tous!

Je suis confronté à une petite problématique relative au référencement d'un site multilingue...:
J'ai choisit la solution du sous domaine:

en.example.com (pour l'anglais)
fr.example.com (pour le français)
etc.

Jusque là, aucun problème.

La ou ça se complique un peu, c'est que j'ai décidé de rediriger directement l'utilisateur vers la version du site qui correspond à la langue du navigateur de l'utilisateur (si celle-ci est présente dans les langues supportées par le site)

=> Cela si et seulement si l'utilisateur tape "www.example.com" (si l'utilisateur tape directement un sous domaine correspondant à une langue, je ne le redirige pas même si la langue de son navigateur est différente).

J'ai choisi de faire ces redirections via un fichier de config en php et mon code donne quelque chose comme cela:
Code:
$SERV=$_SERVER["SERVER_NAME"];
define("IP", $_SERVER['REMOTE_ADDR']); 
$domain_name="example.com";

# parametres des langues
$lang_user = explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
$lang_user = StrToLower(substr(chop($lang_user[0]),0,2));

# langues supportées
$langues_presentes=array('fr', 'en');

if($SERV===$domain_name || $SERV==="www.".$domain_name) {
	# si pas de sous domaine ou alors si www

	# si la langue du navigateur est configurée, on l'utilise
	if(in_array($lang_user,$langues_presentes)) {
		header("Status: 301 Moved Permanently", false, 301);
		header("Location: http://".$lang_user.".".$domain_name);
		}
        # sinon, on redirige par défaut sur la version en anglais
	else {
		header("Status: 301 Moved Permanently", false, 301);
		header("Location: http://en.".$domain_name);
		}
	}
else {
        # si un sous domaine différent de www est présent dans l'url
	if(in_array($lang_user,$langues_presentes)==1) {
		# si la langue est supportée
                $lang_user=explode(".",$SERV);
		$lang_user=$lang_user[0];
		$language=$lang_user;
		}
	else {
                # sinon, on redirige par défaut sur l'anglais
		header("Status: 301 Moved Permanently", false, 301);
		header("Location: http://en.".$domain_name);
		}
	}

Techniquement, sur l'algorithme, il fonctionne correctement... Cela dit, après un mois, google contient toujours le site avec le "www" dans ses résultats... (alors que théoriquement, il ne devrait pas non...?)

=> Erreur dans ma redirection (la 301 n'est pas la bonne solution?)
=> Impatience de ma part... mais bon la quand même... un mois => Sandbox (pourquoi pas!)
=> j'ai oublié un truc?
=> Google est lui aussi partit en vacances?
=> Madribot n'a pas encore crawlé mon site (en fait si, il l'a déjà fait!)
=> Mon site est nul (je sais)

Merci en tout cas d'avance... :D

Anto
 
WRInaute occasionnel
Hello

Je te recommande de ne pas faire de détection de langue pour les robots et de les laisser accéder à tous les sous domaines sans les rediriger.
 
WRInaute passionné
Merci Karak!

Et comment puis-je détecter si c'est un robot ou pas sans maintenir une base de données de robot...?
 
Discussions similaires
Haut