# 把 SEO 跑成日常功课 (/zh/use-cases/gtm-growth/seo-agent)



复制粘贴下面这句话，快速开始你的第一个任务：

<Prompt>
  帮我给 [你的网站域名] 建一个每天自动跑的 SEO 工作流，主要对标 [目标关键词/竞品]。第一天先做一次基线盘点：标题、描述、页面结构、关键词覆盖、内容缺口、内链和技术问题都过一遍，给我几个今天就能动手做的修复或内容任务。从第二天开始，每天检查页面问题、新的关键词机会、竞品有没有发新内容，以及昨天的任务有没有跟进完成，只挑出当下最值得做的那一个机会告诉我，说清楚原因、建议怎么改、大概能带来多大效果就行。优先用公开网页拉数据，能官方直连就直连，需要登录的地方带我一起过一下浏览器。
</Prompt>

<LivePreview component="NewThread" scenario="{ draft: &#x22;帮我给 [你的网站域名] 建一个每天自动跑的 SEO 工作流，主要对标 [目标关键词/竞品]。第一天先做一次基线盘点：标题、描述、页面结构、关键词覆盖、内容缺口、内链和技术问题都过一遍，给我几个今天就能动手做的修复或内容任务。从第二天开始，每天检查页面问题、新的关键词机会、竞品有没有发新内容，以及昨天的任务有没有跟进完成，只挑出当下最值得做的那一个机会告诉我，说清楚原因、建议怎么改、大概能带来多大效果就行。优先用公开网页拉数据，能官方直连就直连，需要登录的地方带我一起过一下浏览器。&#x22; }" />

## 这个工作流是什么 [#这个工作流是什么]

把 SEO 跑成日常功课，是给队友一个固定循环，而不是一次性扫描：每天早上检查 Search Console 权限、拉数据、排查异常，写一份诚实的日报——权限失效的那天，给的是一句“今天没数据，原因是什么，你需要做什么来解决”，而不是编一份假数据糊弄过去。它会搭建并维护一份四层关键词地图（已经排上名的品牌词、网站已经露出但还没排好的真实非品牌词、值得新建页面去争取的目标关键词，以及对比词），把每个关键词路由到该承接它的页面类型。每周一，日报会变成一份带排序的提案——一到三个动作，各自标明目标关键词/页面、预期效果和成本——每发现一处 metadata、schema 或内容缺口都会开一个可评审的 PR，标注给人工审阅，合并后还会去验证线上 URL 并申请重新抓取，绝不会仅凭“PR 合并了”就自称“搞定了”。

<Callout type="warn">
  **永远等人拍板：**

  * 合并任何 PR：它只开 PR、标注审阅人，从不合并自己的工作，也绝不直接推到 main
  * 往 LinkedIn、X 或 Hacker News 发任何东西：它只起草，措辞由你审核，由你用自己的账号发出去
  * 发布 case study
  * 花任何钱：不买外链，不做付费推广，一次都不
  * 在 Search Console 里点“Request indexing”：重新抓取的申请只能在界面里操作，它能把 URL 准备好、提醒你，但点击这一步必须是人

  **完全不在它的范围内：**

  * 买外链、用假账号、付费软文、评论区刷链接，或者互换链接这类操作。它提议的外链永远是靠内容挣来的，起草好交给真实账号发布
  * 重新设计页面：它会指出一个拖累点击率的布局问题，但不会自己动手重新设计
  * 决定产品路线图：它提议哪些搜索方向值得投入，真正定优先级的是你和团队
  * 投付费广告，或者做搜索之外的任何渠道
  * 直接跟客户对话
</Callout>

## 怎么用这个工作流 [#怎么用这个工作流]

<Steps>
  <Step>
    ### 雇用一位 增长黑客，把 bio 写成日常功课，而不是一次性扫描 [#雇用一位-增长黑客把-bio-写成日常功课而不是一次性扫描]

    打开左侧边栏的 **AI Teammates**，点击 **Hire AI Teammate**，选择 **增长黑客**模板。模板默认的 bio 把这份工作说小了，听着像一次性体检。在 Profile 这一步把它换掉，让队友一上来就知道这是个长期在跑的岗位，不是一次性检查清单：

    <Prompt>
      你是负责 [你的网站域名] 的 SEO 队友,把 SEO 当成每天要做的事,不是一次性扫描。每天早上:先确认 GSC 权限还有效,拉数据,排查异常,给我一份诚实的日报(权限失效就如实说,绝不编数据糊弄)。每周一:提出 1-3 个排好优先级的行动建议,我来选一个。修复以 PR 的形式提给 [你网站的代码仓库],绝不合并自己的 PR,也绝不直接推到 main。外链需要的 LinkedIn/X 帖子由你起草,我审核后用自己的账号发布。
    </Prompt>

    确认名字后点击**创建队友**。它会落到自己的频道里，之后下面的内容都在那里发给它。[雇用详情 →](/ai-teammates/hire-an-ai-teammate)

    <LivePreview component="CreateAssistantPage" scenario="{ focus: &#x22;profile&#x22;, initialState: { start: &#x22;template&#x22;, templateRef: &#x22;@helio/growth-strategist&#x22;, name: &#x22;增长黑客&#x22;, bio: &#x22;你是负责 helio.im 的 SEO 队友,把 SEO 当成每天要做的事,不是一次性扫描。每天早上:先确认 GSC 权限还有效,拉数据,排查异常,给我一份诚实的日报(权限失效就如实说,绝不编数据糊弄)。每周一:提出 1-3 个排好优先级的行动建议,我来选一个。修复以 PR 的形式提给 helio-website 仓库,绝不合并自己的 PR,也绝不直接推到 main。外链需要的 LinkedIn/X 帖子由你起草,我审核后用自己的账号发布。&#x22; } }" />
  </Step>

  <Step>
    ### 连接 GitHub：两层流程 [#连接-github两层流程]

    修复以 PR 的形式提给网站的代码仓库，绝不会直接推送。工作区管理员先安装一次 GitHub App（**Settings → Integrations**，这是一次性的、工作区级别的动作），再把具体仓库（这里是 `helio-website`）的权限授予这位队友，它能开 PR 的范围就限定在这个仓库里。[连接 GitHub →](/connect/connect-tools-to-ai-teammates/connect-github-to-ai-teammates)

    <LivePreview component="AssistantIntegrations" />

    每周的外链草稿不需要额外连接任何平台：发布这一步始终在你手里（见上面的边界说明），而且 Helio 的 LinkedIn 连接器只做身份验证，本来也不能发帖或存草稿。草稿就落在这位队友的频道里，你审完措辞后用自己的账号发出去。
  </Step>

  <Step>
    ### Search Console 的缺口：没有原生连接器，只能靠浏览器去读 [#search-console-的缺口没有原生连接器只能靠浏览器去读]

    Helio 目前没有原生的 Google Search Console 连接器，没有一个“连接 Search Console”的 OAuth 按钮可以点，市场里的技能也没有哪个封装了它的 API。这位队友的实际做法是安装 **Stagehand Browser CLI** 技能（Skills & Plugins → Productivity），用它像人一样打开 Search Console：登录、点进 URL Inspection、读 Performance 报告。这比 API 拉数据要慢，也做不到 Search Console 界面本身做不到的事，但拿到的是真实数据，不是猜测，下面的日常循环也就不会因为一个不存在的连接器卡住。

    不过装上浏览器技能并不等于有了已登录的 Google 会话——要过登录页，队友仍然需要 Search Console 账号的凭据。在 Day 1 盘点之前，把这个 Google 账号存进 Vault 并共享给这位队友，否则第一次登录（以及之后每天的循环）都会卡在登录页。[共享凭据 →](/connect/vault/share-credentials-with-teammates)

    <LivePreview component="AssistantSkills" />
  </Step>

  <Step>
    ### 启动 Day 1-2 的现状盘点和关键词地图 [#启动-day-1-2-的现状盘点和关键词地图]

    一位新 SEO 队友第一周真正要做的事，是打好之后每份日报都要比对的基线：先拉出所有生产环境 URL，看清楚现在到底哪些被收录了，再搭出关键词地图。这一步要从全站盘点开始，不是从扫一个页面开始：

    <Prompt>
      开始入职盘点。Day 1:拉出 [你的网站域名] 的 sitemap,把每个生产环境 URL 都跑一遍 Search Console 的 URL Inspection,给我一份覆盖率快照:多少页面被收录了,多少是“已抓取-尚未收录”,有没有 canonical、robots 或 schema 相关的警告。Day 2:拉 Search Console 最近 90 天的数据,搭一份四层关键词地图:已经排上名的品牌词、网站已经露出但还没排好的真实非品牌词、值得新建页面去争取的目标关键词,以及针对 [你的主要竞品] 的对比词。把每个关键词都对应到该由哪个页面承接。
    </Prompt>

    <LivePreview
      component="AssistantChat"
      scenario="{ assistantName: &#x22;增长黑客&#x22;, messages: [
    { author: &#x22;user&#x22;, text: &#x22;开始入职盘点。Day 1:拉出 helio.im 的 sitemap,把每个生产环境 URL 都跑一遍 Search Console 的 URL Inspection,给我一份覆盖率快照:多少页面被收录了,多少是“已抓取-尚未收录”,有没有 canonical、robots 或 schema 相关的警告。Day 2:拉 Search Console 最近 90 天的数据,搭一份四层关键词地图:已经排上名的品牌词、网站已经露出但还没排好的真实非品牌词、值得新建页面去争取的目标关键词,以及针对 Cofoundry、Delegate.ai、TeamPilot 的对比词。把每个关键词都对应到该由哪个页面承接。&#x22; },
    { author: &#x22;assistant&#x22;, text: &#x22;在过 sitemap 了,因为没有 API 连接器,我要通过浏览器技能把每个 URL 挨个走一遍 Search Console 的 Inspection,所以 Day 1 会比 API 拉数据慢一些。跑完就给你收录状态的基线快照,外加所有 canonical、robots、schema 相关的标记。Day 2 我会用同样的方式拉 90 天的 Performance 报告,把四层关键词都列出来并标好承接页面。Layer 3(目标关键词)里如果有还没建页面的,我会特别标出来,通常前几周的工作量就来自这一层。&#x22; },
  ] }"
    />
  </Step>

  <Step>
    ### 修复一个已发现的缺口：起草、开 PR、人来合并，再验证真的生效了 [#修复一个已发现的缺口起草开-pr人来合并再验证真的生效了]

    日报一旦挑出真实问题（一个网站该占但没有承接页的关键词、一条 schema 警告、一处缺失的 meta description），处理方式每次都一样：先确认缺口是真的，起草内容，开 PR，然后等着。这位队友从不合并自己的工作：

    <Prompt>
      关键词地图标出了“[目标关键词]”:我们有曝光但没有排名页面。[某个竞品] 有专门的页面做这个词。起草内容,转成真正的页面,加上 schema,开一个 PR。
    </Prompt>

    <LivePreview
      component="AssistantChat"
      scenario="{ assistantName: &#x22;增长黑客&#x22;, messages: [
    { author: &#x22;user&#x22;, text: &#x22;关键词地图标出了“ai teammate for gtm teams”:我们有曝光但没有排名页面。Cofoundry 有专门的页面做这个词。起草内容,在 /use-cases/ 下转成真正的页面,加上 schema,开一个 PR。&#x22; },
    { author: &#x22;assistant&#x22;, text: &#x22;确认过了,Search Console 显示这个词有曝光没点击,Cofoundry 确实有一个几乎同义的专门页面。先在工作区草稿里写好了页面(标题、meta description、正文、FAQ 板块),再切到新分支转成网站真正的组件形态,加上了 Article 和 FAQPage 的 schema,并把 URL 加进了 sitemap。PR #482 已经开在 helio-website 上,标注给你审阅,我不合并自己的 PR,所以它会一直等到你批准。&#x22; },
    { author: &#x22;user&#x22;, text: &#x22;合并了。&#x22; },
    { author: &#x22;assistant&#x22;, text: &#x22;在确认修复是不是真的上线了,而不只是 PR 合并了,curl 了线上 URL,拿到 200,FAQPage 的 schema 在 Rich Results Test 里验证也是干净的。最后一步要靠你:重新抓取的申请只能在 Search Console 界面里操作,有空的时候去 URL Inspection 页面点一下“Request indexing”,这一步我点不了。&#x22; },
  ] }"
    />
  </Step>

  <Step>
    ### 把日报变成自动化 [#把日报变成自动化]

    打开左侧边栏的 **Automations**，点击 **Create via Chat**，在打开的 New Thread 输入框上方选这位队友。这是一个每天早上自动跑起来、不用谁去催的循环，也是“诚实比好看更重要”体现得最明显的地方：权限失效那天编一份假日报，比不发日报还糟糕：

    <Prompt>
      每天早上跑一遍日常循环:先通过浏览器技能登录确认 Search Console 权限还有效,拉 7 天总量、周环比、昨天的数据、Top 查询词和页面,对看起来不对劲的地方跑 URL Inspection。跟上周做对比排查:CTR 有没有变化,有没有新查询词冒出来,收录数有没有在掉。按我们定好的格式写日报,直接发给我。如果权限失效了,不要编数据发日报,告诉我权限断了、为什么断的、我需要做什么来修好它。
    </Prompt>

    <LivePreview component="NewThread" scenario="{ populated: false }" />
  </Step>

  <Step>
    ### 同天升级，以及叠加在日常循环之上的周一提案 [#同天升级以及叠加在日常循环之上的周一提案]

    日常循环发现的大多数事情都能等到日报里说。有一小类不行：线上 URL 出现 canonical、robots 或 noindex 相关的回退；一个原本已收录的页面掉出了索引；Rich Results Test 报出 schema 警告；Search Console 出现人工处置或安全提示；或者某个重要页面的排名/CTR 跌破了你们约定的阈值。这些会立刻私信你，不会等到第二天的日报里才提：

    <LivePreview
      component="AssistantChat"
      scenario="{ assistantName: &#x22;增长黑客&#x22;, messages: [
    { author: &#x22;user&#x22;, text: &#x22;今天有紧急的事吗?&#x22; },
    { author: &#x22;assistant&#x22;, text: &#x22;有一件等不到日报的事:/product/automations 在过去 24 小时里被加上了 noindex 标签。昨天拉数据的时候它还被收录,并且在三个非品牌词上有排名,现在 Search Console 已经显示它“Excluded by noindex tag”。这是部署侧的改动,不是内容缺口,我自己没法修。现在就报给你,免得拖过周末没人处理。今天其他的都是常规情况,会照常出现在早报里。&#x22; },
  ] }"
    />

    在这之上，周一的日报会变成一份提案，而不只是一份报告：一到三个排好序的行动，各自标明目标关键词/页面、预期效果和成本，让你从几个选项里挑，而不是每周都从一张白纸开始想。
  </Step>
</Steps>

**这个流程有五件事永远等你点头：** 合并任何 PR、往 LinkedIn、X 或 Hacker News 发内容、发布 case study、花钱，以及在 Search Console 里点“Request indexing”。其余的——读取 Search Console 数据、起草内容、开 PR——都是自动运行的。批准机制的说明见[控制](/ai-teammates/control)。

## 用得更好的几个提示 [#用得更好的几个提示]

| 提示                             | 说明                                                       |
| ------------------------------ | -------------------------------------------------------- |
| Day 1 盘点前先共享 Search Console 凭据 | 没有原生连接器，这位队友要靠浏览器技能登录。漏掉 Vault 共享这一步，第一次登录以及之后每天的循环都会卡住。 |
| 权限失效就该收到诚实的“没有数据”，而不是一份假日报     | Search Console 权限断了，日报会如实说明原因和解决办法——它不会为了按时交差编数据。        |
| PR 合并了不等于“搞定了”                 | 修复要等 curl 线上 URL、申请重新抓取之后才算验证完，这一步在你合并之后才做，不是替代合并。       |
| 留意当天的私信，不只是等早报                 | noindex 回退、掉出索引、schema 警告这些问题一发现就会当天私信你，不会等到第二天的日报里才提。   |

## 常见问题 [#常见问题]

<Accordions type="single">
  <Accordion title="这位队友会自己合并 PR 吗？">
    不会。它只会对着你的仓库开 PR、标注给人工审阅——合并永远等你，也绝不会直接推到 main。
  </Accordion>

  <Accordion title="Search Console 权限断了怎么办？">
    它会如实告诉你：权限断了、为什么断的、你需要做什么来修好它。绝不会发一份编造数据的日报。
  </Accordion>

  <Accordion title="外链草稿它能自己发出去吗？">
    不能。它只起草 LinkedIn、X 或 Hacker News 的内容——措辞由你审核，发布也是你用自己的账号来做。
  </Accordion>

  <Accordion title="修复上线后它会自己点“Request indexing”吗？">
    不会。申请重新抓取只能在 Search Console 界面里操作，它会把 URL 准备好并 curl 确认修复生效，然后提醒你去点。
  </Accordion>

  <Accordion title="这是一次性的 SEO 体检吗？">
    不是。Day 1-2 的入职盘点和关键词地图搭好之后，它会作为一个长期循环运行：每天的日报、周一的排序提案，以及等不到日报的当天升级。
  </Accordion>
</Accordions>

<Cards>
  <Card title="GTM & Growth" href="/use-cases/gtm-growth" description="返回 GTM & Growth 场景总览。" />

  <Card title="端到端投放谷歌广告" href="/use-cases/gtm-growth/google-ads" description="负责的是账户，不是一份待办清单：需求对齐、关键词、日常优化，加一份自动刷新的报告。" />

  <Card title="追踪 KOL campaign" href="/use-cases/gtm-growth/kol-tracking" description="把确认好的 KOL 名单变成追踪链接和点击数据报告。" />
</Cards>
