自从去年12份推出实时搜索以来,谷歌一直对不断地谷歌实时搜索进行小改善。现在谷歌又对该服务再次进行升级,增加了上个方面的内容: 会话查看模式、位置筛选以及更新提示功能。
会话查看,各种tweets按照时间先后顺序以线程的形式呈现出来,提供实时全方面的会话内容,包括回复和retweets。 用户可以点击更新条目下方的“全部会话(Full conversation)” 获得线程形式的全部会话内容。
在位置选择方面,通过新的实时搜索,用户现在可以通过 “自定义位置(Custom Location)” 指定具体的位置缩小搜索范围,可限定到某个城市、某个州或国家。用户也可以点击更新条目下方所列的位置来过滤该地区的结果。
谷歌同时还启用更新提示加强对实时搜索的支持,在搜索结果页面的下方,用户可点击 “创建一份电子邮件提示[搜索关键词]Create an e-mail alert for [search term]” ,这样用户就可以收到该搜索词条的更新提示。用户可以选择每天/周接收更新提示。
另外,之前谷歌的实时搜索都是通过点击左侧的搜索选项菜单中的“最新”才能看到一个实时搜索出来的结果页面,现在谷歌正式新增了一个独立的实时搜索页面 google.com/realtime。不过,目前它属于逐步向用户推出的阶段,可能一些用户会无法打开此网址。
谷歌此次升级似乎来得非常及时,就在前两天(本月25日)微软将雅虎后台搜索引擎并入必应搜索开始涉足实时搜索, 成为谷歌在搜索上最强势的竞争对手。


页面标题是搜索引擎排名一个非常重要的影响因素,但是很多站长却也时常忽视它,经常犯下这篇文章里讲的五个常见错误。
页面标题说白了就是通常在一份HTML/XHTML文档上方<head>标签里赋予 <title>标签的值。大多数浏览器会在浏览器窗口和/或浏览器选项卡上方显示页面标题。
以下面的代码为例:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"> <head> <title>10 SEO Tips to Remember When Building Your Site</title> </head>
这份html文档在谷歌Chrome, Mozilla Firefox, 以及 Internet Explorer上显示的效果分别如下图:

在查询搜索关键词"seo tips remember"之后,谷歌搜索结果显示的 <title>值如下图:

在弄明白什么是页面标题之后,我们接着讨论下页面标题优化时常见的五大误区。
有很多网站没有标题标签或者使用默认的标题,类似"无标题文档(Untitled Document)"。只要在谷歌上搜索下"无标题文档(untitled document)",你将无法相信居然有数百万的匹配结果。

由于搜索引擎使用<title>标签来显示它们的搜索结果,如果你的页面没有标题— 或者标题没有意义— 那么搜索引擎就很难找到和收录你的页面。
页面标题相当于赋予一个网页一些内容。它告诉像谷歌搜索蜘蛛的网络机器人此页面是关于什么的。
虽然这个问题不是非常大,页面标题过短的话将会限制页面对某些搜索关键词排名的潜能。就拿谷歌来说,在搜索结果页面可以显示70个字符(SERP) —为何不好好利用呢?
但是也要记住不要过度,标题中的关键词越多,它们就会越无力。如果一个页面标题中的关键词太多了,虽然对谷歌的可见度提高了,不过也会导致另外一个非常常见的问题,即关键词重复 (接下来会讲到)。
在标题中首次出现的词语会获得更多的重视。例如,如果一个页面的内容是“how to repair a broken hard drive on a Dell XPS laptop” ,主要的关键词是“repair”、“Dell”和 "XPS",标题如下:
<title>DIY: How to Repair a Broken Hard Drive on a Dell XPS Laptop</title>
这个标题就可以改善成:
<title>Repair a Dell XPS Laptop's Broken Hard Drive<title>
第二个标题里关键词更加靠前并且长度也比第一个标题短,这样的标题不仅对搜索引擎排名友好,阅读理解起来也更容易。
当一个页面标题里塞了太多的关键词时就经常会碰到这样的错误。关键词堆砌是一些所谓“SEOer”用来提高他们客户的搜索引擎排名而使用的伎俩。真正SEOer是不会建议客户这么做的,因为它是一种目光短浅的行为,会最终影响页面排名,同时这也是有时候我们经常看到某些关键词搜索出来的都是不相关页面的原因之一。
你的页面是独特的,应该拥有独特的内容,因此,同样页面标题也要做到独特。在不同页面中重复相同的关键词,不管这些关键词是否与某个特定页面有关,并不会对搜索引擎排名起到很好的作用,主要有两个原因:
前面也说到过,谷歌最多可以显示70个字符的页面标题,太长的就无法显示,虽然很多SEOer也任务页面标题超过70个字符问题并不大但是,你还是得认真思考下什么东西应该出现在标题里什么东西不应该出现。很多站长都喜欢将公司的名字写入标题里,有的可能还特别长。而且更糟的是他们想让公司或网站名称在所有页面中都最先出现。
在标题里加入公司的名称(除非它可能被用作搜索词)是不必要的,而且也会再次犯前面提到的错误。
例如,我们来研究下虾米的标题:
<title>ACME Exporting/Importing Company, LLC: Export Surfboards to Hawaii<title>
这个标题页面里包含了公司的名称,多了37个字符,要是换成下面更加简单的标题,可能SEO效果会更好:
<title>Export Surfboards to Hawaii</title>
在主页、联系页面和关于页面里显示你的公司名称可能还讲得通,但是内容页面就不要再加上这些不必要的内容了。
最后一个常见的错误就是重复页面标题。这样造成在搜索引擎的结果页面就无法区分彼此,前面也提到了,所有的页面必须是独一无二的— 从逻辑上来说,所有的页面标题也必需是独特的。
你是否有想过对RSS feed做些改善? 比如让它显示更多(或更少)内容?或者在文章的结尾添加一些其他具体信息。这篇文章将告诉你如何实现对RSS Feed的掌控,包括以下内容:
所有这一切都只需要改动主题里的functions.php文件,如果你的主题里没有这个文件,就先创建一个并以此为命名。
当WordPress搜索posts时,我们给它添加一个过滤器,通过过滤器会检测post是否需要通过RSS feed 输出,如果有需要,那么它就会调整查询来实现:
function feedFilter($query) { if ($query->is_feed) { $query->set('post_type','any'); } return $query; } add_filter('pre_get_posts','feedFilter');如果你只想显示页面,那么可以将上面的单词 ‘any’ 改成 ‘page’ (或者你创建的其他任何自定义的内容类型)。
可能你还需要更精确点,只显示最顶层的页面。这种情况下,你可以在上面的代码里在添加上一行代码,即:
function feedFilter($query) { if ($query->is_feed) { $query->set('post_type','any'); $query->set('post_parent','0'); } return $query; } add_filter('pre_get_posts','feedFilter');这次的过程稍微有点不同。虽然都需要给查询添加一个过滤器来检查此页面是否需要输出RSS feed,不过在这里不是对查询进行调整, 而是 the_content 添加了另外的过滤器:
function feedFilter($query) { if ($query->is_feed) { add_filter('the_content', 'feedContentFilter'); } return $query; } add_filter('pre_get_posts','feedFilter'); function feedContentFilter($content) { $thumbId = get_post_thumbnail_id(); if($thumbId) { $img = wp_get_attachment_image_src($thumbId); $image = '<img align="left" src="'. $img[0] .'" alt="" width="'. $img[1] .'" height="'. $img[2] .'" />'; echo $image; } return $content; }这里使用了稍微有点迂回的方式来获得缩略图,才可以添加align="left" 部分。很多feed阅读器都会将内联CSS去除,不过使用旧的align 属性是没有什么问题的。当然,如果你不想要图片左对齐,可以将 align="left"去掉。
在这里是使用‘set’来调整查询对象。首先需要知道该标签的ID号,登录后台进入文章 > 文章标签,然后找出你需要排除的标签,并点击。在浏览器地址栏里你就可以看到URL地址有一部分看起来像这样:&tag_ID=29
假设该标签的ID号是29,那么通过下面的代码就可以将这个ID的标签排除在外了。
function feedFilter($query) { if ($query->is_feed) { $query->set('posts_per_page','20');} return $query; } add_filter('pre_get_posts','feedFilter');大多数普通博客是不会这样做的, 但是如果你把WordPress当作一个内容管理系统来使用的话,可能你就会希望RSS feed只发布来自“博客”类别的文章,在这种情况下,你可以使用下面的代码:
function feedFilter($query) { if ($query->is_feed) { $query->set('category_name', 'blog'); } return $query; } add_filter('pre_get_posts','feedFilter');或者说你可以通过分类的ID号来排除,假设把第三行的代码换成:
$query->set('cat', '-45');45是指类别的ID号(注意,前面必须加上一个减号,否则结果就恰恰相反,变成只显示分类ID号为45的文章。)
可能出于很多原因,你会想在RSS内容结尾添加一些其他内容。
首先从最简单的开始,假设我们需要添加下面的内容:
"感谢您的阅读,欢迎访问WordPress啦了解更多的WordPress资讯!"
function feedFilter($query) { if ($query->is_feed) { add_filter('the_content','feedContentFilter'); } return $query; } add_filter('pre_get_posts','feedFilter'); function feedContentFilter($content) { $content .= '<p>感谢您的阅读,欢迎访问<a href="'. get_bloginfo('url地址') .'">'. get_bloginfo('博客名称') .'</a> 了解更多的WordPress资讯!</p>'; return $content; }下面来看一下稍微酷一点的招式,假设在主页有一个特色内容滑块或者在侧边栏有一个精华文章,并且已经将哪里的文章内容标签为“featured(精华)”
你想在RSS feed中,添加如下的内容:
"请不要错过我们最新的精选文章:文章标题"
这次在feedContentFIlter函数里运行查询来获取被标记为“featured(精华)”的文章,然后使用内容对象来返回并插入文章标题和地址。
function feedFilter($query) { if ($query->is_feed) { add_filter('the_content','feedContentFilter'); } return $query; } add_filter('pre_get_posts','feedFilter'); function feedContentFilter($content) { $args = array( 'numberposts' => 1, 'tag' => 'featured' ); $posts = get_posts($args); if($posts) { foreach($posts as $post) { $content .= '<p>请不要错过我们最新的精选文章: <a href="'. get_permalink($post->ID) .'">'. $post->post_title .'</a>!</p>'; } } return $content; }