2026年8月21日
2026年8月21日
WordPressで記事の更新日を正しく管理して、Googleに鮮度を正確に伝える方法
記事の「更新日」は、日付を新しくすれば評価が上がるスイッチではありません。Googleに正確な鮮度を伝えるために必要なのは、内容を実際に改善したときだけ更新日を変え、その日付をページ上の表示・構造化データ・XMLサイトマップで食い違いなく示すことです。この記事では、WordPressが日付をどう持っているか、Googleが日付をどう扱うか、テーマ・サイトマップ・運用ルールの整え方と確認方法を順に説明します。
WordPressが持っている2つの日付
WordPressの投稿には、データベース(wp_posts テーブル)上に次の日付が保存されています。
post_date/post_date_gmt:公開日。予約投稿の日時もここに入りますpost_modified/post_modified_gmt:最終更新日。投稿を保存するたびに、その時刻へ書き換わります
ここで押さえておきたいのは、post_modified は「内容が変わったか」を見ていないという点です。誤字を1文字直しただけでも、カテゴリーを付け替えただけでも、保存すれば更新日は今日になります。つまり、何もしなければ「更新日=最後に誰かが保存した日」でしかありません。更新日を意味のある情報にするには、運用側でルールを決める必要があります。
テンプレートで日付を出すときは、公開日に get_the_date()、更新日に get_the_modified_date() を使います。時刻まで扱いたい場合は get_the_time() と get_the_modified_time() が対応します。
Googleは日付をどう扱っているか
Google検索セントラルには、ページの日付をGoogleに正しく伝えるためのガイドがあります。公式ドキュメントの要点は次のとおりです(2026年10月現在)。
- Googleは1つの要素だけで日付を決めず、ページ上の表示や構造化データなど複数の手がかりを使う
- 読者に見える位置に日付を表示し、「公開日」「更新日」のようにラベルを付けるとわかりやすい
- 構造化データでは
datePublishedとdateModifiedを使い、タイムゾーン付きの形式で書く - 表示上の日付と構造化データの日付を一致させる。未来の日付や、内容と無関係な日付を混ぜない
また、Googleの「有用なコンテンツ」に関する自己評価の項目には、内容がほとんど変わっていないのに日付だけを変えて新しく見せていないか、という問いが含まれています。日付を一括で今日に揃えるプラグインや、定期的に更新日だけを書き換える運用は、この考え方に反します。
鮮度が重視されるかどうかは検索クエリによって異なります。ニュース性のある話題や、仕様が頻繁に変わる製品の話題では新しい情報が求められやすく、普遍的な解説では日付より内容の正確さが問われます。更新日を整えることは評価を約束するものではなく、「正しい情報を誤解なく伝える土台」と考えてください。
テーマで公開日と更新日を正しく表示する
多くのテーマは公開日か更新日のどちらかしか表示しない、または両方を同じ見た目で並べています。自分で調整する場合は、テーマを直接編集せず、子テーマにテンプレートをコピーして編集します。作業前にはファイルとデータベースのバックアップを取ってください。
次の例は、公開日を常に表示し、更新日は公開から1日以上たって保存された場合だけ表示します。time 要素の datetime 属性にISO 8601形式(タイムゾーン付き)を入れることで、機械にも読み取りやすくなります。
<?php
// 子テーマのテンプレート(例: template-parts/content-single.php)のループ内に記述
$published_ts = (int) get_the_time( 'U' );
$modified_ts = (int) get_the_modified_time( 'U' );
?>
<p class="entry-dates">
<time datetime="<?php echo esc_attr( get_the_date( 'c' ) ); ?>">
公開日:<?php echo esc_html( get_the_date() ); ?>
</time>
<?php if ( $modified_ts > $published_ts + DAY_IN_SECONDS ) : ?>
<time datetime="<?php echo esc_attr( get_the_modified_date( 'c' ) ); ?>">
更新日:<?php echo esc_html( get_the_modified_date() ); ?>
</time>
<?php endif; ?>
</p>
ブロックテーマを使っている場合は、サイトエディターの「投稿日」ブロックで更新日を表示する設定が用意されています(設定項目の表記はWordPressのバージョンで変わることがあります)。PHPを触らずに済むので、まずはそちらを確認するとよいでしょう。
構造化データとタイムゾーンを揃える
Yoast SEO や Rank Math などのSEOプラグインは、投稿の公開日と更新日を構造化データ(JSON-LD)として自動で出力します。自前で構造化データを書き足すと、同じページに異なる日付が2つ出る原因になるため、まずはプラグインの出力をそのまま使い、テーマ側で重複して出していないかを確認します。
見落としやすいのがタイムゾーンです。「設定」→「一般」のタイムゾーンが UTC のままだと、日本時間の深夜に公開した記事の日付が前日扱いになり、表示と構造化データ、検索結果の日付がずれて見えることがあります。日本向けのサイトなら「東京」を選ぶのが無難です。
XMLサイトマップの lastmod を正確にする
GoogleはXMLサイトマップの lastmod を、その値が一貫して正確だと確認できるサイトでは参考にすると説明しています。逆に、すべてのURLに同じ日時が入っている、内容が変わっていないのに毎回更新されている、といったサイトでは信頼されにくくなります。なお changefreq と priority はGoogleが使っていないと公式に案内されています。
Yoast SEO や Rank Math のサイトマップは、投稿の更新日を lastmod に使います。SEOプラグインを使わずWordPressコアのサイトマップ(/wp-sitemap.xml)を使っている場合、バージョンによっては投稿の lastmod が出力されないことがあるため、子テーマの functions.php などで補えます。
<?php
// コアのサイトマップに投稿の最終更新日を追加する(すでに値がある場合は変更しない)
add_filter( 'wp_sitemaps_posts_entry', function ( $entry, $post ) {
if ( empty( $entry['lastmod'] ) ) {
$entry['lastmod'] = get_post_modified_time( 'c', true, $post );
}
return $entry;
}, 10, 2 );
SEOプラグインがサイトマップ機能を有効にしている場合、コアのサイトマップは通常無効化されるため、このコードは影響しません。どちらのサイトマップを Search Console に登録しているかを先に確かめてください。
更新日を変える基準を決める
技術的な設定よりも効果が大きいのが、編集チームでの基準づくりです。たとえば次のように決めておくと、更新日が「読者にとって意味のある変化があった日」になります。
- 更新日を変える:手順や仕様の変更に合わせた書き直し、情報の追加、誤った記述の訂正、古いスクリーンショットの差し替え
- 更新日を変えたくない:誤字脱字の修正、内部リンクの付け替え、カテゴリーやタグの整理、画像の圧縮
WordPressには「軽微な修正なので更新日を変えない」という標準機能がありません。サイトによっては、そうした選択肢を投稿画面に追加するプラグインを使っています。導入する場合は、最終更新日や対応バージョンを確認し、ステージング環境で動作を試してから本番に入れてください。
大きく書き直した記事は、記事内に「何を更新したか」を短く書き添えると読者にも親切です。
正しく反映されているかを確認する
設定後は、次の順で確認します。
- 投稿ページのソースを開き、表示されている日付と JSON-LD の
datePublished/dateModifiedが一致しているか - サイトマップを開き、更新した記事の
lastmodだけが新しくなっているか - ページキャッシュやCDNを使っている場合、キャッシュを削除した後に古い日付が残っていないか
- 大きく書き直した記事は、Search Console の URL 検査で再クロールをリクエストする(ボタンの表記は変わることがあります)
更新日の偏りを一覧で見たい場合は、WP-CLIで更新日の新しい順に並べると、意図しない一括更新が起きていないかを把握できます。
wp post list --post_type=post --post_status=publish --orderby=modified --order=DESC --fields=ID,post_title,post_date,post_modified --format=table
同じ日時に大量の記事が更新されていたら、プラグインの一括処理や検索置換ツールが原因の可能性があります。
まとめ
- WordPressの更新日(
post_modified)は保存するたびに変わり、内容の変化とは連動しない - Googleは複数の手がかりで日付を判断する。表示・構造化データ・サイトマップの日付を一致させる
- 内容が変わっていないのに日付だけを新しくする運用は、Googleのガイドに反する
- 表示の調整は子テーマで行い、タイムゾーンは「東京」など実際の地域に合わせる
- 「どんな変更なら更新日を変えるか」をチームで決めることが、正確な鮮度の伝達につながる