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:title・og:description・og:url:ページごとにタイトル・説明・URL を設定。og:url には canonical と同じ絶対URL(SITE_BASE_URL + パス)を使用しています。
- og:type:通常ページは
website、記事はarticleを指定。 - og:locale:
ja_JPを指定。 - og:image:画像を設定したいページでは、テンプレートで og_image に絶対URLを渡すと出力されます。未設定の場合はタグ自体を出さない実装です。
絶対URLは config.py の SITE_BASE_URL(環境変数 SITE_BASE_URL、未設定時は https://aiaicursor.com)で統一しています。
3. Twitter Card
twitter:card は summary_large_image、twitter:title・twitter: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 で行う設定
← カード神経衰弱の記録
← 異世界シューティングの記録
← 異世界シューティングの難易度
← 異世界戦記(全画面・迷路レイアウト)の記録
← 複数人でのゲーム進行
← 異世界衰弱(不具合の修正)
← 異世界衰弱(機能別フローチャート)
← 異世界ポイントの活用について
← 異世界ポイント市場の実装記録