使用Angular的$ location来触发视图更改时的SEO注意事项

时间:2014-12-10 19:48:00

标签: angularjs angular-ui

我的网站:m.amsterdamfoodie.nl

我已经实现了一组Angular-UI单选按钮(在画布边栏上)来导航我的Angular站点的主要子页面。这些按钮触发模型更改,我在控制器中查看这些更改并用于实现$location更改,包括对URL的更改。因此,页面中没有明确的超链接,但我希望索引所有网址。

虽然我已经向Google提交了一个站点地图,但很少有页面被编入索引:没有类别子页面,也没有单独的餐馆页面。事实上,我被告知,站点地图无法替代缺乏链接结构。所以现在我正在寻找关于创建链接的最佳方式的建议。

这是HTML(有一个链接只是添加到第一个按钮作为我当前思考的一个例子,但我发现这个相当不干并且不直观):

<div class="btn-group btn-group-justified price">
    <label class="btn btn-default" ng-model="main.price" btn-radio="'1'"><a href="criteria/budget/1" ng-click="event.preventDefault()">Budget</a></label>
    <label class="btn btn-default" ng-model="main.price" btn-radio="'2'">Mid-range</label>
    <label class="btn btn-default" ng-model="main.price" btn-radio="'3'">Fine dining</label>
</div>

MainCtrl加载了controllerAs main我有

$scope.$watch 'main.price', (newVal) ->
    if newVal
        Restos.data.offcanvas = false
        $location.path '/criteria/price/'+newVal

1 个答案:

答案 0 :(得分:0)

您应该假设Google抓取工具不会执行JavaScript,因此抓取工具无法看到JavaScript生成的任何内容。

SPA的SEO问题的一个相当常见的解决方案是使用预呈现服务(例如prerender.io)来拦截爬虫请求并为它们提供静态HTML。

我链接的服务是SAAS,它也将其产品作为开源库发布。