web-dev-qa-db-fra.com

Méthode de référencement pour définir les titres de page différemment? (même en-tête PHP)

Les fichiers de mon site basés sur PHP commencent par

<?php include("PHP/header.php"); ?>

qui inclut tout le code HTML (métadonnées, scripts, etc.) partagé par chaque page - avec <head> et <title>. Les options que j'ai envisagées pour les titres de page dynamiques sont les suivantes:

<title id="title">...</title>
...
<script>window.onload=function(){document.getElementById('title').innerHTML="New title"}
</script>

et

<?php include("PHP/header1.php"); ?> <!-- code in header.php before <title> -->
<title>New title</title>
<?php include("PHP/header2.php"); ?> <!-- code after </title> -->

(J'entends la même chose pour les descriptions de page - omises par souci de brièveté.)

Laquelle de ces options est préférable pour l'optimisation des moteurs de recherche - existe-t-il de meilleures approches? Enfin, les différences de performances à noter (scripts vs php, etc.)?

3
OverLordGoldDragon

Définissez le titre en tant que variable et transmettez-le à votre include:

<?php 
    $page_title = 'Welcome to my site';
    include("PHP/header.php");
?>

Ensuite, dans votre en-tête PHP, vous pouvez utiliser cette variable. Ici, j'utilise htmlspecialchars pour m'assurer que <>& est correctement échappé s'ils sont utilisés dans le titre.

<title><?php echo htmlspecialchars($page_title); ?></title>

Vous pouvez même mettre du code dans votre en-tête PHP pour vérifier que le titre a été défini et pour utiliser un titre par défaut s'il ne l'a pas déjà été:

if (empty($page_title)) {
    $page_title = 'This page gets this default title';
}

Vous pouvez utiliser la même technique pour d'autres éléments que vous souhaitez personnaliser dans l'en-tête, tels que la méta-description.

5

La méthode la plus fiable et la plus correcte pour définir la méthode de référencement optimale consiste à définir les en-têtes dans la configuration du serveur Web, et pas seulement les en-têtes PHP, car cela ne ferait que couvrir le titre des pages Web.

1
jehovahsays