如果你对网络营销有点熟悉,你可能知道搜索引擎在重复内容时看起来并不太友好。有太多的(在联合,样板重复,打印机或仅限移动版本的页面等情况下可能发生),你可能会发现 当Google试图列出"更新鲜"的内容时,您自己会从搜索引擎结果页面(SERP)中过滤掉。


您可以通过多种方式解决重复内容问题,包括使用301重定向,rel ="canonical"标记和"noindex"元标记。


但是,对于国际网站来说,这些都不是真正好的解决方案。


问题


假设您有一个针对三个不同地区用户的电子商务网站:美国的英语使用者,加拿大的英语使用者和加拿大的法语使用者。您的网站向所有三个地区的用户提供基本相同的产品信息,内容仅略有不同,以便考虑定价,送货信息等。


您希望每个地区的用户都能在SERP中查看适合他们的信息。您还希望避免因内容过于相似而导致的任何搜索引擎问题。

解决方案


这就是hreflang属性的用武之地。这个属性本质上是为了让Google知道有多个版本的页面服务于不同的区域。通过标记每页的语言(使用ISO 639-1-1格式)和目标位置(使用ISO 3166-1 Alpha 2格式),您可以帮助Google了解要为哪些用户显示的版本。


何时实施Hreflang


在决定是否应在您的网站上实施hreflang时,您应该问自己以下一些问题:


我有多个页面具有相同或大致相同的内容吗?

我是否有任何完全翻译的页面彼此重复?

如果这些问题中的任何一个的答案都是"不",那么您不必担心使用hreflang。另一方面,如果您的页面的国际版本接近重复,则需要使用hreflang。


Hreflang如何运作


在您的网站上使用hreflang有三种不同的方法。虽然技术上没有一个比其他任何一个"更好",但在某些情况下可能更方便实现:


在网页的<head>中使用Hreflang


第一种方法是在每个区域特定网页的<head>部分添加"link"标签。每个页面必须使用rel ="alternate"(包括其自身)标识所有备用语言版本。


在我们上面的示例中,页面的英美版本应该在其<head>部分中具有类似的内容:


<link rel ="alternate" href ="http:// www.xyphp.com"hreflang ="en-us"/> 
<link rel ="alternate" href ="http://www.xyphp.ca"hreflang ="en-ca"/> 
<link rel ="alternate" href ="http:// www.xyphp.ca/fr"hreflang ="fr-ca"/>


而英文版CA看起来像这样:


<link rel ="alternate" href ="http:// www.xyphp.com"hreflang ="en-us"/> 
<link rel ="alternate" href ="http://www.xyphp.ca"hreflang ="en-ca"/> 
<link rel ="alternate" href ="http:// www.xyphp.ca/fr"hreflang ="fr-ca"/>


等等。您需要将这些标记放在几乎重复的每个页面上,如下所示:


英语(美国):


<link rel ="alternate" href ="http:// www.xyphp.com/product.html"hreflang ="en-us"/> 
<link rel ="alternate" href ="http://www.xyphp .ca / product.html"hreflang ="en-ca"/> 
<link rel ="alternate" href ="http:// www.xyphp.ca/fr/produit.html"hreflang ="fr-ca"/ >


英语-CA:


<link rel ="alternate" href ="http:// www.xyphp.com/product.html"hreflang ="en-us"/> 
<link rel ="alternate" href ="http://www.xyphp .ca / product.html"hreflang ="en-ca"/> 
<link rel ="alternate" href ="http:// www.xyphp.ca/fr/produit.html"hreflang ="fr-ca"/ >


等等。


一旦谷歌对这些页面编制索引,它应该理解将美国用户发送到该页面的.com版本,并将加拿大用户发送到适当语言的.ca版本的页面。


在站点地图中使用Hreflang


实现hreflang的另一种方法是在站点地图中执行此操作。如果您有一个网站的许多不同语言版本,这可能是一个好主意 - 添加到页面的许多代码行可能会很麻烦。


上面示例中的XML站点地图如下所示:


<?xml version ="1.0"encoding ="UTF-8"?>
<urlset xmlns ="http://www.sitemaps.org/schemas/sitemap/0.9"xmlns:xhtml ="http://www.w3.org/1999/xhtml"> 
<url> 
<loc>http://www.xyphp.com </loc> 
<xhtml:link rel ="alternate" hreflang ="en-us"href ="http://www.xyphp.com"/> 
<xhtml:link rel ="alternate"hreflang ="en-ca"href ="http://www.xyphp.ca"/> 
<xhtml:link rel ="alternate"hreflang ="fr-ca"href ="http://www.xyphp.ca/fr"/> 
</url> 
<url> 
<loc> http://www.xyphp.com/product.html </loc> 
<xhtml:link rel ="alternate" hreflang ="en-us"ref ="http://www.xyphp.com/product.html"/> 
<xhtml:link rel ="alternate"hreflang ="en-ca"href ="http://www.xyphp.com/product.html"/>
<xhtml:link rel ="alternate" hreflang ="fr-ca"href ="http://www.xyphp.com/fr/produit.html"/> 
</url> 
<url> 
</url> 
</urlset>


对于每个URL,您需要使用rel ="alternate" 属性引用页面的所有版本(包括其自身),如果您有多个顶级域,则需要为每个版本创建站点地图。


如果生成这样的站点地图看起来像是一项艰巨的任务,那就别担心。有多种 工具可以帮助您快速生成它们。


在HTTP标头中使用Hreflang


使用hreflang这种方式对于指示非HTML文档(如PDF)中的语言和区域特别有用。


在HTTP标头中使用hreflang的格式如下所示:


链接:<http://www.xyphp.ca>; REL ="备用"; 的hreflang =" EN-CA"


结论


如果您的网站针对多个地区的用户,那么hreflang应该是您最好的朋友。