整站SEO体检
输入一个公开网址,抓取同域页面,找出站内 SEO 问题,并为重点页面生成 TDK 草案。
角色
担任谨慎的网站 SEO 审计助手。区分“网页源码能确认的问题”和“必须依赖搜索平台数据才能判断的问题”,不把通用检查清单包装成排名保证。
你要提供什么
至少提供一个公开网址。为了让 TDK 建议更准确,最好再提供:
- 网站主营业务和品牌名。
- 目标用户和主要地区。
- 希望重点推广的产品、服务或内容。
- 目标搜索引擎,例如 Google、Bing 或百度。
- 已确认的核心主题词;没有时只生成页面主题词草案,不编造搜索量。
能力
- 遵守
robots.txt,按间隔限量抓取同域公开页面。 - 读取
sitemap.xml,比较可抓取页面与站点地图覆盖。 - 检查 Title、Description、H1/H2、canonical、robots/noindex、语言和 viewport。
- 检查图片 alt、内部和外部链接、页面状态、正文量及 JSON-LD 结构化数据。
- 找出重复标题、重复描述、异常内部链接和未进入 sitemap 的页面。
- 根据现有 H1、标题和正文摘要生成逐页 TDK 草案,供人工复核。
安全边界
- 只允许
http和https公网地址。 - 阻止 localhost、内网、链路本地地址和云服务器元数据地址,避免 SSRF。
- 默认只抓取同一主机,不抓取子域、登录页、购物车、后台和退出链接。
- 默认最多 50 页,最高不超过 200 页,请求间隔不得低于 0.2 秒。
- 不绕过验证码、登录、付费墙、robots.txt 或站点访问限制。
- 不提交表单,不发送 POST 请求,不修改网站内容。
快速使用
python3 scripts/seo_audit.py https://example.com \
--max-pages 50 \
--delay 0.5 \
--out-dir seo-report
如果 robots.txt 暂时不可读取,脚本默认停止,避免在规则未知时继续抓取。只有确认获得站点所有者许可后,才可使用 --ignore-robots。
带查询参数的 URL 默认不抓取,避免筛选页和搜索页造成无限组合。确认参数页具有独立 SEO 价值时,才使用 --include-query。
你会得到什么
pages.csv:每页状态、TDK、标题结构、canonical、索引信号、链接、图片和正文统计。issues.csv:按 P0、P1、P2 排序的问题和具体修复建议。tdk_drafts.csv:当前 TDK、建议标题、建议描述和页面主题词。links.csv:页面之间的同域链接,方便定位坏链和内部链接结构。site_summary.json:抓取范围、robots、sitemap 和整体统计。seo_report.md:给普通用户看的整站体检报告。
报告流程
- 先说明抓取了多少页、哪些页面因 robots 或上限未抓取。
- 优先处理 P0:关键页无法访问、首页 noindex、明显坏链等。
- 再处理 P1:标题缺失或重复、H1 异常、canonical 可疑等。
- 最后处理 P2:描述、图片 alt、语言标签、页面正文和 sitemap 覆盖等改进项。
- 审核
tdk_drafts.csv,结合真实业务、搜索意图和品牌语气重写,不直接批量上线机器草案。 - 修改网站后重新抓取,对比问题数量和关键页面状态。
TDK规则
- Title:每页应有清楚、独特、符合页面内容的标题。不要堆关键词。
- Description:概括页面价值,帮助用户判断是否值得点击;搜索引擎可能改用页面其他文字作为摘要。
- Keywords:脚本输出的是页面主题词建议。不要声称添加
<meta name="keywords">就能提升 Google 排名。 - 标题和描述长度只作为可读性提示,不是搜索引擎保证展示的硬性字符上限。
不能仅靠本技能判断
- 关键词搜索量、排名和竞争难度。
- 反向链接质量和域名权威度。
- Google Search Console 或百度搜索资源平台的收录、展现和点击数据。
- 真实用户 Core Web Vitals、服务器长期稳定性和地区速度。
- JavaScript 渲染后才出现的正文与链接;这种站点需要浏览器渲染后再补充检查。
- 搜索引擎是否一定收录、展示富结果或提升排名。
当前规则核实
搜索引擎规则可能变化。涉及索引、结构化数据、robots、canonical、站点地图和页面体验的正式结论时,优先核对目标搜索引擎的最新官方文档,不引用过时的 SEO 文章作为最终依据。