IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

PHP et SEO - Prendre en compte le SEO pour un site custom


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2008
    Messages : 248
    Par défaut PHP et SEO - Prendre en compte le SEO pour un site custom
    Bonjour à toutes et à tous,

    J'ai créé un site internet à base des "couples" HTML/CSS + PHP/MySQL.
    Format "classique": une page index.php qui via des include intègre des pages suivant la demande.

    J'ai commencé un premier cours de SEO (du coup j'ai encore de quoi faire...) et je me pose quelques questions.

    Pour le référencement, chaque page doit disposer d'un title et d'une méta description.
    Ces balises sont situées dans le <head> de la page.

    Or, il s'avère que le <head> de la page:
    . est intégré à index.php
    . n'apparait jamais dans les pages à inclure (vu que les pages à inclure n'ont pas besoin de disposer d'un code complet... car bénéficiant déjà des codes annexes qui sont ajoutés via les includes...)

    Ma question: Comment répondre à ces points avec un site custom php qui inclut des pages différentes à chaque clique sur un lien?

    Mon hypothèse pour le moment (je dois encore creuser...):
    . Les balises title et meta description contenues dans le <head> de ma page index.php n'ont pas une écriture fixe mais renvoient sur des variables (via un php echo par exemple).
    . Ces variables sont alimentées soit par la page qui est chargée, soit via la lecture d'une table (si tu cliques sur X, alors charge la page indiqué dans la colonne Y de ta table, prend le title situé en colonne Z et le meta en colonne W...)
    . Si cette hypothèse n'est pas trop déconnante... vu que ma page sera lue du haut vers le bas... cela signifie mon code de récupération de l'info est placé en démarrage de page (code php en amont de <head>. Ce dernier prendra un $_GET comme paramètre [je viens de cliquer sur un lien par exemple...] et après analyse du $_GET me chargera l'info désirée.

    Avec votre expérience:
    . Mon hypothèse est elle valable?
    . Et surtout... existe t-il d'autres manières de procéder? Plus "propre", plus sécure peut-être... bref de meilleures façons de faire

    D'avance merci pour vos retours qui me permettront de continuer à construire ma réflexion et de continuer mon apprentissage

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 681
    Par défaut
    montrez nous le code que vous avez essayé depuis votre message précédant.

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2008
    Messages : 248
    Par défaut
    Bonjour Mathieu,

    Merci pour ton retour.

    1)
    Je pense que je n'ai pas placé mon premier message dans la bonne catégorie.
    J'ai essayé de le supprimer mais je ne sais pas comment faire
    Si cela est possible, je veux bien apprendre comment effacer un message pour éviter de surcharger le forum inutilement


    2)
    Je suis plus dans la recherche d'une validation (ou pas) de mon hypothèse de travail.
    Ou de modèles qui existent déjà. Plus d'un point de vue structure que modèle déjà tout fait.
    De fait, je n'ai pas encore écris de lignes de codes, je pensais le faire en disposant d'un fil directeur correct.
    Si je devais en écrire un, il ressemblerait à cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    <?php
     
    	session_start(); // Permet d'utiliser les variables superglobales
     
            //Dans mon hypothèse de travail, l'utilisateur clique sur un lien. Ce lien permet d'inclure une page dans mon index.php. Ce lien possède une info de type SEO=valeur. 
            //L'inclusion déclenche un remplissage de variables affectées à title ($index_seo_title) et à meta description ($index_seo_description)
           // La seule solution que j'imagine est un $_GET (s'il existe de meilleures solutions, je suis ouvert à l'apprentissage)
           // Dans l'exemple, imaginons que ce soit $_GET['SEO']
     
          // Etape 1 - Je vérifie de combien d'articles je dispose, cela constituera ma limite supérieure
          // Connexion à la base de données
          try
         {
    	$acces_bdd = new PDO('mysql:host=adresse;dbname=nom;charset=utf8', 'nom utilisateur','mot de passe', 
    	array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)  );
         }
         catch (Exception $e)
        {
        die('Erreur : ' . $e->getMessage());
        }
     
        //Je génère l'accès à la table articles
        $acces_table = $acces_bdd-> query('SELECT * FROM table_articles');
     
        //Je regarde le nombre total d'items dans ma table. Ce qui va définir ma limite haute
        //Je pense qu'il y a moyen d'écrire quelque chose de plus propre ici
        // Je suis preneur de toute idée d'amélioration 
     
       $table_nombre_maxi_articles = 0;
       while ($ma_recherche = $acces_table -> fetch())
       {
           $table_nombre_maxi_articles = $table_nombre_maxi_articles+ 1;
       }
     
       // Je dispose de ma limite haute, je me penche sur le remplissage de mes variables SEO
     
          if(isset ($_GET['SEO']) AND !empty($_GET['SEO']) AND is_numeric($_GET['SEO']) AND $_GET['SEO']>0 AND $_GET['SEO'] <= $table_nombre_maxi_articles)
          {
              //$_GET['SEO'] existe, est un numérique, est compris dans la fourchette de valeur de ma table donc tout est ok
              //Avec tous ces paramètres, il y a t-il un risque de sécurité? (injection de code...?)
     
              //Je génère l'accès à la table articles
              $acces_table = $acces_bdd-> query('SELECT * FROM table_articles');
     
              //La table article est complétée en manuel. Même l'id. 
              // Le lien entre la table et la données $_GET['SEO'] et l'id de ce fait
     
             while ($ma_recherche = $acces_table -> fetch())
             {
                 if($ma_recherche['id']==$_GET['SEO'])
    	     {
                      $index_seo_title = $ma_recherche['seo_title'];
                      $index_seo_description = $ma_recherche['seo_description'];
                  }
                  else //Y-a-t il une façon plus propre d'écrire cela?  Car finalement je me retrouver avec deux else à la suite qui donne la même info... 
                  {
                      $index_seo_title = "Titre général du site";
                      $index_seo_description = "Description générale du site";
                  }
     
             }  
     
          }
          else // Dans tous les autres cas
          {
             $index_seo_title = "Titre général du site";
             $index_seo_description = "Description générale du site";
          }
     
    ?>
     
    <html>
     
       <head>
     
    		 <meta charset ="utf-8"/>
     
    		<title><?php echo $index_seo_title;?></title> <!-- SEO TITRE CHANGEANT -->
     
                     <meta name="description" content="<?php echo $index_seo_description;?> "> <!-- SEO META DESCRIPTION CHANGEANTE -->
     
    		 <link rel="shortcut_icon" type="image/x-icon" href="Header/Logo.png"/> <!-- Insertion du logo dans la barre... Pour le coup, ça ne marche pas ça...-->
     
    		<link rel="stylesheet" href="feuilledestyle.css"/> <!-- Feuille de style principal -->
     
    	</head>
     
    </html>
    D'avance merci pour votre aide et retour d'expérience qui me permettent de continuer d'apprendre

    EDIT: Je pense qu'il faut que je supprime !empty($_GET['SEO']).
    De mémoire, il me semble que si je n'ai qu'un seul caractère dedans, cela sera considéré comme vide.
    Donc pour un retour chiffré de 1 à 9... mon code ne serait pas lu.

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 681
    Par défaut
    j'ai l'impression que je n'ai pas compris votre problème. ou alors vous cherchez quelque chose de compliqué et la bonne nouvelle est que c'est beaucoup plus simple que ça.

    si vous êtes débutant dans le développement web, je vous propose de lire la réponse que j'ai mise là dans une autre discussion, peut-être que cela vous aider à mieux comprendre comment structurer votre application :
    https://www.developpez.net/forums/d2.../#post11803584

  5. #5
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2008
    Messages : 248
    Par défaut
    Merci pour votre retour.
    Je parcours ces éléments et reviens vers vous.

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 267
    Par défaut
    Prends de façon globale le SEO comme du contenu comme un autre du point de vue PHP.

    Un fichier .php peut/va contenir une partie fixe qui est du simple code HTML (et CSS, Javascript), et les éléments dynamique entre balise <?php ...?> générant du HTML du point de ce qui est présenté au navigateur.

    Dans le cas de balise <TITLE>, si tu écris du code from scratch, il y a peu d’intérêt de le faire en PHP, autant le coder en dur vu que le titre d'une page va rester fixe si tu veux faire du SEO.
    Pour le SEO, il faut avoir des liens lisibles naturellement et donc éviter les liens genre https://monsite.com/page1?liste et privilégier des liens de type https://monsite.com/liste_elements,
    Il faut que ton site soit en https avec un certificat non autogénéré.
    Il faut aussi que ton site soit responsive càd que l'affichage s'adapte à ton type d'écran. Cela se fera avec le CSS.
    liste non exhaustive.

    Si tu utilises un CMS (exemple WordPress, Joomla), les données comme le titre de la page seront stockés dans une base de données, comme le contenu de la page, et c'est le code du CMS qui générera la page depuis les éléments dans la base, le back-end te facilitant la mise en page, et l'ajout de fonctionnalités comme un menu, un slider, etc.

    Si tu utilises un Framework, tu vas utiliser des composants logiciels et tu dois adapter ta façon de faire au fonctionnement de celui-ci. Tu en as de simples à utiliser mais aussi certains nécessitant un certain niveau
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/10/2011, 23h30
  2. [RegEx] prendre en compte les # dans un get php
    Par xess91 dans le forum Langage
    Réponses: 3
    Dernier message: 23/10/2009, 21h17
  3. Réponses: 2
    Dernier message: 07/07/2004, 17h44
  4. [plugin][tomcat] Comment prendre en compte les jar ?
    Par djodjo dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 08/04/2004, 19h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo