整合性を維持する運用ガイド|3層同期チェックリストとCI自動化の教科書

第2章で三枚舌を、第3章で見出し階層を直しました。しかし整合性は放っておくと必ず崩れます。 記事リライト、CMS移行、デザインリニューアル、新しい執筆者の参加——運用中のあらゆるイベントが、 3層同期を部分的に壊します。本章では、崩さない仕組みを4つのレイヤー(更新フロー / PRレビュー / CI / 定期監視)で設計します。

1. 整合性が崩れる"イベント"を先に把握する

運用設計の第一歩は、どのイベントで矛盾が発生するかを列挙することです。 崩れる瞬間が特定できれば、そこに対して防御策を配置できます。

イベント崩れやすい層典型的な症状
記事タイトルのリライトLayer 1 ↔ Layer 2titleだけ更新、JSON-LD.headlineは旧値のまま
CMSテンプレート変更Layer 1 全体og:titleのフォーマットだけ変わり、titleと乖離
著者情報の変更Layer 2 ↔ Layer 3author.nameは更新、本文末のクレジットは旧著者
デザインリニューアルLayer 3H1がlogo画像に変わり、本文タイトルがH2降格
サイト統廃合・URL変更Layer 1 + Layer 2canonicalと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は、ほぼ確実に矛盾を生みます。

PRテンプレート例(.github/PULL_REQUEST_TEMPLATE.md)Markdown
## 概要
<!-- 何を変更したか -->

## 構造的整合性チェック(該当する項目がある場合のみ)
以下のいずれかを変更した場合、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つにまとまっている

観点② 見出し階層の変更を検知する

見出しタグ(h1h4)の追加・削除・降格がある 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を検証します。

.github/workflows/seo-checks.ymlYAML
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版です。

scripts/lint-headings.tsTypeScript
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のheadlineh1の4つを抽出し、文字列が完全一致するかをテストします。派生を許容する場合は、 主要キーワードの部分一致に緩めた正規表現ベースのチェックに変更します。

💡 "完全一致"と"主題一致"のトレードオフ
SEO上はtitleにサイト名を付け、og:titleには付けない、など正当な派生があります。 CIでは「主要キーワードの2語以上が共通しているか」といった緩めの条件で実装し、 厳密な意味チェックは人間のPRレビューに委ねる設計が実用的です。

5. 定期監視:AIOGeoScanを"ダッシュボード"として運用する

CIで防げるのは「コードに起因する矛盾」です。CMSでの記事編集やデザイン変更など、コード外で発生する矛盾は、定期診断でしか発見できません。

📊 定期診断の運用設計(推奨)
  • 頻度: 主要ページ(トップ、カテゴリ、流入上位10〜20記事)は週次、 全ページは月次。リライトが多いメディアは週次の対象を広げる。
  • 責任者: SEO担当・エンジニア・編集者の3職能のうち1人を「整合性オーナー」として任命。 診断レポートの確認とIssue起票を担当。
  • ワークフロー: 診断で赤が出た項目は即座にIssueに登録し、更新フロー(原則A)に乗せて修正。 パッチの過程で再発防止策(SSOT化、CIチェック追加)も検討。

6. ゴールデン・チェックリスト

本章の運用設計を1枚のチェックリストにまとめます。組織に導入する時はこれをそのまま貼ってください

1. 一次情報源(SSOT)の定義ページのtitle・著者・公開日などの一次情報源をドキュメント化し、全派生先(meta / og / JSON-LD / H1)を1つの変数から生成する設計になっている。
2. 更新フローの明文化「titleを変えるPRは3層すべての同時更新を必須とする」というルールを、エンジニアリングガイドに明記している。
3. PRテンプレートの導入.github/PULL_REQUEST_TEMPLATE.md に構造的整合性の確認項目が含まれており、該当差分を含むPRで自動的に提示される。
4. CI自動チェック 3点JSON-LD妥当性 / 見出し階層スキップ / メタ情報の主題一致——この3つが GitHub Actions でPRごとに実行されている。
5. 定期診断スケジュール主要ページは週次、全ページは月次でAIOGeoScanを走らせ、整合性オーナーがレポートを確認する運用が定着している。
6. 再発防止のフィードバックループ診断で見つかった矛盾は修正だけで終わらず、発生源にSSOT化・CIチェック追加などの再発防止策を講じる文化が根付いている。

7. このガイドが提示した新しい"品質指標"

本ガイド全4章を通じて、「整合性」という新しいWeb品質指標を提示してきました。 従来のSEOが「カテゴリ別ベストプラクティスの積み上げ」だったのに対し、 AI時代のWeb品質は 「カテゴリ横断の整合性が取れていること」が前提条件になります。

🎯 整合性という品質指標のエッセンス
  • 主題の三角測量: メタ情報・構造化データ・見出し階層で同じ主題を主張しているか(第1・2章)。
  • 構造の包含関係: 見出し階層が木構造として正しく読めるか(第3章)。
  • 同期の継続性: 運用で崩れた瞬間を検知し、修復するループが回っているか(第4章=本章)。

整合性が取れたサイトは、AI Overviews や生成AIがページを解釈する際の手がかりが揃いやすくなります。 これは魔法の近道ではありませんが、検索表示・構造化データ利用・AIによる参照の土台を安定させる実務条件として重要です。 逆に言えば、どれだけコンテンツの質を上げても、整合性が崩れているとその価値が伝わりにくくなります。

📌 本ガイドの締めくくりとして
構造的整合性は、一度整えたら終わりの作業ではなく、運用に組み込んだループとして継続するものです。 SSOT → PRレビュー → CI → 定期診断の4つのレイヤーすべてを回し続けることで、 AI時代に長期的に引用され続けるサイトを維持できます。 まずはAIOGeoScanの無料診断で、 今のあなたのサイトの整合性スコアを確認するところから始めてください。
📙 シリーズ:構造的整合性ガイド

全4章を通して、カテゴリ横断の整合性がAIに与える影響を体系的に理解します。

整合性を"運用で落とさない"
仕組みを、今日から。

AIOGeoScanは、カテゴリ横断の整合性を1画面で可視化する診断ツールです。 本章のチェックリストを回す最初の一歩として、無料診断でサイトの現状を把握しましょう。

今すぐ整合性スコアを無料診断する
Editorial Trust Signals

このナレッジベースの編集方針

`AIOGeoScan Knowledge` は、Bennu Inc. が運営する AI検索・構造化データ・クローラー制御に関する実務ナレッジです。 Google Search Central、Schema.org、OpenAI などの一次情報を優先し、観測ベースの実務知見は本文中で区別して扱います。

運営主体
Bennu Inc. / AIOGeoScan
更新方針
仕様変更や検索機能の更新にあわせて都度改訂
優先ソース
公式ドキュメント・標準仕様・公式ヘルプ
補助ソース
実装観測・運用知見・再現性のある検証結果

あなたのサイト、AIに正しく伝わっていますか?

解説を読み終えたら、実際にあなたのサイトを診断してみましょう。
100項目以上の診断で、AI時代の構造課題を可視化します。

無料で診断を開始する