Content Dates — datePublished, dateModified and a Visible Date

What the evidence says (October 2026): A study by Rick Ramos (14 October 2026) found that ChatGPT (web search, app) and Claude (Web Fetch, Claude.ai) strip JSON-LD when they fetch a page live. Facts that appeared only in the schema were answered 0 out of 100 times. Gemini via the API's URL context did receive the JSON-LD, but weighted it like an ordinary sentence. So a date that exists only in your markup is invisible to ChatGPT and Claude — a date in the visible text is not. Not studied: Perplexity, training crawlers (GPTBot, ClaudeBot) and Google AI Overviews.

Show the publication and update date visibly on the page, and mirror the same dates in datePublished and dateModified. Google documents both ways. Whether AI assistants use dates to rank or select sources has not been shown.

TL;DR: Put a labelled date (“Published …”, “Last updated …”) in the visible HTML. Add datePublished and dateModified to your Article JSON-LD with exactly the same dates. Change dateModified only when the content really changes. Use ISO 8601 in the markup (YYYY-MM-DD, optionally with time and timezone).

Why do dates on a page matter?

For Google: Google shows a byline date in search results when it considers it useful. According to its documentation on byline dates, Google “doesn't depend on a single date factor” and looks at several factors to estimate when a page was published or significantly updated. It recommends two things: a user-visible date that is featured prominently and clearly labelled, and structured data with datePublished and/or dateModified. Google does not guarantee that a date will be shown.

For ChatGPT and Claude: According to the study above, they remove JSON-LD when fetching a page live. Whatever date you put only in the markup does not reach them. A date written in the visible text does. If readers of AI answers should learn how current your page is, the date has to be on the page.

What is open: We do not know whether Perplexity, ChatGPT, Claude or Google AI Overviews treat recency as a ranking signal, or whether they penalise missing or inconsistent dates. We found no study that answers this. We will not claim an effect we cannot show.

How does datePublished work in Schema.org?

datePublished is a property of the Schema.org CreativeWork type (and its subtypes such as Article, BlogPosting, NewsArticle). It states when the content was first published. Google recommends adding it to a CreativeWork subtype such as Article or BlogPosting. Set it once and do not move it later: the date should describe the actual first publication.

How does dateModified work in Schema.org?

dateModified is a property of the Schema.org CreativeWork type that records the most recent update. Update it when you revise the content. We recommend not bumping it for trivial changes (fixing a typo, changing CSS) — otherwise the date stops telling readers anything. Substantive changes (new section, updated facts, revised statistics) do warrant a new date.

What counts as a substantive update?

A substantive update changes the informational value of the page for a reader. Examples: adding or replacing a code snippet, updating statistics or prices, adding a new section, revising a recommendation based on new information, or correcting a factual error. Formatting changes, typo fixes and visual redesigns are not substantive updates. This is our editorial recommendation; Google speaks of pages that were “significantly updated”, without defining the term.

What about Open Graph date tags?

The Open Graph protocol defines article:published_time and article:modified_time for pages of type article:

You can add them, but neither Google's documentation on byline dates nor the study above covers them. We do not know whether search engines or AI assistants use them for dates. Treat them as optional; the visible date and the JSON-LD are the documented ways.

Step-by-step — add dates to your pages

  1. Add a visible, labelled date to every article: “Published …” and, if it applies, “Last updated …”. Render it in the server-side HTML.
  2. Add datePublished to your Article JSON-LD on every published page.
  3. Set dateModified to the same value as datePublished when you first publish.
  4. Create a process (a CMS field, a deploy script or a commit hook) that updates dateModified and the visible “Last updated” date together whenever content changes.
  5. Check that the visible date and the markup show the same date. Google: “Ensure that the date (and optional time and timezone) match between the equivalent user-visible and structured values.”
  6. Validate the markup with Google's Rich Results Test.

Code example — visible date plus JSON-LD

<!-- Visible date: part of the page text that is fetched -->
<p class="byline">
  Published: <time datetime="2026-04-16">16 April 2026</time> ·
  Last updated: <time datetime="2026-10-16">16 October 2026</time>
</p>

<!-- JSON-LD structured data: same dates as the visible byline -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Your Article Title",
  "datePublished": "2026-04-16T09:00:00+02:00",
  "dateModified": "2026-10-16T14:30:00+02:00",
  "author": {
    "@type": "Person",
    "name": "Your Name"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Your Organisation",
    "url": "https://example.com"
  },
  "url": "https://example.com/your-article",
  "mainEntityOfPage": "https://example.com/your-article"
}
</script>

<!-- Optional: Open Graph article tags (use by search/AI not documented) -->
<meta property="article:published_time" content="2026-04-16T09:00:00+02:00">
<meta property="article:modified_time" content="2026-10-16T14:30:00+02:00">

Google: “The date is required; the time is not”, but it recommends a time and timezone in the markup for added precision. In the visible text, time and timezone are optional even if the markup has them.

Common mistakes to avoid

Official sources

Test your website now — free AI Visibility Score 30+ checks in under 30 seconds