整合性を維持する運用ガイド|3層同期チェックリストとCI自動化の教科書
各章へクイックジャンプ:
第2章で三枚舌を、第3章で見出し階層を直しました。しかし整合性は放っておくと必ず崩れます。 記事リライト、CMS移行、デザインリニューアル、新しい執筆者の参加——運用中のあらゆるイベントが、 3層同期を部分的に壊します。本章では、崩さない仕組みを4つのレイヤー(更新フロー / PRレビュー / CI / 定期監視)で設計します。
1. 整合性が崩れる"イベント"を先に把握する
運用設計の第一歩は、どのイベントで矛盾が発生するかを列挙することです。 崩れる瞬間が特定できれば、そこに対して防御策を配置できます。
| イベント | 崩れやすい層 | 典型的な症状 |
|---|---|---|
| 記事タイトルのリライト | Layer 1 ↔ Layer 2 | titleだけ更新、JSON-LD.headlineは旧値のまま |
| CMSテンプレート変更 | Layer 1 全体 | og:titleのフォーマットだけ変わり、titleと乖離 |
| 著者情報の変更 | Layer 2 ↔ Layer 3 | author.nameは更新、本文末のクレジットは旧著者 |
| デザインリニューアル | Layer 3 | H1がlogo画像に変わり、本文タイトルがH2降格 |
| サイト統廃合・URL変更 | Layer 1 + Layer 2 | canonicalとog:url・@idの不一致 |
| スキーマ追加実装 | Layer 2 | 新スキーマの値が本文と未対応 |
2. 更新フロー:1イベント = 3層同時更新の原則
最も重要なのは、「タイトルを変更する」というタスクを、3層にまたがる1つの作業単位として扱う運用ルールです。 部分更新はすべてNGと決めるだけで、矛盾発生率は大きく下がります。
- 原則A|Issue / チケット単位で3層を扱う: タイトル変更のチケットは「titleを変える」ではなく「主題を再定義する」と定義し、 タスク内訳に「①CMSのtitleフィールド更新」「②JSON-LDテンプレート確認」「③本文H1との整合確認」を明記します。
- 原則B|SSOT(一次情報源)の徹底: 第1章で扱った一次情報源パターンを徹底し、1つの変数を変更すれば3層すべてが追従する状態を目指します。 SSOTが取れていれば、原則Aの3ステップは事実上1ステップに縮まります。
- 原則C|"部分更新禁止"を明文化する: READMEやエンジニアリングガイドラインに「titleを変更するPRはJSON-LDと本文H1の同時更新を必須とする」と記載。 レビュアーがこの観点で止められるよう、チーム合意を取ります。
3. PRレビュー観点:差分から矛盾を発見する
レビュアーに整合性観点の具体的な見方を共有すれば、矛盾の多くはマージ前に発見できます。 PR diff上で見るべき3つの観点を整理します。
観点① 「片方だけ」変わっている行がないか
タイトル・著者・日付・主題キーワード——これらのいずれかが差分に含まれるPRでは、同じページ内のメタ / JSON-LD / H1 / 本文すべてに差分があるかを確認します。 片方だけ変わっているPRは、ほぼ確実に矛盾を生みます。
## 概要 <!-- 何を変更したか --> ## 構造的整合性チェック(該当する項目がある場合のみ) 以下のいずれかを変更した場合、3層すべての同期を確認してください: - [ ] title / meta description の変更 → - [ ] og:title / og:description も同期 - [ ] JSON-LD の headline / description も同期 - [ ] 本文H1 / リード文も同期 - [ ] 著者情報の変更 → - [ ] JSON-LD の author.name も同期 - [ ] 本文末クレジットも同期 - [ ] 公開日 / 更新日の変更 → - [ ] JSON-LD の datePublished / dateModified も同期 - [ ] sitemap.xml の lastmod も同期 - [ ] 本文内の日付表記も同期 ## 検証 - [ ] Rich Results Test で JSON-LD がエラーなし - [ ] AIOGeoScan 再診断で主題グループが1つにまとまっている
観点② 見出し階層の変更を検知する
見出しタグ(h1〜h4)の追加・削除・降格がある PR は、変更後の階層ツリー全体をレビュー対象にします。1行の修正に見えても、 その前後の階層包含関係が壊れていないかを必ず確認します。
観点③ テンプレート変更は全ページへの波及
共通テンプレート(layout.tsx、metadataジェネレーター、JSON-LDビルダー)の変更は、1ページのPRで数百ページに影響します。レビュー時は必ず「本番で影響を受けるURL数」を想定し、 代表ページ3〜5件で手動検証する運用にします。
4. CI / 自動テストへの組み込み
人間のレビューには見落としが付き物です。機械で確実に検出できる項目は CI に任せます。 ここでは、GitHub Actions で実装できる3つの自動チェックを紹介します。
チェックA: JSON-LDの構文・スキーマ妥当性
schema-dts などのTypeScript型定義や、structured-data-testing-toolといったライブラリで、 ビルド時に全ページのJSON-LDを検証します。
name: seo-checks
on: [pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: '20' }
- run: npm ci
- name: Build site
run: npm run build
- name: Validate JSON-LD
run: npm run test:jsonld # schema-dts + カスタムスクリプト
- name: Heading hierarchy lint
run: npm run lint:headings # HTMLパースで階層スキップ検知
- name: Meta consistency check
run: npm run check:meta # title vs og:title vs JSON-LD.headline
チェックB: 見出し階層のスキップ検出
ビルド成果物のHTMLをcheerio等でパースし、H1→H3といった階層スキップを自動検知します。 第3章のmdxComponentsパターンの、CI版です。
import { load } from 'cheerio';
import { readFileSync } from 'fs';
import { globSync } from 'glob';
const files = globSync('.next/server/app/**/*.html');
let hasError = false;
for (const file of files) {
const $ = load(readFileSync(file, 'utf-8'));
let lastLevel = 0;
$('h1, h2, h3, h4, h5, h6').each((_, el) => {
const level = Number(el.tagName.substring(1));
if (lastLevel > 0 && level > lastLevel + 1) {
console.error(
`[${file}] skipped: H${lastLevel} → H${level}`
);
hasError = true;
}
lastLevel = level;
});
}
process.exit(hasError ? 1 : 0);チェックC: メタ情報の主題一致
<title>・og:title・JSON-LDのheadline・h1の4つを抽出し、文字列が完全一致するかをテストします。派生を許容する場合は、 主要キーワードの部分一致に緩めた正規表現ベースのチェックに変更します。
SEO上はtitleにサイト名を付け、og:titleには付けない、など正当な派生があります。 CIでは「主要キーワードの2語以上が共通しているか」といった緩めの条件で実装し、 厳密な意味チェックは人間のPRレビューに委ねる設計が実用的です。
5. 定期監視:AIOGeoScanを"ダッシュボード"として運用する
CIで防げるのは「コードに起因する矛盾」です。CMSでの記事編集やデザイン変更など、コード外で発生する矛盾は、定期診断でしか発見できません。
- 頻度: 主要ページ(トップ、カテゴリ、流入上位10〜20記事)は週次、 全ページは月次。リライトが多いメディアは週次の対象を広げる。
- 責任者: SEO担当・エンジニア・編集者の3職能のうち1人を「整合性オーナー」として任命。 診断レポートの確認とIssue起票を担当。
- ワークフロー: 診断で赤が出た項目は即座にIssueに登録し、更新フロー(原則A)に乗せて修正。 パッチの過程で再発防止策(SSOT化、CIチェック追加)も検討。
6. ゴールデン・チェックリスト
本章の運用設計を1枚のチェックリストにまとめます。組織に導入する時はこれをそのまま貼ってください。
7. このガイドが提示した新しい"品質指標"
本ガイド全4章を通じて、「整合性」という新しいWeb品質指標を提示してきました。 従来のSEOが「カテゴリ別ベストプラクティスの積み上げ」だったのに対し、 AI時代のWeb品質は 「カテゴリ横断の整合性が取れていること」が前提条件になります。
- 主題の三角測量: メタ情報・構造化データ・見出し階層で同じ主題を主張しているか(第1・2章)。
- 構造の包含関係: 見出し階層が木構造として正しく読めるか(第3章)。
- 同期の継続性: 運用で崩れた瞬間を検知し、修復するループが回っているか(第4章=本章)。
整合性が取れたサイトは、AI Overviews や生成AIがページを解釈する際の手がかりが揃いやすくなります。 これは魔法の近道ではありませんが、検索表示・構造化データ利用・AIによる参照の土台を安定させる実務条件として重要です。 逆に言えば、どれだけコンテンツの質を上げても、整合性が崩れているとその価値が伝わりにくくなります。
構造的整合性は、一度整えたら終わりの作業ではなく、運用に組み込んだループとして継続するものです。 SSOT → PRレビュー → CI → 定期診断の4つのレイヤーすべてを回し続けることで、 AI時代に長期的に引用され続けるサイトを維持できます。 まずはAIOGeoScanの無料診断で、 今のあなたのサイトの整合性スコアを確認するところから始めてください。
全4章を通して、カテゴリ横断の整合性がAIに与える影響を体系的に理解します。
整合性を"運用で落とさない"
仕組みを、今日から。
AIOGeoScanは、カテゴリ横断の整合性を1画面で可視化する診断ツールです。 本章のチェックリストを回す最初の一歩として、無料診断でサイトの現状を把握しましょう。
今すぐ整合性スコアを無料診断する8. 参考資料
- Google Search Central: Introduction to structured data markup in Google Search
- Google Search Central: AI features and your website
- Google Rich Results Test
- google/schema-dts: TypeScript types for Schema.org
- GitHub Actions Documentation
- cheerio: HTML parsing for Node.js
- Search Console Help: Performance report (Search results)