Skip to content

网站运营转化提升措施 ​

重要通知

营收规模?用户体验?

基本概况 ​

运营工作方向 ​

  • 追踪用户的操作行为痕迹
  • 分析用户的行为特征与选择偏好
  • 优化与提升网站内容与用户之间的匹配性
  • 调整与优化产品的选择、陈列与摆放
  • 优化投流策略
  • 提高流量向销量的转化率

网站运营辅助工具 ​

友盟统计 ​

流量与运营指标 ​

页面浏览次数(PV) ​

PV(Page View):页面访问量,即通常说的PV(PageView)值,用户每打开1个网站页面,记录1个PV。用户多次打开同一页面PV累计多次。

独立访客(UV) ​

UV(Unique Visitor):独立访客访问数,帐号,1天(00:00-24:00)之内,访问网站的不重复用户数(以浏览器cookie为依据),一天内同一访客多次访问网站只被计算1次。

IP访问量 ​

独立IP访问数,IP ,1天(00:00-24:00)之内,访问网站的不重复IP数。一天内相同IP地址多次访问网站只被计算1次。

新独立访客 ​

当日的独立访客中,历史上首次访问网站的访客为新独立访客。

访问次数(Session) ​

访客从进入网站到离开网站的一系列活动记为一次访问,也称会话(Session),1次访问(会话)可能包含多个PV。

QPS(Query Per Second) ​

每秒处理请求数

GMV(Gross Merchandise Volume) ​

网站成交金额、GMV (商品交易总额)

人均浏览页数 ​

平均每个独立访客产生的PV。人均浏览页数=浏览次数/独立访客。体现网站对访客的吸引程度。

平均访问深度 ​

平均每次访问(会话)产生的PV。平均访问深度=浏览次数/访问次数。体现网站对访客的吸引程度。

页面访问时长 ​

访问(会话)中最后1个页面的打开时间与访问开始时间之差。体现网站对访客的吸引程度。

平均访问时长 ​

平均每次访问(会话)在网站上的停留时间。平均访问时长=访问时长/访问次数。体现网站对访客的吸引程度。

网站跳出次数 ​

跳出指仅浏览了1个页面就离开网站的访问(会话)行为。跳出次数越多则访客对网站兴趣越低或站内入口质量越差。

跳出率 ​

仅浏览了1个页面就离开网站的访问(会话)次数占总访问次数的比率。跳出率=跳出次数/访问次数。

来访次数 ​

由该来源进入网站的访问(会话)次数。

浏览次数占比 ​

来源分析中:由该来源进入网站的访客产生的总PV占全站总PV的比率。受访分析中:该受访域名或页面产生的PV占全站总PV的比率。

搜索词数 ​

由该搜索引擎进入网站时,使用的搜索词总数。

输出PV ​

由该页面点击到站内其他页面的PV。

页面平均停留时长 ​

访客打开页面到离开该页面的时间差。

进入次数 ​

该页面作为访问(会话)中的第一个页面的次数。

入口页次数占比 ​

入口页次数占比=进入次数/全站访问次数。该页面与所有站内入口相比,成为入口页面的几率,占比高的入口页面可能拥有更多的站外链接或更高权重。

离开次数 ​

该页面作为访问(会话)中的最后一个页面的次数。

离开率 ​

离开率=该页面离开次数/该页面浏览次数。流程结束页或内容较无价值的页面可能会有较高离开率。

出口页次数占比 ​

出口页次数占比=离开次数/全站访问次数。该页面与所有站内出口相比,成为出口页面的几率,占比高的出口页面值得被重点优化。

关注度 ​

该区域点击量占被统计页面(范围)总点击量的比率。

访客安装占比 ​

安装该插件的独立访客数占全站总独立访客的比率。

每日平均 ​

最近90天流量数据的日平均值,如每日平均浏览次数(PV)=累加最近90天浏览次数/90。

历史最高 ​

指网站开通统计后,有统计流量起至今获得的最高日流量数据。

历史总计 ​

指网站开通统计后,有统计流量起至今的流量数据总和。

直接输入网址或书签 ​

在浏览器地址栏输入网址访问、将网址保存到浏览器收藏夹后访问或由于页面跳转产生的来源页面丢失的情况统称为直接输入网址或书签。

其他外部链接 ​

所有来路域名、页面中,除搜索引擎网站的其他来路。

社会化媒体 ​

给用户极大参与空间的新型媒体网站,常见的社会化媒体包括:博客、微博、论坛、社交网络等。

站内入口 ​

访客进入网站时浏览的第一个页面。

站内出口 ​

访客访问的网站最后一个页面。

网页热点图 ​

记录访客在页面上的鼠标点击行为,通过颜色区分不同区域的点击热度。支持将一组页面设置为”关注范围”,并可按来路细分点击热度等功能。可帮助您了解页面的设计是否合理,广告位的安排能否获取更多佣金。

浏览器内核 ​

又称为排版引擎(Layout Engine)、页面渲染引擎或样版引擎,它负责取得网页的内容,以及显示方式,然后输出至显示器或打印机。不同的浏览器内核对页面会有不同解析方式。内核与浏览器的对应关系可参见维基百科。

新老访客 ​

当日的访客中,历史上第一次访问您网站的访客记为当日的新访客,历史上已经访问过网站的访客记为老访客,新访客与老访客进入网站的途径和浏览行为往往存在差异。该功能可帮助您了解不同访客的行为习惯,针对不同访客优化网站。例如为制作新手导航提供数据支持等。

单日访问深度 ​

同一个访客在一次会话中访问网站的深度,访问深度越大说明网站对该用户的吸引程度越大。

上次来访时间 ​

访客每一次访问网站距离上一次访问网站的时间差。时间差越小忠诚度越高。

网页浏览 ​

每当加载网页时,检测网页浏览事件 根据浏览器历史记录发生变化判断的网页浏览 每当网站更改浏览器历史记录状态时,检测网页浏览事件。此设置对于检测单页应用中的网页浏览非常有用。

页面滚动 ​

每当访问者滚动到网页底部时,检测滚动事件,统计页面访问完整度。

出站点击 ​

每当访问者点击的链接会将他们带离您的网域时,检测出站点击事件。默认情况下,所有会将用户带离当前网域的链接都会触发出站点击事件。如果链接指向在代码设置中为跨网域衡量配置的网域,则不会触发出站点击事件。

表单互动 ​

每当访问者与您网站上的表单进行互动时,检测表单互动或表单提交事件

视频互动 ​

在访问者观看您网站上嵌入的视频时,检测视频播放、视频播放进度和视频完整播放事件。在启用了 JS API 支持的情况下,对于您网站上嵌入的 YouTube 视频,系统默认会自动检测视频事件。

文件下载 ​

每当用户点击具有常见文档、压缩文件、应用、视频或音频扩展名的链接时,检测文件下载事件

GEO实施、优化与增长 ​

SEO实施、优化与增长 ​

搜索引擎优化 (SEO) 是指可改善您的网站在搜索引擎(例如 Bing、Baidu、Yahoo!、Google)中的排名的一系列技术。

  • Mozcast:https://moz.com/mozcast/

  • 关键字研究工具

  • 网站分析工具

  • 后链接分析工具:后链接是指其他网站链接到您的网站。这些链接可以提高您的网站在搜索引擎中的排名。

接指标算法 ​

RankPage排名规则 ​

权重占比机制 ​

8个Google惩罚检查工具 ​

为什么网站会被谷歌惩罚?网站被谷歌惩罚的主要原因 ​

自己操作失误(乱改标题描述,购买垃圾外链,不遵守谷歌算法等) 有人恶意攻击(网站克隆镜像,系统文件被黑,有针对性做PBN等) 至于更具体的原因需要用后面介绍的工具才能检测出来,无论是自己操作失误,还是有人恶意攻击,谷歌惩罚的手段如下,一旦被惩罚,大概1个星期左右关键词排名和流量会悬崖式下跌。

人工手动惩罚(谷歌员工人为的,好解决) 机器算法惩罚(基于算法的结果,难解决) 如果是人工惩罚,谷歌会在谷歌站长工具通知你,如果是算法惩罚,不会有任何通知。

网页内容 ​

  • IMG标签的title属性:<img src="" title="" alt="" />

优化核心 ​

希望被哪些用户搜索到? 如何被目标用户搜索到?

核心算法 ​

PageRank算法、收录机制、排名算法、链接分析算法

网页之间外链关联性、网页内容与查询条件的相关性、

SEO搜索引擎优化:https://www.runoob.com/web/web-search.html

SERP ​

Search Engine Results Page 搜索引擎结果页面,是搜索引擎对搜索请求反馈的结果

SEOquake ​

SEOquake概述的主要功能:使用 免费的SEOquake浏览器扩展功能,即时查看任何网页上的大量SEO参数。

1.在Flash中执行页面SEO审核 2.检查内部和外部链接 3.实时比较域和URL 4.将所有数据导出到文件中

主要参数 ​

关键词密度 内部与外部链接 比较URL/域

完整的搜索引擎优化的参数列表: ​

谷歌的PageRank 谷歌索引 雅虎链接 雅虎linkdomain 冰指数 Alexa排名 Webarchive年龄 美味指数 域名注册链接 页面源 SEMRush排名 nofollow的链接

搜索引擎SEO

搜索引擎工作原理

蜘蛛抓取 建立索引 算法排序

什么是SEO?

为什么要SEO

SEO的五个阶段:收录、排名、流量、转换 ​


作弊与惩罚

黑猫与白猫

常见作弊手法

关键词重叠
隐藏关键字
黑客链接
群发链接

沙盒效应

SEO之前准备

域名

包含关键词
英文用-间隔
一次多续费几年

服务器

独立IP
目标客户所在地

程序

开源程序
可自定义URL
前端div+CSS

关键词研究

确定核心关键词

寻找核心关键词辩题形式

同义词
简体
方言
误拼

用工具拓展核心词

相关搜索
Google/yahoo suggest
关键词工具

如何分析网站
域名
看网站规模
收录数量
內外链接
标签写法
次导航
URL标注化
二级目录

团队分工:设计师1人、程序员1人、文章编辑1人、链接建立专员2--3人
操作流程

关键词

目标关键词

1--3个
部署在首页

热门关键词
长尾关键词
制作长尾关键词清单
评估关键词竞争度

看收录量
Google trends 百度指数
分析首页网站优化程度

站内优化
站外优化
跟踪维护

GA:Google Analytics

站长管理工具

站外优化

外链建立及维护

博客

内容和网站相关
每篇文章帶三五个描述文本
第一次出现时加描述文字
同样关键词只加一次
可以不同描述文本指向同一URL
高权重博客可以注册多个账户
二级目录使用关键词
博客之间互链

书签

使用关键词做title
tag越多越好
在网站上加入书签代码

文章

原创
在关于作者出价链接

评论

使用name作为关键词
使用填表工具提高效率

掘客

上传头像
发布之前先打开一下网站

论坛

论坛签名

社会媒体
目录提交
百科
友情链接

外链建立策略

高pr
相关性内容
描述文字包含关键词
描述文本周围出现关键词
导入页面导出链接不超过50字

站內优化

选择目标关键词

每个页面有独立的关键词

网站树形结构

标题

每个页面有独立的关键词

描述

关键词密度

3--8%

次导航

使用目标关键词
不同文字描述可指向同一URL
同样的文字描述不要指向不同URL

如何做描述文本

绝对URL
使用关键词
第一次出现时
尽量在文章中出現
多样性
内容相关性
循序渐进地增加
链向权威性站点

图片Alt标签

站点地图

404页面

URL包含关键词

meta标签 ​

关键词 ​

链接交换 ​

标签语义化 ​

web与wap标注 ​

<!--当同时拥有web网站与wap网站时,向搜索引擎声明该两个站点为对应关系,避免搜索引擎重复收录,导致违规-->
<!--PC网站-->
<link rel="alternate" href="wap.fujinhuo.com">
<!--wap网站-->
<link rel="canonical" href="www.fujinhuo.com">

Canonical标签 ​

  • 搜素引擎对重复内容过多进行,可能导致网站大量重复内容而被降权、不收录甚至被K
  • 示例:<link rel="canonical" href="https://www.1deng.me/" />
  • 应用:分页跳转,为多个分页页面统一URL,即避免搜索引擎对重复内容处理
  • 缺陷:
  • 场景:对于多个内容重复的网页,统一你所认为的规范、正确、希望百度收录且参与排名的那个链接,避免存在大量内容重复的多个网页被搜素引擎重复收录,而被降权、不收录甚至被K

Canonical标签注意事项 ​

请勿使用 robots.txt 文件进行权威化。
请勿使用网址移除工具进行权威化:它会从搜索结果中移除相应网址的所有版本。
请勿使用相同或不同的权威化方法为同一网页指定不同的权威网址(例如,请勿既在站点地图中为某个网页指定了一个权威网址,又使用 rel="canonical" 为同一网页指定了一个不同的权威网址)。
请勿将 noindex 用作一种可防止选择权威网页的方法。此指令旨在从索引中排除网页,而不是管理对权威网页的选择。
使用 hreflang 标记时,请务必指定权威网页。指定一个采用同一语言的权威网页;如果没有这样的权威网页,则需指定一个采用最佳替代语言的权威网页。

robots.txt文件 ​

SEO规则 ​

内容不在搜索引擎预期要查找的位置 ​

  • 此网页包含一个或多个 <iframe> 标记,但没有为不支持框架的查看器包含内容
  • 缺少 <noscript> 标记
  • 缺少 <title> 标记
  • <title> 标记内容太短
  • <title> 标记包含不利于搜索的占位符内容
  • 没有为网页定义关键字
  • <meta name="keywords"> 标记内容太短
  • 此网页未包含 <h1> 标记
  • <h1> 标记内容太短
  • 定位文本包含不利于搜索的值
  • <img> 或 <area> 标记没有含有文本的 'alt' 属性
  • <img> 或 <area> 标记的 'alt' 属性以没有 SEO 价值的单词或字符开头

内容或标记采用可能与欺骗性做法关联的模式 ​

  • 内容或标记采用可能与欺骗性做法关联的模式
  • 网页太大
  • <meta http-equiv="refresh"> 元素正用于执行重定向
  • 网页的标题和说明相同
  • <meta name="description"> 标记内容太长
  • <meta name="keywords"> 标记内容太长
  • <meta name="keywords"> 标记包含单个词条的多个实例
  • <h1> 标记内容太长
  • <img> 或 <area> 标记的“alt”属性包含太多字符
  • 网页包含太多超链接

内容或标记对搜索引擎分析网页的能力造成干扰 ​

  • 内容或标记对搜索引擎分析网页的能力造成干扰
  • 网页的格式不标准
  • 缺少 <html> 标记
  • 缺少 <body> 标记
  • <meta name="robots"> 标记包含无效的值
  • 没有在 <head> 标记节内定义规范链接
  • 存在多个规范链接
  • 没有在 <head> 标记节内定义 <title> 标记
  • <title> 标记应仅在网页中声明一次
  • <meta name="description"> 标记不在 <head> 标记节内
  • <meta name="keywords"> 标记不在 <head> 标记节内
  • <meta name="keywords"> 标记应仅在网页中声明一次
  • <h1> 不在 <body> 标记节内
  • <h1> 标记应仅在网页中声明一次

内容或标记降低了网页在搜索引擎结果中的吸引力 ​

  • 内容或标记降低了网页在搜索引擎结果中的吸引力
  • <title> 标记内容太长
  • 缺少网页的说明。
  • <meta name="description"> 标记内容太短
  • <meta name="description"> 标记应仅在网页中声明一次

内容导致搜索引擎将两个或更多网页视为与同一搜索词相关 ​

  • 内容导致搜索引擎将两个或更多网页视为与同一搜索词相关
  • <title> 标记内容在网站内不唯一
  • <meta name="description"> 标记内容在网站内不唯一
  • 超链接中的 URL 不是小写
  • 指向目录的超链接应以左斜线 (/) 结尾
  • 超链接包含会话 ID
  • 超链接以与号结尾
  • 定位的格式不一致

内容或标记使搜索引擎无法对您的网站进行分析 ​

  • 内容或标记使搜索引擎无法对您的网站进行分析
  • 请确保在 <meta name="robots"> 中正确使用了 'nofollow' 和 'noindex'
  • 超链接包含无效字符
  • 超链接包含 'nofollow' 属性值
  • 超链接包含太多查询字符串参数

用户行为分析 ​

用户行为分析上报接口 ​

/
 * 公共上报接口
 */
async function Tracker(
  event_name = "",
  event_value = "",
  event_type = "",
  event_note = "",
  extra = {}
) {
  const params = {
    ...REQUEST_PARAMS,
    event_name: event_name,
    event_value: String(event_value),
    event_type: event_type,
    event_note: event_note,
    extra: JSON.stringify(extra)
  };

  const session_id = await getSessionId();
  const result = await fetch(COMMON_DATA.baseURL + "operate/add/",
    {
      method: "post",
      body: JSON.stringify(params),
      keepalive: true,
      headers: { session_id: session_id, 'content-type': 'application/json' }
    })
    .then((response) => response.json());
}

工具函数 ​

/
 * 工具函数
 */
function factoryEventListener(factory = {}) {
  const enteries = Object.entries(factory);

  for (let i = 0; i < enteries.length; i++) {
    const item = enteries[i];
    const selector = item?.[0];
    const funOrObj = item?.[1];

    if (!selector || !funOrObj) continue;

    const keyEl = document.querySelector(selector);
    if (keyEl?.nodeType !== 1) continue;

    // click function
    if (typeof funOrObj === "function") {
      keyEl.addEventListener("click", funOrObj.bind(this), false);
      continue;
    }

    if (!funOrObj?.event || !funOrObj?.fun) continue;

    keyEl?.addEventListener(funOrObj.event, funOrObj.fun.bind(this), false);
  }
}

用户停留时长 ​

if (navigator.sendBeacon) {
  //
} else {
  //
}

核心功能模块 ​

退出意图技术解决方案 ​

退出意图(Exit Intent)技术用于检测用户何时准备离开网页,并在此时触发特定的操作,比如显示弹窗以留住用户。

实现价值 ​

网站个性化和购物车放弃解决方案,致力于创造一个增加收入、减少网站放弃和增强在线购物体验的未来。

  • 网站体验:有针对性的策略,推动客户获取、减少放弃和提高 AOV。
  • 再营销体验:CRM丰富策略与个性化营销自动化相结合。
  • 优惠券体验:提供优惠券分析、阻止浏览器扩展和更正失败代码的工具。

退出意图检测算法 ​

当用户的鼠标移动到浏览器窗口的顶部边缘(靠近关闭按钮、标签栏等),可以认为用户可能要离开当前页面。

推出意图检索问题 ​

Check that the mouse moves to the top edge of the browser window
Mouse hover action to browser window close button
hovering over close tab button
how to detect the event when the mouse pointer is over the close button of the browser?
predict if users intends to close the window
check if a user is hovering over the browser exit icon
tracking exit intent  # 跟踪退出意图
bring the mouse over the close window and tab
hover the mouse over the close tab

check if a user is hovering over the browser exit icon

# 关于检测悬停在浏览器关闭按钮选项卡上的算法
about the algorithm for detecting hovering on the close button of the tab?
about the algorithm for detecting hovering on the close button of the browser?


how to calculate the algorithm for detecting hovering on the close button of the tab

购物车页面传参到结算页面 ​

如何从购物车页面传递参数到结账页面 how to Transfer parameters from shopping cart page to checkout page on shopify website

在购物车页面 on the shopping cart page

const cardEl = document.querySelector('#cart');
const checkoutEl = document.querySelector('#checkout');

console.info(cardEl.action);
console.info("当前页面: ", window.location.href);

const discountCode =  "CAP8AER4NK7T";

window.setTimeout(() => {
  const action = cardEl.getAttribute('action');
  const paramsString = action + (action.includes('?') ? '&' : '?');

  // 传参
  const actionUrl = paramsString + 'discount=' + encodeURIComponent(discountCode);

  // 重置表单地址
  cardEl.setAttribute('action', actionUrl);
  
  checkoutEl?.click();
}, 3000);

Google 产品和服务 ​

gtm.js 与 gtag.js本质区别 ​

GTM 容器: Google 跟踪代码管理器 ​

Google 跟踪代码管理器,即Google Tag Manager (gtm.js),是一个跟踪代码管理系统,不仅具有与 Google 代码相同的功能,还可让您通过简单易用的网页界面配置和即时部署网站或移动应用上的代码。此外,跟踪代码管理器功能还支持代码组织和版本控制、第三方和社区开发的代码模板,以及企业协作和安全功能。跟踪代码管理器有助于优化代码部署,减少代码配置错误,还让您能通过网页界面即时修改和部署网站上的代码。

完整埋点实现流程 ​

  • 步骤一:配置 GTM,layout/theme.liquid
<head>
  <!-- Google Tag Manager -->
  <script>
    (function (w, d, s, l, i) {
      w[l] = w[l] || [];
      w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
      var f = d.getElementsByTagName(s)[0],
        j = d.createElement(s),
        dl = l != 'dataLayer' ? '&l=' + l : '';
      j.async = true;
      j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
      f.parentNode.insertBefore(j, f);
    })(window, document, 'script', 'dataLayer', 'GTM-K425GVD4');
  </script>
  <!-- End Google Tag Manager -->
</head>

<body>
  <!-- Google Tag Manager (noscript) -->
  <noscript
    ><iframe
      src="https://www.googletagmanager.com/ns.html?id=GTM-K425GVD4"
      height="0"
      width="0"
      style="display:none;visibility:hidden"
    ></iframe
  ></noscript>
  <!-- End Google Tag Manager (noscript) -->
</body>
  • 步骤二:写埋点业务代码,assets/tracking-template-index.js
/**
 * FED Fitness 首页自定义埋点库(L3 业务事件)
 *
 * 依据《FED 埋点需求 PRD》与《埋点命名与参数规范》实现:
 * - 事件命名:fed_ 前缀 + 对象_动作(snake_case)
 * - 数据层:window.dataLayer(GTM-K425GVD4 已配置默认 dataLayer)
 * - 页面级统一参数(page_type / device / login_status)由 theme.liquid 以
 *   顶层键值方式推入 dataLayer,由 GTM 统一注入事件
 * - 公共参数 page_url 由本文件在每次上报时实时注入(取 window.location.href,去 hash)
 *
 * 埋点约定(通过 HTML data 属性声明式埋点):
 * - data-fed-view="事件名"           曝光:元素 50%+ 进入视口并停留 ≥1s,触发一次
 * - data-fed-click="事件名"          点击:元素(或其祖先)被点击时触发
 * - data-fed-add-to-cart="事件名"    加购点击:优先于 data-fed-click 判定
 * - data-fed-hover="事件名"          悬停:PC 指针悬停 ≥0.5s,每元素触发一次
 * - data-fed-product-track          产品卡片容器:自动区分点击/加购并触发
 *                                    fed_item_click / fed_item_add_to_cart
 * - data-fed-nav                    导航容器:内部 <a> / 可展开 <summary> 点击触发 fed_nav_click
 *                                   一级 <li> 悬停触发 fed_nav_hover
 * - data-fed-nav-toggle             汉堡菜单开关:触发 fed_nav_open / fed_nav_close
 * - data-fed-footer                 页脚容器:内部导航链接/社交图标触发 fed_footer_click
 * - data-fed-subscribe              订阅表单:提交触发 fed_footer_subscribe
 * 业务参数:data-fed-p-<参数名>(snake_case,如 data-fed-p-product_id)
 * 数字/布尔自动转换。
 */
(function () {
  'use strict';

  var CONTEXT = window.FEDTrackContext || {};

  /** 当前页面 URL(公共参数),去掉 hash,随每次上报实时取值 */
  function currentPageUrl() {
    try {
      var href = window.location.href || '';
      var hashIndex = href.indexOf('#');
      return hashIndex === -1 ? href : href.slice(0, hashIndex);
    } catch (e) {
      return '';
    }
  }

  /**
   * 推送事件到 dataLayer。
   * 每次上报都会附带公共参数 page_url,且不允许业务参数覆盖。
   * @param {string} event 事件名
   * @param {object} params 业务参数(空值剔除)
   */
  function push(event, params) {
    var payload = { event: event };
    if (params && typeof params === 'object') {
      Object.keys(params).forEach(function (k) {
        var v = params[k];
        if (v !== undefined && v !== null && v !== '') {
          payload[k] = v;
        }
      });
    }
    payload.page_url = currentPageUrl();
    window.dataLayer.push(payload);
    return payload;
  }

  window.FEDTrack = window.FEDTrack || {};
  window.FEDTrack.push = push;
  window.FEDTrack.context = CONTEXT;
  // 供 section 内轮播/视频 JS 调用
  window.FEDTrack.slide = function (event, params) {
    return push(event, params);
  };

  /* ---------- 工具 ---------- */
  function readParams(el) {
    var params = {};
    if (!el || !el.attributes) return params;
    var attrs = el.attributes;
    var prefix = 'data-fed-p-';
    for (var i = 0; i < attrs.length; i++) {
      var name = attrs[i].name;
      if (name.indexOf(prefix) !== 0) continue;
      var key = name.slice(prefix.length);
      var val = attrs[i].value;
      if (/^-?\d+(\.\d+)?$/.test(val)) {
        val = Number(val);
      } else if (val === 'true') {
        val = true;
      } else if (val === 'false') {
        val = false;
      }
      params[key] = val;
    }
    return params;
  }

  /** 从 target 向上找第一个带指定属性的元素 */
  function closest(el, attr) {
    while (el && el.getAttribute) {
      if (el.hasAttribute(attr)) return el;
      el = el.parentElement;
    }
    return null;
  }

  function isMobileEnv() {
    return window.matchMedia && window.matchMedia('(max-width: 1024px)').matches;
  }

  function cartCount() {
    var el = document.querySelector('.cart-count-bubble [aria-hidden="true"]');
    if (!el) return 0;
    var n = parseInt(el.textContent.replace(/\D/g, ''), 10);
    return isNaN(n) ? 0 : n;
  }

  function platformFromUrl(url) {
    var host = '';
    try {
      host = new URL(url, window.location.origin).hostname;
    } catch (e) {
      return '';
    }
    var map = {
      facebook: 'facebook',
      instagram: 'instagram',
      youtube: 'youtube',
      tiktok: 'tiktok',
      twitter: 'twitter',
      x: 'twitter',
      pinterest: 'pinterest',
      snapchat: 'snapchat',
      tumblr: 'tumblr',
      vimeo: 'vimeo',
    };
    for (var k in map) {
      if (host.indexOf(k) !== -1) return map[k];
    }
    return host;
  }

  function inferMenuLevel(a) {
    var c = typeof a.className === 'string' ? a.className : '';
    if (c.indexOf('mega-menu__link--level-2') !== -1) return 2;
    if (c.indexOf('mega-menu__link') !== -1) return 3;
    if (a.closest('.level-menu-3')) return 3;
    if (a.closest('.accordion-content, .mega-menu')) return 2;
    if (c.indexOf('header__menu-item') !== -1 || c.indexOf('list-menu__item') !== -1) return 1;
    return 1;
  }

  /**
   * 移动端抽屉(.accordion-menu)层级推断:按 DOM 结构判定,
   * 业务模板(header-drawer.liquid)内无需逐层写埋点属性。
   */
  function drawerMenuLevel(el) {
    // 可展开项:summary 自身即菜单项(无 href)
    if (el.tagName === 'SUMMARY') {
      if (el.closest('.accordion-third-level')) return 3;
      if (el.closest('.accordion-sub-item')) return 2;
      return 1;
    }
    if (el.closest('.level-menu-4')) return 4;
    if (el.closest('.level-menu-3')) return 3;
    if (el.closest('.single_content_mob, .accordion-content')) return 2;
    return 1;
  }

  function menuLevelOf(el) {
    var attr = el.getAttribute('data-fed-menu-level');
    if (attr) return Number(attr) || attr;
    if (el.closest('.accordion-menu')) return drawerMenuLevel(el);
    return inferMenuLevel(el);
  }

  function menuText(el) {
    var own = el.getAttribute('data-fed-menu-name');
    if (own) return own;
    var named = el.querySelector('[data-fed-menu-name]');
    if (named) return named.getAttribute('data-fed-menu-name') || '';
    var titleEl = el.querySelector('.accordion-summary__title') || el.querySelector('span');
    return ((titleEl || el).textContent || '').trim().replace(/\s+/g, ' ').slice(0, 80);
  }

  /* ---------- 曝光 ---------- */
  var VIEW_RATIO = 0.5;
  var VIEW_HOLD = 1000;

  function isHalfVisible(el) {
    var r = el.getBoundingClientRect();
    var vw = document.documentElement.clientWidth;
    var vh = document.documentElement.clientHeight;
    if (!r.width || !r.height) return false;
    var iw = Math.min(r.right, vw) - Math.max(r.left, 0);
    var ih = Math.min(r.bottom, vh) - Math.max(r.top, 0);
    if (iw <= 0 || ih <= 0) return false;
    return (iw * ih) / (r.width * r.height) >= VIEW_RATIO;
  }

  function initViewTracking() {
    var els = document.querySelectorAll('[data-fed-view]');
    if (!els.length) return;
    if (!('IntersectionObserver' in window)) {
      els.forEach(function (el) {
        push(el.getAttribute('data-fed-view'), readParams(el));
      });
      return;
    }
    var io = new IntersectionObserver(
      function (entries) {
        entries.forEach(function (entry) {
          var el = entry.target;
          if (!entry.isIntersecting) {
            if (el.__fedViewTimer) {
              clearTimeout(el.__fedViewTimer);
              el.__fedViewTimer = null;
            }
            return;
          }
          if (el.__fedViewed || el.__fedViewTimer) return;
          el.__fedViewTimer = setTimeout(function () {
            el.__fedViewTimer = null;
            if (!isHalfVisible(el)) return;
            el.__fedViewed = true;
            push(el.getAttribute('data-fed-view'), readParams(el));
            io.unobserve(el);
          }, VIEW_HOLD);
        });
      },
      { threshold: VIEW_RATIO }
    );
    els.forEach(function (el) {
      io.observe(el);
    });
  }

  /* ---------- 悬停 ---------- */
  var HOVER_HOLD = 500;

  function initHoverTracking() {
    document.querySelectorAll('[data-fed-hover]').forEach(function (el) {
      var timer = null;
      el.addEventListener('mouseenter', function () {
        if (el.__fedHovered) return;
        timer = setTimeout(function () {
          el.__fedHovered = true;
          push(el.getAttribute('data-fed-hover'), readParams(el));
        }, HOVER_HOLD);
      });
      el.addEventListener('mouseleave', function () {
        if (timer) {
          clearTimeout(timer);
          timer = null;
        }
      });
    });
  }

  /* ---------- 导航悬停 ---------- */
  var NAV_HOVER_HOLD = 500;

  function navMenuName(item) {
    var el = item.querySelector('[data-fed-menu-name]');
    if (el) return el.getAttribute('data-fed-menu-name') || '';
    var textEl = item.querySelector('summary, a');
    if (!textEl) return '';
    return (textEl.textContent || '').trim().replace(/\s+/g, ' ').slice(0, 80);
  }

  function navTargetUrl(item) {
    var el = item.querySelector('[data-fed-menu-url]');
    if (el) return el.getAttribute('data-fed-menu-url') || '';
    var link = item.querySelector('a[href]');
    if (!link) return '';
    return link.getAttribute('href') === '#' ? '' : link.href;
  }

  function initNavHoverTracking() {
    document.querySelectorAll('[data-fed-nav]').forEach(function (nav) {
      nav.querySelectorAll(':scope > li').forEach(function (item) {
        var timer = null;
        item.addEventListener('mouseenter', function () {
          if (item.__fedNavHovered || timer) return;
          timer = setTimeout(function () {
            timer = null;
            item.__fedNavHovered = true;
            push('fed_nav_hover', {
              menu_name: navMenuName(item),
              menu_level: 1,
              target_url: navTargetUrl(item),
            });
          }, NAV_HOVER_HOLD);
        });
        item.addEventListener('mouseleave', function () {
          if (timer) {
            clearTimeout(timer);
            timer = null;
          }
        });
      });
    });
  }

  /* ---------- 点击 ---------- */
  var ADD_TO_CART_SELECTOR =
    '.quick-add__submit, .aux-choose-options, .option-button';

  function handleClick(e) {
    var target = e.target;
    if (!target || !target.getAttribute) return;

    // 1) 显式加购点击
    var atcEl = closest(target, 'data-fed-add-to-cart');
    if (atcEl) {
      push(atcEl.getAttribute('data-fed-add-to-cart'), readParams(atcEl));
      return;
    }

    // 2) 显式点击
    var clickEl = closest(target, 'data-fed-click');
    if (clickEl) {
      var eventName = clickEl.getAttribute('data-fed-click');
      // 搜索框:展开时记录,收起(再次点击)不记录
      if (eventName === 'fed_search_open') {
        var searchDetails = clickEl.closest('details');
        if (searchDetails && searchDetails.open) return;
      }
      var params = readParams(clickEl);
      // 购物车:实时读取购物车数量
      if (eventName === 'fed_cart_open' && !params.cart_count) {
        params.cart_count = cartCount();
      }
      push(eventName, params);
      return;
    }

    // 3) 产品卡片(产品推荐 / 明星产品)
    var card = closest(target, 'data-fed-product-track');
    if (card) {
      // 变体选择弹窗:仅提交加购计入,其余(关闭/选规格)不记录
      var modal = target.closest('.quick-add-modal');
      if (modal) {
        if (!target.closest(ADD_TO_CART_SELECTOR)) return;
        var modalParams = readParams(card);
        modalParams.quantity = 1;
        push('fed_item_add_to_cart', modalParams);
        return;
      }
      var params = readParams(card);
      var isAtc = !!target.closest(ADD_TO_CART_SELECTOR);
      if (isAtc) {
        params.quantity = 1;
        push('fed_item_add_to_cart', params);
      } else {
        push('fed_item_click', params);
      }
      return;
    }

    // 4) 导航菜单点击:链接 + 可展开的 summary(抽屉各级由 DOM 推断层级)
    var nav = closest(target, 'data-fed-nav');
    if (nav) {
      var navEl = target.closest('a[href], summary');
      // 抽屉内商品卡不按导航点击记录
      if (navEl && !navEl.closest('.menu-drawer-products-carousel')) {
        var isSummary = navEl.tagName === 'SUMMARY';
        var navHref = navEl.getAttribute('href');
        if (isSummary || (navHref && navHref !== '#')) {
          push('fed_nav_click', {
            menu_name: menuText(navEl),
            menu_level: menuLevelOf(navEl),
            target_url: isSummary ? '' : navEl.href,
          });
        }
      }
      return;
    }

    // 5) 汉堡菜单开/关
    var toggle = closest(target, 'data-fed-nav-toggle');
    if (toggle) {
      var detailsEl = toggle.closest('details');
      if (detailsEl) {
        push(detailsEl.open ? 'fed_nav_close' : 'fed_nav_open', {});
      }
      return;
    }

    // 6) 页脚点击(导航链接 / 社交图标)
    var footer = closest(target, 'data-fed-footer');
    if (footer) {
      var socialLink = target.closest('a.list-social__link');
      if (socialLink) {
        push('fed_footer_click', {
          element_name: 'social_icon',
          section_title: 'social',
          target_url: socialLink.href,
          platform: platformFromUrl(socialLink.href),
        });
        return;
      }
      var footerLink = target.closest('a[href]');
      if (footerLink && footerLink.getAttribute('href') !== '#') {
        var list = footerLink.closest('ul.footer-block__details-content, .footer_item_mob');
        if (list) {
          var holder = list.closest('.footer-block, .footer_item_mob');
          var headingEl = holder ? holder.querySelector('.footer-block__heading, h2') : null;
          push('fed_footer_click', {
            element_name: (footerLink.textContent || '').trim().replace(/\s+/g, ' ').slice(0, 80),
            section_title: headingEl ? headingEl.textContent.trim().slice(0, 60) : '',
            target_url: footerLink.href,
            platform: '',
          });
          return;
        }
      }
    }
  }

  function initClickTracking() {
    // capture 阶段执行,先于业务脚本的 stopPropagation
    document.addEventListener('click', handleClick, true);
  }

  /* ---------- 订阅(页脚) ---------- */
  function initSubscribeTracking() {
    document.querySelectorAll('[data-fed-subscribe]').forEach(function (form) {
      // 页面加载后若已存在成功提示(表单提交后整页刷新),补记成功事件
      var successEl = form.querySelector('.newsletter-form__message--success');
      if (successEl && !form.__fedSubscribeSuccess) {
        form.__fedSubscribeSuccess = true;
        push('fed_footer_subscribe', {
          email_domain: emailDomain(form),
          subscribe_status: 'success',
        });
      }
      form.addEventListener('submit', function () {
        push('fed_footer_subscribe', {
          email_domain: emailDomain(form),
          subscribe_status: 'submitted',
        });
      });
    });
  }

  function emailDomain(form) {
    var input = form ? form.querySelector('input[type="email"]') : null;
    if (!input || !input.value) return '';
    var at = input.value.indexOf('@');
    if (at === -1) return '';
    return input.value.slice(at + 1).toLowerCase();
  }

  /* ---------- 初始化 ---------- */
  function init() {
    initViewTracking();
    initClickTracking();
    initHoverTracking();
    initNavHoverTracking();
    initSubscribeTracking();
  }

  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', init);
  } else {
    init();
  }
})();
<div data-block-id="{{ block.id }}" data-shopify-editor-block-preview="true" {{ block.shopify_attributes }}
  data-fed-hover="fed_award_hover"
  data-fed-click="fed_award_click"
  data-fed-p-element_id="award_home_0{{ forloop.index }}"
  data-fed-p-element_name="{{ block.settings.show_image.alt | default: 'Award ' | append: forloop.index | escape }}"
  data-fed-p-card_position="{{ forloop.index }}"
  data-fed-p-target_url=""
></div>
  • 步骤三:在 【Google 跟踪代码管理器-触发器】配置 自定义事件
  • 步骤四:在 【Google 跟踪代码管理器-变量】配置 用户定义的变量
  • 步骤五:在 【Google 跟踪代码管理器-代码】配置 Google AnalyticsGA4 事件

面板:跟踪代码管理器 ​

安装配置 ​

将以下代码添加到您网站的每个网页上尽可能靠近起始 <head> 标记的位置。将 GTM-XXXXXX 替换为您的容器 ID

# Set up Tag Manager
1. 创建账号和容器
2. 安装网络容器
3. 在 Google 跟踪代码管理器中添加代码
4. 验证和发布代码

# 预览并调试容器和代码
<!DOCTYPE html>
<html lang="en">
<head>

  <!--这里是选填,尽量不要使用,是为了配置公共变量,使得后续每次dataLayer.push 都会携带配置的基础变量-->
  <script>
  window.dataLayer = window.dataLayer || [];

  dataLayer.push({
  'event': 'Pageview',
  'pagePath': 'https://www.googleanalytics.dev/pancakes',
  'pageTitle': 'Pancake Event Signup',
  'visitorType': 'customer'
  });
  </script>




  <!-- Google Tag Manager -->
  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  })(window,document,'script','dataLayer','GTM-XXXXXX');</script>
  <!-- End Google Tag Manager -->

    <title>Example Webpage</title>
</head>
<body>
  <!--将下面这段代码添加到您网站的每个网页上起始 `<body>` 元素的最前面,需紧跟着此元素放置。将 GTM-XXXXXX 替换为您的容器 ID-->
  <!-- Google Tag Manager (noscript) -->
  <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXX"
  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  <!-- End Google Tag Manager (noscript) -->





  <!-- Content of your website -->
  <h1>Welcome to My Website</h1>
  <p>This is a sample paragraph on my webpage.</p>
</body>
</html>

代码示例 ​

无法通过 触发器 (Trigger) 配置的埋点,需要通过在业务代码中手动配置实现。

dataLayer.push({'event': 'event_name'});

dataLayer.push({'variable_name': 'variable_value'});


// 一次推送多个变量
dataLayer.push({
  'color': 'red',
  'conversionValue': 50,
  'event': 'customize'
});


// 自定义的数据层方法
window.dataLayer.push(function() {
  this.set('time', new Date());
});

<button onclick="dataLayer.push({'event': 'login'});">Button 1</button>




// dataLayer 对象名称区分大小写
datalayer.push({'pageTitle': 'Home'});    // Bad (datalayer in lowercase)
dataLayer.push({'pageTitle': 'Home'});    // Good (dataLayer in camel case)


// 所有数据层变量名都应该加引号
dataLayer.push({new-variable: 'value'});      // Bad - no quote marks
dataLayer.push({'new-variable': 'value'});    // Good - proper quote marks

系统自动生成唯一容器 ID:GTM-XXXXXXX ​

创建成功瞬间,系统自动生成唯一容器 ID:GTM-K425GVD4,并且会弹窗直接给出两段代码(head 的 JS 脚本 + body 里 noscript iframe)。

1. 点击【创建账户 Create Account】
2. 账户设置:
  - 账户名称:写品牌名,例如 `fedfitness`
  - 国家:一般选美国(跨境独立站)
3. 往下到【容器设置 Container Setup】
  - 容器名称:填你的网站域名 `fedfitness.com`(方便辨认)
  - 目标平台:选择 Web(网站 / Shopify 独立站选这个!)
4. 点右下角【创建 Create】,勾选同意谷歌服务条款

触发器 (Trigger) ​

常规埋点,直接通过触发器 (Trigger)配置即可。

# 网页浏览
  - DOM 已准备就绪
  - 初始化
  - 用户意见征求初始化
  - 窗口已加载
  - 网页浏览

# 点击
  - 仅链接
  - 所有元素

# 用户深度互动情况
  - YouTube 视频
  - 元素可见性
  - 滚动深度
  - 表单提交

# 其他
  - JavaScript 错误
  - 历史记录更改
  - 定时器
  - 自定义事件
  - 触发器组
  • 触发器的触发条件
# Select variable
{{Environment Name}}:环境名称,用来区分测试环境、生产环境等自定义环境标识
{{Page Hostname}}:当前页面主机名 / 域名,例如 `www.baidu.com`(不带 `https://` 和路径)
{{Page Path}}:当前页面路径部分,比如 `/user/list`,是域名后面的那一段地址
{{Page URL}}:当前页面路径部分,比如 `/user/list`,是域名后面的那一段地址
{{Referrer}}:当前页面完整 URL,包含协议、域名、路径、参数,如 `https://www.baidu.com/home`
--------
选择内置变量…
新建变量…




# 判断条件
## ✅ 正向匹配
等于:文本完全一模一样(全匹配,区分大小写)
包含:目标字符串里面含有你填写的关键词(模糊匹配)
开头是:字符串以指定文字作为开头
结尾是:字符串以指定文字作为结尾
与 CSS 选择器相符:用 CSS 选择器语法匹配页面元素(网页 /webview 控件)
匹配正则表达式:使用正则规则匹配文本(区分大小写)
匹配正则表达式(忽略大小写):正则匹配,不区分英文字母大小写

## ❌ 反向匹配(取反)
不等于:文本不是完全等于指定内容
不包含:目标字符串没有这个关键词
开头不是:字符串不以指定文字开头
结尾不是:字符串不以指定文字结尾
与 CSS 选择器不相符:页面元素不满足这个 CSS 选择器
与正则表达式不匹配:文本不符合正则规则(区分大小写)
与正则表达式不匹配(忽略大小写):不匹配正则,忽略大小写

## 📊 数字比较(仅输入为数字时生效)
小于:数值 < 填写的值
小于或等于:数值 ≤ 填写的值
大于:数值 > 填写的值
大于或等于:数值 ≥ 填写的值






# 值

变量 (Variable) ​

内置变量 ​

Google代码列表 ​

# ----------------------------------------------------
  代码                      ID
# ----------------------------------------------------
  eshen                     G-RG2J9VX2E1, GT-MRQMTNJ
  www.fedfitness.com        G-YTV9ZMT3V9, GT-KV5GLM9X
  YOSUDA-DE - GA4           G-9HL9ETCV22
  Yosudabikes - GA4         G-DF03C49CM9
# ----------------------------------------------------


# GTM-K425GVD4 → GTM 容器 ID(Google Tag Manager)
> Google Tag Manager 标签管理器


# G-YTV9ZMT3V9 → GA4 测量 ID(Google Analytics 4)
> 流量 & 用户行为分析工具,GA4 负责收集访客数据、统计网站访问、产品浏览、加购、下单转化,看 fedfitness 哪个健身产品转化率、用户来源、页面停留、漏斗流失。

+ GA4 是数据接收方,GTM 里面创建「GA4 事件标签」,填入这个 G-xxxx ID,当 view_item/add_to_cart/purchase 事件触发时,把数据发送到这个 GA4 属性。


# GT-NNSJFT7K → Google Ads 转化 ID
> 谷歌广告转化追踪,Google Ads 转化追踪,专门给 Google 广告平台回传转化(下单、表单提交)。

+ 当用户点击 Google Ads 广告进入 fedfitness 网站,完成购买,通过这个 ID 把「成交」信号回传给谷歌广告后台,谷歌广告系统就知道:这个广告带来了订单,自动优化广告投放、调整出价。

Tag Assistant ​

Tag Assistant 是一款排查工具,帮助您验证网站上标签的实现和功能。它允许你查看网站上的标签、事件和数据,导出和导入调试会话,并共享调试URL,方便他人帮你调试。

Tag Assistant Chrome 扩展 ​

GTM面板 ​

  • 代码(标签 Tag):快递(GA4 / 广告像素,把数据打包发出去)
  • 触发器 Trigger:派送条件(满足条件才寄出快递)
  • 变量 Variable:快递面单信息(商品名、价格、点击文本,动态信息)
  • 文件夹 Folder:文件收纳文件夹,方便管理大量埋点
  • 模板 Template:预制快递模板,不用手写 JS

Google 标签: Google 代码 (gtag.js) ​

全局网站代码 (gtag.js) 现已更名为 Google 代码,是可添加到网站中的一段代码,添加这一段代码后您即可使用各种 Google 产品和服务(例如,Google Ads、Google Analytics [分析]、Campaign Manager、Display & Video 360、Search Ads 360)。您可以在整个网站中使用该 Google 代码并将该代码关联到多个目标平台,且无需针对不同的 Google 产品帐号管理多个代码。

安装配置 ​

<!-- ① 加载 gtag.js(Google tag),G-XXXX 是你的GA4媒体资源ID -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXX"></script>

<!-- ② 初始化配置 -->
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){ dataLayer.push(arguments); }
  gtag('js', new Date());
  // 发送page_view给GA4
  gtag('config', 'G-XXXX', { send_page_view: true });
</script>

Google Analytics(GA4) ​

Campaign Manager ​

Display & Video 360 ​

Search Ads 360 ​

GTM 部署 Google Ads 转化标签后,在这里看广告带来的 Purchase、表单提交等转化数据。

集成“参与调查”模块 ​

”选择参与“控件集成 开始 开始之前,请先详阅 Google 顾客评价政策https://support.google.com/merchants/topic/7105962?visit_id=638605109589612371-3143261637&p=gcr_policy_guide&rd=1, 并满足“选择参与”模块的集成要求

您的购物车和结算页面必须托管在同一网域上 确认页面必须托管在您自己的网域上 必须在每个网页顶部添加 <!DOCTYPE HTML> 验证完成后,请按照集成说明将下面的代码段添加到订单确认页面,并根据需要自定义相关变量。集成此代码段后,Google 就将可以在您的网站上显示 Google 顾客评价参与选项。 查看操作说明https://support.google.com/merchants/answer/14629205

<script src="https://apis.google.com/js/platform.js?onload=renderOptIn" async defer></script>

<script>
  window.renderOptIn = function() {
    window.gapi.load('surveyoptin', function() {
      window.gapi.surveyoptin.render(
        {
          // REQUIRED FIELDS
          "merchant_id": 253229985,
          "order_id": "ORDER_ID",
          "email": "CUSTOMER_EMAIL",
          "delivery_country": "COUNTRY_CODE",
          "estimated_delivery_date": "YYYY-MM-DD",

          // OPTIONAL FIELDS
          "products": [{"gtin":"GTIN1"}, {"gtin":"GTIN2"}]
        });
    });
  }
</script>

robots.txt配置 ​

robots.txt编写规则 ​

区分大小写:在编写robots.txt文件时,需要注意区分大小写,因为搜索引擎爬虫对大小写敏感。

# 描述搜索引擎的名称
> 该指令用于指定搜索引擎爬虫的名称,如"*"表示适用于所有爬虫,"Googlebot"表示仅适用于Google爬虫。可以在同一个文件中使用多个User-agent指令。
User-agent:

# 允许访问
> 该指令用于指定允许访问的URL路径,与Disallow指令相反,可以在同一个User-agent下使用多个Allow指令。
Allow:

# 不允许访问
> 该指令用于指定禁止访问的URL路径,可以使用通配符""来表示任意字符,如"/admin/"表示禁止访问以/admin/开头的所有路径。可以在同一个User-agent下使用多个Disallow指令。
Disallow: 
Disallow: /
Disallow: /account
Disallow: /index.html

User-agent: * #对所有搜索引擎Robot开放

Disallow: /abc #允许访问abc文件夹下的所有文件

Disallow: /wp-content/ #禁止访问wp-content目录下任何内容

Disallow: /*?* #禁止访问动态页面

Disallow: /*.php$ #禁止访问php文件

Disallow: /*.css$ #禁止访问css


# 允许或不允许抓取某些 URL
# 为某些爬虫添加抓取延迟规则
# 添加额外的站点地图 URL
# 阻止某些爬虫

# 禁止任何访问
User-agent: *
Disallow: /

# 禁止ChatGPT
User-agent: GPTBot
Disallow: /

User-agent: GPTBot
Allow: /directory-1/
Disallow: /directory-2/

robots.txt配置示例 ​

User-Agent: *
Crawl-delay: 60
Disallow: /trackback/
Disallow: /feed/
Disallow: /archives/
Disallow: /*?
Disallow: /page/
Disallow: /page/*
Disallow: */page/*
Disallow: /tag/
Disallow: /cart/
Disallow: /my-account/
Disallow: /wishlist/
Disallow: /order-tracking/

# Block bots
User-agent: adcore
Disallow: /
User-agent: ipvanish
Disallow: /
User-agent: requestedoffers.clu
Disallow: /
User-agent: 23.224.45-82.rdns.cloudradium.com
Disallow: /
User-agent: notarius-russia.ru
Disallow: /
User-agent: bitminer.it
Disallow: /
User-agent: secretsharinghub.com
Disallow: /
User-agent: ibsconsultant.com
Disallow: /
User-agent: generositycool.com
Disallow: /
User-agent: ioflood.com
Disallow: /
User-agent: shootorder.com
Disallow: /
User-agent: visualpleasures.net
Disallow: /
User-agent: ninja-crawler
Disallow: /
User-agent: audit
Disallow: /
User-agent: DotBot
Disallow: /
User-agent: opensiteexplorer.org
Disallow: /
User-agent: BLEXBot
Disallow: /
User-agent: go-resty
Disallow: /
User-agent: crownpeak
Disallow: /
User-agent: clearscope.io
Disallow: /
User-agent: seopowersuite
Disallow: /
User-agent: webceo
Disallow: /
User-agent: cognitiveseo
Disallow: /
User-agent: netpeaksoftware
Disallow: /
User-agent: majestic.com
Disallow: /
User-agent: agencyanalytics
Disallow: /
User-agent: netpeaksoftware
Disallow: /
User-agent: brightedge
Disallow: /
User-agent: raventools
Disallow: /
User-agent: conductor.com
Disallow: /
User-agent: seranking
Disallow: /
User-agent: ispionage
Disallow: /
User-agent: similarweb
Disallow: /
User-agent: buzzsumo
Disallow: /
User-agent: sproutsocial
Disallow: /
User-agent: Siteimprove.com
Disallow: /
User-agent: ahrefs.com
Disallow: /
User-agent: AhrefsBot
Disallow: /
User-agent: webmeup.com
Disallow: /
User-agent: webmeup-crawler.com
Disallow: /

sitemap: https://www.word-press.com.cn/sitemap_index.xml

网站地图Sitemap ​

Sitemap: http://yourdomain.com/sitemap.html

广告投放渠道与效益 ​

### Shopify 营收 5 亿元与跨境电商营收 100 亿元的实现方案







2. 目标价值:为独立站输出一套成熟高效的经营策略打法,从而聚焦销量与销售额
  1. 定量定性(非主观猜测):筛选锁定高意图消费者群体
    1. 过滤无效用户
    2. 引诱低意愿用户
    3. 加速高意愿用户
    4. 激活老用户
  2. 定量定性(非主观猜测):验证流量渠道的有效性,哪些流量渠道存在高意图消费者群体、转化率高
    1. 投放渠道是否合理?持续筛选出真正适合 Shopify 独立站的投放渠道
    2. 渠道的广告内容展示设计是否合理?持续筛选出真正适合 Shopify 独立站的广告内容展示
    3. 不同时间段的投放是否合理?持续筛选出真正适合 Shopify 独立站的时间段投放
  3. 定量定性(非主观猜测):产品服务的匹配适合度,快速验证产品的匹配适合度,筛选出有市场潜力的产品,然后集中资源打造爆品引领销量与销售额
    1. 对每一款产品进行流量上的全链路追踪分析
    2. 暂时没有不具备市场潜力的产品:临时降低资源倾斜比例
    3. 已经验证具备市场潜力的产品:集中火力冲销量、冲销售额
  4. 定量定性(非主观猜测):快速迭代优化网站加载性能,承接流量落地
    1. 等待耗时:页面加载时间
    2. 渲染呈现:视觉反馈时间
    3. 操作交互的便捷性与友好性
  5. 定量定性(非主观猜测):快速迭代优化网站内容设计,承接流量转化
    1. 内容存在是否必要?
    2. 内容布局是否合理?
    3. 内容设计是否有效?
3. 方案设计:流量的全链路追踪分析系统 
  1. 渠道:投放平台
  2. 渠道:展示次数
  3. 渠道:点击次数
  4. 网站:访问域名次数
    1. PV、IV、UV
    2. 终端设备:桌面、移动、iPad、其他设备
      1. 不同终端设备的针对性整改与优化
    3. 投放广告访问转化比例
  5. 网站:访问不同页面比例
    1. 基于第一次访问页面,访问其他页面的关联性
    2. 视觉吸引的分析判断
      1. UI设计的改进与优化
  6. 网站:等待页面加载完成比例
  7. 网站:页面浏览完整度比例分布
    1. 页面长度的合理性
    2. 页面内容分布的合理性
  8. 网站:页面内容操作交互权重
    1. 页面元素设计的合理性
    2. 页面元素布局的合理性
  9. 网站:添加购物车
    1. 分析已添加购物车但没有支付的原因
  10. 网站:下单支付
    1. 支付失败后没有继续支付的原因













系统输出Shopify独立站网站https://www.fedfitness.com/的整体经营状况。



消费者的规模群体在哪里:筛选锁定高意图消费者群体
验证流量渠道的有效性:哪些流量渠道存在高意图消费者群体、转化率高
产品服务的匹配适合度:快速验证产品的匹配适合度,筛选出有市场潜力的产品,然后集中资源打造爆品引领销量与销售额



投资回报率(ROI)
渠道、ROI


CPC(Cost Per Click | 单次点击成本)
CPCD:Cost Per Deep Click|深度点击成本(仅统计点击后停留 / 二次跳转的有效点击,防恶意点击)
CPLC:Cost Per Link Click|外链点击成本(专指外部跳转链接点击)
CPM(Cost Per Mille / Cost Per Thousand Impressions)千次展示成本,广告每被展示 1000 次的费用

CPTM:Cost Per Targeted Mille|定向千次展示成本(仅统计定向人群的千次曝光,精准投放)
CPImp:Cost Per Impression|单次曝光成本(单条展现成本,无千倍换算)
CPVI:Cost Per Video Impression|视频曝光成本(视频出现在画面即计费,不要求播放)

CPV:Cost Per View,单次浏览 / 单次观看成本,区别于 “单纯曝光”,用户完整浏览页面 / 完整播放视频才计费。


# 整体经营策略




# 市场:流量与成本问题

## 广告投放渠道


## 营销策略





# 产品:匹配适合度

## 每一个单品的市场验证方法与具体操作

## 快速筛选出能够担任营收支柱的单品

## 降低暂时没有验证出市场销量潜力的产品经营成本

## 产品策略与具体操作打法


# 健身器材行业的分析研究

全球健身行业通用分类方法

ISO 20957-1:2024 固定式训练设备国际标准(2024 年 4 月 23 日发布)
GB/T 17498.1—2026 室内固定式健身器材中国国家标准(2026 年 3 月 31 日发布,2027 年 10 月 1 日实施)
美国国家体能协会(NSCA) 阻力训练器材分类标准
TÜV 南德意志集团 健身器材认证标准
中国康复医学会 《中医医院康复科建设标准(试行)》(2021 年 12 月 13 日发布)
Precor 必确 商用健身器材产品目录(2026 年版)
TZFIT 100 种健身器材完整指南(2026 年 4 月更新)


# Shopify营收超过5亿元

## Shopify近 5 年的每一年整体的营收、利润,以及具体业务板块

## Shipify平台上近五年营收前100名的商家排名,单位:亿元

## Shipify平台上近五年利润前100名的商家排名,单位:亿元

# 当前公司Shopify网站的分析研究:https://www.fedfitness.com/


# 全球主流电商平台的分析研究


# 跨境电商营收超过100亿元

## 当前哪些产品

Released under the MIT License.