OGP・SEOの整備記録

検索エンジン向けのメタ情報と、SNSでシェアしたときの見え方を整えるため、meta description・OGP・Twitter Card・canonical・sitemap.xml・robots.txt を導入した内容をまとめます。

1. meta description

各ページの <head>meta name="description" を出力しています。記事ページやトップ・ストック・共有一覧などでは、そのページの内容が分かる短い説明文を設定し、検索結果の概要表示に使われるようにしています。共通パーツは _seo_head.html で、各テンプレートで meta_description を set してから include する形です。

2. OGP(Open Graph Protocol)

  • og:titleog:descriptionog:url:ページごとにタイトル・説明・URL を設定。og:url には canonical と同じ絶対URL(SITE_BASE_URL + パス)を使用しています。
  • og:type:通常ページは website、記事は article を指定。
  • og:localeja_JP を指定。
  • og:image:画像を設定したいページでは、テンプレートで og_image に絶対URLを渡すと出力されます。未設定の場合はタグ自体を出さない実装です。

絶対URLは config.pySITE_BASE_URL(環境変数 SITE_BASE_URL、未設定時は https://aiaicursor.com)で統一しています。

3. Twitter Card

twitter:cardsummary_large_imagetwitter:titletwitter:description は OGP の title・description と同じ内容を出力しています。画像は og_image を設定している場合に twitter:image として出力。共通で _seo_head.html に記述しています。

4. canonical URL

全ページで link rel="canonical" の href に、そのページの正規URLを出力しています。値はアプリの context_processor で「SITE_BASE_URL + 現在の request.path」として渡す canonical_url を使用。重複コンテンツ対策と OGP の URL と揃える目的で利用しています。

5. sitemap.xml

/sitemap.xml でサイトマップを返しています。トップ・ストック・共有一覧・各記事ページ(立ち上げストーリー、プログラム構築、デプロイ、ボタン1つデプロイ、ログイン設定、改善記録、Cursor メニュー操作ガイド・画面構成・AIモデル説明)、および「ファイル紹介の使い方」「OGP・SEOの記録」のURLに加え、公開されている AI生成ファイル紹介の各詳細ページ(/share/<id>)を最大500件まで含めています。検索エンジンに主要なページを伝えるためのものです。

6. robots.txt

/robots.txt で次のように返しています。

  • User-agent: * に対して Allow: / で基本的にクロール可。
  • Disallow/share/upload(新規登録)、/share/my-uploads(作品を管理)、/mail-dm(メール・DM・旧 /share/my-inquiries 等へリダイレクト)、/share/admin(管理画面)は検索結果に載せないよう Disallow で指定。
  • Sitemap:SITE_BASE_URL + /sitemap.xml を記載し、サイトマップの場所を伝えています。

← 立ち上げストーリー
← プログラム構築の記録
← デプロイの記録
← ボタン1つデプロイの記録
← デプロイでまたハマった話
← ログイン設定の記録
← 改善記録
← ファイル紹介の使い方
← 統合ログインの設計・経緯
← Search Console・サイトマップ
← 環境変数・.env の管理
← Git 入門・インストール
← インストール後に Git で行う設定
← カード神経衰弱の記録
← 異世界シューティングの記録
← 異世界シューティングの難易度
← 異世界戦記(全画面・迷路レイアウト)の記録
← 複数人でのゲーム進行
← 異世界衰弱(不具合の修正)
← 異世界衰弱(機能別フローチャート)
← 異世界ポイントの活用について
← 異世界ポイント市場の実装記録