如何解决让 Google 在搜索结果中显示本地化的 Wordpress 网站
我运行的 Wordpress 多站点在同一域中拥有爱尔兰/欧盟、英国和美国站点:
- pestleandmortar.com - 爱尔兰/欧盟
- pestleandmortar.com/uk - 仅限英国
- pestleandmortar.com/us - 美国/加拿大
客户通过插件调用 IQ Country Block 重定向,具体取决于其 IP 所在的位置。问题是,如果客户在 Google 中进行自然搜索,有时欧盟网站会出现在他们在美国的搜索结果中,他们可以跟进。该插件似乎不喜欢这样并让他们进入。如果同一位客户随后刷新了页面,则该插件会启动并重定向他们。
如何让 Google 显示该地区的正确站点,比如美国用户,当他们搜索时,会在结果中获取美国站点 URL。
谢谢。
解决方法
有三种方法可以让 Google 了解给定页面面向的国家或语言受众。所有这些方法都依赖于使用称为“hreflang”的属性与语言/国家/地区 ISO 代码对相结合。
您可以在 Google 开发者网站上找到 detailed documentation for hreflang。
在我介绍这些方法之前,您应该了解这些方法的一些限制:
- 您只能定位一种语言/国家/地区对,因此您必须为美国/加拿大版本选择一个国家/地区
- 只能使用分别受 ISO 3166-1 和 ISO 639-1 支持的国家/地区和语言,这意味着您不能定位到欧盟(因为它不是国家/地区)
HTML 标记方法
第一种方法是使用 HTML <link>
标签放置在 <head>
元素中。每个标签必须包含 rel="alternate"
、hreflang
和 href
属性。
示例:<link rel="alternate" hreflang="en-ie" href="http://www.pestleandmortar.com"
<link rel="alternate" hreflang="en-gb" href="http://www.pestleandmortar.com/uk"
<link rel="alternate" hreflang="en-us" href="http://www.pestleandmortar.com/us"
这三个相同的标签位于您列出的示例页面所有三个的<head>
中。
站点地图方法
此方法需要相同的属性,但它们包含在与您的站点关联的 xml 站点地图文件中。
示例:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>http://www.pestleandmortar.com/</loc>
<xhtml:link rel="alternate" hreflang="en-ie" href="http://www.pestleandmortar.com/" />
<xhtml:link rel="alternate" hreflang="en-gb" href="http://www.pestleandmortar.com/uk" />
<xhtml:link rel="alternate" hreflang="en-us" href="http://www.pestleandmortar.com/us" />
</url>
<url>
<loc>http://www.pestleandmortar.com/uk</loc>
<xhtml:link rel="alternate" hreflang="en-ie" href="http://www.pestleandmortar.com/" />
<xhtml:link rel="alternate" hreflang="en-gb" href="http://www.pestleandmortar.com/uk" />
<xhtml:link rel="alternate" hreflang="en-us" href="http://www.pestleandmortar.com/us" />
</url>
<url>
<loc>http://www.pestleandmortar.com/us</loc>
<xhtml:link rel="alternate" hreflang="en-ie" href="http://www.pestleandmortar.com/" />
<xhtml:link rel="alternate" hreflang="en-gb" href="http://www.pestleandmortar.com/uk" />
<xhtml:link rel="alternate" hreflang="en-us" href="http://www.pestleandmortar.com/us" />
</url>
</urlset>
HTTP 头方法
再次提供相同的属性,但这些属性包含在您网站的 http 标头中。
示例:
Link: <http://www.pestleandmortar.com/>; rel="alternate"; hreflang="en-ie",<http://www.pestleandmortar.com/us>; rel="alternate"; hreflang="en-us",<http://www.pestleandmortar.com/uk>; rel="alternate"; hreflang="en-gb"
一些注意事项
-
Hreflang 在相关页面的“集群”中工作。 确保每个 这些集群,例如您在问题中分享的三个页面, 都互相参考。这看起来像很多样板—— 确实如此 - 但如果没有它,这些页面的“返回循环”将被破坏,并且这些页面可能不会出现在正确的搜索结果中。
-
仅使用 200 个不包含 noindex 指令或规范标签的状态 URL,因为这也会破坏页面之间的关系。
-
考虑选择您网站的一个版本作为
x-default
。这将指示 Google 在没有合适匹配的情况下显示网站的默认版本.例如,喀麦隆的用户仍有可能在搜索结果中看到网站的默认版本。 已损坏,Google 将无法确定这些页面是否相关。 -
其他搜索引擎不使用 hreflang 标记,例如 Bing。如果您想确保其他搜索引擎向其用户提供正确的版本,您需要使用适当的
<html lang="">
元素设置您的页面。lang
属性中的值与我上面提到的语言 ISO 代码相同。请注意,使用此特定方法无法定位到国家/地区。
关于地理封锁的一句话
您提到您依赖一个插件,该插件使用 Geo-IP 检测来阻止来自某些国家/地区的用户查看您的内容。您不应该这样做的原因有几个。
-
原因 1:Google 的抓取工具主要位于美国。如果他们无法抓取内容,则无法对其进行索引和排名。这是件坏事。
-
原因 2:您的行为似乎构成了地理封锁,即 illegal in the EU 并可能面临罚款。这也是一件坏事。您不歧视欧盟国家/地区这一事实可能意味着您很清楚,但我不是律师,所以不要将其视为法律建议。
-
原因 3:您的潜在客户可能会在国外访问您的网站,这意味着他们可能拥有与您屏蔽的位置相关联的 IP 地址。由于阻止他们访问该网站,您可能会失去销售。这显然是一件坏事。
“告诉我如何在 WordPress 中设置它!”
由于您的网站是使用 WordPress 构建的,因此您可以尝试使用一些插件来简化 hreflang 的设置。
我只能保证 WPML,因为我从未尝试过 Polylang,但我想我会包含一个免费和开源的 WPML 替代品。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。