【发布时间】:2011-02-10 03:31:33
【问题描述】:
我的网站必须打开 javascript 才能运行
有一个
【问题讨论】:
标签: javascript refresh search-engine meta-tags
我的网站必须打开 javascript 才能运行
有一个
【问题讨论】:
标签: javascript refresh search-engine meta-tags
你试过<!--googleoff: all--> <noscript><meta redirect... /></noscript><!--googleon: all-->吗?它不是一个完整的解决方案,但值得一试...
【讨论】:
你可以有一个页面,上面写着“你需要 javascript”。然后在该页面上添加
<script>
window.location.href='/thejspage.html';
</script>
这样,支持 javascript 的人将很容易被发送到有效页面,并且蜘蛛只会停留在该页面上,而不是保存没有 javascript 的页面。
这也应该有助于您的 SEO(因为搜索引擎会找到普通用户可以看到的页面)。
【讨论】:
由于 不允许在页面的
中使用,并且我建议你简单地使用一个
可以使用 /robots.txt 文件阻止搜索引擎跟踪此链接,或者 通过放置一个
<meta name="ROBOTS" content="NOINDEX,NOFOLLOW" />
链接到的页面上的标签。
【讨论】:
与其强行发送用户/机器人,为什么不直接在页面顶部显示文本以启用 javascript 以使用该网站?
这将允许机器人仍然阅读页面并跟踪非 JavaScript 链接。这将结束重定向的问题,并且无需为机器人提供不同的页面。这会让你更新多个页面。
您可能还想查看google webmaster tools 以了解所有 google 当前正在阅读的内容并在此基础上进行改进。
示例:在 SO 上禁用 javascript 会在顶部创建一个红色横幅,上面写着“Stack Overflow 在启用 JavaScript 的情况下效果最佳”,如果您觉得这还不够,您可以将其链接到包含更多信息的页面。
【讨论】:
这是我要做的:
就抓取能力和 SEO 而言,您的网站可能非常糟糕。
编辑:好的,我明白你的问题了。爬虫在看到 noscript 里面的东西后被重定向了。
那么这个解决方案怎么样:
如果你只有一个页面有 noscript,那么你可以在你的 apache 配置中添加一些重写规则,这将向机器人显示页面的不同版本,并且这个版本不会有 noscript 标签。例如:
RewriteCond %{HTTP_USER_AGENT} Googlebot [OR]
RewriteCond %{HTTP_USER_AGENT} msnbot [OR]
RewriteCond %{HTTP_USER_AGENT} Slurp
RewriteRule ^.*$ nometa.html [L]
另外,您使用的是什么技术?你使用任何服务器端语言,你甚至使用 apache 吗?我假设你有 apache+html 但没有服务器端语言。如果你确实有运行服务器端的东西,那么这更容易。
【讨论】:
也许您可以使用无头浏览器,并为那些没有启用 javascript 的人(包括爬虫)提供页面的 HTML 快照。
http://code.google.com/web/ajaxcrawling/docs/getting-started.html
【讨论】: