web-dev-qa-db-fra.com

Dois-je avoir une page distincte pour chaque article de mon site?

J'utilise une base de données pour stocker des données telles que des articles, des titres, des méta, etc. Dois-je avoir une page distincte pour chaque article afin que mes articles apparaissent dans la liste lors de la recherche sur Google?

Est-ce que Google ne peut pas parcourir la liste des articles de la base de données et ensuite donner les résultats correspondants? Je suis confus parce que je peux voir des pages qui ne sont pas connectées à une base de données dans la liste plutôt que des pages extraites de la base de données.

Quelqu'un a une idée à ce sujet?

Mon scénario est le suivant: j'ai un onglet dans la barre de navigation qui mène à la page contenant une liste d'articles.

/home.php (page d'accueil) a un lien sur l'onglet de navigation vers /articles.php - cette page contient la liste de tous les articles. Il s'agit de PHP généré (extrait de MySQL).

Dans cette liste a encore href à mes articles, mais c'est aussi juste une seule page avec plusieurs identifiants.

Exemple:

Article 1: www.example.com/articlenew/display.php?id=1

Article 2: www.example.com/articlenew/display.php?id=2

Et ainsi de suite ... Google reconnaîtra-t-il mes articles?

4
Arihant

Google n'a aucune connaissance de la structure de fichier actuelle de votre application Web et de ce qui est accessible au public.

Par exemple, un site d'actualités contiendra des centaines d'articles, mais pourrait ne contenir qu'un seul script: article.php.

Les directives côté serveur peuvent permettre à de jolies URLs canoniques comme /category/283423-pretty-name de pointer vers /article.php, et c'est ce que Google voit.

Google ne peut pas accéder à votre couche de base de données et récupérer des articles de cette manière. Il analyse uniquement votre site et indexe les pages qu'il peut atteindre par le biais de liens de liaison réguliers.

En général, si vous avez du contenu généré via JavaScript, il ne sera pas indexé. Cela inclut tous les liens accessibles uniquement via un événement JavaScript.

6
Julian H. Lam

Consultez le lien suivant pour obtenir des informations spécifiques et des instructions sur la manière dont Google explore les pages. http://support.google.com/webmasters/bin/answer.py?hl=fr&answer=35769

La création d'un sitemap est probablement la voie à suivre avec des pages dynamiques (ce qui est certainement la meilleure façon de procéder). Sans cela, comme mentionné précédemment, Google utilisera par défaut une simple traversée de liens qui, à moins que chaque article ait un lien pointant vers celui-ci quelque part sur une autre page, tous vos articles ne seront pas explorés. Mais, simplement, vous n’avez pas besoin de créer une page Web pour que chaque article soit exploré. Cela prendrait énormément de temps!

Pour répondre à votre deuxième question, tant que chaque article que vous souhaitez explorer est répertorié dans cette page, il est fort probable que Google les reconnaisse tous. Même quand même, créer un sitemap est essentiel. Google reconnaît assez bien les pages dynamiques, à condition qu'il y ait des liens, mais explorer une page est complètement différent de comprendre ce qu'il est en train d'explorer. Un sitemap, ainsi que les balises Google appropriées sur chaque page, garantira que chaque article sera analysé et indexé de manière optimale.

1
dminicrick1

C'est un cas où les règles de réécriture seraient bénéfiques. Pour ce faire, il serait préférable d’avoir des URL distinctives avant la chaîne de requête.

Vous pouvez utiliser des règles de réécriture pour y parvenir. Regardez dans le mod rewrite pour Apache (il existe également des mécanismes pour IIS).

Essentiellement, une règle de réécriture prendra une URL ressemblant à ceci pour un utilisateur (ou un moteur de recherche):

www.example.com/articlenew/1 

mais apparaîtra comme tel sur votre serveur et sur php (c'est-à-dire qu'il sera réécrit):

www.example.com/articlenew/display.php?id=1

Votre règle de réécriture ressemblerait à quelque chose comme ceci:

RewriteRule  ^/articlenew/(.*)  /articlenew/display.php?id=$1   [L]

Vous devrez peut-être également activer le module et ajouter d'autres directives pour le configurer correctement. J'espère que cela vous oriente dans la bonne direction.

1
Octopus