Pubcon会议接近尾声时,我发现一 大 堆的文章在谈论Google对子域名和子目录的处理。也许我在会上没有把这一方面说清楚,我在这里再详细谈谈这个主题。
从以往记录来看,使用子域名与子目录的时间几乎是对等的。顺便提示一下,在一个象subdomain.example.com/subdirectory/的网址中 ,子域名是"subdomain",子目录是"subdirectory" (有时也被称为文件夹)。如果您还不清楚,你也许可以阅读一下我的“一个URL的组成部分的辅导材料”。
如果你把你的内容放在子目录里,通常的原则是所有信息都存储在同一空间里。这可以使找到/编辑/更改代码变得很容易。同时,它也不难把代码从一个地方移到另一个地方。然而,一个子域名往往是一个域名系统(DNS)的别名。子域名的设置对网络管理员新手来说可能有点难,特别是如果"CNAME"对你来说不意味着任何意思。子域名可以分开管理,对你来说可以是一个好事(如果你想转移你网站的一部分,你可以使用DNS来和子域名脱钩),也可以是个头疼的事(DNS的设置相当麻烦,不像使用子目录一样仅仅使用几个命令就可以建立或移动目录)。以我为例,当我开始建我的博客时,我决定用一个子目录(mattcutts.com/blog/),仅仅是想使事情变得简单。
几年来,Google使用了一个所谓的"密集主机(host crowding)"算法,它意味着,对一个域名的每个主机名(hostname)或子域名,Google至多显示两个结果。这种办法(从一个子域名内显 示1-2个结果)一直运行非常良好,但我们也收到这样的投诉:对一些类型的搜索 (如生僻或长尾搜索),Google的一个搜索页面上可能出现很多结果都来自同一个域名的情况。在过去几个星期里,我们改变了我们的算法,使这一现象在未来再也不太可能发生。
这一变化并不会彻底改变有些搜索结果全部来自同一域名的情况;如果某个域名相关性确实非常强,我们仍可能从那个域名中返回多个结果。举例来说,如果一个搜索是[ibm],用户可能确实喜欢并想看到从ibm.com的结果。注意我们的算法变化是一个相当微妙的变化,并没有影响到我们绝大部分的搜索。事实上,这种变化已经存在了几个星期左右,到现在也没有人注意到。:)我在PubCon上谈及此变化的唯一原因是因为有人想听听我对子域名与子目录的意见。
对子域名和子目录,我个人更喜欢子目录。这是因为 我通常倾向于子目录为我的大部分内容提供的方便。一个子域名可有效分离出完全不同的内容。例如,Google为完全不同的产品使用子域名,例如news.google.com或maps.google.com。如果你是一个网络管理员或搜索引擎优化业者新手, 我建议你使用子目录,直到你对你的网站结构有足够的信心。在这一点上,您将可以对你的网站有更好的理解,从而作出正确的决定。
如果你能写好和维持准确的元标记(例如,描述性标题和为搜索机器人提供的信息),Google就可以更准确地爬行、索引并在搜索结果中显示你的网站。元标记为各种各样的客户端(例如浏览器和搜索引擎)提供信息。请记住,每一个客 户端可能只解析对该客户端有用的元标记,而忽略了其他元标记(虽然它们有其他用处)。
下面是Google如何解析以下HTML页的元标记:
<meta name="description" content="对本页的描述">此标记提供了对当前页面一个简短描述。在很多情况下该描述会作为页面摘要(snippet)显示在Google的搜索结果中。详情请参阅我们的博客文章“使用更好的元描述来改善页面摘要”以及帮助中心的文章“如何更改网站的标题和描述”。虽然描述元标记是可选的,并且不会影响到您的排名,一个好的描述可以产生一个更好的页面摘要,这反过来又可以帮助提高我们的搜索结果质量和你的网页的访问者数量。
<title>页面标题</title>从技术上讲,标题标记并不是一个元标记,它经常与"description"标记一起使用。此标记的内容(即标题)一般显示在搜索结果中(当然,当用户使用浏览器来浏览网页或察看书签时也能看到页面标题)。我们的博客文章"针对访问者,还是针对搜索引擎?"尤其是"充分利用网页标题"中有关于标题标记的更多信息。
<meta name="robots" content="…, …"><meta name="googlebot" content="…, …">这些元标记控制搜索引擎如何抓取和索引页。 "robots"元标记指定的规则适用于所有搜索引擎,"googlebot"元标记指定的规则只适用于Google。Google可以理解以下值(当指定多个值时,用逗号将它们分开) :
当你完全省略此标记或当你指定content= "all"时,默认规则是"index, follow"。"使用robots元标记"中有关于"robots"元标记的更多信息。作为一个说明,你现在也可以在你的页面首部通过"X-Robots-标签"HTTP头指令来指定这一信息。这特别有用,尤其是当你想微调抓取和索引诸如PDF、图片或其他类型的非HTML文件时。
<meta name="google" value="notranslate">当我们认识到一个页面的内容并不是用用户可能想读的语言所写时,我们往往在搜索结果中提供一个链接以自动翻译你的网页。一般来说,这让你有机会提供独特和令人折服的内容给一个更广大的用户群。不过,在特定情况下,你可能不想你的网页被翻译。用这个元标记,你可以表明你不想让Google提供一个翻译 此页的链接。这个元标记一般不影响该页为任何特定语言的排名。更多的信息请参阅"Google翻译常见问题解答"。
<meta name="verify-v1" content="…">这是一个Google网站管理员工具的特定元标记,它是被用在你网站的高层页面,以在网站管理员中核实一个网站的所有者(另一种核实方法是上传一个HTML文件)。你为这个标记所设置的"content="的值是由你的网站管理员工具帐户提供的。请注意,这一元标记的content值(包括大小写)必须和你的帐户提供给你的值完全一样,这和你是否从XHTML改变标记为HTML无关,也和你标签的格式是否与你的网页相符无关。详情请见" 如何通过向网站主页中添加元标记来验证网站?"
<meta http-equiv="Content-Type" content="…; charset=…">这个元标记定义该页的内容类型和字符集。使用这个元标记时,content属性的值必须放在引号中;否则字符属性可能被错误理解。如果你决定 使用这个元标记,不用说,你应该确保你的内容实际上用的是指定的字符集。"Google的网络作者统计"里有一些关于这个元标记的使用的有趣数据。
<meta http-equiv="refresh" content="…;url=…">这个元标记在一定的时间后将用户指引到一个新的URL,有时它被用来作为一种简单的重定向形式。不是所有浏览器都支持这种重定向。它也可能混淆用户。对显示在搜索引擎结果中的某一页面,如果你需要改变它的URL,我们建议您使用服务器端的301重定向。此外,W3C的"网页内容易读性技巧和故障指南2.0"把它列在应该被废弃的标记中。
(X)HTML和大小写Google既能阅读HTML式的元标记,也能阅读XHTML式的元标记(无论网页用的是哪种编码)。此外,元标记的大小写一般并不重要--我们把<TITLE> and <title>看作是同样的。但是,"verify-v1"元标记是一个例外,它是区分大小写的。
revisit-after网站地图的lastmod 和 changefreq标记偶尔,网络管理员不必要地包含了"revisit-after"标记以加快一个搜索引擎的爬行速度,不幸的是,这个元标记大多数情况下是被忽略的。如果你想 让搜索引擎知道你更改页面的信息,你可以提交一个XML格式的网站地图。在该文件中,你可以说明你网站的最后修改日期(lastmod)和URL页面的改变频率(changefreq)。
如果您想要更多的例子,或有对如上所述的元标记有任何疑问,请到我们的Google网站管理员讨论组参与讨论。
作为谷歌搜索质量团队的一名代表,我经常听朋友们这样揶揄我:"旅途一定很颠簸吧?"实际上我并不觉得惊讶。然而,在这些会议上扮演积极的角色可不总是那么荣耀和惬意的。
从这里,你们可以一窥现实世界:
但是,下面是我为什么仍然喜欢参加会议的原因: