Mon site est une application à une seule page construite avec AngularJS. Mon objectif est de le rendre crawlable ( https://developers.google.com/webmasters/ajax-crawling/docs/specification ).
C'est ce que j'ai utilisé: -
<meta name="fragment" content="!" />
inséré dans la têteComme mentionné dans la spécification, en utilisant la méthode ci-dessus, le robot est capable de lire mon URL,
www.domainname.com
comme www.domainname.com?_escaped_fragment_=
Mon URL ressemble à ceci:
http;//www.domainname.com/about
A transféré la demande si la demande inclut _escaped_fragment_
dans mon répertoire htmlfiles
RewriteEngine On
Options +FollowSymLinks
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=$
RewriteRule ^(.*)$ /htmlfiles/index.html? [NC,L]
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/?(.*)$
RewriteRule ^(.*)$ /htmlfiles/%1.html? [NC,L]
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Avec les réécritures ci-dessus, les fichiers HTML désirés ont pu être obtenus comme suit: -
www.domainname.com?_escaped_fragment_=
reçoit www.domainname.com/htmlfiles/index.html
et
www.domainname.com/?_escaped_fragment_=about
reçoit www.domainname.com/htmlfiles/about.html
Note: ces tests ont été réalisés en désactivant javascript sur le navigateur
Le plan du site soumis à Google est le suivant:
<url>
<loc>http://www.domainname.com/</loc>
</url>
<url>
<loc>http://www.domainname.com/about</loc>
</url>
Problème
Ce que Google a fait, c’est qu’elle n’indexe que correctement ma page principale www.domainname.com
. Cependant, il n'indexe pas les autres pages, dans ce cas, www.domainname.com/about
.
Il est impossible de le savoir sans consulter votre site, mais je pense que vous utilisez le schéma d'exploration AJAX de manière incorrecte.
Si vous avez http://example.com/about
et ajoutez la balise méta fragment à cette page (ainsi, lorsque vous curl http://example.com/about
, la balise méta sera renvoyée dans la réponse), l'URL à extraire pour l'indexation serait http://example.com/about?_escaped_fragment_=
, pas http://example.com/?_escaped_fragment_=about
.
Pensez à utiliser HTML5, CSS3 et pushstate. Voici quelques ressources et exemples: