SEO

エッジSEO

エッジSEOとは、オリジンアプリケーションを変更する代わりに、CDNエッジ(Cloudflare Workers、Akamai EdgeWorkers、Fastly Compute、Vercel Edge Functions)でSEO変更を実装する手法です。エッジはユーザーとサーバーの間でリクエストとレスポンスを傍受し、SEOチームがエンジニアリングを待たずに修正を反映できるようにします。

エッジSEOとは、オリジンアプリケーションを変更する代わりに、CDNエッジ(Cloudflare Workers、Akamai EdgeWorkers、Fastly Compute、Vercel Edge Functions)でSEO変更を実装する手法です。エッジはユーザーとサーバーの間でリクエストとレスポンスを傍受し、SEOチームがエンジニアリングを待たずに修正を反映できるようにします。

なぜ重要か

エンタープライズSEOの最大のボトルネックは、エンジニアリングのバックログです。必要なリダイレクト、canonicalの修正、ヘッダーの更新が、スプリント計画の後ろで何週間も何ヶ月も待たされることがあります。Dan TaylorとMerjの2018年の解説によって広まったエッジSEOは、CDNをプログラム可能なSEOレイヤーとして扱い、SEOチームがこうした変更をエッジネットワーク経由で数分でデプロイできるようにします。大規模サイト(ECカタログ、マーケットプレイス、ニュースパブリッシャー)では、これにより「特定から反映まで」を四半期単位から時間単位へと短縮し、バックエンドのリリースサイクルへの依存を取り除きます。

よくあるユースケース

リダイレクト管理: アプリケーションのリダイレクトテーブルを更新せずに、サイト移行のための一括301リダイレクトを行います。

メタタグの挿入: テンプレートに触れることなく、titleタグ、メタディスクリプション、canonicalタグ、hreflangOpen Graphを追加または書き換えます。

SEO変更のA/Bテスト: 2つのtitleタグのバリエーションの間でトラフィックをエッジで分割し、ランキングやCTRへの影響を測定します。

ヘッダーの書き換え: X-Robots-TagCache-Control、または構造化データのレスポンスを挿入します。

コンテンツの実験: ボットとユーザーのトラフィックに応じて、コピーの編集、スキーマの挿入、セクションの非表示を行います。

国別レンダリング: 完全なi18nの書き換えなしに、ローカライズされたバリエーションを配信します。

不正なボットのブロック: スクレイパーがオリジンの帯域を消費する前に、エッジでフィンガープリンティングを行いブロックします。

JSサイトのダイナミックレンダリング: オリジンを変更せずに、クローラーには事前レンダリングされたHTMLスナップショットを、人間にはJS SPAを配信します。

仕組み

CDNワーカーとは、エッジに到達するすべてのリクエストで実行される小さなJavaScript(またはWASM)関数です。SEOのユースケースでは次のようになります。

// Cloudflare Worker pseudo-example
addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request));
});

async function handleRequest(request) {
  const response = await fetch(request);
  const rewriter = new HTMLRewriter()
    .on('title', { element: el => el.setInnerContent('New Optimized Title') })
    .on('meta[name="description"]', { element: el => el.setAttribute('content', 'Updated description') });
  return rewriter.transform(response);
}

オリジンは一切変更されません。ワーカーが出力時に書き換えます。

トレードオフ

運用の複雑さ: エッジコードは本物のコードです。レビュー、モニタリング、バージョン管理が必要です。エッジでのミスはすべてのリクエストに連鎖し、オリジンの変更よりも速く、より恐ろしいものになります。

デバッグの難しさ: ソースリポジトリ外で行われた変更は、バックエンドエンジニアを驚かせることがあります。すべてを文書化し、エッジレイヤーを第一級のものとして扱いましょう。

キャッシュとの相互作用: エッジの書き換えはCDNのキャッシュルールを尊重しなければ、古いコンテンツを配信してしまいます。

コスト: エッジプラットフォームのリクエスト単位の課金は、高トラフィックでは積み重なります。

恒久的な修正ではない: エッジSEOは、反映やロールアウトのスピードという点で優れています。しかし、正しい修正は最終的にはオリジンに属するべきであり、そうすることでエッジレイヤーは薄く監査可能な状態を保てます。

いつ使うべきか(そして使うべきでないか)

使うべき場面: 緊急の修正、移行、一括リダイレクト、実験、バックエンドのリリースが遅いか制限されているサイト。

避けるべき場面: コアプロダクトの変更、長期的な保守性のためにコードベースに置くべきもの、もう一つのデプロイレイヤーを担う余力のないチーム。

よくある間違い

エッジワーカーを「ただの設定」として扱う: それらは本物の障害モードを持つ実行可能なコードです。

バージョン管理がない: Git履歴なしにCDNのダッシュボードで行われた変更は、監査不能になります。

正規化を忘れる: ボットとユーザーに異なるコンテンツを配信すると、慎重に行わなければクローキングのペナルティを引き起こす可能性があります。

キャッシュの競合: キャッシュをパージせずにコンテンツを書き換えると、一貫性のないレスポンスにつながります。

テストの省略: エッジの変更は本番に昇格させる前に、プレビュー環境でステージングしましょう。

Sources: