SEO
メタタグ、正規 URL、構造化データ、サイトマップ、robots、インデックス制御について解説します。
TubePress は、インストールした瞬間から有効な完全な SEO レイヤーを備えています。有効にすべきプラグインも、追加すべきテーマコードもありません。クリーンな URL、ページタイトル、メタディスクリプション、Open Graph と Twitter カード、canonical リンク、schema.org 構造化データ、ビデオサイトマップ、多言語 hreflang がすべて、コンテンツとわずかな設定から自動生成されます。
このページでは、自動的に提供される機能と、/admin/settings で調整できる設定について説明します。
すぐに使える SEO
SEO マネージャーはコアアプリケーションとともに起動するため、すべてのフロントエンドページはデフォルトで最適化されています。 プラグイン不要 インストール後すぐ有効
- 動画、カテゴリ、タグ、出演者、チャンネル、ページの人間が読みやすい URL。
- エンティティタイプごとに設定可能なタイトルとメタディスクリプションのパターン。
- Open Graph および Twitter Card タグ(画像の自動選択付き)。
- ページごとに 1 つの canonical URL と、有効化されたすべての言語の hreflang 代替。
- 動画、パンくずリスト、サイト検索ボックスのための schema.org JSON-LD。
- Gzip 圧縮されたビデオサイトマップと動的な
/robots.txt。 - 検索エンジン認証メタタグ、GA4 フィールド、カスタム head/body コード。
タイトル、メタ、Open Graph
各エンティティタイプには、変数から構築された独自のタイトルとディスクリプションのパターンがあります。一度設定するだけで、カタログ全体に適用されます。
Video title: {title} {sep} {site_name}
Category title: {name} {sep} {site_name}
Video meta: Watch {title} online. {description_short}便利な変数には {title}、{name}、{site_name}、{sep}(タイトルセパレーター)、{count}、{type} があります。ディスクリプションは HTML が除去され、約 160 文字に制限されます。個々のページは、ページエディターの独自のメタタイトルとメタディスクリプションフィールドでパターンを上書きできます。
ソーシャルシェアの場合、og:image は次の順序で解決されます:まずページ固有の画像、次に — CTR ランキングプラグインが有効な場合 — リスト内で最もエンゲージメントの高い動画のサムネイル、最後にアップロードしたデフォルト画像。Twitter カードはデフォルトで summary_large_image になり、Twitter ハンドル、Facebook App ID、および他の言語用の og:locale:alternate タグを追加できます。
Canonical URL と重複コンテンツ
すべてのページは正確に 1 つの <link rel="canonical"> を出力します。クエリ文字列とフラグメントは canonical から除去され、末尾のスラッシュはルーターによって正規化されるため、/category/x、/category/x/、/category/x?sort=newest はすべて単一のインデックス可能なアドレスに解決されます。
複数のコンテンツタイプを運用する場合、TubePress は型付きエンティティごとに 1 つの canonical URL を強制します。誤った動画タイプのプレフィックスで届いたリクエストは正しいものに 301 リダイレクトされるため、同じ動画が 2 つの URL でインデックスされることはありません。言語バージョンは重複として競合するのではなく、hreflang 代替でまとめられます。
robots.txt は ?sort= と ?page= のクロールをすでに禁止しており、canonical を補強してクロールバジェットを節約します。構造化データ
TubePress は schema.org JSON-LD を出力し、検索エンジンがリッチリザルトをレンダリングできるようにします:
- VideoObject(視聴ページ)— 名前、ディスクリプション、サムネイル、アップロード日、再生時間、埋め込みおよびコンテンツ URL、視聴回数のインタラクション統計。
- BreadcrumbList(サイト階層内のページの位置を説明)。
- WebSite + SearchAction(ホームページ)— ブランドのサイトリンク検索ボックスを有効にできます。
サイトマップ
/sitemap.xml でサイトマップインデックスが提供されます。いくつかの高速な COUNT/MAX クエリから動的に生成され、子サイトマップを参照します。子サイトマップは gzip 圧縮ファイルとしてディスクに書き込まれ、コンテンツが変更されるたびに再生成されます。
| サイトマップ | 内容 |
|---|---|
| 動画 | video:video + image:image タグ:サムネイル、タイトル、ディスクリプション、プレーヤーおよびコンテンツ URL、再生時間、視聴回数、公開日 |
| カテゴリ / タグ / 出演者 / チャンネル | 双方向 hreflang 代替(x-default を含む)付きエンティティ URL |
| ページ | 静的 CMS ページとタイプ別ホームページ(hreflang 付き) |
各子ファイルには最大 25,000 URL が格納されます(1,000 〜 50,000 の間で設定可能)。エンティティタイプ、動画/画像タグ、または hreflang ブロックを個別に有効/無効にできます。サイトマップのレスポンスには X-Robots-Tag: noindex ヘッダーが含まれるため、ファイル自体は検索結果に表示されません。
robots.txt とインデックス管理
/robots.txt ファイルは動的です:サイトマップを通知し、管理パスとファセットパスを禁止し、アグレッシブな SEO ボットにクロール遅延を適用します。インデックス可能なページには、許可的なデフォルト robots メタ(max-image-preview:large、max-video-preview:-1、max-snippet:-1)が設定されます。
noindex を選択的に適用できます — タグ、カテゴリ、出演者、チャンネルのリスト、ページネーションされたページ、または検索結果(デフォルトで有効)— サイトの他の部分には影響しません。ステージング環境用のマスタースイッチも 1 つあります。
seo_noindex_entire_site を有効にすると、すべてのページに noindex, nofollow が追加され、robots.txt がすべてを禁止します。これはローンチ前のサイトに適したスイッチです — 公開前に必ず無効にしてください。多言語 SEO
複数の言語を有効にすると、TubePress はページの <head> とエンティティサイトマップの両方に rel="alternate" hreflang タグを使用して翻訳をリンクし、プライマリ言語を指す x-default も追加します。デフォルト言語はルートに維持され、他の言語は短い /{code}/ プレフィックスの下に配置されます。完全な言語ワークフローについては 多言語対応 を参照してください。
パフォーマンス
SEO 出力はスケールするよう構築されています。サイトマップはバッチデータベースクエリでストリーミングされ gzip 圧縮で保存されます。インデックスはカウントクエリからオンデマンドで計算され、robots.txt は 1 日キャッシュされます。CTR ベースの Open Graph 画像はランキングプラグインが有効な場合にのみ計算されるため、使用しない場合はオーバーヘッドが発生しません。結果として、数百万件の動画を持つカタログでも正確で高速なメタデータが提供されます。