1. One page, one subject
ブロックが公開される
Exactly one <h1>. A descriptive <title> of 15-60 characters.
なぜ: Title is the strongest per-page signal Google has. Google rewrites titles for the SERP most of the time, but the signal it forms from yours still affects ranking, and a generic or duplicated title reads as a quality problem.
2. A description written for a human
警告する
A meta description of 140-158 characters, unique to the page.
なぜ: Description does not rank the page, it decides whether anyone clicks it. Too short wastes the snippet; too long truncates mid-sentence.
3. No shared body text, ever
ブロックが公開される
Every page gets body copy and FAQ answers written for that page. Never a shared template with a noun swapped in.
なぜ: This is the one that costs months. A site we run shipped ~1700 pages on one generic FAQ body and a site-level quality classifier suppressed the whole domain — pages still indexed, ranking gone, no manual action to appeal. Recovery ran on core-update timescale.
4. Absolute canonical, paired with hreflang
ブロックが公開される
Every page self-canonicalises with an absolute URL. Any hreflang cluster ships alongside that canonical, also absolute.
なぜ: Relative hrefs are silently dropped. hreflang without a self-canonical fills the index report with "Duplicate without user-selected canonical" — 56,801 pages on one site we run.
5. Markup may only claim what the page shows
ブロックが公開される
Structured data mirrors the visible text exactly. Schema goes on the page types that earn a rich result, not on everything.
なぜ: Schema is not a general ranking input and not required for AI search -- Google says so directly. Markup that claims a price or a question the page never shows is a violation that can earn a manual action.
7. Positional {0} slots in translatable strings
ブロックが公開される
Any string that will be machine-translated uses {0}, {1} — never {name}.
なぜ: MT engines translate or transliterate the word inside the braces, or drop a brace entirely. A numeric slot has no word to translate and survives intact. This silently broke about 10% of non-English rows on one site before anyone noticed.
8. Nothing is indexable until it is finished
ブロックが公開される
Pages ship noindex. Indexing is a deliberate opt-in by the owner, per site.
なぜ: These sites share a wildcard domain. One spam tenant indexed on that wildcard damages every other tenant on it, and a half-finished page indexed on day one takes months to undo.
9. Build the thing, do not describe the thing
警告する
A page either does something useful or says something specific. A page that only describes a tool is not a page.
なぜ: Thin wrappers around someone else's API are the clearest signal a quality classifier has. Real utility is what survives a core update.
10. No orphans
警告する
Every indexable page has at least one inbound internal link.
なぜ: Internal links pass ranking signal and drive crawl. A page reachable only from the sitemap gets crawled a few times and then largely forgotten.
11. Alt text and intrinsic dimensions on every image
警告する
Every <img> has alt text and explicit width/height.
なぜ: Alt text is an accessibility requirement first and an indexing signal second. Missing dimensions cause layout shift, which is a Core Web Vitals failure on mobile — and mobile is what gets indexed.
12. Retired URLs return 410, verified
ブロックが公開される
A removed page returns 410 Gone, confirmed by an actual request after deploy.
なぜ: A 404 lingers as a soft-404 for months; a 410 deindexes cleanly. And per-view dispatch often intercepts the request before the 410-returning view is ever reached, so the check has to be a real HTTP request, not a code read.
なぜこれがスタイルガイドではなくリンターなのか
命令の中にしか存在しないルールは、モデルがほとんどの時間それに従い、残りの部分は静かに行わないという提案です。3ヶ月後のトラフィック報告でそれを知ることができます。これらはコードとして実行され、ページが書かれた後、リリースされる前に実行されます。ブロックルールに失敗したページは、理由を明記して返され、書き直されます。結果はどちらの方法でもリクエストに表示され、どのチェックが実行されたかを見ることができます。
あなたが言うまでは 何もインデックスされません
すべてのサイトが noindex を開始します。デフォルトでは発見しなくてもよい。これらのサイトがドメインを共有し、悪い隣人が一人でもあれば、全員が損をするので、linter が強制的に実行します。サイトが見つかる価値がある場合は、設定でインデックスを有効にします。
これを有効にするのは唯一のテストではありません。ドメインは共有されているので、検索エンジンが近づく前にサイトは本物でなければなりません。ホームページ、少なくとも3ページの自分の書き込み、すべてのページが上記のチェックを通過し、アカウントに確認されたメールアドレス。このテストは、お金を払ったかどうかではありません。本物のサイトである無料サイトは見つけられ、それを得たサイトはインデックスから取り除かれます。
各ページのリンター結果をレシートに記録し、レシートを利用できる APIを使って.
私の会社を自由に作れ