Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Seo 动态AJAX流星网站-如何使其可爬行?_Seo_Meteor_Phantomjs_Adsense - Fatal编程技术网

Seo 动态AJAX流星网站-如何使其可爬行?

Seo 动态AJAX流星网站-如何使其可爬行?,seo,meteor,phantomjs,adsense,Seo,Meteor,Phantomjs,Adsense,我有一个Meteor项目,其中添加了spiderable包。如果我正常加载页面,然后执行查看页面源代码操作,则在标记中不会得到任何内容。如果我输入url,然后在末尾添加难看的?\u转义的\u片段\u=,然后再次查看页面源代码-所有内容都会显示出来。我认为这意味着spiderable包正在工作,并且使用phantomJS正确地呈现HTML。所以现在的问题是,我如何使常规的URL没有丑陋的部分成为可爬行的?我想把这个网站提交给谷歌Adsense,但是这个丑陋的url不被接受,我想看看谷歌用这个工具看

我有一个Meteor项目,其中添加了spiderable包。如果我正常加载页面,然后执行
查看页面源代码
操作,则在
标记中不会得到任何内容。如果我输入url,然后在末尾添加难看的
?\u转义的\u片段\u=
,然后再次查看页面源代码-所有内容都会显示出来。我认为这意味着spiderable包正在工作,并且使用
phantomJS
正确地呈现HTML。所以现在的问题是,我如何使常规的URL没有丑陋的部分成为可爬行的?我想把这个网站提交给谷歌Adsense,但是这个丑陋的url不被接受,我想看看谷歌用这个工具看到的结果是一个空的结果。有什么建议/帮助吗

编辑1:添加来自谷歌网站管理员的谷歌爬网结果

日期:2014年4月5日星期六太平洋时间下午8:13:45
Googlebot类型:Web
下载时间(毫秒):304
HTTP/1.1200ok
改变:接受编码
内容类型:text/html;字符集=utf-8
日期:2014年4月6日星期日03:13:58 GMT
连接:保持活力
传输编码:分块
__meteor\u runtime\u config\u={“meteorRelease”:“0.7.2”,“PUBLIC\u设置”:{“ga”:{“account”:“UA-************-1”},“ROOT\u URL”:“http://*****”,“ROOT\u URL\u路径前缀”:“autoupdateVersion”:“8213872485a2cc1cff2745d78330d7c8db8d8899”};
如果(包的类型===‘未定义’| |
!Package.webapp | |
!Package.webapp.webapp | |
!Package.webapp.webapp.\u iscssload())
document.location.reload();
编辑2:
目前看来,谷歌对该网站的索引是正确的,但adsense并没有使用相同的策略,这对我来说是这个问题的核心。Meteor+spiderable+phantomjs=与AdSense不兼容=但是…与Google的索引兼容。

如果你运行Apache,你可以设置一个*mod_rewrite*重写规则,将每个404错误推送到脚本中。脚本将检查请求是否指向特殊文件夹(如下面的“content”文件夹),并尝试为相应的url提取内容

对.htaccess文件所做的更改如下:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /director.php?q=$1 [L,QSA]
director.php脚本的工作方式如下:

  • 检查404请求是否针对特定文件夹,如“内容”
    • 示例:http://myplace.com/content/f-re=feedddffv
  • 将未知URL转换为丑陋的URL,并使用CURL获取和提供内容
    • http://myplace.com/content/f-re=feedddffv变为http://myplace.com/?f-re=feedddffv
  • 脚本使用CURL将丑陋url的内容拉入变量
  • 将内容回显给查看器

你还需要为搜索引擎创建一个带有新链接的站点地图。您可以使用URL重写器在IIS中执行类似的操作。使用像CURL这样的工具可能会变慢,所以如果可能的话,尽量让你的网站地图远离人眼。

问题似乎只是谷歌如何在网站管理员工具中报告爬行。在使用一个虚拟应用程序进行了一些测试之后,似乎即使谷歌网站管理员工具报告它获取了空页面,该站点仍然在谷歌上得到了正确的爬网、索引和缓存

因此,出于某种原因,它显示了漂亮URL的结果,即使丑陋URL是实际被爬网的页面,正如预期的那样。这似乎不是Meteor特有的问题,而是站长工具的问题。
spiderable
程序包似乎正在按预期工作

毕竟,、和都在运行Meteor,它们在Google上被很好地索引/缓存

您可以通过查看网站管理员工具主页上的网站缩略图来验证是否正在对网站进行爬网,而无需将其提交索引:


spiderable包是否明确实现了Google的AJAX爬网策略?我不指望“fetchasgoogle”功能能为AJAX页面工作,但爬网可能仍然成功(在提交原始URL时)。你读过吗?所有这些都是说,我认为它可能工作得很好。只需等待几天,然后在谷歌上搜索你的页面,看看谷歌缓存中有什么,以及它是否在为你的AJAX内容中的单词编制索引。听起来你正在使用的工具没有使用谷歌的。尝试注册并添加您的站点。这将允许您查看Google的爬虫程序的实际爬网结果。您是说Google的爬虫程序将能够发现丑陋的url,但spider工具没有?我确实浏览了ajax爬行页面,但似乎所有的建议都已经在该网站上起作用了。我想,我会尝试重新提交,看看它现在是否工作。当我使用该工具尝试和蜘蛛,它说蜘蛛看到一个字的文本。这显然是错误的;流星主页在谷歌搜索结果中被完全索引。这表明spider工具没有实现Google用来爬行实时站点的AJAX爬行规范。@sbking我已经添加了Google爬行的结果,它会产生类似的结果。此外,spiderable包应该实现正确的googleajax爬行规范。除了默认的meteor.com服务器之外,您是否有过spiderable/Deployment其他任何地方的经验?不确定meteor在后端做什么,但可能是nginx。它应该比你建议的要简单得多。这感觉就像是我在愚弄谷歌,这可能违反了谷歌的广告/分析用户政策。不管怎样,谢谢。嗯,截图是正确的…至少是我之前的版本。它渲染得很好。只有当我使用像Lynx这样的浏览器,或者使用PhantomJS脚本时,我才好像得到了爬虫所得到的——空页面。我尝试再次提交adsense的页面,但爬虫程序仍然无法正确找到我的内容。除非你同意,否则Lynx将无法工作
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /director.php?q=$1 [L,QSA]