seo-readiness
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chineseseo-readiness
seo-readiness
File existence is the easy 10%. The failures that cost launches are contradictions: canonical says localhost, sitemap advertises , a left over from staging, robots blocking the pages the sitemap lists. This skill reads the relationships.
/adminnoindex文件存在只是最容易解决的 10%。真正会导致上线失败的是矛盾:canonical 指向 localhost,sitemap 公布了 ,遗留自 staging 的 ,或者 robots 屏蔽了 sitemap 列出的页面。此 skill 会读取并分析这些关系。
/adminnoindexActivate when
何时启用
- The product has public pages meant to be found, or launch/domain/redesign is near.
- Titles look like "Vite + React", canonicals or sitemap hosts look wrong, or the site has never been indexed.
- Not for a private/internal product (confirm it is consistently ), not for ranking strategy or keyword research.
noindex
- 产品有需要被搜索引擎发现的公开页面,或即将上线、切换域名或重新设计。
- 标题看起来像“Vite + React”,canonical 或 sitemap 主机看起来不对,或者网站从未被索引。
- 不适用于私有/内部产品(确认其始终为 ),也不适用于排名策略或关键词研究。
noindex
Inspect
检查
-
Intent. Should this site be indexed? Production origin (scheme, host,)? Public vs private routes? Ask only if
wwwand config do not say (.readyvibe/context.md).site-reconnaissance -
Run the sweep (paths relative to this skill's folder; addfor client-rendered apps; serve a build locally if needed):
--renderbashnode scripts/inspect-metadata.mjs --url <site> --render --private-path /dashboard node scripts/check-links.mjs --url <site> --render # sitemap/canonical target statusRead rendered HTML: frameworks can override tags after hydration. Compare with source (,<Head>exports,metadata,next-seo,react-helmet) to find where each value comes from, so fixes land in the right place.index.html -
Relationships to reason about:
Signal A vs. Signal B Problem canonical host production origin localhost/staging/preview host in a canonical (HIGH) sitemap host<loc>canonical host search engines get two truths sitemap lists path page is or private routenoindexcontradictory signals; private exposure (HIGH for admin/dashboard/api) sitemap lists path robots blocks it unfetchable listing sitemap lists path canonical points elsewhere non-canonical URL listed sitemap lists path returns 404/redirect/soft-404 dead listing ( )check-linksrobots Sitemap:actual sitemap URL/host wrong or dev sitemap advertised robots Disallow: /production intent whole site blocked (HIGH) robots Disallow: /_next//assets/rendering crawlers cannot render robots lists /adminroute reachable? robots is not access control; hands attackers a map on home/most pagesnoindexlaunch intent staging leftover (HIGH) headerx-robots-tagmeta robots header may override; check both several pages the same canonical URL ( )CANONICAL_DUPLICATE_TARGETtemplate copied from the home page; tells engines to ignore the rest robots blocks a linked public page ( )ROBOTS_BLOCKS_PAGEpage's title, description, and are never readnoindexcrawler cannot see it trailing slash / /wwwvariantshttpcanonical + redirects duplicate URL forms -
Titles and descriptions: unique per page, specific to the page's content, front-load the topic, roughly 50-60 / 120-160 characters as a guideline (truncation, not a rule); no framework defaults; no keyword stuffing. Derive copy from the page's visible content and product facts; do not invent claims.
-
Multi-language:pairs, per-language canonicals (with
hreflang).multilingual-readiness -
JS-only pages: if content appears only after JavaScript and no server rendering or prerender exists, say indexing depends on the crawler executing JS: SOURCE-INDICATED risk, not proven.
-
意图。 该网站是否应该被索引?生产环境源站(协议、主机、)是什么?哪些是公开路由,哪些是私有路由?仅当
www和配置未说明时再询问(.readyvibe/context.md)。site-reconnaissance -
运行全面检查(路径相对于此 skill 所在文件夹;对于客户端渲染的应用添加;如有需要,在本地提供构建产物):
--renderbashnode scripts/inspect-metadata.mjs --url <site> --render --private-path /dashboard node scripts/check-links.mjs --url <site> --render # sitemap/canonical target status读取渲染后的 HTML:框架可能会在 hydration 后覆盖标签。将结果与源码(、<Head>exports、metadata、next-seo、react-helmet)对比,以确定每个值的来源,从而将修复落到正确位置。index.html -
需要推理的关系:
信号 A 对比信号 B 问题 canonical 主机 生产环境源站 canonical 中出现 localhost/staging/preview 主机(HIGH) sitemap 主机<loc>canonical 主机 搜索引擎收到两套相互矛盾的信息 sitemap 列出路径 页面为 或私有路由noindex信号相互矛盾;私有内容暴露(admin/dashboard/api 为 HIGH) sitemap 列出路径 robots 阻止该路径 条目无法抓取 sitemap 列出路径 canonical 指向其他位置 列出的是非 canonical URL sitemap 列出路径 返回 404/重定向/soft-404 失效条目( )check-linksrobots Sitemap:实际 sitemap URL/主机 通告了错误或开发环境的 sitemap robots Disallow: /生产环境意图 整个网站被屏蔽(HIGH) robots Disallow: /_next//assets/渲染 爬虫无法完成渲染 robots 列出 /admin路由是否可访问? robots 不是访问控制机制;会向攻击者提供路径地图 首页或大多数页面存在 noindex上线意图 staging 遗留设置(HIGH) headerx-robots-tagmeta robots header 可能覆盖 meta robots;两者都要检查 多个页面 指向同一个 canonical URL( )CANONICAL_DUPLICATE_TARGET模板从首页复制而来;这会告诉搜索引擎忽略其他页面 robots 阻止已链接的公开页面( )ROBOTS_BLOCKS_PAGE页面的标题、描述和 从未被读取noindex爬虫无法看到它 尾部斜杠 / /www变体httpcanonical + 重定向 重复 URL 形式 -
**标题和描述:**每页唯一、与页面内容相关、将主题放在前面;大致 50-60 / 120-160 个字符仅作为指导(用于截断,不是硬性规则);不使用框架默认值;不堆砌关键词。文案应源自页面可见内容和产品事实;不要编造声明。
-
**多语言:**成对的、各语言 canonical(配合
hreflang)。multilingual-readiness -
**仅含 JS 的页面:**如果内容只在 JavaScript 执行后出现,且不存在服务端渲染或预渲染,则说明索引取决于爬虫是否执行 JS:这是 SOURCE-INDICATED 风险,而非已证实的问题。
Evidence that counts
有效证据
Label each claim OBSERVED, SOURCE-INDICATED, DECLARED, INFERRED, UNKNOWN, or REVIEW REQUIRED. UNKNOWN is never a pass and never a failure.
- Rendered tag from the running site: OBSERVED. Tag in source only: SOURCE-INDICATED.
- Local checks cannot show what the production CDN redirects, rewrites, or serves. Verify the live URL when one exists; otherwise mark host/redirect behavior UNKNOWN.
- Never state a page "is indexed", "will rank", or "Google will show X"; that needs Search Console ().
search-console-readiness
将每项结论标记为 OBSERVED、SOURCE-INDICATED、DECLARED、INFERRED、UNKNOWN 或 REVIEW REQUIRED。UNKNOWN 既不算通过,也不算失败。
- 运行中网站渲染出的标签:OBSERVED。仅存在于源码中的标签:SOURCE-INDICATED。
- 本地检查无法显示生产 CDN 会如何重定向、重写或提供内容。存在线上 URL 时应进行验证;否则将主机/重定向行为标记为 UNKNOWN。
- 绝不能声称页面“已被索引”“会获得排名”或“Google 会显示 X”;这些结论需要 Search Console()。
search-console-readiness
May change
可以修改的内容
Set/repair titles, descriptions, canonicals (only once the production origin is known: DECLARED or asked), robots.txt, sitemap.xml or its generator (, , ), on genuinely private routes, removal of private routes from the sitemap, redirects for duplicate URL forms. Preserve intentional owner copy; improve only starter, missing, duplicate, or placeholder values.
next-sitemapapp/sitemap.ts@astrojs/sitemapnoindex设置或修复标题、描述、canonical(仅在生产环境源站已知后:DECLARED 或已询问)、robots.txt、sitemap.xml 或其生成器(、、)、对确实私有的路由设置 、从 sitemap 中移除私有路由,以及为重复 URL 形式添加重定向。保留所有者有意编写的文案;仅改进初始模板、缺失、重复或占位值。
next-sitemapapp/sitemap.ts@astrojs/sitemapnoindexMust not claim
不得声称的内容
"SEO-optimized", "will be indexed", "will rank", "Google-friendly" or a numeric score. Do not claim a sitemap is correct because it exists; correctness is the agreement list above.
“已完成 SEO 优化”“会被索引”“会获得排名”“对 Google 友好”,也不要给出数字评分。不要仅因为 sitemap 存在就声称其正确;正确性取决于上述各项是否一致。
Verify
验证
Re-run and . Pass = no HIGH; every sitemap URL is public, canonical, 200, not noindex, not blocked; every canonical target resolves and is on the production host; no localhost/staging strings remain; robots and sitemap agree. Then spot-check one page in the rendered DOM.
inspect-metadatacheck-links重新运行 和 。通过标准 = 无 HIGH;每个 sitemap URL 都是公开页面,采用 canonical,返回 200,未设置 且未被阻止;每个 canonical 目标均可访问并位于生产主机上;不残留 localhost/staging 字符串;robots 与 sitemap 相互一致。然后在渲染后的 DOM 中抽查一个页面。
inspect-metadatacheck-linksnoindexEscalate
升级处理
Unknown production origin (ask before writing absolute URLs); a private route that is reachable (hand to ); site migrations with redirects; sites with several domains or heavy JS rendering where search visibility matters (deep technical SEO is beyond this pass).
web-security生产环境源站未知(写入绝对 URL 前先询问);私有路由可被访问(移交给 );带重定向的网站迁移;拥有多个域名或大量 JS 渲染且搜索可见性重要的网站(深度技术 SEO 超出本次检查范围)。
web-securityNo change is valid when
以下情况不应进行修改
The site is intentionally private and consistently noindex; a one-page site has no sitemap by design; an apparent finding is explained by context ( on ). Do not generate a sitemap or rewrite good copy to hit a length target.
noindex/dashboard网站有意设为私有且始终使用 ;单页网站按设计没有 sitemap;表面上的发现已由上下文解释(例如 上的 )。不要为了达到长度目标而生成 sitemap 或重写优质文案。
noindex/dashboardnoindex