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

2026-10-01 · 原文发布日

找出拖垮SEO的僵尸页面

这个n8n流程每周自动巡检网站:从站点地图抓取全部URL,逐页计算字数、薄内容、noindex等技术标记并记入Postgres,再结合GA4流量、Search Console收录与点击、外链域名数,给每页算出0-100的僵尸评分并分级为健康/危险/僵尸;危险页面可让Claude生成一句原因说明,最后把汇总和最差页面榜单发到Slack。适合内容多、需要定期清理低效页面的站点运营。

原文要点

原工作流每周或手动运行:从站点地图抓取去重后的URL(可限同域、设最大页数),逐页计算字数、薄内容、noindex、canonical不匹配等技术标记,爬行结果与内链边存入Postgres三张表(zombie_page_crawl、zombie_page_links、zombie_pages),由Postgres聚合入站内链数。再拉取GA4(Analytics Data API)、Search Console(Search Analytics与URL Inspection)和外链商的referring domains,加权合成0-100僵尸分并分级healthy/at_risk/zombie,可选调用Anthropic Claude为异常页写一句原因,汇总与最差榜单发Slack。配置需Google OAuth2(analytics.readonly与webmasters.readonly范围)、外链商HTTP Header Auth、Slack OAuth。

这次做成什么

在本站指导下,用该n8n模板搭一个每周自动巡检:抓站点地图→算技术与内容标记→合并GA4/GSC/外链信号→生成0-100僵尸分与分级→Slack周报,并准备一份自建演示数据先跑通评分逻辑再接真实API。

准备什么

  • n8n实例与已下载的模板工作流(n8n.io/workflows/20253)
  • 一个可写入的Postgres数据库及建表权限
  • 拥有GA4媒体资源与Search Console站点权限的Google账号
  • 可选:Anthropic API密钥、Slack工作区及目标频道、外链数据商API

具体怎么做

  1. 建库建表

    在Postgres中新建数据库(如seoaudit),执行模板附带的schema SQL建立zombie_page_crawl、zombie_page_links、zombie_pages三张表;在n8n凭据中添加Postgres连接并填入主机、库名、账号。

  2. 配置巡检参数

    打开工作流顶部配置节点,填入站点域名、站点地图URL、GA4 property ID、GSC站点URL、最大抓取页数(先设50做演练)、评分阈值与Slack频道名。

  3. 接入Google凭据

    在n8n新建Google OAuth2凭据,勾选analytics.readonly与webmasters.readonly两个scope并完成授权,分别绑定到GA4与GSC相关节点。

  4. 接入外链与Claude

    按你的外链商文档把HTTP Header Auth凭据和端点、返回字段解析改成对应格式;如需AI原因说明,添加Anthropic的x-api-key头凭据并启用该分支,不需要则跳过。

  5. 手动演练再开定时

    先手动执行一次,检查Postgres三表是否有数据、分级是否合理;确认Slack收到汇总与最差页面榜单后,再启用每周定时触发。

可直接复制的材料

演示用站点页面合成数据(代替真实抓取先验证评分)

本站独立编写的合成CSV,用于在Code节点里先演练评分加权,接入真实API后可弃用。

url,word_count,has_noindex,canonical_mismatch,inbound_links,sessions_28d,gsc_clicks_28d,referring_domains
https://demo.example.com/guide-a,1450,false,false,23,860,412,6
https://demo.example.com/old-post-b,180,false,false,0,3,0,0
https://demo.example.com/tag-c,95,true,true,0,0,0,0
https://demo.example.com/review-d,980,false,false,9,210,96,2

Claude异常页原因说明提示词

本站独立编写,对应模板中可选的Anthropic分支;花括号字段需在工作流中映射为上一步输出。

你是SEO技术审计助手。根据下面这页的诊断数据,用一句不超过60字的中文说明它被评为「{status}」的主要原因,只引用给出的数据,不要推测。
URL:{url}
字数:{word_count}
noindex:{has_noindex}
canonical不匹配:{canonical_mismatch}
入站内链数:{inbound_links}
28天自然会话:{sessions_28d}
28天搜索点击:{gsc_clicks_28d}
外链域名数:{referring_domains}
僵尸评分:{score}/100

僵尸评分权重示例配置

本站设定的演示权重与阈值,仅作起点;模板内实际加权方式以工作流配置节点为准,请按需调整。

{
  "weights": {"thin_content": 30, "noindex": 20, "canonical_mismatch": 10, "zero_traffic": 20, "zero_internal_links": 10, "zero_backlinks": 10},
  "thresholds": {"at_risk": 40, "zombie": 70},
  "thin_content_word_limit": 300
}

输入与输出示例

本站虚构演示,评分为按示例权重手算,非模板实际运行结果。

输入

使用演示CSV中的 https://demo.example.com/old-post-b:180字、无noindex、无入站内链、28天会话3、点击0、外链0,按示例权重计分。

对应输出

thin_content 30 + zero_traffic 20 + zero_internal_links 10 + zero_backlinks 10 = 70分,状态zombie。Claude分支生成原因:「该页仅180字且28天仅3次访问、无搜索点击与外链,属于典型薄内容僵尸页,建议合并或重写。」Slack榜单中该URL位列最差页面首位。

做完检查这些

  • Postgres三张表在手动执行后均有新行,且入站内链数已按链接边聚合
  • 配置最大抓取50页时,爬行URL数不超过50且全部同域去重
  • Slack频道收到包含健康/危险/僵尸数量汇总和最差页面榜单的消息
  • 演示数据中的old-post-b按示例权重算出70分并标记为zombie

容易卡住的地方

  • GA4与GSC必须是同一Google账号有权限的资源,否则OAuth授权后节点仍报错
  • 外链商API端点与返回字段各商不同,不改解析逻辑会拿到空值导致外链项全零
  • noindex页本身无流量属正常,评分权重需自行调低以免误伤工具页
  • 站点地图若为索引型sitemap需确认模板支持递归抓取子地图

原文与作者资料 ↗

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

原文标题
Score and flag SEO zombie pages with GA4, GSC, Postgres, Claude, and Slack
原作者
Oneclick AI Squad
原始发布日期
2026-10-01T03:34:41.255Z
来源
https://n8n.io/workflows/20253