AI PLAY玩法更新持续收录
← 回到更新流

2026-10-06 · 原文发布日

每周审查网站的AI搜索就绪度并自动生成修复工单

n8n模板:每周一早七点把网站URL发给Apify的SEO、GEO、AEO审查actor,按访客视角渲染页面并打出传统SEO、生成式引擎就绪度、可回答性分数和失败项。与上周存在Google Sheets的成绩对比,分数下滑超阈值、低于下限或有严重问题的页面会被标记,OpenAI据此按失败项生成结构化工程工单,写进Tickets表并推到Telegram,工单表结构可直接换接到Linear或Jira。

原文要点

原模板每周一7点触发,把网站URL和页数上限发给Apify的SEO/GEO/AEO审查actor,按访客视角渲染页面并返回传统SEO、生成式引擎就绪度、可回答性分数和逐项失败检查。结果与Google Sheets中的上周基线对比,按dropPoints回归阈值、minScore下限和严重问题三类规则标记页面,数量受maxTickets封顶;OpenAI仅依据失败检查生成结构化工单,追加到Tickets表并推Telegram。读取历史节点开启alwaysOutputData以兼容首次空表。

这次做成什么

搭一条每周自动审查网站AI搜索就绪度、并给变差页面生成工程工单的n8n流程。练习方案:先用一个可公开访问的演示站URL、maxPages=3、minScore=60手动跑一轮建立基线,再改分数模拟回归验证工单分支。

准备什么

  • 一个可运行Schedule Trigger的n8n实例(Cloud或自托管)
  • Apify账号及API凭据;首次仅审少量页面并核对当前可用额度
  • OpenAI API key,用于工单撰写节点
  • 一个含Scoreboard和Tickets两个空白tab的Google Sheet及凭据
  • 用@BotFather创建的Telegram bot token和目标chat ID
  • 一个允许公开访问、可被抓取的测试网站URL

具体怎么做

  1. 配置审查输入与定时

    在Schedule Trigger设为每周一07:00;在配置区填入网站URL与maxPages(练习设3)、minScore(60)、dropPoints(5,敏感;10则安静)、maxTickets(首次建议3)。Apify节点填入凭据,URL和页数映射为actor输入。

  2. 接审查actor并规整输出

    Apify节点运行SEO/GEO/AEO Audit Actor,对每个页面返回总体分和SEO、GEO、AEO子分及失败检查清单。后续节点把每条结果规整成字段:url、score、seoScore、geoScore、aeoScore、failedChecks(数组)、auditDate。

  3. 读基线并三分支标记

    Google Sheets节点读Scoreboard tab上周行(确认该节点勾选alwaysOutputData,否则首次空表会让流程停止)。比较节点按URL配对,满足任一条件即标记:总分下跌超过dropPoints、总分低于minScore、存在critical级失败项。未标记页面只回写Scoreboard留历史。

  4. 限流并生成工单

    Limit类节点把标记页面截断到maxTickets。OpenAI节点只接收该页的failedChecks,要求逐条失败检查生成修复步骤,输出JSON工单。随后追加到Tickets tab,并把同一工单文本发到Telegram chat ID。

可直接复制的材料

流程参数配置(本站示例)

本站按原模板参数说明编写的示例值,websiteUrl换成你的测试站,chat ID用真实bot对话获取。

{
  "websiteUrl": "https://demo-site.example.com",
  "maxPages": 3,
  "minScore": 60,
  "dropPoints": 5,
  "maxTickets": 3,
  "scoreboardTab": "Scoreboard",
  "ticketsTab": "Tickets",
  "telegramChatId": "123456789"
}

OpenAI工单生成提示词(本站编写)

本站独立编写的替代提示词,变量占位符按n8n表达式替换为上一节点字段。

你是网站工程工单撰写助手。输入是一个页面的审查失败检查清单(JSON数组,每项含检查名、说明和建议)。
要求:
1. 只为清单中确实失败的检查写修复步骤,不得凭空添加问题;
2. 不承诺排名或流量结果;
3. 严格只输出合法JSON,字段:pageUrl(字符串)、priority(high|medium|low,critical失败为high)、summary(一句话问题概述)、steps(字符串数组,每步对应一条失败检查,含做什么和验收标准)、sourceChecks(对应的失败检查名数组)。
失败检查清单:{{ $json.failedChecks }}
页面URL:{{ $json.url }}

Scoreboard测试行(合成数据)

本站合成的上周基线数据,粘贴到Scoreboard tab后即可手动运行验证回归对比分支。

url,score,seoScore,geoScore,aeoScore,failedChecks,auditDate
https://demo-site.example.com/pricing,72,80,65,70,"[]",2026-10-05
https://demo-site.example.com/features,58,70,45,52,"[缺少FAQ结构化数据, 正文无可直接引用的答案段]",2026-10-05

输入与输出示例

本站虚构演示,工单JSON为按提示词预期格式的示意,非实际调用结果。

输入

本周审查结果:features页总分50(上周58,跌8分),failedChecks含「缺少FAQ结构化数据」「正文无可直接引用的答案段」;参数dropPoints=5、minScore=60、maxTickets=3。

对应输出

该页跌8分>5且50<60,被标记并生成工单:{"pageUrl":"https://demo-site.example.com/features","priority":"high","summary":"页面缺少结构化数据与可引用答案段,AI搜索可回答性不足","steps":["为常见问题区添加FAQPage结构化数据,验收:富结果测试通过","在正文首屏补一段60字内可直接引用的结论段,验收:复查actor该项通过"],"sourceChecks":["缺少FAQ结构化数据","正文无可直接引用的答案段"]},追加Tickets表并推Telegram。

做完检查这些

  • 首次手动运行时Scoreboard为空也能跑通,流程不在读表节点中断
  • 跌分超阈值或低于minScore的页面出现在Tickets tab和Telegram,其余页面只回写Scoreboard
  • 工单steps逐条能对应failedChecks里的检查名,没有出现清单外的问题
  • 单轮工单数量不超过maxTickets,Scoreboard历史行包含新旧两轮日期

容易卡住的地方

  • 首次运行没有基线,所有页面只按下限和critical规则判定,此时maxTickets决定开发看到多少工单
  • Apify当前额度和Actor费用以控制台为准,先减小maxPages观察实际用量
  • OpenAI写的是模型措辞,交开发前需人工核对步骤是否与真实失败检查一致
  • 工单表字段改成Linear/Jira时只需替换保存节点,但字段映射要逐列核对

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Audit site AI search readiness and open fix tickets with Apify, OpenAI, Sheets and Telegram
原作者
youssef farhan
原始发布日期
2026-10-05T21:33:21.455Z
来源
https://n8n.io/workflows/20497