🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

sitemap.phpに新規記事が出ていない時の確認方法

新規記事を作ったのに、XMLサイトマップの sitemap.php にURLが出ていないと、Googleへ新しいURLを伝えにくくなります。記事ページが表示されていても、サイトマップへ入る条件を満たしていない場合があります。

このページでは、PHPサイトで sitemap.php を動的に作っている場合に、固定URL、DB登録、ローカルファイル補完、カテゴリコメント、$page_title、除外ファイル、キャッシュをどの順番で見るかを整理します。

確認日と対象

確認日: 2026年5月19日。WordPressではないPHPサイトで、検索エンジン向けXMLサイトマップを sitemap.php で出している人向けです。

この記事は、読者向けの site-map.php と、GoogleへURLを伝える sitemap.php を混同しないための確認記事です。Copicodeでは crawler 向けの送信先として https://copicode.com/sitemap.php を使います。

先に結論

sitemap.php に新規記事が出ない時は、次の順番で確認します。

  1. 新規記事の本番URLが200で開くか見る
  2. sitemap.php の中にURL文字列があるか検索する
  3. HTMLサイトマップ site-map.php と混同していないか確認する
  4. DB登録型なら register_pages.php や登録処理を確認する
  5. 固定URLリストに手動追加が必要なページか見る
  6. ローカルファイル補完の条件を満たしているか見る
  7. キャッシュやデプロイ漏れを確認する

site-map.phpとsitemap.phpを分けて考える

名前が似ていますが、役割は違います。片方に載っていても、もう片方に載るとは限りません。

ファイル役割見る人
site-map.php読者向けのHTMLリンク一覧人間、サイト内回遊
sitemap.php検索エンジン向けのXMLサイトマップGoogleなどのクローラー

新規記事を公開したら、できれば両方を確認します。読者向け導線は site-map.php、検索エンジン向けURL一覧は sitemap.php です。

先にSearch Consoleへ送らない

公開URLが404や500のまま、またはcanonicalが別URLを指したままサイトマップを送ると、Search Console側では別の問題として見えることがあります。まず本番URL、HTML内のcanonical、noindex、sitemap.php 内のURLを揃えてから確認します。

1. 新規記事が200で開くか確認する

サイトマップに入れる前に、対象ページ自体が表示できるか確認します。404や500のURLをサイトマップに入れても、Search Consoleで別の問題として出る可能性があります。

2. sitemap.phpの中にURLがあるか検索する

ブラウザで https://example.com/sitemap.php を開き、ページ内検索で新規記事のファイル名を探します。ローカルでも同じように確認できます。

確認するURL:
https://example.com/sitemap.php

ページ内検索:
sitemap-php-new-article-missing-guide.php

XMLが長い場合は、ブラウザのページ内検索やコマンドでURL文字列を探します。

3. 固定URLリストに追加が必要か見る

サイトによっては、重要なルート直下ページを $fixed_urls のような配列に手動で入れている場合があります。ハブ記事や重要記事を優先して出したい時は、この固定リストに入れる運用になっていないか確認します。

$fixed_urls = [
  "https://example.com/index.php",
  "https://example.com/search-console-new-article-hub.php",
  "https://example.com/sitemap-php-new-article-missing-guide.php",
];

固定URLへ追加した場合は、重複出力を避ける仕組みも一緒に確認します。同じURLが2回出ると、後から確認しにくくなります。

4. DB登録される仕組みを確認する

記事一覧をDBから出しているサイトでは、記事ファイルを作っただけではDBに登録されていないことがあります。Copicodeのようにデプロイ時に登録スクリプトを走らせる運用なら、その処理が通ったか確認します。

確認見ること
登録スクリプトregister_pages.php などが実行されたか
DB接続本番でDB接続エラーになっていないか
path先頭スラッシュやファイル名が正しいか
created_at日付が空や不正値になっていないか

5. ローカルファイル補完の条件を見る

DBに未登録でも、ファイルからサイトマップへ補完する仕組みがある場合があります。その場合は、補完対象になる条件を満たしているか確認します。

補完対象から外れやすい例

  • ファイル先頭にカテゴリコメントがない
  • $page_title が設定されていない
  • 除外ファイル名に入っている
  • リダイレクト専用ファイルとして判定されている
  • 補完対象ディレクトリの外に置いている
  • 拡張子が .php.html ではない

Copicodeのルート直下記事なら、次のようなカテゴリコメントと $page_title があると補完対象に入りやすくなります。

<!-- カテゴリ: サイト公開・修正 | タグ: sitemap.php, 新規記事公開 -->
<?php
$page_title = "記事タイトル | Copicode";
$page_desc  = "記事の説明文";
$page_lang  = "ja";
?>

6. キャッシュとデプロイ漏れを見る

ローカルでは出ているのに本番の sitemap.php に出ない場合は、デプロイ漏れやキャッシュの可能性があります。クエリ付きURLで確認すると、キャッシュ切り分けに使えることがあります。

通常:
https://example.com/sitemap.php

キャッシュ切り分け:
https://example.com/sitemap.php?check=20260515

直した後に戻るページ

sitemap.php へURLが出るようになったら、そこで終わりではありません。読者向け導線とSearch Consoleの状態も確認します。

AIへ相談する時のメモ

サイトマップ漏れをAIや人に相談する時は、ファイル名、公開URL、XMLサイトマップ内の有無、DB登録の有無をまとめると切り分けやすくなります。

sitemap.phpに新規記事が出ていない件で相談します。

新規記事ファイル:

公開URL:

公開URLは200で開くか:
はい / いいえ / 未確認

site-map.phpには載っているか:
はい / いいえ / 未確認

sitemap.phpには載っているか:
はい / いいえ / 未確認

カテゴリコメント:
あり / なし / 未確認

$page_title:
あり / なし / 未確認

DB登録:
あり / なし / 未確認

固定URLリストへの追加:
必要そう / 不要そう / 不明

確認してほしいこと:
1. sitemap.phpに出る条件
2. DB登録とローカル補完のどちらで拾うべきか
3. 除外条件に当たっていないか
4. 本番反映やキャッシュの確認方法
5. Search Consoleへ送る前に見ること

確認チェックリスト

公式情報で確認するところ

サイトマップにURLが出ない時は、Copicode側の登録条件だけでなく、Googleへ送るXMLサイトマップやURL検査の前提も確認します。判断に迷う場合は、次の公式情報も合わせて見てください。

確認したいこと公式情報この記事での使い方
サイトマップの作成と送信 Google Search Central サイトマップの作成と送信 sitemap.php に正しい正規URLを入れる前提を確認する時に使います。
URL検査 Google Search Console URL検査ツール サイトマップ修正後に、Googleが対象URLを取得できるか確認する時に使います。
canonical Google Search Central 重複URLの正規化 サイトマップURLとcanonicalがずれている時、どのURLを正規にするか決める時に使います。