web-dev-qa-db-fra.com

Google a indexé mes pages escaped_fragment

Mon site est une application web d'une seule page. Je suis les suggestions basées sur rendant AJAX applications explorables .

Mon URL ressemble à ceci:

http://domain.com/#!pages/contactUs

Ma compréhension est la suivante:

http://domain.com/#!chair/12 va à http://domain.com/?_escaped_fragment=chair/12

Comme je n'utilise aucun script côté serveur sur ce projet, j'ai créé des pages HTML avec les états de l'application et les ai placées dans un dossier comme suit:

http://domain.com/htmlFiles/1.html

Dans Apache, j'ai transféré les requêtes contenant _escaped_fragment_= vers la page html de droite:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=chair\/([\w]*)
RewriteRule ^(.*)$ htmlFiles/%1.html? [R=302,L]

Le transfert fonctionne correctement et la page appropriée apparaît si l'URL _escaped_fragment est utilisée.

Le plan du site que j'ai soumis à Google se présente comme suit:

<url>
<loc>http://domain.com/#!pages/contactUs</loc>
<lastmod>2012-12-30</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>

Le problème est maintenant le suivant: tout mon dossier htmlFiles (http://domain.com/htmlFiles/1.html) contenant les fichiers HTML est indexé dans Google. Ces pages sont là en premier lieu pour montrer à Google le contenu de mes pages actuelles.

Mon site entier fonctionne de

http://domain.com/

Ces pages ne doivent pas apparaître dans les résultats de la recherche. Comme ils l'avaient dit, ils n'indexeraient que de jolies URL, mais néanmoins, je suis réticent à ce qu'ils les suppriment, car je ne sais pas si cela gênera autre chose.

Se pourrait-il que 302 ne soit pas la bonne redirection et que 301 soit utilisé à la place?

Aussi, y a-t-il quelque chose qui cloche avec cette approche de redirection en premier lieu?

2
DMin

Comme précisé dans la spécification Google, vous pouvez utiliser la redirection 302 (mais pas 301) quand ils vous appellent avec? _Escaped_fragment_ = pour leur fournir le contenu. Le problème que je pouvais voir dans votre implémentation est que, peut-être, vos fichiers HTML contiennent des liens relatifs à la page redirigée ou pointant directement vers d’autres fichiers HTML. Par exemple, si votre fichier HTML contient un href qui pointe vers quelque chose comme http://yourdomain.com/htmlFiles/1.html (ou 1.html de manière relative), cette page serait indexée par Google.

En bref, ce que je dis, c'est qu'à partir de votre sitemap, Google doit indexer correctement vos pages, mais lorsque Google utilise les liens fournis par vos fichiers HTML, il est probable que Google les indexe directement sans faire de relation avec l'original #! urls.

Ici, vous avez différentes solutions pour résoudre votre problème:

  1. N'utilisez pas la redirection. Dans votre cas, cela semble inutile, vous pouvez directement envoyer les fichiers HTML à Google quand ils le demandent. Supprimez simplement l'indicateur R dans votre règle de réécriture Apache. De plus, cette solution évitera les allers-retours inutiles entre Google et votre serveur en raison du mécanisme de redirection. Cela vous épargnera (ainsi que Google) la bande passante et les cycles de processeur.

  2. Vérifiez que vos fichiers HTML ont les liens corrects dans les différents href. S'ils pointent tous vers votre #! version, ça devrait marcher.

  3. Ajoutez à chacun de vos fichiers HTML un lien canonique vers votre contenu en #! ( http://support.google.com/webmasters/bin/answer.py?hl=fr&answer=139394 ). Cela pourrait aider Google à savoir quelle est l'URL correcte à indexer.

Remarque: Chacune de ces solutions doit fonctionner individuellement, mais vous pouvez également combiner une partie d'entre elles et même toutes.

2
Yannick