Beta · v1

クヌギスキーマ

「自社サイトの各 URL に、JSON-LD/Microdata/RDFa の構造化マークアップが正しく入っているか」「Google のリッチリザルト対象機能をどれだけ満たしているか」「マークアップ内容とページの実コンテンツがズレていないか」を、定期クロールで継続的に可視化するためのウェブアプリケーションです。

クヌギスキーマ は MIT ライセンスで無料公開しています

本ソフトウェア自体の利用料・サブスクリプションは一切かかりません。商用・非商用を問わず、改変・再配布も自由に行えます。

※ 外部 API は使いません。クロール対象 URL に対して自サーバから直接 HTTP リクエストを送り、HTML を取得・解析します。発生する費用はサーバ代と外部通信料のみです。

クヌギスキーマ Ver 1(ベータ版)をダウンロード

kunugi_schema_Ver1.zip を解凍し、PHP 8.1 以上が動くサーバの公開ディレクトリ配下に配置してください。MIT ライセンスのオープンソースなので、登録・支払いなしで今すぐ使えます。

※ 必ず Basic 認証下で運用してください(後述)。

kunugi_schema_Ver1.zip

必ず最初にお読みください

導入前に下記の 4 項目を必ずご確認ください。とくに「Basic 認証」「対象サーバへの配慮」「メール送信設定」は、見落とすと予期せぬトラブルやパスワード再発行の不達につながります

① これは「ベータ版」です

本ツールは Ver 1(ベータ版) です。本番運用に耐えうる動作確認は行っていますが、機能追加に伴いエラーが発生する可能性があります。重要な意思決定に使う前に、ご自身の環境で十分な検証を行ってください。

  • DB は SQLite を使用。定期バックアップを必ず取得してください(同梱の data/schema.db・WAL/SHM を別ストレージへ退避することを推奨)。
  • 不具合に遭遇した場合は再現手順とログ(data/cron.log・ブラウザの DevTools コンソール)を控えておくと原因特定が容易です。

② MIT ライセンスで配布しています

商用・非商用を問わず利用・改変・再配布できますが、トラブルを避けるために、以下の点を明記しておきます。

  • 無保証です。使った結果のいかなる損害(売上ロス、データ消失、対象サーバへの過剰アクセスによるトラブル、情報漏えい等)も作者・配布元は責任を負いません。
  • 再配布される際は、著作権表示と MIT 許諾表示を、ご自身の都合の良いファイル(README、ABOUT、画面のクレジット欄、ソース内コメント、LICENSE ファイルなど、形式は問いません)に記載していただければ大丈夫です。同梱の LICENSE ファイルをそのまま残すのが一番手軽な方法です。
  • 本ツールを組み込んだサービスを有償で提供することも可能です。再販時にご自身のサービスとして独自に保証・サポートを付けるかどうかは、再販者の自由です(保証付きで提供しても、無保証のまま提供しても問題ありません)。ただし、本ツール本体(クヌギスキーマ Project Contributors)の作者・配布元は、再販者および再販先のエンドユーザーに対して、いかなる保証も負いません。本ツールに起因するトラブルや損害があった場合の対応・補償は、再販者ご自身の責任で行ってください。

③ Basic 認証下での運用を強く推奨

クヌギスキーマ 自体にもログイン機能はありますが、Web サーバ側の Basic 認証を組み合わせ、二重に保護した状態で運用することを強く推奨します。理由は以下のとおりです。

  • SQLite DB に 登録ユーザーのパスワードハッシュパスワード再発行トークンクロール対象 URL の一覧が保存されます。万一画面が外部に公開されてしまうと、これらの内部情報が漏えいする恐れがあります。
  • 同梱の .htaccess には data/src/cron/ の直接アクセスを拒否する RewriteRule が含まれています。必ずそのまま残し、その上で Basic 認証も併用してください。
  • 不特定多数からアクセスされる URL では公開しないでください。社内 / 関係者のみがアクセスできるパスに置く想定です。
  • さらに data/cron/ 各ディレクトリには、HTTP からの直接アクセスを常時拒否する .htaccess が標準で同梱されています。Basic 認証の設定漏れがあった場合でも、SQLite DB 本体・cron スクリプトが Web 経由で参照されることを防ぐ「二段目の防壁」として機能します。
    # data/, cron/ の .htaccess に同梱されているディレクティブ
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order deny,allow
        Deny from all
    </IfModule>
    Apache 2.4+(mod_authz_core 有効)では Require all denied、それ未満(2.2 系)では Deny from all がそれぞれ適用され、サーバ側のモジュール構成に依存せず確実に拒否されます。これらの .htaccess は削除・改変しないでください。

④ クロール対象サーバへの配慮を必ず行ってください

クヌギスキーマ は自社サイトの構造化マークアップ点検を主眼に置いた小規模クローラです。ただし設定によっては短時間に多数のリクエストを送れてしまうため、必ず以下を守ってください。

  • クロール対象は自社で運用している URL のみに限定してください。他社サイトへの無断クロールは利用規約違反・法令違反となる恐れがあります。
  • 手動でクロール実行Cron スケジュール「クロール間隔(秒)」は最低 1 秒以上、安全側なら3〜5 秒を推奨します(手動画面の初期値は 5 秒)。
  • User-Agent には KunugiSchemaChecker/1.0 を含む文字列を送ります。対象サーバ側で必要に応じて許可ルールを追加してください。
  • 1 URL あたりのレスポンス本文は最大 4MB までを取得対象とします(大きな PDF などへの誤適用を防ぐため)。

⑤ メール送信(パスワード再発行用)の設定

パスワード再発行は、登録メールアドレス宛にワンタイムリンクを送信する方式です。サーバから外部メールを送信できる状態になっていることを事前に確認してください。

  • 送信は標準の PHP mail() 関数を経由します。共用レンタルサーバの場合はそのまま使えるケースが多いですが、独自 VPS / クラウドでは MTA(postfixsendmail)または外部 SMTP 経由の設定が必要です。
  • 送信元アドレスはサーバ既定値が使われます。SPF / DKIM が未設定だと、Gmail などで迷惑メール扱いになる場合があります。
  • もしメール送信ができない環境の場合は、システム管理者がアカウント管理画面から直接パスワードを再設定することもできます(アカウント管理)。

クヌギスキーマ でできること(概要)

左サイドバーで全機能ページにアクセスできます。下記は主な機能のショートカットです。

インストール方法サーバ要件・配置・初期管理者・Basic 認証・cron 設定 データベース設計SQLite 単一 DB の全テーブル一覧と役割 ダッシュボード登録 URL 数・エラー件数・Google 対応 URL 数を一目で確認 プロダクト管理サイト / 商品ライン単位でクロール対象を束ねる URLの追加・修正・削除一括登録・検索・ソート・一括削除・直近 HTTP 表示 メタ情報の事前登録WebSite 期待値・パンくずセレクター・JSON-LD プレビュー 構造化マークアップ検出設定提案・照合対象の種別をプロダクト単位でオン/オフ 手動でクロール実行SSE 進捗表示・3 モード(未クロール/全件/選択)・件数上限 結果一覧/詳細URL ごとの検出スキーマ・提案・一致確認をブラウザで閲覧 エラーURL管理4xx / 5xx になった URL のログ削除・URL ごと削除 CSV ダウンロードサマリー/一致確認/提案/検出エンティティの 4 種 アカウント管理2 種ロール(システム管理者/プロダクト管理者)の発行・編集 ログイン/パスワード再発行初期セットアップとメールワンタイムリンクの仕組み Cron スケジュール毎月の実行日 + cron 1 回あたりの URL 上限(全体) cron 自動実行1 時間に 1 回叩く前提・URL レベルで重複防止 Google リッチリザルト対応★Google対応バッジが付く仕組みと対応機能一覧 マークアップ × ページ内容の一致確認title / h1 / 著者 / パンくず / FAQ などの突き合わせ

動作要件(最小限)

項目要件
PHP8.1 以上(PDO_SQLITE / mbstring / json / curl / dom が有効)
Web サーバApache 2.4+(mod_rewrite が有効)。Nginx でも動きますが .htaccess 相当を別途設定してください
SQLite3.34 以上(PHP に同梱されているもので可)
外部到達性クロール対象 URL(自社サイト)への HTTPS アウトバウンド
cron1 時間に 1 回 php cron/run_cron.php を回す(任意・推奨。例: 0 * * * *
動作確認済み環境 エックスサーバー(Xserver)の PHP 8.3.30 で動作確認しています。Xserver の標準構成(Apache + mod_rewrite + SQLite 同梱)でそのまま動作します。Cron も Xserver サーバーパネルの「Cron 設定」から GUI で登録できます(インストール方法 → Xserver での Cron 設定例を参照)。
次のステップ まずは インストール方法 を参照し、サーバへ配置 → Basic 認証設定 → 初期管理者作成 → プロダクト追加 → URL 登録 → 手動でクロール実行、の順に進めてください。