Aller au contenu

Placer la balise title hors du head


fnicollet

Sujets conseillés

Bonjour,

je developpe en ce moment un site en php et je souhaite soigner mon referencement. Je sais que la balise title est une des plus importantes pour l'indexation par les moteurs et qu'il est important de la modifier selon la page. La structure de mon site est faite avec beaucoup d'include mes métas sont pour l'instant les memes sur toutes les pages mais j'aimerai par exemple qu'ils changent lorsqu'un utilisateur consulte un article.

Apres quelques tests, je me suis apercu que s'il on ne met pas la balises title dans le head mais n'importe ou dans le body, le titre de la page s'affiche bien ! Mais je me demande si un analyseur robot va le prendre en compte ou pas (étant donné que ce n'est pas la structure normale).

Voila, je ne peux pas faire passer de variable au début du fichier pour modifier le titre en fonction du contenu puisque tout est determiné par les include suivants ...

Merci à tous ceux qui pourront m'éclairer (ou me donner votre technique pour changer le titre alors que le head est au début du page ^^)

fabien

Lien vers le commentaire
Partager sur d’autres sites

Le problème est que selon la norme W3C, la balise <title> doit être placée entre <head> et </head>

Et comme les moteurs se basent sur les normes pour créer leurs indexeurs, je ne prendrais pas le risque de la mettre ailleurs.

As-tu d'ailleurs vérifié sur tous les navigateurs, car certains sont vraiment laxistes quant-aux standards ?

Lien vers le commentaire
Partager sur d’autres sites

après quelques recherches supplémentaires, on dirait que la meilleure methode est d'include une page php comme ceci :

<title><?php include("titre-page.php");?></title>

et ensuite d'adapter en fonction des variables de l'url (grace à l'url rewriting notamment).

Lien vers le commentaire
Partager sur d’autres sites

Je ne me risquerai pas à mettre le <title> hors du <head> : ce n'est pas conforme, il y a donc des risques non négligeables de mauvais traitements par les "agent utilisateurs" que sont les navigateurs et les robots d'indexation...

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Si ça peut t'aider, voici une technique que j'utilise. Elle consiste à lire le fichier php complet avant d'afficher la page... On peut donc générer un titre en fonction du contenu...

Voici l'include "auto_titre.php":

<?php
// Génération automatique du titre (balise <TITLE>) en fonction du contenu de la page
// pour améliorer le référencement. Cela permet d'obtenir une titre différent par page automatiquement
//Chaines clés à trouver:
// On cherche le premier titre dans le contenu : Exemple: <span class="Titre">Qu'appelle-t-on algèbre de Boole?<span>
$trouve=false;
$strkeydeb='<span class="titre">'; //titre extrait de son contenu. Si tes pages sont bien structurées, c'est facile...
$strkeyfin='</span>';

// On lit la page elle-même
$lines = file ($_SERVER['DOCUMENT_ROOT'].$HTTP_SERVER_VARS['PHP_SELF']);


</span>
foreach ($lines as $line) {
if (!$trouve){
$deb=0;
$fin=0;
$deb = strpos(strtolower($line), $strkeydeb);
if ($deb > 0){
$line=substr($line, $deb + strlen($strkeydeb) - 1);
$fin = strpos(strtolower($line), $strkeyfin);
if ($fin > 0) {
$Titre=substr($line, 1, $fin - 1);
$trouve=true;
}
}
}
}
}

Et cet include est dans l'entête d'un millier de pages:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html40/strict.dtd">
<html>
<head>
<?php
include($_SERVER['DOCUMENT_ROOT']."/inc/auto_titre.php");
echo '<title>'.$Titre.'</title>';
?>

Mona.

PS: Désolé pour la lisibilité du code, je ne trouve pas le moyen de l'indenter sur le forum... :blush:

**

/* edit modérateur: on indente le code en utilisant la balise [ code ] (bouton code.gif) */

Modifié par Dudu
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...