【问题标题】:AngularJS and SEO clarificationAngularJS 和 SEO 说明
【发布时间】:2016-01-24 22:05:33
【问题描述】:

我正在尝试找出使 angularJS 网络应用 SEO 友好的最佳方法。

我读过这个How do search engines deal with AngularJS applications?

它建议使用:<meta name="fragment" content="!">,因为我的网络应用正在使用 html5mode。

当访问根 url / 并正常浏览到其他区域时,网站运行良好,但只要我重新加载/刷新网站(当我不在根 url 中时)它就会返回 url not found @ 987654326@

现在,我的理解是,使用这个技巧,谷歌就可以正常抓取网站了?我还添加了一个尝试使用此第三方网站 https://www.xml-sitemaps.com/ 创建站点地图,但只返回一个 url(根 url)。

我的网站没有像 node 这样的服务器,它只是普通的 angularJS。

解决这一切的正确方法是什么?

谢谢!

【问题讨论】:

  • Google 更新了关于 ajax 驱动网站的抓取规范。建议阅读最新的。 3 年前的信息不再准确

标签: javascript angularjs seo sitemap


【解决方案1】:

基本上,您要做的就是告诉 Google 它所看到的页面内容是什么。例如,如果你有这个 URL #/services,Google 只知道主页,即 example.com,因为 AngularJS 是一个简单的页面。路由由 AngularJS 通过 javascript 操作。

因此,如果您使用 html5mode,您将拥有更好的 URL,例如:/services,但对于 google,它仍然是一样的。

解决方案是将 Google 重定向到静态内容。您可以手动执行此操作,但这很痛苦。

我向您推荐这项服务:https://prerender.io/。我将它用于我用 AngularJS 制作的所有网站。 该服务会为您呈现 AngularJS 中的每个页面,尽管 .htaccess 您会将 Google 重定向到该服务。

【讨论】:

  • 我明白了,那是使用 express,我的网站没有任何后端,它只是普通的 angularjs。我该如何配置它?他们只是说npm install prerender-node --save,但这只是下载了一堆node_modules,我不知道之后该怎么做:(
【解决方案2】:

如果您的访问者在访问除基本 URL 之外的任何 URL 时会收到 404 错误,那么让搜索引擎对您的网站进行索引是没有意义的。因此,第一件事是将所有 http 请求发送到执行 AngularJS 应用程序的那个文件,在大多数情况下是 index.php。您可以通过将以下内容添加到您的 .htaccess 文件中来完成此操作:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)/$ $1 [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule> 

现在,根据 Google 本身的说法,您拥有一切可以被索引的地方。几个月前我进行了一些测试,看看 AngularJS 应用程序是否可以在没有任何回退的情况下被索引。确实如此,只要它按预期显示并且在Google Web Mastertools -&gt; Crawl as Google 中没有错误,它就会被正确编入索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 2014-10-23
    • 2017-09-06
    • 1970-01-01
    相关资源
    最近更新 更多