web-dev-qa-db-fra.com

Nettoyer l'URL: avec ou sans "?"

Question simple

Qu'est-ce qui est mieux:

http://www.example.com/product/123/subpage/456.html

ou

http://www.example.com/product?123/subpage/456

Autant que je sache, ils auraient le même rang en matière de référencement, mais mes connaissances en référencement pourraient être un peu désagréables. Le dernier semble également être plus facile et plus propre à mettre en œuvre de mon côté.

S'il vous plaît, expliquez-moi ce qui est meilleur et pour quelles raisons.

5
red-X

Le premier est préféré. En effet, il est interprété comme un document, alors que le second est interprété comme un document allant jusqu'au produit, puis comme un argument de requête. Donc, moteur de recherche, il n'y a pas de différence entre

http://www.example.com/product?123/subpage/456

et

http://www.example.com/product?p1=123&p3=456&p2=subpage

ce n'est que convivial pour l'œil humain, mais le moteur de recherche ne l'interprète pas comme un chemin. De plus, je suis sûr que si une personne devait saisir manuellement cette information dans le navigateur, elle ne raterait sûrement pas le point d'interrogation, car ce n'est pas prévu (c'est pour la facilité d'utilisation du chemin).

Le premier cas (sans le?) Permettra au moteur d'affecter correctement hierarhy (456 est enfant de sous-page, qui est enfant de 123, etc.). Le second ne sera pas.

10
Palantir

Un peu hors sujet mais j'essaye quand même:

Lorsque je rencontre des URL comme http://www.example.com/product/123/subpage/456.html, je pense toujours qu'il s'agit d'une tentative de création d'URL hiérarchiques significatives qui, toutefois, ne sont pas entièrement hiérarchiques. Ce que je veux dire, c'est que vous devriez être capable de vous couper n niveau à la fois. Dans ce qui précède, l'URL a deux violations sur ce principe:

  1. /product/123 est n information représentée sous forme de deux niveaux. Il serait plus correctement représenté sous la forme /product:123 (ou le délimiteur de votre choix)
  2. /subpage n'est très probablement pas une entité en soi (c.-à-d. Que vous ne pouvez pas monter n niveau de 456.html car http://www.example.com/product/123/subpage n'est "rien").

Par conséquent, je trouve ce qui suit plus correct:

http://www.example.com/product:123/456.html

Ici, vous pouvez toujours monter d'un niveau à la fois:

  • http://www.example.com/product:123/456.html - La sous-page
  • http://www.example.com/product:123 - La page du produit
  • http://www.example.com/ - La racine

Suivant la même philosophie, ce qui suit aurait du sens:

http://www.example.com/products/123/456.html

Où:

  • http://www.example.com/products/123/456.html - La sous-page
  • http://www.example.com/products/123 - La page du produit
  • http://www.example.com/products - La liste des produits
  • http://www.example.com/ - La racine

(Désolé de spammer votre question, @ red-X)

5
jensgram

J'utilise habituellement http://www.example.com/product/123/subpage/456. Dans mon cas, j'ai mieux fait d'utiliser ce type d'URL plutôt que des URL avec paramètres. C'est votre décision difficile ...

De plus, en utilisant htaccess (si vous utilisez Apache), vous pouvez facilement réécrire les pages.

1
Claudiu