在阅读了关于angularjs和SEO(包括谷歌文档)的多个来源之后,我明白了让谷歌抓取我网站的两个主要选项是:
- 将hashbang(#!)添加到我的URL,并且在爬行引擎的请求到达我的服务器后(在请求中,#!被escape_fragment替换)我应该使用外部服务(如prerender)呈现和响应html快照 . io)或实施自己 .
2.将hashbang(#!)添加到我的URL中 - 以便google可以告诉它在此URL中有动态呈现的数据,并将sitemp.xml添加到网站 . as it is shown here
这就是我处理路线的方式:
mi.config(['$routeProvider','$locationProvider', function ($routeProvider, $locationProvider) {
$routeProvider.when('/home', { templateUrl: 'js/app/partials/Home/Home.html' });
$routeProvider.when('/items/:CatId', { templateUrl: 'js/app/partials/Items/Items.html' });
$routeProvider.when('/about', { templateUrl: 'js/app/partials/about.html' });
$routeProvider.when('/checkout', { templateUrl: 'js/app/partials/Checkout/Checkout.html' });
$routeProvider.when('/contact', { templateUrl: 'js/app/partials/contact.php' });
$routeProvider.otherwise({ redirectTo: '/home' });
$locationProvider.hashPrefix('!');
我在网站管理员工具中看到谷歌认可了新的网站 Map ,但它还没有 grab 它们 .
有什么我想念的吗?
1 回答
考虑使用Google Web Master工具 - 部分抓取,以查看Google在抓取您的网站时是否发现了一些错误 .
您还可以尝试使用“抓取为Google”功能,该功能可以让您深入了解Google如何看待您的Angular应用 .
在您的特定情况下,即使您将200作为HTTP响应发送,某些页面(来自站点 Map 的链接)也不会返回任何可抓取的内容: