Aller au contenu

Sujets conseillés

Posté

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

Posté

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 ?

Posté

sous firefox, cela marchait, je n'ai pas essayé sur IE

merci de ta réponse, je pense que je vais tenter de trouver une autre solution pour adapter le title au contenu !

merci

Posté

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).

Posté

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...

Posté

J'avais testé début 2005 : je n'avais pas le choix et les TITLE étaient dans le body. Google n'avait pas interprété cela comme des balises TITLE, donc mieux vaut eviter...

Posté

Tu prends ton problème du mauvais coté. QU'est ce qui t'empêche de mettre ta balise <title> dans ton <body> ? Rien !

Le début de ton script php doit te servir à récupérer les données de ta page. A partir où elles sont disponible, tu peux faire l'affichage.

Posté (modifié)

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

Veuillez vous connecter pour commenter

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



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