Crater Stack:4つの自社プラグインが海外向けサイトの何を解決するか
1. 海外向けサイトの4つの断絶
クライアントのサイト監査で繰り返し現れるのは「何かの機能が足りない」ではなく同じ事柄の情報が3〜4か所に散らばり、互いに同期していないこと。最も典型的な4つの断絶:
| 断絶 | パフォーマンス | 実際のコスト |
|---|---|---|
| 言語の断絶 | 翻訳プラグインは翻訳だけで、hreflangと多言語URLは扱わない | 翻訳はしたのに、対象言語で検索に出てこない |
| リードの断絶 | フォームプラグイン・分析ツール・CRMがバラバラ | 問い合わせはあるのに流入元がわからず、改善できない |
| セキュリティの断絶 | 無防備か、セキュリティプラグインが一律ブロックするか | AIクローラーが誤ってブロックされ、GEOの経路が完全に機能しない |
| コンテンツの断絶 | コンテンツ資産(技術ドキュメント・事例)を一括でサイトに取り込めない | コンテンツチームのコストが「手作業の移行」に消える |
この4つの断絶に共通する特徴:個々の工程は問題なくても、つながると問題が起きる。
たとえば「言語の断絶」:翻訳機能自体は使いやすいのに、SEO層と連動しないため、ドイツ語ページを生成しても対応するhreflangとドイツ語URLがない——ページは存在するのに、検索エンジンはその存在を知らない。
だから技術スタックの設計方針は「機能を積む」ことではなく各経路を端から端までつなぐこと。
2. 環語 LinguaSEO:言語レイヤー
解決する断絶:翻訳とSEOの分離。
中核能力
| 能力 | 具体的な内容 | 何を解決するか |
|---|---|---|
| 自動翻訳 | コンテンツ翻訳 + 言語切り替え | 顧客が読めるようにする |
| 多言語 URL | 言語ごとに独立した URL 構造 | 対象言語でページが検索されるようにする |
| hreflang 自動生成 | 双方向の相互参照 + x-default を自動出力 | 「多言語サイトが重複コンテンツと判定される」問題を解決 |
| 多言語サイトマップ | 言語ごとに sitemap を個別出力 | 検索エンジンが各言語のページを漏れなく発見できるようにする |
| 翻訳ステータス管理 | 未翻訳 / 翻訳済み / 要更新をマーク | 「パラメータは更新したのにドイツ語ページが古いまま」を防ぐ |
| 管理画面メニュー制御 | 管理画面左メニューの非表示と並び替え | 顧客向けに管理画面をシンプルにする |
設計方針
「翻訳とは SEO である」——翻訳と SEO は二段階ではなく、同じ動作から生まれる二つの出力です。1 ページを翻訳するたびに、対象言語のコンテンツ、独立 URL、hreflang タグ、サイトマップのエントリを同時に生成します。四つは必ず同じ操作から生成する。そうしないと、どれか一つが必ず漏れます。
できることの範囲(やらないこと)
| やらないこと | 原因 |
|---|---|
| 人手による翻訳サービスは行わない | プラグインはエンジニアリングの経路を担い、翻訳の品質は翻訳者・顧客が決める |
| 製品パラメータは書き換えない | パラメータは事実であり、プラグインは事実を生成も変更もしない |
| 用語集による強制置換は行わない | 用語の一貫性は翻訳者が用語集に沿って担保するもので、自動置換には頼らない(自動置換は誤って別の語まで置き換える) |
三、環跡 LeadPulse:リード層
解決する断絶:フォーム、トラッキング、アトリビューションの三システムがそれぞれバラバラに動いている。
三大モジュール
| モジュール | 機能 | 重要な設計 |
|---|---|---|
| フォームコンバージョン | 22 種類のフィールドタイプ。国際電話の国番号、IM 連絡先、多通貨に対応 | 条件表示、幅の段組み、フィールド単位のバリデーション |
| ボタンコンバージョン | インプレッション / クリック / コンバージョン率の統計 + クリック明細 | フォームに限らず、あらゆる CTA をトラッキングできる |
| アクセス統計 | 日次の UV/PV、7/14/30 日の推移、主要ページ Top 100 | 人間とクローラーを分けて集計 |
特筆すべき三つの設計
① 各コンバージョンは 26 項目の参照元・デバイスデータを伴う。
チャネル、アクセス環境、国・地域、デバイスタイプ、Click ID などを含む。目的は明確だ。「この問い合わせは追う価値があるか」の判断材料にすることであり、「問い合わせが一件来た」で終わらせない。
② AI クローラー識別(50 以上、5 分類)。
クローラーは JavaScript を実行しないため、サーバーサイドのフックで収集し、人間の訪問者とは分けて集計する。なかでもAI クローラー(GPTBot、ClaudeBot、PerplexityBot など)の稼働状況は GEO の先行シグナルだ——別の記事で論じたとおり、読まれることが前提であり、引用されることが結果である。
③ アトリビューションの基準は「比較可能」の原則に従う。
- First Touch は実際に参照元を持ち帰ったときだけ記録する(直接アクセスは初回接点の枠を占めない)
- Last Touch は毎回上書きし、デフォルトは last_non_direct
- 12 種類の Click ID を個別に保存し、90 日間保持
- 同一ドメインの referrer は除外
- WeChat は「アクセス環境」の軸として、「チャネル」とは直交させて保存
できることの範囲
| やらないこと | 原因 |
|---|---|
| メール通知サービスは行わない | 通知と SMTP 設定はお客様または第三者側で対応(既存システムとの衝突を回避) |
| リードの価値判断は代行しません | 提供するのはデータのみ。判断とフォローはお客様の業務チームが行います |
| 訪問者レベルの個人プロファイリングは行いません | 統計とアトリビューションのみ。個人プロファイルは構築しません(コンプライアンス上の配慮) |
四、環盾 CraterGuard:セキュリティ層
解決する断絶:セキュリティポリシーと業務チャネルが互いに衝突します。
中核能力
| 能力 | コンテンツ |
|---|---|
| セキュリティベースラインの強化 | ログイン保護、ファイル権限、よくある脆弱性の封じ込め |
| REST インターフェース管理 | デフォルトでロック(401 を返すcg_rest_locked)、必要なときにオンデマンドで開放 |
| 異常アクセス対策 | 高頻度リクエスト、異常 UA、スキャン行為の検知 |
| セキュリティ監査と修復 | スキャンと修復のフローを提供。ドメイン + 認証情報による最小限の呼び出しに対応 |
ひとつの重要な方針:”一律ブロック”はしない
セキュリティプラグインで最もよくある副作用は、AI クローラーと検索エンジンクローラーをまとめて遮断してしまうことです。これは GEO の文脈では致命的な問題です:サイトの GEO チャネルが自らのセキュリティポリシーによって閉ざされ、しかも誰も気づいていません。
そこで環盾の設計原則は段階的開放:
| タイプ | ポリシー |
|---|---|
| 検索エンジンクローラー(Googlebot / Bingbot) | 開放(かつ真偽を検証) |
| AI 検索型クローラー | 許可(GEO チャネル) |
| AI 学習型クローラー | 開放可(ポリシーによる) |
| スキャン / 攻撃行為 | ブロック |
robots.txt との役割分担:robots.txt は”宣言”(クローラーに来ないよう伝える)、環盾は”実行”(アプリケーション層で実際にブロックするかしないか)。両者は一致していなければなりません——robots.txt が GPTBot を開放しているのに環盾がアプリケーション層でブロックしていれば、開放は無意味です。これは監査で最もよく見つかる設定矛盾のひとつです。
五、環汇 CraterInflux:コンテンツ受入層
解決する断絶:コンテンツ資産を安全に、一括でサイトに取り込めない。
三段階設計
| フェーズ | 何をするか | なぜこの設計なのか |
|---|---|---|
| ① 予演 | パッケージを解析し、数字を提示(新規追加 / 更新 / スキップ / 競合) | DB に書き込まず、まず何が起きるかを確認 |
| ② プレビュー | 軽プレビュー(DB に書き込まず、本文レンダリングのみ検証) / 全プレビュー(一時下書きに書き込み、30 分で自動クリーンアップ) | 公開前に著者が実際にページを見られるようにする |
| ③ 公開 | DB に書き込み、URL リストを出力(プレーンリンク / Markdown / CSV をコピー可能) | 公開後に確認・配布が可能 |
パッケージ形式と冪等性
| 項目 | デザイン |
|---|---|
| パッケージ構造 | manifest.json(ルートディレクトリ)+content/*.html+media/ |
| 本文形式 | HTML フラグメント(front-matter なし) |
| 冪等キー | pack_id+external_id(タイトルや slug から推測しない) |
| カテゴリとタグ | 存在しない場合は自動作成、または設定に従い無視 |
| メディア | ビットマップはメディアライブラリへ;SVG はデフォルトで埋め込み(embed)、アップロードリスクゼロ |
なぜ冪等キーにタイトルや slug を使えないのか?タイトルを一文字変えたり、slug を手動で一度調整するだけで、推測に頼ると重複コンテンツが新規作成され、後から極めて困難なクリーンアップが必要になるからです。“ソース側で安定して不変”の識別子をキーにすることで、重複インポートが安全に保証されます。
安全なデフォルト(すべて設定不可)
| デフォルト | 説明 |
|---|---|
| デフォルト状態は下書き | インポートは公開ではない |
| パッケージ内の実行ファイルを禁止 | .php/.js/.pharなどを検出した場合はパッケージ全体を拒否 |
| サイズ制限 | 単一ファイル 2 MB / パッケージ解凍後 50 MB / 単一エントリ本文 500 KB |
| zip 爆弾対策 | 解凍前にセントラルディレクトリを読み、超過時は即拒否 |
| SVG サニタイズ許可リスト | 除去script/ イベント属性 / 外部参照(正規表現ではなく DOM パースで処理) |
六、環枢 CraterHub:認証と配信レイヤー
4 つの業務プラグインの上に、管理レイヤーのコンポーネントがもう 1 つあります。環枢は認証、配信、オンライン更新を担います。
| 役割 | 配置場所 | 責務 |
|---|---|---|
| マスター(master) | サービス提供者(ドメイン固定) | ライセンス項目の管理、ライセンスの発行 |
| エージェント(agent) | 顧客サイト | ライセンスの検証、ステータスの報告 |
| バージョンリポジトリ | 配信サーバー | パッケージ一覧とファイルの提供 |
ライセンス項目は集中登録されています:現在は計 6 項目で、テーマと各プラグインに対応します。この設計の狙いは、「ライセンス期限切れ後どうするか」を明確なルールのある事柄にすることであり、期限当日に場当たり的に対応することではありません:
| 段階 | 意味 |
|---|---|
| A | 新規追加のみ停止(既存とフロントは変更なし、更新停止・修正継続) |
| B | 既存は保持、増分は停止 |
| C | 段階的撤回(セキュリティベースラインは永久保持) |
重要な設計原則が 1 つあります。環枢が未インストールの場合、各プラグインは「許可/サイレント」に退化し、インストール前とバイト単位で等価な動作になります。これによりプラグインは単独で使用でき、「管理側のインストール忘れ」で全体が機能しなくなることはありません。
例外が 1 つあります。環汇は環枢が未インストールの場合「読み取り専用に降格」します——解析、プレビュー、下見はできますが、公開はできません。理由は「サイトへの一括書き込み」が高影響な操作であり、デフォルトで保守的だからです。
七、なぜ既製品の組み合わせではなく自社開発か
公開されている WordPress プラグインエコシステムは豊富で、ほとんどの機能には既製のソリューションがあります。自社開発を選ぶ理由は「自分たちの方が上手くできる」からではなく、3 つの具体的な問題があるからです:
| 問題 | 組み合わせ案の状況 | 自社開発案の対応 |
|---|---|---|
| 基準が不統一 | 各プラグインが独自のアトリビューション/SEO 基準を持ち、データを統合できない | 全シリーズで同一のデータ基準とフィールド定義を共有 |
| 連携が通らない | 翻訳と SEO、フォームとアトリビューションの間にグルーコードが必要 | 連携は設計時点でエンドツーエンドに通っている |
| セキュリティとコンプライアンスが制御不能 | サードパーティプラグインのコード品質とデータ処理方法を監査できない | コードを自社で保持し、監査・修正・顧客への説明が可能 |
もう 1 つ実務的な理由があります。顧客サイトの長期的な保守性です。組み合わせ案の問題は 2 年後に噴出することがよくあります——あるプラグインが更新を停止し、ある更新が非互換を持ち込み、どこかのデータ基準が変わって過去データが比較できなくなる。自社開発の代償は初期投資、利益は予測可能な長期保守です。
明確な境界
この技術スタックは顧客の業務システムを代替しません:
| 代替しません | 説明 |
|---|---|
| ERP / CRM | プラグインはリードデータを出力し、連携可能。顧客関係管理は担いません |
| メールマーケティングプラットフォーム | 通知とシーケンスメールは専門プラットフォームが担当 |
| デザインシステム | 構造とコンポーネントの仕様を提供し、ビジュアルはテーマが決める |
位置づけは「海外向けサイトのエンジニアリング基盤」——サイト自体の言語・リード・セキュリティ・コンテンツという4つの経路をしっかり作り込み、上位の業務システムが接続する際にこれらの下層課題を処理しなくて済むようにします。
FAQ よくある質問
| シナリオ | おすすめの組み合わせ |
|---|---|
| 単一言語の海外向けサイト、リード重視 | 環迹 + 環盾 |
| 多言語の海外向けサイト | 環語 + 環迹 + 環盾 |
| コンテンツ量が多く、一括投入が必要 | 環匯を追加 |
| 統一した認証とオンライン更新が必要 | 環枢を追加 |
| 次元 | よくある組み合わせパターン | 環形山テックスタック |
|---|---|---|
| データの基準 | 各プラグインが個別に定義 | シリーズ全体で統一(チャネル・環境・ソースのフィールドが一致) |
| セキュリティと AI チャネル | セキュリティプラグインはデフォルトで非人間トラフィックをブロック | 段階的に許可し、AI 検索チャネルを明確に確保 |
| 一括書き込み | 直接データベースに書き込み、先に書いてから確認 | リハーサル → プレビュー → 公開、デフォルトは下書き |
| 冪等性の戦略 | 多くは slug やタイトルで判断 | pack_id+external_id、ソース側は安定した識別子 |
| の層 | やり方 |
|---|---|
| リソース読み込み | フロント側のリソースはオンデマンドで読み込み、管理画面のスタイルはフロントに読み込まれない |
| クエリ | データテーブルにインデックスを付け、集計系クエリは集約キャッシュを行う |
| 外部リクエスト | 訪問者の帰属はデフォルトで「軽量モード」(CDN ヘッダー + タイムゾーン推定を読む)を使い、リクエストごとの IP 照会は行わない |
最後に
海外向けサイトの技術作業は、「プラグインを入れて機能を設定する」状態に陥りがちです。1つ入れるたびに1つの課題は解決しますが、全体としてはバラバラのままです。
本当に先に答えるべき問いは、私のサイトでは、どの導線が断絶しているのか?
言語レイヤーは断絶していないか(翻訳とSEOが連動しているか)?リードレイヤーは断絶していないか(問い合わせを流入元まで追跡できるか)?セキュリティレイヤーは断絶していないか(AIクローラーを誤ってブロックしていないか)?コンテンツレイヤーは断絶していないか(コンテンツを効率よくサイトに入れられるか)?
4つの導線がそれぞれつながって、はじめてサイトに使える土台ができます。土台が安定してこそ、SEO、GEO、広告運用、コンテンツといった上層の施策が複利を生みます。これこそがこの技術スタックの存在理由です——サイトの「機能を増やす」ためではなく、各導線が途中で断絶しないようにするためです。
