Javascript Spiderable软件包如何与Meteor一起工作?
我已经将该软件包添加到我的Meteor应用程序中,当使用url中的Javascript Spiderable软件包如何与Meteor一起工作?,javascript,search-engine,meteor,google-webmaster-tools,Javascript,Search Engine,Meteor,Google Webmaster Tools,我已经将该软件包添加到我的Meteor应用程序中,当使用url中的?\u转义\u片段\=请求时,会返回该页面的html版本,但我无法让谷歌抓取该网站 细节 在中使用和请求根页面时“http://example.com/“返回的页面是javascript版本;比如: HTTP/1.1 200 OK content-type: text/html; charset=utf-8 date: Fri, 30 Nov 2012 05:39:36 GMT connection: Keep-alive tra
?\u转义\u片段\=
请求时,会返回该页面的html版本,但我无法让谷歌抓取该网站
细节
在中使用和请求根页面时“http://example.com/“
返回的页面是javascript版本;比如:
HTTP/1.1 200 OK
content-type: text/html; charset=utf-8
date: Fri, 30 Nov 2012 05:39:36 GMT
connection: Keep-alive
transfer-encoding: chunked
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/e83157bdc4ff057fa3a20b82af4c11b4ebe776e7.css">
<script type="text/javascript">
__meteor_runtime_config__ = {"ROOT_URL":"http://www.example.com","DEFAULT_DDP_ENDPOINT":"https://www-example-com-ddp.meteor.com/"};
</script>
<script type="text/javascript" src="/13cf3d21ce1c4a88407ca5f3c250f186ab1738f9.js"></script>
<meta name="fragment" content="!">
<title>example.com</title>
</head>
<body>
</body>
</html>
问题
- 你如何告诉谷歌将
添加到url,以便它呈现html版本?\u转义的\u片段\u=
- 如果url没有hashbang(!#),Google还会在url中添加
?i、 e.?\u转义\u片段=
,/home
而不是/products/1
,/#主页
/#产品/1
- 你如何让谷歌跟踪链接页面?并附加
?页面的所有js版本的标题中都有?\u转义的\u片段
。我以为这就是所需要的一切
?\u expaired\u fragment\u=
,但如果这对其他人有效,我很好奇,我做错了什么
附加信息
是允许web搜索引擎索引Meteor应用程序的临时解决方案
根据报告,它做了几件事:
标题
部分:
“facebookexternalhit”
b。请求的url包含字符串?\u转义\u片段\u=
没有以
#开头的哈希片段的任何页面代码>,如家庭,需要:
<meta name="fragment" content="!">
通知爬虫获取丑陋的url(带有_expected\u fragment的)。显然,它进入了
部分
更新:我注意到,根据你问题末尾给出的插件描述,上面添加了meta标记,你可以通过显示源代码来检查它是否包含在你的页面中
通常,除主页外的所有其他页面都应该有类似于www.yoursite.com/#!hashfragment
位于漂亮的URL中,其中#
)之后的code>作为爬虫程序的通知程序工作,因此您不需要包含上面提到的meta标记。我认为这是一个“谷歌站长工具”错误
谷歌似乎确实在抓取这个网站——这些页面显示在谷歌的搜索结果中。然而,谷歌网站管理员工具仍然将索引页面总数列为1。然而,Bing仍然没有抓取页面
编辑:
它是谷歌网站管理员工具,页面列为
未选择:由于与其他页面基本相似而未编制索引的页面,或已重定向到其他URL的页面
EDIT2:回答Jonatan的问题:
如果url没有hashbang(!#),Google还会在url中添加?\u转义\u片段=
?
对。我的应用程序在URL中不使用hashbang(!#)。而谷歌机器人在爬行时仍然会附加?\u转义的\u片段
。下面是一个日志示例:
INFO HIT /url/2/01 66.249.72.42
INFO HIT /url/2/01?_escaped_fragment_= 66.249.72.142
INFO HIT /url/2/01 108.162.222.82
INFO HIT /url/2/01?_escaped_fragment_= 108.162.222.82
INFO HIT /url/2/05 108.162.222.82
INFO HIT /url/2/05?_escaped_fragment_= 108.162.222.214
谷歌机器人似乎会尝试使用带有和不带?\u转义\u片段\u=
的url。我知道这个问题已经得到了回答,但是对于从谷歌来回答这个问题的人来说。我想包括这个主题的视频
这有助于我理解流星蜘蛛包。
更多信息请点击此处:感谢您的链接。你所提到的一切都是正确的。我现在相信谷歌正在抓取这个网站,但是结果并没有出现在网站管理员工具中。你的问题包含的问题比这个答案更多。为什么它被标记为正确的?你能加上其他答案吗?特别是,我正在寻找的答案,如果url没有hashbang(!)?
@JonatanLittke我已经更新了答案,谷歌还会在url中添加?_转义片段吗。有趣的是,Google bot将首先尝试不带?\u转义\u片段\u
的url,然后使用它。谢谢!我想这可能是因为片段元标记。当然,我不认为他们在其他网站上都这样做。那么为什么你需要?\u转义\u片段=
?如果没有它,html不会在curl
@Chet的响应中呈现,spiderable包仅在url中存在?\u转义\u片段时发送呈现的html。呈现HTML是一个缓慢的过程,因此它不会对每个请求都这样做,只有那些无法在客户端呈现javascript的请求才会这样做。这是否回答了你的问题?是否有其他链接?那个人死了,用他们的网站搜索。。。
INFO HIT /url/2/01 66.249.72.42
INFO HIT /url/2/01?_escaped_fragment_= 66.249.72.142
INFO HIT /url/2/01 108.162.222.82
INFO HIT /url/2/01?_escaped_fragment_= 108.162.222.82
INFO HIT /url/2/05 108.162.222.82
INFO HIT /url/2/05?_escaped_fragment_= 108.162.222.214