2/27/2009 11:17:00 上午
发表者: Joachim Kupke, 资深软件工程师; Maile Ohye, 开发者项目技术带头人
原文:
Specify your canonical
发表于: 2009年2月12日星期四,12:30 PM
您可能会对URL形式不同造成的重复内容有所担心,谷歌现在支持一种新的功能,使您可以指定您喜欢的URL格式。如果您的网站通过多种不同形式的URL向访问者提供完全相同或非常类似的内容,那么通过这种功能您可以自主控制出现在搜索结果中的您网站的URL格式。同时这也有 助于将那些影响您网页声望值的因素更固定地指向您所青睐的URL格式上。
让我们以一个出售瑞典鱼的网页为例,假设我们所青睐的URL格式和所对应的内容是下面这样的:
http://www.example.com/product.php?item=swedish-fish
然而,访问者和谷歌机器人实际上可以通过另外的URL形式访问到这一内容。尽管URL的核心部分与您青睐的URL格式很相近,但是他们依据排序的参数或分类浏览种类的不同而向用户提供略有差别的网页。
http://www.example.com/product.php?item=swedish-fish&category=gummy-candy
或者,也有可能他们有着完全相同的内容,但是URL看起来并不相同,比如下面的URL还带有跟踪参数或者会话ID:
http://www.example.com/product.php?item=swedish-fish&trackingid=1234&sessionid=5678
现在,您可以将如下语句<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish"/>
加入到其他您不倾向于在搜索引擎出现的URL的<head>代码中,就能指定您喜欢的URL格式。
比如您不希望以下两种URL格式在搜索结果中出现:
http://www.example.com/product.php?item=swedish-fish&category=gummy-candy
http://www.example.com/product.php?item=swedish-fish&trackingid=1234&sessionid=5678
只要您将上文中的语句加入到上述两个网页的<head>代码部分,那么谷歌就会知道以上两个网址实际上是被建议指向您指定的标准URL: http://www.example.com/product.php?item=swedish-fish上。 其他的URL属性,比如PageRank和相关的其他因素,也都会自动指向该标准URL。
这个标准同时也被其他搜索引擎在抓取和索引您网站时所接受和使用。
以下我们将以FAQ的形式,解答一些您可能存在的疑问:
从强制性与否来说,请问rel="canonical"是一个建议,还是一个指令?
是一个建议。这是一个我们非常自豪的功能,您可以以此提示搜索引擎考虑您对URL格式的喜好。
我能用相对路径来指定我的URL规范么,比如 <link rel="canonical" href="product.php?item=swedish-fish"/>?
可以,在这里使用相对路径是可以被正确识别的,如果您在代码中指定了
link,那么相对路径都会以此base URL为基础。
我可以将URL范式使用在不是完全相同内容的其他网页上吗?
我们允许这些网页之间有些细微差别,比如归在不同类目下的同一产品网页。
如果被指定为规范格式的URL返回404,怎么办呢?
我们会继续访问和抓取您的内容,并应用一些联想功能去寻找一个URL范式,但是我们强烈建议您将一个可访问的URL设置成URL范式。
如果我指定的URL范式并没有被索引会怎样?
就像网络上所有的公共内容一样,我们会努力发现和寻找您指定的URL范式,一旦我们索引到它,我们就会立即将您的rel="canonical"付诸考虑。
我的URL范式可以是一个重定向URL么?
可以,您可以指定一个发生重定向的URL作为URL范式,谷歌会继续跟踪这个重定向并尝试去抓取它。
如果我不小心指定了互相矛盾的URL范式怎么办?
不用担心,我们的算法是很聪明并宽容的,我们会跟踪抓取这个URL范式链,但是我们还是强烈建议您尽快将URL范式指定为特定单一URL形式,从而确保您的搜索结果早日得到优化。
这个link tag可以被用来建议一个在其他域名上的URL么?
**12/17/2009更新: 答案为是! 我们支持 跨域的 rel="canonical" .**
以下是之前的答案:
不可以。如果您需要转移到一个不同的域名上,那么301永久重定向对您来说更合适。谷歌现在只能认可在不同子域名下的URL范式的指定。所以,站长们可以将
www.example.com和
example.com, 及
help.example.com互相指定为范式,但是不能将
example.com和
example-widgets.com互相指定为范式。
听起来不错,能给我举一个现实中的例子么?
我们有一个真实的例子wikia.com。比如,您在http://starwars.wikia.com/wiki/Nelvana_Limited 的源代码中可以发现,该网页已经把http://starwars.wikia.com/wiki/Nelvana指定为了URL范式。通过使用rel="canonical",两个网页的PageRank被整合计算,避免了分散计算的流失,同时搜索结果中也只会包含网站管理员所指定的URL形式。
如果您未能应用URL范式指定您心仪的URL形式,您也不要担心,我们会尽我们最大努力,选择一个更优化的URL形式,并将声望等属性值进行相应转移处理,就像我们
以前做的那样(英文)。
补充:这个link tag现在也被Ask.com,微软Live Search和Yahoo!搜索等搜索引擎所支持。
标签: Google索引, 网站管理员指南
固定链接
32个评论
2/18/2009 02:48:00 下午
发表者: Jason Morrison
, 搜索质量组原文:
Open redirect URLs: Is your site being abused?发表于:2009年1月30日星期五,下午5:17
没有人愿意被恶意软件或网络垃圾侵扰,这正是我们都乐意遵守网站安全运营推荐方法的原因。但是否有一种方式能让网络垃圾制造者无需在您的服务器中设置虚拟脚本就可以利用您的网站呢? 的确有,那就是通过滥用开放重定向网址。
网站管理员们经常会面对诸多需要帮助用户重定向到其他页面的情况。不幸的是,对任意目的地开放的重定向很可能被滥用。这是一个防不胜防的滥用形式,因为它充分利用了您网站的功能,而不是利用您网站的潜在缺陷或安全漏洞。网络垃圾制造者试图利用您的域名作为临时登陆页以将用户、搜索用户和搜索引擎诱骗到看似指向您的网站,实际上却重定向到其垃圾网站的链接。
我们正在努力把滥用网址排除在我们的索引之外,但从您的角度确保您的网站没有以这种方式被滥用也是非常重要的。您一定不希望您域名上的链接把用户带到一些充斥着色情图片、恼人病毒、恶意软件以及欺骗性企图的网页上来。网络垃圾制造者会生成链接,并使之出现在搜索结果中,而这些链接往往指向那些您不想与之有任何瓜葛的垃圾网站。
最近这种滥用比较普遍,所以我们想让您和其他网站管理员们对此有所了解。首先,我们将举出一些重定向被滥用的例子,随后我们将探讨如何发现被滥用的网站以及如何对此进行处理。
被网络垃圾制造者滥用的重定向
我们注意到,网络垃圾制造者盯上了从大型知名企业到小型地方政府机构在内的各类网站。下面的列表是各种被广泛使用的重定向的示例。这些都是合法的技术手段,但如果这些技术手段也正在您的网站上被应用的话,您要谨防滥用的发生。
- 将用户重定向到服务器某一文件(如PDF文件)的脚本有时会很脆弱,容易被恶意利用。如果您使用的是可以上传文件的内容管理系统( CMS ) ,您应该确认您网站下载区的链接是直接指向文件而不是通过重定向来指向的。请留意这样的链接形式:
example.com/go.php?url=
example.com/ie/ie40/download/? - 网站的内部搜索结果页上有时有自动重定向选项,这也比较容易被恶意利用。请留意下面形式的网址,它们会将用户自动重定向到“url="后所跟的网址上:
example.com/search?q=user+search+keywords&url=
- 跟踪点击量的联盟计划系统、广告程序或网站统计信息也是有被滥用危险的。示例网址包括:
example.com/coupon.jsp?code=ABCDEF&url=
example.com/cs.html?url=
- 代理网站,虽然这不完全是技术上的重定向,但它被设计成帮助用户登录其他网站,因此也比较容易遭到滥用。包括用于学校和图书馆的代理网站。例如:
proxy.example.com/?url= - 在某些情况下,登录页会将用户重定向回他们登录前试图访问的页面,而这也是容易遭恶意利用的。请留意类似这样的网址参数:
example.com/login?url= - 用户离开网站时向用户提供信息的缓冲网页的脚本易被滥用。大量的教育机构,政府部门以及大型企业的网站采用这样的脚本来让告知用户,您正在离开本站而前往访问外部网站上的信息,例如以下网址模式:
example.com/redirect/
example.com/out?
example.com/cgi-bin/redirect.cgi?
我的网站被恶意利用了么?
除了上述网址实例外,您的网站还有可能开放了其他重定向方式。即使您本身不是网站程序开发人员,还是有许多简单易行的方法可以检查您的网站是否有被恶意利用的危险: - 检查被滥用的网址是否在谷歌搜索结果中出现。尝试在搜索框中输入[site:您的域名]搜索您的网站,看看是否有您不熟悉的内容出现在搜索结果中。您还可以在搜索词中输入一些按理说不应出现在您内容中的关键词,如商业意味非常重的词汇或是某些色情词汇。正常情况下,搜索[site:您的域名 某色情词汇]应该没有结果,但如果您搜索到结果的话,那么您就应该提高警惕了。您可以使用谷歌快讯进行自动搜索检查。
- 您也可以留意显示在网站管理员工具热门搜索查询中的看起来不太正常的搜索词。如果您的网站是关于家族谱系学的,但在搜索查询中却大量出现色情、博彩等词汇,那么这可能是一个危险的信号。另一方面,如果您有一个药物信息的网站,如果某名人的名字频繁出现在您的热门查询中,那么这也是不太正常的。请密切留意网站管理员工具消息中心中来自谷歌的任何信息。
- 检查您的服务器日志或网络分析软件包,看看有没有陌生网址参数(比如 "=http:" 或 "=//")或某段时间某一重定向网址的访问量突然增大的情况。您也可以在网站管理员工具中查看含有外部链接的网页。
- 如果有用户抱怨您网站的有不良内容或恶意软件,而您又能极为肯定您的网站肯定不存在这些问题的话,那么您也应该提高警惕。您的用户可能被您域名上的某些网址带到了含有恶意内容的其他网站上,而误以为这些内容是属于您的网站的。
我可以做些什么呢?
遗憾的是,没有一种简单的方法能百分之百地确定您的重定向没有被恶意利用。一个开放的重定向本身不是一个缺陷或安全漏洞,对一些用户来说,重定向需要保持相对开放。但也有一些事情您是可以做的,以防止您的重定向被滥用,或者至少使它们不那么容易成为恶意利用的目标,其中有些可能不是那么简单,您可能需要编写一些自定义代码,或是与您的供应商沟通看看能否使用给系统软件打补丁的方式解决。 - 改变重定向代码,增加检查referer的环节。因为在大多数情况下,每个对重定向脚本的合法访问和使用都应当通过您的网站,而不是搜索引擎或其他地方。您可能需要多一些理解,因为一些用户的浏览器可能不会发送referer信息,但如果您发现有用户来自外部网站,您可以予以阻止或警告。
- 如果您的脚本本意只是向用户发送内部网页或文件(例如,文件下载的网页) ,您应该明确禁止任何指向外部的重定向。
- 考虑制定一个安全目的地网站的名单。在这种情况下,您的代码将记录所有向外重定向的链接,然后在向用户进行重定向之前先根据这个名单进行检查以确保重定向目的地是一个合法的经您许可的网站。
- 将您的重定向签名加密。如果您的网站确实需要提供网址重定向,您可以将目标网址打散,并将加密签名作为另外一个参数包含在实施重定向的网址上。这可以使您的网站在做重定向时无需向公众开放你的网址转向器。
- 如果重定向功能对您的网站来说可有可无,那么建议您还是禁用或取消重定向功能。我们经常发现,对很多网站来说,网络垃圾制造者是这些网站重定向功能的唯一使用者,这仅仅是因为网站建设初期这项功能被默认为启用,而您对此毫无察觉。
- 使用robots.txt将搜索引擎排除在网站重定向脚本之外。尽管这不能完全解决问题,因为攻击者仍然可以在垃圾邮件中使用您的域名,但这样做可以使您的网站不那么容易成为黑客的攻击目标,而且用户也不会被搜索结果中的恶意重定向网址欺骗。如果您的重定向脚本与其他脚本保存在同一个子文件夹里,而且另外的脚本也没有必要出现在搜索结果中的话,建议您将包含脚本的整个子目录对搜索引擎封闭,这将增加攻击者找到您脚本的难度,从而起到保护作用。
目前,开放重定向的滥用成为一个越来越严重的问题,我们认为,如果更多的网站管理员对此有所了解,就会使攻击者恶意利用的行为变得愈加困难。欢迎您在文后或网站管理员支持论坛中发表您在这方面的心得体会。
标签: 网站管理员小贴士, 网站管理员指南
固定链接
11个评论
2/11/2009 02:52:00 下午
发表者: Matt Dougherty, 搜索质量组原文:
Quick and easy tips for the holiday rush发表于: 2008年12月22日星期一,凌晨1:04
在此谨向网站管理员们致以新年的问候!可能您已经准备好了要在新的一年大展身手,在这里我们为您准备了一些简单易行的建议供网站管理员们参考。对在线及实体零售商来说,网站或许是您商务经营中很重要的一部分。无论是进行在线销售或是希望增加实体店的客流量,您网站的表现都对您整个商业计划有重要的影响。下面这些小建议,既简单又不需要花什么钱,却可以产生很大的影响力。
确保您的网站被谷歌收录(并且出现在搜索结果页)
使用site: 操作符 [site:example.com] 检查搜索结果中的内容摘要和页面标题——看看对于用户来说它们是不是准确而且具有描述性?为了准确地反映每一个网页所含有的不同内容,理想情况下,每一个标题和摘要都应该是独特的。如果其中有哪一项不完整或者您想了解更多细节的话,可以使用网站管理员工具里的
内容分析工具来进行分析。在那里您可以看到网站上的哪一些网址显示重复的标题或元说明(meta descriptions)。
准确标识您的图片
请千万不要错失潜在的客户!因为一个好的'alt'文本和描述性的文件名可以帮助我们更好的了解您的图片。请确保您已经将 [001.jpg] 这样完全不具描述性的文件名改成一些更准确的如[NintendoWii.jpg]这样的文件名。图片搜索是谷歌最大的搜索属性之一,您应该尽量
好好利用它。
了解谷歌眼中的您的网站是怎样的
您可以使用
网站管理员工具来检查抓取错误,以及看一下是哪些热门查询将流量带到了您的网站。具体信息请参看我们的
诊断列表(英文)。
妥善处理过期的和临时产生的页面
请确保返回正确的
HTTP状态代码。如果您不再销售某种产品了,您可以返回一个404页面。如果您将某个产品页改到了一个新的网址,请使用301永久重定向将之前的页面重定向到新的页面。及时更新您的网站可以将更多的目标流量带过来。
增加实体店的客流量
如果您网站的目标是将客户吸引到您的实体店来,请确保您已经在
谷歌本地搜索中添加和确认您的公司名录。
易用性
请使用
不同的浏览器来测试您网站结算系统是否运行正常。您可以设身处地地考虑一下用户是否可以在无需帮助的情况下顺利地完成从产品浏览到购买的全过程。页面上的购买和结算按钮是不是足够醒目便于用户使用呢?
告诉我们怎样才能找到您的全部网页如果您上传新商品的速度比谷歌抓取您网站的速度还快,请向谷歌提交
Sitemap,这有助于指引谷歌机器人抓取您最新的和比较不易发现的内容。
管理您的网站链接
您的网站可能会触发搜索结果中的
网站链接,所以您需要经常检查一下这些链接以确保链接指向的网页可以正常访问。请记住:您可以在
网站管理员工具里删掉那些您认为用户不会觉得有用的网站链接。
别忘了浏览下面一些有用资源:
标签: Google Webmaster Tools, Google站长工具, 网站管理员小贴士
固定链接
5个评论
2/05/2009 01:33:00 下午
发表者: Chewy Trewhella, 开发技术推广者原文:
Date with Googlebot, Part II: HTTP status codes and If-Modified-Since发表于: 2008年11月27日星期四,中午12:12
我们与谷歌机器人的上一次约会棒极了,但网站们还对响应代码感到比较困惑,不知道自己返回的响应代码是否正确。我们的服务器返回了301永久重定向代码,但在什么情况下我们应该返回302临时重定向? 如果我们返回一些新的"404文件无法找到"代码,Googlebot是否不会再访问我们的网站?我们应该支持标头(header)"If-Modified-Since"吗?这些问题让人困惑不解,就好像懵懂的爱情一样。为了少一点诸如此类的烦恼,我们来问问专家——谷歌机器人,看看他怎样评价我们的响应代码。
支持"If-Modified-Since"标头和返回304代码有利于节省带宽
——————
亲爱的谷歌机器人,
最近我给我的网页做了一次大扫除,删除了一些陈旧的、无用的网页。现在这些网页都返回404"页面无法找到"代码,这么做合适吗?还是我让你感到困惑了? —Frankie O'Fore
亲爱的Frankie,
404代码是告知网页已不存在的标准方式,对此我不会感到困惑,因为旧网页从网站上删除或更新是很正常的事情。大多数网站都会在网站管理员工具的抓取诊断中显示一些404错误。这绝对不是什么大问题。只要您有良好的网站架构并能链接到所有您可抓取的网页,我就会很高兴,因为我能籍此找到我需要的任何信息。
但是别忘了,不仅是我来访问你的网页,也会有很多访问者看到你的网页。如果你只是显示简单的"404页面无法找到"的信息的话,不了解的访问者可能会很迷惑。其实有许多办法可以让你的无法显示的页面变得更加友好,最便捷的一个方式就是使用谷歌网站管理员工具上的404小工具,它能够帮助访问者找到那些真正存在的内容。大多数的主机托管商,无论大小,都允许你自定义你的404页面(同样适用于其他返回代码)。
爱你的,
谷歌机器人
嘿,谷歌机器人,
我读了上面你给Frankie的回复,我有一些问题。如果有人链接到我网站上不存在的页面怎么办?我该怎样才能确保那些访问者能够找到他们想要的东西呢?此外,如果我想移动一些页面该怎么办?我想更好地组织我的网站,但是我很担心这会让你感到困惑,我该怎样让你更明白我的网站呢?—Little Jimmy
Jimmy你好,
让我们先不考虑你问题的先后顺序,从最核心的问题来回答吧。首先,我们来看一下来自其他网站的链接,很显然,这些链接可能是你网站的一个重要的流量来源,而且你不希望访问者看到的是一个不友好的"页面无法访问"的信息。因此,你可以利用强大的重定向来解决这些问题。
最常用的两种重定向是301和302。事实上还有更多的重定向,但这两种是目前与我们联系最紧密的,正如404,301和302是可以发送给用户和搜索引擎机器人的不同种类的响应代码。301和302都是重定向,但301为永久重定向、302为临时重定向。301重定向可以告诉我这个页面以前是什么样、目前转移到了什么地方等等。它可以完美地用于重新建构你的网站,并对重新计算被指向的新网页的声誉有很大帮助。每当我看到301永久重定向,我就会把所有指向旧网页的外部链接自动作为重定向后新网页的声誉计算因素。这不是很方便么?
如果你不知道怎样实施这些重定向的话,我可以帮你入门。这主要取决于你的web服务器,此外这里有一些搜索结果会比较有帮助:
Apache: http://www.google.cn/search?q=301+redirect+apache
IIS: http://www.google.cn/search?q=301+redirect+iis
你也可以参考服务器所附带的手册或自述文档。
作为重定向的另一个替代办法,你可以向链向您网站的网站管理员发送电子邮件,请他们更新链接指向。不能确定哪些网站指向你是吗?不用担心,我的谷歌同事们已经让这变得轻而易举了。在网站管理员工具的“链接”部分中,你可以输入你网站的某个具体URL来查阅哪些外部链接指向了该网页。
我的谷歌同事们最近还发布了一个新的工具,可以显示所有链向你网站中不存在网页的URL,你可以在此了解更多。
永远乐意为你效劳的,
谷歌机器人
亲爱的谷歌机器人,
我有一个问题。我生活在互联网中一个充满活力的地方,我不断改变对事物的看法。当你问我一个问题,我绝不会说出同一个答案两次,我的网站上的头条内容每个小时都在变化,我总会想到新的内容。你看起来像一个很直爽的人,希望得到直接的答案。当我的网站内容频繁更新的时候,我该怎么让你明白又不使你感到困惑呢? —Temp O'Rary
亲爱的Temp,
我刚刚告诉Jimmy通过301永久重定向来告知谷歌机器人你的新网址,但是你描述的情况则不同,应当适用于302临时重定向。对某一特定已经被索引的URL,如果你想告知你的用户该URL的地址是正确的,但是想访问的内容可以临时在另一个地址找到,那么使用302临时重定向(或更为罕见的"307临时重定向")是一个既礼貌又妥当的方式。例如,Orkut将用户从http://orkut.com 重定向到http://google.com/accounts/login?service=orkut,但当检索Orkut*时,这个URL并不是一个具有实际检索价值的网页,而且是在另一个域名下。因此,使用302临时重定向可以告诉我,不要把属于http://orkut.com的内容和反向链接计算到重定向后的目标网址上——因为它只是一个临时页面。
这就是为什么当您搜索orkut时,您看到的是orkut.com,而不是那个更长的URL。
请记住:直接沟通是保持良好关系的关键。
你的朋友,
谷歌机器人
*请注意,在这里我把URL做了简化,使它更易读。实际的URL要远复杂于此。
谷歌机器人上尉,
我是一个经常重新设计和组织的网站。我注意到很多网站链接的URL都是我在很久以前就删掉的URL。我已经为这些已删除的URL设置了指向新URL的301永久重定向,但在这之后我又对网站做了重新设计,很多上述新的URL也不存在了,于是我又用301永久重定向来让它们指向更新的URL。现在我很担心,在抓取的时候,沿着这些指示,你很可能会不断地抓取到一连串的301重定向,而最终导致你可能放弃未来对我网站的抓取。 —Ethel Binky
亲爱的Ethel,
听起来好像你已经设置了很多嵌套重定向的URL。好吧,天哪!如果次数比较有限的话,这些"重复重定向"是可以被理解的,但我们或许应当首先思考一下你为什么要这样做。如果你把中间环节的301重定向统统移除,并将我直接引导到该URL的最终目标网址,你将为我们彼此节省大量的时间和HTTP请求。但是不要仅仅想到我们两个,想想其他访问者可能早已经厌倦了在状态栏中不断看到反复的“连接…加载…连接”的冗长过程。
设身处地地想一想,如果你的重定向开始看起来都相当长,用户们很可能担心你已经把他们推入到一个无限死循环中。机器人和人类都会害怕那种“无穷无尽的重复”。相反地,试着消除那些重复重定向,或至少保持他们尽可能短一些,我们就可以体谅一下广大访问者!
设想周到的谷歌网络机器人
亲爱的谷歌机器人,
我知道你一定是很喜欢我,要不然你就不会隔段时间就发出抓取我某一网页的请求,即使他们的内容从来没有改变过,就好像我的十年内都没有变化的大学论文一样。但是这些现在开始变成我的一个麻烦了,有什么办法可以帮助我不让你来占用我珍贵的带宽吗? —Janet Crinklenose
Janet, Janet, Janet,
看起来你应该学会一个新的名词——“304未修改”。如果我之前曾经访问过一个URL,那么我会在我的请求中插入一个"If-Modified-Since"。此行还包含一个HTTP格式的日期字符串。如果你不想再向我重复发送一遍该文档,那么你只需要向我发送一个正常的并带有"304未修改"状态的HTTP 标头。我很喜欢这样的信息。当你这么操作的时候,你没有必要再向我重复发送该文档,这就意味着你不用浪费你的带宽,而我也不会觉得你又在用老掉牙的重复内容糊弄我。
你很可能会注意到很多浏览器和代理服务器也会在标头上显示" If-Modified-Since ",你也可以这么做来抵制滥用带宽的行为。
现在就开始行动,节省更多的带宽吧!
谷歌机器人
——————
谷歌机器人对我们真是太有帮助啦!现在我们知道应该怎样更好地响应用户和搜索引擎了。下次我们再相聚的时候,就该和这个老朋友坐下来促膝谈心了(与谷歌机器人的第三次约会即将发表,敬请关注!)。
标签: Google索引
固定链接
6个评论