抓取ajax动态网页java(SEO的基本就是要语义化,方便搜索引擎,但有作用吗)
优采云 发布时间: 2022-02-13 05:18抓取ajax动态网页java(SEO的基本就是要语义化,方便搜索引擎,但有作用吗)
我们知道SEO的基础是语义化、易于搜索引擎爬取,但这是否意味着单页应用中的传统多页应用没有经过改造对SEO有影响?
先看一下搜索引擎的原理
# URL 搜索引擎会是 收录 吗?
1、什么是哈希值?
在阮一峰的博客里,有一篇文章文章可以很好的解释哈希值。# 值不是 http 请求,而是浏览器操作。使用#,您可以快速定位网页中的特定位置。比如 id="comment-121" 或者这个位置很快就定位到了。
2、搜索引擎会抓取带有#(哈希值)的网址吗
答案一般不是。搜索引擎抓取页面首先要遵循http协议,但#不是协议的内容。事实上,情况也是如此。我们从来没有在搜索引擎的搜索结果中看到过可以快速定位到网页中某个位置的记录。因此,希望搜索引擎通过在网站内外添加#锚链接来快速定位第一次访问是不现实的。当然,为了模拟真实用户,搜索引擎蜘蛛在输入网站后会使用一些技术来模拟鼠标点击。此时页面的锚链接仍然有效,但是当搜索结果中有任何链接时,将没有#。
#! 是什么意思?在3、URL 里做什么?
这是违反 2 的特殊情况,Google 抓取带有 #! 的 URL。. Google 规定,如果想让 Ajax 生成的内容被浏览引擎读取,可以使用“#!” 在 URL 中(这种 URL 一般对普通页面没有定位作用),Google 会自动将其后面的内容转换为查询字符串 _escaped_fragment_ 的值。例如 /#!/username 等价于 /?escaped_fragment=/username,并且 URL 带有 ? 将被抓取,所以 #! 网址将被 Google 搜索 收录。
4、搜索引擎是否会抓取带有#(哈希值)的URL给我们
一、不要试图用 robots.txt 屏蔽 # 个 URL。我之前翻过一个错误,就是在的robots.txt中加入disallow:/*#规则,试图阻止这些带#的URL被抓取。但实际上,这种做法是错误的。首先,#是robots.txt中的注释符号,后面的内容会被注释掉,所以这条规则变成了disallow:/,也就是阻止了本站所有收录站点。页面,幸好今天早上找到并立即修改。其次,搜索引擎不会抓取带有#的URL,所以不需要添加这样的规则。
二、你可以使用#和ajax的组合来隐藏你不想被抓取的内容。在我们的一些网页中,可能有一些我们不想直接告诉搜索引擎的内容,或者一些我们不想被抓取的隐私,所以我们可以使用#来控制这些信息的显示。例如,我们添加一个按钮,当 URL 中收录#show-info-123 时显示 123 的个人信息,但不收录时不显示。对于搜索引擎,带有#的URL会被自动忽略,因此123的个人信息不会被抓取。
也就是说,哈希模式的语义对SEO影响不大。当然,我们的语义不仅仅适用于 SEO。