为 AngularJs(1x)网站启用 SEO [重复]

Posted

技术标签:

【中文标题】为 AngularJs(1x)网站启用 SEO [重复]【英文标题】:Enable SEO for AngularJs (1x) website [duplicate] 【发布时间】:2018-12-19 15:06:49 【问题描述】:

我正在尝试建立我的个人网站。我正在使用带有 laravel 后端的 angularjs (1.6.4)。但即使在提交给谷歌索引后,该网站也没有出现在谷歌搜索中。如果我签入“Fetch as Google”,我会看到 Google 将页面提取为空白:Fetch as Google。

还有很多时候,“Fetch as Google”失败并显示“暂时无法访问”状态消息。我还尝试通过 .htaccess 文件重定向 googlebot 请求。但在这种情况下,状态为“重定向”。不知道我在做什么错。 Screenshots.

我已经在网上搜索找到解决方案,但不幸的是我仍然无法解决这个问题。我的网站托管在共享空间中,因此不确定是否可以使用无头浏览器进行预渲染。另外,我不想花钱使用在线预渲染服务。

是否有任何其他方法可以为我的网站启用 SEO,以便它开始出现在谷歌搜索中。在 Facebook 等社交媒体上分享时也可以使用预览吗?不幸的是,我无法在任何地方找到任何合适的教程或工作示例。有人可以指导我吗?

【问题讨论】:

看到这个:dzone.com/articles/… 【参考方案1】:

没有这种“启用 SEO”的方法。这取决于您制作网站的方式,实际上有很多不同的因素(内容、链接中的文字、反向链接)。

我也在使用 Angular 1.6,而且,不用担心,GoogleBot 可以渲染 javascript。也许使用/#!/url 尝试在不重定向的情况下进行渲染。

无需在线预渲染服务。我正在使用 Grunt 任务来生成快照:grunt-ng-html-snapshot。

这个link 是一个很好的开始。但请注意:使用的 Grunt 任务不是好任务。

要在社交媒体上分享,您需要将 Open Graph 用于 Facebook(而 Twitter 则不同)。请注意,社交媒体爬虫无法读取 javascript,您需要为这些爬虫提供快照(来自您的 .htaccess)。您无需为 GoogleBot 提供快照。

.htaccess 的一个例子(我远不擅长这个,但这是我使用的):

RewriteCond %HTTP_USER_AGENT (facebook|bot|spider|whatsapp) [NC]
RewriteCond %HTTP_USER_AGENT !googlebot [NC]
RewriteRule ^(.*)$ https://%HTTP_HOST/resources/snapshots/%REQUEST_URI.html [QSA,L,R=301]

resources/snapshots/ 是包含快照的目录

【讨论】:

以上是关于为 AngularJs(1x)网站启用 SEO [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在AJAX页面上启用SEO

AngularJs 内容在查看源代码中不可见

如何检查 prerender.io 在我的 angularjs 网站上是不是正常工作?

一个网站有多个域名,怎么处理对SEO比较友好?

使用 NodeJS 进行 SEO 怎么样(wo Angular)[关闭]

Laravel,AngularJS和SEO