Comment construire un site bilingue
Un site bilingue peut s'afficher dans une langue au choix ou automatiquement dans la langue du navigateur. Le second choix permet un accès facilité au visiteur mais la page d'accueil aura un PageRank moindre.
Il faut cependant savoir que du point de vue du référencement il est préférable d'avoir des points d'entrées différents pour chaque langue.
Afficher le site dans la langue du navigateur avec PHP
Ce code a été testé avec
les principaux navigateurs: Crome, Firefox, Opéra, Safari.
Le fichier est sauvé sous le nom de index.php
Dans l'exemple, la page en français a le nom de fichier index-fr.php
et la page en anglais index-en.php
On peut ajouter autant de langues que l'on veut en suivant le même principe...
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"</head>
<?php
$lang = "en";
$serv = $_SERVER[HTTP_ACCEPT_LANGUAGE];
if($serv != false)
{
$temp = explode(",",$serv);
$temp = strtolower(substr($temp[0]),0,2);
if($temp == "fr") $lang="fr";
}
?>
<iframe
<?php
echo "src=\"index-$lang.php\"";
?>
border=0 frameborder="no" RESIZE scrolling="YES" noresize >
</iframe>
<noframes>
<body>
Frames requises.
</body>
</noframes>
</html>
Si l'on installe les langues dans des sous-répertoires, par exemple fr, en, etc. on écrira, en se passant des frames:
<?php
$lang="en";
$serv = $_SERVER[HTTP_ACCEPT_LANGUAGE];
if($serv != false)
{
$temp = explode(",",$serv);
$temp = strtolower(substr($temp[0],0,2));
if($temp == "fr") $lang="fr";
}
header("HTTP/1.1 302 Redirect");
header("location:https://www.scriptol.fr/$lang/");
?>
Les noms des pages
La page d'accueil dans une langue donnée ne porte pas nécessairement
le nom index, on peut lui donner un nom significatif comme conception.php pour la page française et design.php pour la page anglaise,
et c'est une bonne chose pour le référencement.
Dans ce cas on modifiera les lignes suivantes dans le code, en remplaçant
les mots de l'exemple par les mots-clés choisis selon le thème
de votre site:
$lang = "design";
if($temp == "fr") $lang="conception";
echo "src=\"$lang.php\"";
Lorsque vous référencez le site, vous donnerez pour adresses: https://www.scriptol.fr/conception.php ou https://www.scriptol.fr/design.php (remplacez scriptol.fr par le nom de domaine de votre site et remplacez les noms des pages).
Redirection d'accueil conditionnelle
Pour éviter la perte de PR, une solution consiste à
mettre la page d'une langue donnée comme page d'accueil du site, par
exemple la page d'accueil en français se nommerait index.php, et elle
contiendrait le code PHP qui redirige les visiteurs des autres langues.
L'inconvénient, si cette page est importante, ce qui est souvent le
cas d'une page d'accueil, est le chargement de deux pages quand on entre sur
le site, pour les visiteurs des autres langues.
Le code de redirection selon la langue du navigateur est disponible dans un fichier zip.
La redirection selon l'IP
Certains services, dont ceux de Google lui-même, identifient l'origine de l'internaute à partir de son adresse IP, et le redirigent automatiquement (et sans lui laisser le choix) sur le site correspondant à sa langue. Si l'on veut installer un tel système, il faudra évidemment pouvoir identifier l'origine d'un utilisateur, et pour ce faire, on trouvera des réponses dans l'article Comment connaître le pays d'une adresse IP.
Site bilingue et moteurs de recherche
Pour choisir parmi un des procédés précédent, il critère est déterminant: comme le site sera vu par les algorithmes des moteurs de recherche.
Le code de redirection automatique selon le navigateur n'a pas d'incidence négative sur
le PageRank des pages autres que la page d'accueil, contrairement aux solutions
utilisant la fonction PHP "header" sur laquelle s'arrêtent
les robots des moteurs de recherche.
Ce n'est pas une solution parfaite, on perd un point de PR sur la page d'accueil,
le problème semble inhérent au site bilingue, toutes les solutions
ont des inconvénients.
Il est préférable pour un site anglais et français par exemple, du point de vue des moteurs de recherche:
- Soit de créer un site en .com et l'autre en .fr
- Soit de créer des sous-domaines en et fr.
- Soit de créer des sous-répertoires en et fr.
En fait ces trois solutions conviennent chacunes pour des cas de figure différents.
Les sous-domaines
Dans le cas présent, la moins pertinente serait l'utilisation de sous-domaines.
En effet, ils sont vus par les moteurs de recherche comme des sites différents,
d'où division du PageRank. Mieux vaut un site plus gros que deux petit sites.
En fait on ne devrait utiliser les sous-domaines que pour des utilisateurs
multiples ayant chacun accès à un espace web propre.
Les domaines de pays
Utiliser des domaines différents à le même inconvénient
mais avec l'avantage de l'extension en relation avec la langue et une URL
plus claire pour le public.
L'extension relative à une langue, comme
.fr par exemple, donne un avantage pour le positionnement, sur la recherche locale.
Les sous-répertoires
Cependant, le fait d'avoir un site plus important peut l'emporter
sur les avantages de la géolocalisation.
Si le trafic sur le site n'est pas suffisamment important pour justifier plusieurs
noms de domaines, les sous-répertoires sont préférables.
L'utilisation d'un script pour adapter la langue à l'utilisateur est selon mon expérience,
efficace avec les précautions indiquées dans l'article.