seo-readiness

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

seo-readiness

seo-readiness

File existence is the easy 10%. The failures that cost launches are contradictions: canonical says localhost, sitemap advertises
/admin
, a
noindex
left over from staging, robots blocking the pages the sitemap lists. This skill reads the relationships.
文件存在只是最容易解决的 10%。真正会导致上线失败的是矛盾:canonical 指向 localhost,sitemap 公布了
/admin
,遗留自 staging 的
noindex
,或者 robots 屏蔽了 sitemap 列出的页面。此 skill 会读取并分析这些关系。

Activate 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
    noindex
    ), not for ranking strategy or keyword research.
  • 产品有需要被搜索引擎发现的公开页面,或即将上线、切换域名或重新设计。
  • 标题看起来像“Vite + React”,canonical 或 sitemap 主机看起来不对,或者网站从未被索引。
  • 不适用于私有/内部产品(确认其始终为
    noindex
    ),也不适用于排名策略或关键词研究。

Inspect

检查

  1. Intent. Should this site be indexed? Production origin (scheme, host,
    www
    )? Public vs private routes? Ask only if
    .readyvibe/context.md
    and config do not say (
    site-reconnaissance
    ).
  2. Run the sweep (paths relative to this skill's folder; add
    --render
    for client-rendered apps; serve a build locally if needed):
    bash
    node scripts/inspect-metadata.mjs --url <site> --render --private-path /dashboard
    node scripts/check-links.mjs      --url <site> --render     # sitemap/canonical target status
    Read rendered HTML: frameworks can override tags after hydration. Compare with source (
    <Head>
    ,
    metadata
    exports,
    next-seo
    ,
    react-helmet
    ,
    index.html
    ) to find where each value comes from, so fixes land in the right place.
  3. Relationships to reason about:
    Signal Avs. Signal BProblem
    canonical hostproduction originlocalhost/staging/preview host in a canonical (HIGH)
    sitemap
    <loc>
    host
    canonical hostsearch engines get two truths
    sitemap lists pathpage is
    noindex
    or private route
    contradictory signals; private exposure (HIGH for admin/dashboard/api)
    sitemap lists pathrobots blocks itunfetchable listing
    sitemap lists pathcanonical points elsewherenon-canonical URL listed
    sitemap lists pathreturns 404/redirect/soft-404dead listing (
    check-links
    )
    robots
    Sitemap:
    actual sitemap URL/hostwrong or dev sitemap advertised
    robots
    Disallow: /
    production intentwhole site blocked (HIGH)
    robots
    Disallow: /_next/
    /assets/
    renderingcrawlers cannot render
    robots lists
    /admin
    route reachable?robots is not access control; hands attackers a map
    noindex
    on home/most pages
    launch intentstaging leftover (HIGH)
    x-robots-tag
    header
    meta robotsheader may override; check both
    several pagesthe same canonical URL (
    CANONICAL_DUPLICATE_TARGET
    )
    template copied from the home page; tells engines to ignore the rest
    robots blocks a linked public page (
    ROBOTS_BLOCKS_PAGE
    )
    page's title, description, and
    noindex
    are never read
    crawler cannot see it
    trailing slash /
    www
    /
    http
    variants
    canonical + redirectsduplicate URL forms
  4. 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.
  5. Multi-language:
    hreflang
    pairs, per-language canonicals (with
    multilingual-readiness
    ).
  6. 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.
  1. 意图。 该网站是否应该被索引?生产环境源站(协议、主机、
    www
    )是什么?哪些是公开路由,哪些是私有路由?仅当
    .readyvibe/context.md
    和配置未说明时再询问(
    site-reconnaissance
    )。
  2. 运行全面检查(路径相对于此 skill 所在文件夹;对于客户端渲染的应用添加
    --render
    ;如有需要,在本地提供构建产物):
    bash
    node 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>
    、
    metadata
    exports、
    next-seo
    、
    react-helmet
    、
    index.html
    )对比,以确定每个值的来源,从而将修复落到正确位置。
  3. 需要推理的关系:
    信号 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-links
    )
    robots
    Sitemap:
    实际 sitemap URL/主机通告了错误或开发环境的 sitemap
    robots
    Disallow: /
    生产环境意图整个网站被屏蔽(HIGH)
    robots
    Disallow: /_next/
    /assets/
    渲染爬虫无法完成渲染
    robots 列出
    /admin
    路由是否可访问?robots 不是访问控制机制;会向攻击者提供路径地图
    首页或大多数页面存在
    noindex
    上线意图staging 遗留设置(HIGH)
    x-robots-tag
    header
    meta robotsheader 可能覆盖 meta robots;两者都要检查
    多个页面指向同一个 canonical URL(
    CANONICAL_DUPLICATE_TARGET
    )
    模板从首页复制而来;这会告诉搜索引擎忽略其他页面
    robots 阻止已链接的公开页面(
    ROBOTS_BLOCKS_PAGE
    )
    页面的标题、描述和
    noindex
    从未被读取
    爬虫无法看到它
    尾部斜杠 /
    www
    /
    http
    变体
    canonical + 重定向重复 URL 形式
  4. **标题和描述:**每页唯一、与页面内容相关、将主题放在前面;大致 50-60 / 120-160 个字符仅作为指导(用于截断,不是硬性规则);不使用框架默认值;不堆砌关键词。文案应源自页面可见内容和产品事实;不要编造声明。
  5. **多语言:**成对的
    hreflang
    、各语言 canonical(配合
    multilingual-readiness
    )。
  6. **仅含 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 (
next-sitemap
,
app/sitemap.ts
,
@astrojs/sitemap
),
noindex
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.
设置或修复标题、描述、canonical(仅在生产环境源站已知后:DECLARED 或已询问)、robots.txt、sitemap.xml 或其生成器(
next-sitemap
、
app/sitemap.ts
、
@astrojs/sitemap
)、对确实私有的路由设置
noindex
、从 sitemap 中移除私有路由,以及为重复 URL 形式添加重定向。保留所有者有意编写的文案;仅改进初始模板、缺失、重复或占位值。

Must 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
inspect-metadata
and
check-links
. 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-metadata
和
check-links
。通过标准 = 无 HIGH;每个 sitemap URL 都是公开页面,采用 canonical,返回 200,未设置
noindex
且未被阻止;每个 canonical 目标均可访问并位于生产主机上;不残留 localhost/staging 字符串;robots 与 sitemap 相互一致。然后在渲染后的 DOM 中抽查一个页面。

Escalate

升级处理

Unknown production origin (ask before writing absolute URLs); a private route that is reachable (hand to
web-security
); site migrations with redirects; sites with several domains or heavy JS rendering where search visibility matters (deep technical SEO is beyond this pass).
生产环境源站未知(写入绝对 URL 前先询问);私有路由可被访问(移交给
web-security
);带重定向的网站迁移;拥有多个域名或大量 JS 渲染且搜索可见性重要的网站(深度技术 SEO 超出本次检查范围)。

No 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 (
noindex
on
/dashboard
). Do not generate a sitemap or rewrite good copy to hit a length target.
网站有意设为私有且始终使用
noindex
;单页网站按设计没有 sitemap;表面上的发现已由上下文解释(例如
/dashboard
上的
noindex
)。不要为了达到长度目标而生成 sitemap 或重写优质文案。