03 · 我用 n8n 做了一个每天给 Shopify 店铺发 blog 的工作流
目录 · Contents
在跨境电商独立站的运营中,SEO 是一个非常好的免费获取流量的渠道。但 SEO 的运营不像付费广告投放那样起效快,它需要你在网站上不断积累优质内容,被搜索引擎收录引用后,才有可能获得优质流量。
如果每天更新,调研关键词和写文章这两个执行环节会耗费大量时间,且投入的时间并不能很快得到回报,整体链条周期很久。
在 AI 时代,我更倾向把精力放在战略型、策略型的事情上,而不是这种反馈周期长、需要打持久战执行的工作。所以我花一个月时间通过 n8n 打磨了一套工作流,用来每天为我的 Shopify 店铺更新博客文章,并且可以自动提交索引。
今天给大家更新”博客草稿生成“和”将文章自动推送至 Shopify“这两部分。
博客草稿生成
这是整套工作流里最核心、也最复杂的部分。整个 n8n 工作流有 20 多个节点,但逻辑拆开来其实很清晰,可以分成这几个阶段:
blog主题列表 → AI 写稿 → AI 去痕 → 质量审核(最多 3 轮自动重试)→ 内链插入 → 产品配图 → 回写 Google Sheet

我用 Google Sheet 作为整个流程的数据中心。前面两个工作流调研产出的所有选题——标题、主关键词、副关键词、H2 大纲——都存在一张叫 Blog Queue 的表里,每一行就是一篇待生成的文章。

工作流每次触发时,会从这个表里读取指定的选题行,然后跑完上面那一整套流程。全部完成后,成品文章和各项数据(质量评分、审核轮次、链接数量等)会写回同一行。
我一般会一次性触发一个月的内容量。生成之后简单过一遍内容,没太大问题就把状态改成 Approved,再手动触发下一个发布工作流。整个生成过程不需要我介入,一篇文章从选题到成品大概 3~5 分钟。
下面拆开这个工作流的每个环节讲。
品牌上下文(Brand Context)
这是我觉得整套工作流里最值得花时间打磨的环节。
很多人用 AI 写文章,直接丢一个标题让它写,出来的内容千篇一律,没有品牌感。如果你想让 AI 持续输出风格一致、符合品牌调性的内容,就需要给它一套完整的"品牌手册"。
我在工作流里专门建了一个 Brand Context 节点,把品牌相关的所有信息结构化地写在里面。这个节点不调用任何外部服务,就是一个纯数据定义,但它会被注入到后面所有涉及 AI 生成的环节里。
这个品牌上下文包含以下几个维度:
1. 品牌声音(Brand Voice)
定义品牌的人格、语气和视角。比如我的品牌人设是"热情的、有专业知识的行业爱好者",语气是"对话式的、像跟朋友聊天",视角固定为第一人称复数。
同时列出了具体的 Do's 和 Don'ts:
- Do:用品牌的第一人称自然地说"在我们品牌,我们有过上千次..."
- Do:使用缩写让语气更自然(we're, you'll, it's)
- Don't:不用"限时优惠!""立即购买!"这种激进促销语言
- Don't:不用 AI 味很重的 em-dash(——)
2. 写作规则
定义文章结构:Hook 式开头(2-3 句带关键词)→ 4+ 个 H2 段落 → FAQ → CTA 结尾。段落不超过 4 句话,最好 2-3 句。列表和正文的比例保持在 50-75%——不能写成纯列表文,也不能写成大段文字墙。
3. SEO 规则
关键词必须出现在前 100 个词内、全文自然出现 3-5 次、FAQ 至少 4-5 个问答对、meta description 控制在 150-160 字符、SEO title 不超过 60 字符。
4. CTA 模板
预设了几套不同场景的 CTA 话术——中间软植入的、结尾强引导的、送礼场景的——AI 每次根据文章内容选用合适的模板,不会生硬,也不会遗漏。
把这些东西结构化地定义好之后,工作流不管跑多少篇文章,输出的品牌感都是一致的。 而且如果你想给多个店铺复用这套工作流,只需要替换这一个节点的内容就行,其他所有节点都不用动。
竞品文章调研
文章生成之前,工作流会先自动做一轮竞品调研。
具体做法是通过 Brave Search API 搜索当前关键词,拿到排名前 10 的搜索结果。然后过滤掉 Reddit、Wikipedia、Amazon、Pinterest、YouTube 这些非竞品平台,保留前 3 个真正的竞品博客文章,提取它们的标题、URL、摘要和额外片段,拼成一段"竞品参考"文本。
这段竞品参考会注入到后面的文章生成 Prompt 里,让 AI 在动笔之前先"读"一遍竞品在写什么。 目的有两个:
- 确保我的文章覆盖了竞品已有的核心内容点,不出现明显遗漏
- Prompt 里明确要求"写出至少 2 个竞品没有覆盖的独特观点",形成内容差异化
如果某个关键词搜不到有效的竞品文章,也不影响流程,Prompt 会自动切换成"写一篇关于这个主题最全面的指南"。
文章生成:Prompt 的设计
这是整个工作流的核心引擎。
我用的是 OpenRouter 作为 LLM 路由服务,模型选的是 Claude Sonnet。Prompt 分成 System Prompt 和 User Prompt 两部分。
System Prompt 负责定义"你是什么角色"——把前面 Brand Context 节点里的品牌声音、写作规则、SEO 规则全部注入进去。
User Prompt 是具体的写作指令。这里面有几个我觉得比较关键的设计:
动态文章类型检测
工作流会根据标题自动判断文章类型,匹配不同的字数要求:
- Quick Answer(快速问答型):标题以 "why do" "how long" "can dogs" 等疑问词开头 → 要求 800-1200 词
- Pillar(支柱型长文):标题含 "complete guide" "everything you need" 等 → 要求 2500-4000 词
- Standard(标准型):其他情况 → 要求 1500-2500 词
这个设计是因为不同的搜索意图,需要匹配不同的内容深度。一个"某某东西是什么"的问题写 3000 词是在浪费读者时间,而一篇"完整指南"只写 800 词又撑不起来。
用占位符来解耦
Prompt 要求 AI 在文章里插入两种占位符:
<!-- INTERNAL LINK: [相关话题描述] -->—— 标记"这里应该插一个内链"<!-- IMAGE: [理想配图描述] -->—— 标记"这里应该放一张图"
文章生成阶段只管写内容,不处理链接和图片的具体实现。 链接和配图的实际处理交给后面的专门环节。这样设计的好处是每个环节职责单一,调试和迭代的时候不会互相影响。
失败重试时的反馈注入
如果文章没通过质量审核(下一节会详细讲),工作流不是简单地让 AI 重新写一遍,而是会把上一轮的具体反馈和实际字数注入到新的 Prompt 里。AI 在重写时就知道上一次哪里没达标,避免犯同样的错误。
输出格式
要求 AI 直接输出一个 JSON,包含 seo_title、draft_html 和 meta_description 三个字段。之所以让 AI 直接输出 HTML 而不是 Markdown,是因为 Shopify 后台就是用 HTML 存储文章内容,直接输出 HTML 可以省掉格式转换的环节。
AI 去痕处理(Content Scrubber)
AI 生成的内容有一些非常典型的"指纹",搜索引擎和有经验的读者都能一眼看出来。
我在工作流里加了一个 Content Scrubber 节点,专门用来清除这些痕迹。它是一个纯 JavaScript 代码节点,做了以下几层处理:
移除不可见的 Unicode 水印字符
一些 AI 模型会在输出里嵌入不可见的 Unicode 字符——零宽空格(U+200B)、BOM(U+FEFF)、零宽连接符等。人眼完全看不到,但技术手段可以检测到。Scrubber 会扫描并移除 9 种已知的水印字符。
替换 em-dash
em-dash(——)是 AI 写作最有辨识度的特征之一。正常的英文写作很少高频使用 em-dash,但 AI 特别喜欢用。Scrubber 会根据上下文把它们替换成逗号或句号。
清除 AI 套话
预设了 30 多个正则匹配规则,清除这些高频出现在 AI 文章里的表达:
- "In today's world / digital landscape..."
- "Let's dive in / dive deep..."
- "Without further ado..."
- "It's worth noting that..."
- "In conclusion / All in all..."
- "Seamlessly" "Leverage" "Robust" "Cutting-edge"...
这些表达不是说人类绝对不会用,但 AI 文章里它们的密度远高于人类写作的自然水平。全部清掉之后,文章读起来会自然很多。
精确字数统计
最后一步是去掉所有 HTML 标签和注释,计算纯文本的实际字数。这个字数会传递给下一步的质量审核,作为是否达标的硬性指标——而不是让 AI 自己估算字数(AI 数字数是出了名的不准)。
质量审核循环(QC Loop)
这是防止低质量文章进入人工审核流程的最后一道关卡。
逻辑是:用另一个独立的 AI 调用来检查文章质量。我设计了一套 15 项评分标准,满分 10 分,分为四大类:
结构 & SEO(12 项)
- 字数是否达标(不达标直接判不及格,最高只能给 5 分)
- H2 段落数量 ≥ 4
- 关键词是否出现在前 100 词
- 关键词全文出现 3-5 次
- FAQ 部分是否存在且有足够的问答对
- 结尾 CTA 是否到位
- 品牌第一人称视角是否出现
- 配图占位符和内链占位符的数量
- 是否有指向权威来源的外链
关键词密度(1 项)
- 关键词分布是否合理(不能某一段堆砌)、副关键词是否全部出现过
可读性(1 项)
- 段落长度控制、是否有面向读者的提问、正文和列表的比例是否健康
AI 写作痕迹(1 项)
- 是否还残留 em-dash、AI 套话、过于泛泛的开头
评分规则很简单:7 分及以上通过,否则自动重试,最多 3 轮。
每一轮审核结束后,工作流都会通过飞书机器人推送一条通知——包含文章标题、第几轮、分数和通过/未通过的状态。这样即使我不盯着看,手机上也能了解进度。

如果没通过,反馈内容(具体哪些项不达标、怎么改)会被完整地注入到下一轮的生成 Prompt 里,形成一个"生成 → 审核 → 反馈 → 重新生成"的闭环。
3 轮之后不管是否通过都会结束循环,进入后处理阶段。同时工作流会标记三级审核状态:
- review_ready(9 分以上):质量很高,扫一眼就行
- review(7-8 分):通过了但有小瑕疵,可以关注一下
- review_flag(7 分以下):3 轮没过 7 分,需要重点看
实际跑下来,大部分文章在第 1-2 轮就能通过,需要跑满 3 轮的情况比较少。
内链自动插入
通过质量审核后,工作流进入内链处理环节。
内链对 SEO 很重要——它帮助搜索引擎理解你网站的内容结构,也能引导读者浏览更多页面,降低跳出率。但手动给每篇新文章加内链是一件非常繁琐的事情,尤其是当你博客文章越来越多的时候。
我的设计是让工作流全自动完成这件事。分两步:
第一步:构建内链地图
工作流会从 Google Sheet 里读取所有已发布的文章(通过是否有 Shopify URL 来判断),加上预设的几个产品集合页链接,构建出一个完整的内链映射表。
这个映射表的 key 是关键词,value 是对应的 URL 和推荐的锚文本。比如:
"custom pet portrait" → { url: "/blogs/news/xxx-guide", type: "blog" }
"pet accessories" → { url: "/collections/xxx", type: "product" }
关键点在于:这个链接地图是每次实时从 Sheet 读取的。 随着你发布的文章越来越多,可用的内链也越来越多,形成正向循环。你不需要手动维护任何链接表。
第二步:AI 智能插入链接
构建好链接地图后,工作流会把文章 HTML 和链接地图一起发给 AI,让它做两件事:
- 把文章里的
<!-- INTERNAL LINK: ... -->占位符替换成真实的链接 - 在其他自然合适的位置额外插入 1-2 个内链
目标是每篇文章包含 3-5 个内链,且博客文章之间的互链优先于产品页链接——因为博客互链对 SEO 权重传递更有效。
插入完成后,工作流还会统计链接数量——产品链接、博客链接、外部链接分别统计——这些数据最终都会写回 Google Sheet,方便后续复盘。
产品图自动匹配
最后一个环节是给文章配图。
工作流通过 Shopify Admin API 获取店铺的所有产品数据(标题、分类、标签、图片 URL),然后用一套匹配算法,把文章中的 <!-- IMAGE: ... --> 占位符替换为真实的产品图。
匹配逻辑是这样的:
- 先根据文章关键词判断优先品类:比如关键词包含 "necklace",就优先匹配饰品类产品;包含 "blanket" 就优先匹配家居类;默认匹配核心品类
- 再根据占位符里的描述做关键词匹配:比如占位符写的是
<!-- IMAGE: watercolor style product -->,就优先找标题含 "watercolor" 的产品 - 同一篇文章内不重复使用同一个产品
- 如果产品有多张图,不同位置会使用不同角度的图片
每张产品图都会自动包裹一个链接,点击图片直接跳转到对应的产品页。图片下方还会自动加一句简短的引导文案。
这样做的好处是:文章里的每张配图都和文章内容相关,同时又能直接带来转化机会。 不是随便塞一张广告,而是在读者读到相关内容时,自然地展示对应的产品。
回写 Google Sheet + 通知
所有处理完成后,工作流把成品数据回写到 Google Sheet 的对应行:
- 完整的文章 HTML(已去痕、已插链、已配图)
- SEO Title 和 Meta Description
- 质量评分、审核轮次
- 各类链接数量(产品链接、博客链接、外部链接)
- 配图数量
同时通过飞书机器人推送一条最终通知,告诉我这篇文章生成完了、最终评分多少、用了几轮审核,还附上 Google Sheet 的直达链接。

到这里,一篇从选题到成品的 SEO 博客文章就自动生成完了。 我要做的只是到 Google Sheet 里扫一眼,没问题就改成 Approved 状态。
博客文章自动更新至shopify
在 Google Sheet 里把文章状态改成 Approved 之后,我会手动触发这个发布工作流。它的职责就是把审核通过的文章提交到 Shopify 店铺后台。

整个流程比上一步简单很多,但有两个设计细节我觉得值得讲。
结构化数据注入(Schema Markup)
这一步是很多人做 SEO 博客时容易忽略的。
在文章发布到 Shopify 之前,工作流会自动往文章 HTML 末尾注入 JSON-LD 格式的结构化数据。注入了两种 Schema:
BlogPosting Schema:
告诉搜索引擎"这是一篇博客文章",包含标题、描述、作者、发布日期、所属页面等元信息。这些信息能帮助搜索引擎更准确地理解和展示你的内容。
FAQPage Schema:
工作流会自动检测文章中是否有 FAQ 部分(通过匹配 <h2>Frequently Asked Questions</h2> 标题)。如果有,就从 HTML 里提取所有 Q&A 对,生成 FAQPage 结构化数据。
加了 FAQ Schema 之后,你的搜索结果可能会直接展示问答折叠卡片——这会显著提升搜索结果的点击率。这类富文本搜索结果(Rich Results)占据的页面面积更大、信息密度更高,比普通的标题+描述格式更吸引点击。
整个 Schema 注入是全自动的,不需要手动写任何结构化数据代码。
另外,结构化数据对 GEO(Generative Engine Optimization,生成式引擎优化)同样有价值。现在越来越多的用户通过 Google AI Overview、Bing Copilot、Perplexity 这类 AI 搜索引擎获取信息,这些 AI 在生成回答时会优先引用语义结构清晰的内容源。JSON-LD Schema 给了 AI 一层机器可读的语义信号——"这是一篇博客文章、作者是谁、回答了哪些问题"——让你的内容更容易被 AI 搜索引擎理解、引用和推荐。 尤其是 FAQPage Schema,AI 生成回答时特别喜欢直接引用 Q&A 格式的内容。所以这一步其实是同时在为传统 SEO 和 AI 时代的 GEO 做准备。
构建 Shopify 文章并提交
注入 Schema 后,工作流会把文章数据组装成 Shopify Admin API 要求的格式:
- 标题:用之前 AI 生成的 SEO Title(不是原始选题标题,而是专门优化过点击率的版本)
- 正文:完整的 HTML(已经过去痕、插链、配图、Schema 注入)
- Meta Description:通过 Shopify 的 metafields 写入,这就是搜索结果里标题下面那段描述文字
- 封面图:自动提取文章里第一张产品图作为封面
- 标签:用主关键词作为文章标签
- 发布状态:设为草稿(未发布)
这里有一个刻意的设计:文章创建后的状态是草稿,而不是直接发布。
原因是我不想所有文章在同一时间一次性发布出去——这在搜索引擎看来不太自然。我更倾向于在 Shopify 后台给每篇文章设置不同的定时发布时间,比如每天发一篇,模拟一个正常的更新节奏。
文章成功创建后,工作流会从 Shopify 的 API 响应里提取文章 ID 和 URL,写回 Google Sheet 对应的行,同时把状态更新为 Published。
这个 URL 回写很重要——上一步"博客文章生成"里的内链系统会读取这些 URL 来构建链接地图。所以每发布一篇新文章,未来新生成的文章就多一个可用的内链目标,整个内链网络是自动滚雪球的。
到这里,博客草稿生成和自动推送至shopify两条工作流就讲完了。
从关键词调研、文章生成、质量审核、内链配图,到 Shopify 发布、搜索引擎索引提交——整个链条跑通之后,我每周只需要花半个小时左右做两件事:看一眼生成好的文章,以及在 Shopify 后台设置定时发布时间。剩下的全部交给工作流自动完成。
对于跨境电商独立站来说,SEO 是一个慢功夫,但也是一个一旦跑起来就能持续产生复利的渠道。用 AI + 自动化把执行层面的工作量降下来之后,你就能把更多精力放在选品、内容制作、广告投放向这些真正需要人来判断的事情上。
希望这套思路能给大家一些启发。
这套 SEO 自动化系统从搭建到跑通,前前后后花了我好几个月。关键词调研、blog 生成发布、Pinterest 自动分发、产品 meta 一键优化、SEO 周报自动推送,每个环节都是踩了坑再改、改了再跑,才调到现在这个版本。
身边很多做独立站的朋友跟我说,思路看懂了,但 n8n 一打开就头大,自己搭不出来。
所以我把自己跑了大半年的全套 SEO / GEO 自动化系统打包成了一门课。不是视频课跟着抄,是文字教程加可直接导入的 n8n 工作流源码,每个节点都配了图文配置步骤,零基础也能跟着搭出来。一次部署之后它自己跑,你每周要做的,就是扫一眼。
感兴趣的话加我微信 Aiyuyu_2025 聊聊,备注 SEO。
链接我— Get in Touch

微信
Aiyuyu_2025

公众号
AI与鱼
想说点什么
扫码或搜索微信号
添加好友时备注「网站」