2011-06-04 2 views
5

Je souhaite apporter des modifications à mon site Web qui nécessite une réécriture d'URL pour conserver mes anciennes URL. Je ne peux pas utiliser la réécriture d'URL correcte car le contrôle de mon hébergeur est très limité. Comme j'utilise ASP.NET et que toutes mes pages ont l'extension .aspx, une idée que j'ai eu est de mettre quelque chose dans le global.asax sous l'événement Application_BeginRequest. Cela pourrait vérifier si l'URL de la page demandée est l'une des anciennes et utiliser Server.Transfer pour ouvrir la bonne page.Server.Transfer est-il invisible pour Google?

Ma question est, est-ce que cela serait invisible pour Google? Je ne veux pas que mon classement au sein de Google soit affecté.

+0

Server.Transfer utilisent Redirect sur le serveur côté, puis le client a reçu la réponse de l'URL que vous avez mis pour la redirection. Si vous utilisez Server.Transfer, ils utilisent 302 pour que – Adrian

+0

'Server.Transfer' soit invisible pour Google. Le serveur servirait simplement le contenu cible sous l'URL demandée au lieu de rediriger. Cela peut conduire à une duplication de contenu (SEO médiocre) si un robot peut accéder aux deux URL. –

+0

@Steven Spielberg: Non, le client n'obtiendra pas HTTP 302 lors de l'utilisation de Server.Transfer. Voir la réponse de Oded –

Répondre

9

Server.Transfer se passe entièrement du côté serveur, donc tout client (y compris Google) ne sera pas au courant.

+0

Donc, aucun 302 ou quoi que ce soit n'est signalé à Google? –

+1

@Andy: Non, ce serait "Response.Redirect". 'Server.Transfer' est complètement interne au serveur. –

0

Google est seulement dérangé par le contenu de la page, il ne dérange pas comment le contenu est construit sur le serveur Web. Puisque Server.Transfer est complètement interne à une requête web, je pense que vous devriez être d'accord avec le classement de votre site.

1

Le client (navigateur ou robot) n'aura aucune idée que le Server.Transfer s'est produit. Il verra seulement qu'il a demandé une URL donnée et obtenu le contenu que vous retournez. Il n'y a pas de réponse au client disant que vous avez déplacé des choses (ce serait Response.Redirect).

Dans votre cas, il semble que cela signifie que vous aurez deux URL de retour le même contenu   — deux pages identiques   — qui pourraient avoir une incidence sur la façon dont les index de recherche traitent le contenu (et signifie certainement vous allez finir avec personnes liées aux deux URL, ce qui pourrait avoir un impact sur le classement de chaque URL).

Vous pouvez résoudre ce problème en spécifiant le URL canonique pour le contenu. Plus dans this Google blog post, mais fondamentalement, si vous avez à la fois http://example.com/foo.aspx et http://example.com/bar.aspx retour le même contenu, et vous voulez que l'URL canonique (officiel) pour être http://example.com/bar.aspx, dire les indexeurs que:

<link rel="canonical" href="http://example.com/bar.aspx" />