我在php中有一个网站,它将某些php变量传递给javascript变量,google抓取了我,它生成错误和重复的内容。有没有办法让google爬虫忽略javascript中这些变量的声明?
echo '<script language="javascript">var '.$item['Nombre'].'="'.$descripcion.'";</script>';抱歉,我的英语,
发布于 2013-11-13 12:44:53
Google爬行javascript代码并认为它是复制的?我以前从未听说过这个问题。我的一些页面有内联的javascript (如果内容很小),这意味着每个页面上都有相同的<script>...</script>。
在有些情况下,我以与您相同的方式或多或少地输出javascript变量。谷歌从未将其标记为“复制内容”。
来自这里的描述
重复内容通常是指在域内或域之间的实质性内容块,这些内容要么完全匹配其他内容,要么明显类似。大多数情况下,这在起源上并不具有欺骗性。非恶意复制内容的示例可以包括:
如果您在多个页面上有相同的内容,但google不将javascript解析为内容,则可以得到此类错误。(尽管你永远不可能确切地知道谷歌做了什么或者不做什么)。同样的方式,谷歌不会标记你的<head>标签为重复,或没有惩罚有相同的布局(菜单,页脚等)在每一页。
您可以将该<script>标记放入标记中以确保。
HTML元素表示页面的一个部分,该部分由与其周围的内容切分相关的内容组成,这些内容可被视为独立于该内容。这样的部分通常表示为侧边栏或插入。它们通常包含一些附带的解释,如术语表定义;更松散的相关内容,如广告;作者的传记;或在网络应用程序中,个人资料或相关的博客链接。
这意味着google在索引页面时或多或少会忽略这些内容。它不会标记为复制,因为它可能是一个商业。
还从脚本标记中删除language="javascript"属性。我怀疑它会在任何方面混淆谷歌,因为不建议使用该属性。 (而不是type )现在没有考虑到它。但是如果google这样做了,正确的值将是text/javascript,而不是简单的javascript。谷歌可能不承认javascript的价值,并将其解析为未知类型的文本内容。
脚本的默认类型是text/javascript,因此省略它是安全。
最重要的是,我怀疑问题不在于JS变量的存在,而在于URL中的GET参数。GET参数可以通过在Webmaster工具中正确配置URL参数来处理。
发布于 2013-11-13 11:44:17
重要:在大多数情况下,这是不好的做法。如果谷歌注意到你为它的机器人提供了不同的内容,并认为它是相关的,那么你的网站就会受到无法衡量的惩罚。。
我推荐这个php解决方案
在PHP中使用以下代码:
if (!strpos($_SERVER[‘HTTP_USER_AGENT’],"Googlebot")) {
//echo the script
}
else{ //dont echo, does nothing. },但如果这不起作用,您可以尝试将这些javascript代码添加到脚本标记中:
if (!navigator.userAgent.contains('Googlebot')) {
//do the script
} else {
//does nothing
}Ps:下面是用户代理http://www.useragentstring.com/pages/Crawlerlist/的列表
发布于 2013-11-13 12:00:47
另一种(未经测试、推测)的方法要求您可以编写自己的robots.txt文件:
<script type="text/javascript" src="/path/to/my/php/that/generates/js/variables.php"></script>用户-代理: Googlebot 不允许: /path/to/my/php/that/generates/js/variables.php
https://stackoverflow.com/questions/19952743
复制相似问题