回到主页

以下是如何使用Google跟踪代码管理器生成和插入Rel Canonical

在本文中,我们将学习如何使用Google跟踪代码管理器创建rel规范网址标记,以及如何将其插入到我们网站的每个页面中,以便在每个网址中自动生成正确的规范。

我们将使用Google跟踪代码管理器及其变量来完成此操作

为什么要从每个页面向自己发送规范?

Javier Lorente在萨拉戈萨(西班牙)的2015年SEO沙拉活动中给了我们一个非常好的解释/提醒。简而言之,可能有各种因素导致Google为URL的意外变体编制索引,这通常超出了我们的控制范围:

  • 显示我们网站但使用其他网址的外部网页(例如,Google自己的缓存,其他搜索引擎和内容聚合器,archive.org等)。这样,Google就会随时知道哪一个是原始页面。
  • 与SEO /内容无关的参数,例如某些过滤器和订单序列

通过在每个网址中加入此“标准”规范,我们可以让Google轻松识别原始内容。

我们如何生成规范URL的动态值?

要生成规范URL,动态我们需要强制它始终对应每个页面的“干净”(即绝对,唯一和简化)URL(考虑到www,URL查询字符串参数,锚点等)。 )。

请记住,总而言之,可以在GTM(Google跟踪代码管理器)中创建的网址变量对应于以下组件:

我们希望为每个页面创建一个唯一的URL,而不需要查询或锚点。我们需要一个“干净”的URL变量,我们不能使用{{Page URL}}内置变量,原因有两个:

  1. 虽然默认情况下片段不构成URL的一部分,但查询字符串参数确实如此
  2. 协议和主机名的潜在问题,如果允许不同的选项(例如,SSL和www)

因此,我们需要将Protocol + Host + Path组合成一个变量。

现在,让我们一步一步地了解如何创建{{Page URL Canonical}}变量。

1.根据是否为http://或https://创建{{Page Protocol}}以编译URL部分。
注意:我们假设整个网站将始终在单一协议下运行。如果情况并非如此,那么我们应该将{{Page Protocol}}变量替换为步骤#4的最终变量中的纯文本。(这将允许我们强制它始终是http / https,毫无例外。)
2.创建{{Page Hostname Canonical}}

我们需要一个变量,其中主机名始终是唯一的,无论它是否通过www输入到浏览器中。该主机名的规范必须始终是相同的,不管它是否有WWW。我们可以根据哪个域重定向到另一个域来决定,然后将原始域保留为规范。

我们如何创建规范域?
  • 选项2.1:使用www重定向域。到没有www的域名。通过301
    我们的规范网址没有www。我们需要创建页面主机名,但请确保我们始终删除www:

选项2.2:在没有www的情况下重定向域。到www的域名。通过301
我们的规范网址是WITH www。我们需要创建没有www的Page Hostname(像之前一样),然后使用常量变量在前面插入www:

3.启用{{Page Path}}内置变量
注意:虽然我们有{{Page Hostname}}内置变量,但对于本练习,最好不要使用它,因为我们不能100%确定它与www相关的行为(例如,在这种情况下) ,它不可配置,不像我们将其创建为GTM自定义变量时。
4.创建{{Page URL Canonical}}

链接前三个变量以形成一个常量变量:

{{Page Protocol}}:// {{Page Hostname Canonical}} {{Page Path}} 摘要/重要说明:
  1. 协议:返回http / https(不带://),这就是我们手动输入此部分的原因
  2. 主机名:我们可以强制删除www。或不
  3. 路径:包括斜杠/。不包括查询,所以它是完美的。我们使用Page Path的内置选项。

现在我们已经创建了{{Page URL Canonical}},我们甚至可以通过自定义维度将其填充到Google Analytics中。您可以在此Google Analytics自定义维度指南中学习如何操作。

我们如何使用跟踪代码管理器将规范插入到页面中?

假设我们已经有一个通过GTM动态生成的规范URL:{{Page URL Canonical}}。

现在,我们需要了解如何使用GTM标记将其插入页面。我们应该强调这不是“理想”的解决方案,因为将标签插入源代码的<head>总是更可取的。但是,我们已经从各种来源确认了证据,如果它是通过GTM插入的,那么它可以工作。而且,众所周知,在大多数公司中,理想并不总是与可能的一致!

如果我们可以通过GTM将内容直接插入<head>,则使用以下自定义HTML标记就足够了:

<link href =“{{Page URL Canonical}}”/>

但是,我们知道这不起作用,因为HTML标记中插入的内容通常位于</ body>的末尾,这意味着Google不会接受或读取<link rel =“canonical”>标记。

那么,我们该怎么做呢?我们可以使用JavaScript代码生成标记并将其插入<head>,如本文所述,但是以适合规范标记的形式:

<SCRIPT>

var c = document.createElement('link');

C。;

c.href = {{Page URL Canonical}};

document.head.appendChild(C);

</ SCRIPT>

然后,我们可以将其设置为触发“所有页面”触发器。似乎太容易了,不是吗?

我们如何检查我们的rel规范是否有效?

很简单:检查代码是否在页面上正确生成。

我们怎么做?

通过查看Chrome中的DevTools控制台,或使用类似Firebug的浏览器插件,返回在DOM(文档对象模型)中页面上生成的代码。我们不会在源代码中找到它(Ctrl + U)。

以下是如何逐步完成此操作:

  1. 打开Chrome
  2. 按F12
  3. 单击控制台中的第一个选项卡(Elements)
  1. 按Ctrl + F并搜索“canonical”
  2. 如果URL在<head>末尾以正确的形式显示,则表示已通过跟踪代码管理器正确生成了代码
所有文章
×

还剩一步!

确认邮件已发至你的邮箱。 请点击邮件中的确认链接,完成订阅。

好的