seo/heading-level-skip · 見出しの順序
見出しのレベルは飛ばさずに使いましょう。
重大度: info
チェック内容
直前の見出しからレベルが2段以上跳ね上がる見出し(例: <h2> の直後に <h4>)を検出します。単一の <h1> の有無は seo/single-h1 が担当します。
なぜ重要か
見出しレベルを飛ばすとドキュメントアウトラインが崩れます。支援技術はこのアウトラインを頼りにページ構造を読み取っており、検索エンジンも構造シグナルの1つとして利用します。
修正方法
<h1>ページタイトル</h1><h2>セクション</h2><h3>サブセクション</h3>
モードによる違い
両モードとも見出しを収集しますが、収集元が異なるため結果が食い違うことがあります。
- ソース解析(CLI、ダッシュボードの静的ベースライン)はルートの
.svelteテンプレートを走査します。そのため、{#if false}のようなレンダリングされない分岐の中にある見出しも数える一方、インポートした子コンポーネントが描画する見出しは見えません。 - レンダリング解析(Vite プラグインのビルド、ダッシュボードで訪問したルート)はレンダリング済みの HTML を読みます。そのため、コンポーネントが描画した見出しも認識し、実際にレンダリングされた分岐だけを数えます。
両者が食い違う場合は、レンダリング結果を信頼してください。ブラウザに配信される内容を反映しているのはそちらです。
無効化
既存の検出は suppressions ファイルに記録して抑制できます(npx svelte-vitals --update-suppressions)。overrides でルートやパス単位に絞るか、ルールごと無効化するには、次のように設定します。
export default {
rules: {
'seo/heading-level-skip': 'off'
}
};