
この記事は、個人開発でCMSを作り始めた人に向けて、最初にどんな管理画面を用意すると運用しやすいかをまとめたものです。見た目の豪華さではなく、公開ミスを減らすための項目を中心に扱います。
このサイトの管理画面は、投稿編集、カテゴリ管理、タグ管理、予約投稿、公開済み一覧、問い合わせ、アクセスログを持っています。公開記事の品質を上げるには、本文を書く画面だけでなく、未確認の記事を公開しない仕組みが必要でした。
最初に解決したかった問題
記事が増えてくると、下書き、予約中、公開済み、noindex、旧テーマの記事、技術記事が混ざります。これを本文だけで管理すると、RSSやsitemapに出してはいけない記事が混ざる危険があります。
そこで、管理画面から記事タイプとレビュー状態を見えるようにしました。

投稿フォームに出している項目
<select name="contentType">
<option value="technical">技術記事</option>
<option value="case_study">事例</option>
<option value="worklog">作業記録</option>
</select>
<select name="reviewStatus">
<option value="reviewed">確認済み</option>
<option value="draft_review">レビュー中</option>
<option value="fact_check_required">要事実確認</option>
</select>記事タイプは公開テーマを分けるため、レビュー状態は編集上の安全弁として使います。AdSenseモードでは technical、case_study、worklog かつ reviewed の記事だけを公開面に出します。

予約投稿を選択式にした理由
予約日時を自由入力にすると、同じ時間に複数記事を入れたり、表記ゆれが起きたりします。この管理画面では、7:30から01:30までの1時間区切りを候補にし、予約済みの時間は候補から外す方針にしました。
これは機能として派手ではありませんが、毎日使う画面では迷いを減らせます。
カテゴリとタグ
カテゴリは公開ナビゲーションに影響するため、AdSenseモードでは Cloudflare、個人開発、AI・自動化 に整理しました。タグは管理用の検索補助として残し、公開タグページは審査中に出さないようにしています。
アクセスログとコメント
アクセスログは管理者だけが見ます。公開画面にPVを出すのではなく、記事ごとの反応を見るための管理情報です。コメント機能は返信まで実装していますが、審査中は新規投稿APIを閉じています。ユーザー投稿を開くなら、スパム対策と削除運用を先に決める必要があります。
失敗しやすい判断
- 本文編集だけ作って、公開状態をあと回しにする
- noindexとレビュー状態を同じ意味で使う
- カテゴリを細かく増やしすぎる
- 予約時間を自由入力にする
- 公開ページとプレビュー表示を別物にする
このサイトでは、記事プレビューにも公開本文と同じリッチメディア処理を使うようにしています。管理画面で見えたものと実ページの表示が違うと、画像や動画の崩れに気づきにくいためです。
作る順番
- 投稿一覧を下書き、予約、公開済みに分ける
- 投稿編集でstatus、content_type、review_statusを変更できるようにする
- カテゴリ管理とタグ管理を作る
- 予約時間を選択式にする
- 公開条件と同じプレビューを出す
- アクセスログや問い合わせを後から足す
管理画面は、運営者である自分を助けるための道具です。公開記事を厚くするには、書く前後の確認作業を画面に組み込むことが効きます。