巧用结构化数据建立搜索引擎结果页扩展链接

我们知道,当我们在谷歌搜索一些品牌词时在搜索引擎结果页面(SERP)中经常会看到下面这样的表现形式:

谷歌搜索引擎结果页面中的扩展链接

谷歌搜索引擎结果页面中的扩展链接

这是因为谷歌会检索在该首页上登陆之后用户的下一步去向。在以上这个腾讯的实例中,我们看到当用户访问腾讯的官网之后最多会访问下面几个链接。这几个链接在腾讯首页的导航栏里。这会很大地提高你的网站在SERP中的点击率,从而带动流量,转而提高排名。

那么如何让你自己的网站在谷歌搜索引擎结果页面也具有这样的表现形式呢?我们还是要用到结构化数据。在以往我们曾经介绍过一些关于结构化数据的应用,你可以再度参看下面文章:

在导航菜单中我们可以通过结构化数据Schema中的一个元素叫做SiteNavigationElement来标记菜单项。这里用HTML写出一个例子:

<ul itemscope=“itemscope” itemtype=“http://schema.org/SiteNavigationElement”>
<li>
<a itemprop=“url” href=“http://example.com/1”>
<div itemprop=“name”>Link 1</div>
</a>
</li>
<li>
<a itemprop=“url”href=“http://example.com/2”>
<div itemprop=“name”>Link 2</div>
</a>
</li>
</ul>

通过这个更改搜索引擎(包括:谷歌、雅虎、Bing和Yandex)就知道你的站点结构中此处为导航菜单了。如果是一个子菜单呢,你可以根据上面这个例子做嵌套。

下面我们讲讲如何在WordPress中实现SiteNavigationElement的部署。

首先,要找到你的主题中的主菜单调用函数wp_page_menu,最好的方法就是把主题的所有PHP文档打开并检索“wp_page_menu” 。这个函数用于在固定位置部署菜单。你要关心的是其中的一个参数’items_wrap’,声明SiteNavigationElement就要在这里实施。

你要为items_wrap赋值,这里给出一个例子:

$args = array(
‘theme_location’ => ‘primary’,
‘container’ => ”,
‘items_wrap’ => ‘<ul itemscope=”itemscope” itemtype=”http://schema.org/SiteNavigationElement”><ul class=”root”>%3$s</ul>’
);
wp_nav_menu( $args );

如果你使用的是HTML5的话,HTML5最新引进了一个新的标签<nav>。你可以写成这样:

$args = array(
‘theme_location’ => ‘primary’,
‘container’ => ”,
‘items_wrap’ => ‘<nav class=”nav-primary” role=”navigation” itemscope=”itemscope” itemtype=”http://schema.org/SiteNavigationElement”><ul class=”root”>%3$s</ul></nav>’
);
wp_nav_menu( $args );

好了,这就是第一步。第二步你便要在第一好的域中标记各个菜单项了。以WordPress v3.6以上版本为例,你要打开的是/wp-includes/中的一个叫做nav-menu-template.php的文件。

找到第一个字符串$item_output .=,把这一行改为:

$item_output .= ‘<a itemprop=”url” ‘. $attributes .’><div itemprop=”name”>’;

然后下面也要封口:

$item_output .= ‘</div></a>’;

如此,我们就在WordPress中自动为菜单添加了结构化数据标签了。

注:百度也已经支持站点子链了。详情请查看http://zhanzhang.baidu.com/sitelink/index