Non iso date
Quick winFound on 2% of audited stores.
Change every datePublished (and dateModified) value in your structured data from a human-readable string to a strict ISO-8601 date — formatted as YYYY-MM-DD or YYYY-MM-DDThh:mm:ss+hh:mm — so search engines can reliably parse your content's freshness.
What it is
Structured data on your pages (the hidden JSON-LD code that tells Google and other search engines what your content is about) includes date fields such as `datePublished` and `dateModified`. ISO-8601 is the internationally standardised date format — for example, `2025-03-12` or `2025-03-12T09:00:00+00:00`. When a date is written in plain English instead — like "Wed Mar 12 2025" — machines can't reliably read it, because there's no single agreed way to parse natural-language dates. Your current schema contains at least one date in a non-standard format, which means search engines may misread or completely ignore it.
Why it matters
Content freshness is a real ranking signal. Google uses `datePublished` and `dateModified` to understand when your pages and articles were created or last updated, and it surfaces that information directly in search results (e.g., "3 days ago" next to a result). If the date can't be parsed, Google may either ignore freshness entirely — hurting rankings for time-sensitive queries — or infer an incorrect date, making a new page look old. For AEO (Answer Engine Optimisation), where AI-powered tools like Google's AI Overviews and Bing Copilot prioritise the freshest, most reliable sources, an unreadable date can mean your content is skipped over in favour of competitors whose schema is clean. Fixing this is a quick win with direct impact on how your pages are indexed and presented.
How to fix it
- Identify every JSON-LD block on your site that contains a `datePublished` or `dateModified` field — common schema types include WebPage, Article, BlogPosting, Product, and Event.
- Check the current value of each date field. If it looks like 'Wed Mar 12 2025', 'March 12, 2025', or any format other than YYYY-MM-DD, it must be corrected.
- Replace the value with a strict ISO-8601 string. Use `YYYY-MM-DD` (e.g., `2025-03-12`) for date-only values, or `YYYY-MM-DDThh:mm:ss+hh:mm` (e.g., `2025-03-12T09:00:00+00:00`) when you want to include the time and timezone.
- Ensure `dateModified` is also present and up to date — set it to the last date you made meaningful changes to the page's content.
- After updating, paste the page URL (or the JSON-LD code) into Google's Rich Results Test to confirm no errors are reported for the date fields.
- If dates are generated dynamically by your CMS or theme, update the template or plugin that outputs the schema so all future dates are automatically formatted in ISO-8601.
Fix it on your platform
Pick your platform for the exact steps.
How to fix non iso date on Shopify
- In your Shopify admin, go to Online Store → Themes → click 'Edit code' on your active theme.
- Search for 'datePublished' using the search bar in the code editor — it is typically found in theme.liquid, article.liquid, page.liquid, or a snippets/ file such as snippets/structured-data.liquid.
- Locate the Liquid output tag that renders the date, e.g. {{ article.published_at }} or a hardcoded string.
- Replace it with the Liquid date filter to enforce ISO-8601: {{ article.published_at | date: '%Y-%m-%dT%H:%M:%S+00:00' }}
- Do the same for dateModified, using {{ article.updated_at | date: '%Y-%m-%dT%H:%M:%S+00:00' }}
- Save the file, then test a live article URL in Google's Rich Results Test to confirm the dates parse correctly.
How to fix non iso date on Shopify Plus
- Follow the same steps as Shopify above — Shopify Plus uses the same theme code architecture.
- If your store uses a custom Hydrogen (headless) storefront, update the date formatting in your React components (see Headless / Custom entry below).
- For script-injected schema via Shopify Scripts or a third-party app (e.g., JSON-LD for SEO), update the date format inside the app's template settings.
How to fix non iso date on WooCommerce
- Install or open the Yoast SEO or Rank Math plugin (both auto-generate schema with correct ISO-8601 dates if configured properly).
- In Yoast SEO: go to SEO → Search Appearance → Content Types and ensure schema is enabled; Yoast outputs dates in ISO-8601 automatically from WordPress post meta.
- If you have custom JSON-LD in a child theme, open Appearance → Theme File Editor → find functions.php or the file where you call wp_head() with schema output.
- Replace any PHP date output like get_the_date() (which returns a human-readable string) with get_the_date('c') — the 'c' format code returns a full ISO-8601 string, e.g. 2025-03-12T09:00:00+00:00.
- For dateModified, use get_the_modified_date('c').
- Clear any caching plugin cache, then verify with Google's Rich Results Test.
How to fix non iso date on BigCommerce
- Go to Storefront → My Themes → click 'Edit Theme Files' (Advanced) on your active theme.
- Open the Stencil template file where schema is output — commonly templates/pages/blog-post.html or templates/components/schema.html.
- Locate the date field. Stencil exposes a published_date object; use its iso8601 property: {{ blog.published_date.iso8601 }} which outputs a valid ISO-8601 string.
- If that property is unavailable in your theme version, use the datetime attribute pattern: {{ blog.published_date.datetime }}.
- For dateModified, use the same approach with the updated date helper if available, or set it equal to datePublished as a minimum.
- Save, push the theme, and validate with Google's Rich Results Test.
How to fix non iso date on Wix
- Wix automatically generates structured data for Blog Posts and uses ISO-8601 dates internally — if you see a non-ISO date it is coming from a custom HTML embed or third-party app.
- To check: in the Wix Editor, look for any HTML Embed elements (Add → Embed → Custom Code or Embed a Widget) that contain JSON-LD with date fields.
- Click on the embed, open the code, and manually update any date values to YYYY-MM-DD format.
- For site-wide custom code, go to Settings → Custom Code, find the relevant code block, and edit the date strings.
- If you use a Wix app that injects schema (e.g., a blog or events app), check that app's settings panel for date format options.
- Use Google's Rich Results Test on the live Wix page URL to confirm the corrected date is being read.
How to fix non iso date on Squarespace
- Squarespace auto-generates schema for Blog Posts with ISO-8601 dates from the post's publish date — verify the post's publish date is set correctly in the blog post editor (Posts → click post → gear icon → Publish Date).
- If you have injected custom JSON-LD via Settings → Advanced → Code Injection (site-wide header) or a Page Header Code Injection block, locate the date fields in that code.
- Update any non-ISO date strings to YYYY-MM-DD or YYYY-MM-DDThh:mm:ss+hh:mm format.
- Squarespace does not expose Liquid/template variables in Code Injection, so dates in custom JSON-LD blocks must be updated manually or via a connected tool.
- Save changes and validate the page with Google's Rich Results Test.
How to fix non iso date on Webflow
- Open your Webflow project in the Designer. For CMS-powered pages (Blog Posts, etc.), go to the CMS Collection settings and ensure the Publish Date field is a Date field type (not plain text).
- In the page template (e.g., Blog Post template), add or locate a JSON-LD Embed element containing your schema.
- Bind the date field to the JSON-LD using a CMS embed with the correct format. In Webflow's embed code, use the CMS date field connected via the 'Add Field' button and select the ISO 8601 format option.
- Webflow's date fields output in ISO-8601 when you select the 'YYYY-MM-DD' or full datetime format in the embed binding dialog.
- For static pages with hardcoded JSON-LD, select the embed element, click Edit Code, and manually correct the date string to YYYY-MM-DD.
- Publish the site and confirm via Google's Rich Results Test.
How to fix non iso date on Adobe Commerce (Magento)
- Schema in Adobe Commerce is typically added via a custom module or a third-party extension (e.g., MageWorx SEO Suite, Amasty SEO Toolkit).
- If using an extension, go to Stores → Configuration → the extension's settings panel and look for a 'Schema / Structured Data' section — update date format to ISO-8601 if the option exists.
- For custom module output, locate the Block or ViewModel PHP class that builds the JSON-LD array, typically in app/code/Vendor/Module/Block/ or similar.
- Replace any date formatting call that produces a human-readable string with PHP's ISO-8601 format: date('c', strtotime($dateString)) or (new \DateTime($dateString))->format(\DateTime::ATOM).
- Flush the Magento cache: System → Cache Management → Flush Cache Storage.
- Validate with Google's Rich Results Test on the affected page type.
How to fix non iso date on Magento Open Source
- Follow the same steps as Adobe Commerce (Magento) above — the codebase and approach are identical for structured data fixes.
- After editing theme/module files, run bin/magento cache:flush from the CLI to clear all caches.
How to fix non iso date on WordPress.org
- If using Yoast SEO or Rank Math, these plugins output ISO-8601 dates automatically — no change needed unless you have overridden schema output.
- For custom schema in your theme's functions.php or a custom plugin, replace get_the_date() with get_the_date('c') and get_the_modified_date() with get_the_modified_date('c') — the 'c' format returns full ISO-8601.
- If schema is in a template file (e.g., single.php), locate the JSON-LD script block and apply the same get_the_date('c') fix.
- Update child theme files via Appearance → Theme File Editor, or via FTP/SFTP for direct file access.
- Clear any active caching plugin (WP Rocket, W3 Total Cache, etc.) after saving.
- Verify with Google's Rich Results Test.
How to fix non iso date on Headless / Custom (I build in code)
- Find every location in your codebase where `datePublished` or `dateModified` is set in a JSON-LD object.
- Replace any date construction that outputs a non-ISO string (e.g., new Date().toString(), toDateString(), toLocaleDateString()) with toISOString() in JavaScript/TypeScript — e.g., new Date(publishedAt).toISOString() returns '2025-03-12T09:00:00.000Z'.
- In Python, use datetime.isoformat() or datetime.strftime('%Y-%m-%dT%H:%M:%S+00:00').
- In PHP, use date('c', $timestamp) or (new DateTime($dateString))->format(DateTime::ATOM).
- Ensure the value is a string in the final JSON-LD output, not a Date object.
- Deploy, then validate with Google's Rich Results Test or by fetching the page source and inspecting the JSON-LD block.
How to fix non iso date on Next.js (Headless)
- Locate every page or component that renders a JSON-LD <Script type='application/ld+json'> block (typically in app/[slug]/page.tsx, app/blog/[slug]/page.tsx, or a shared JsonLd component).
- Create a shared helper utility (e.g. lib/formatIsoDate.ts) that accepts any date value and always returns a strict ISO-8601 string with timezone offset (YYYY-MM-DDThh:mm:ss+hh:mm), throwing a clear error for invalid inputs so bad dates are caught at build time.
- Replace every raw date string literal or .toLocaleDateString() / human-readable format passed to datePublished and dateModified with a call to this helper — both in the JSON-LD structured-data object AND in any og:article:published_time / og:article:modified_time meta tags produced by generateMetadata().
- For dates that originate from a CMS or API, pipe the raw value (ISO string, Unix timestamp, or JS Date object) directly into the helper rather than formatting it for display first — keep display formatting separate (e.g. use Intl.DateTimeFormat only for visible UI text).
- Run next build and check the build output for any thrown date-format errors from the helper; then validate a rendered page's JSON-LD with Google's Rich Results Test to confirm the ISO-8601 format is accepted.
Does your site have this issue?
Run a free SEOLZ scan to find non iso date — and every other issue — across your whole site in minutes.
Scan my site freeFrequently asked questions
What is Non iso date?
Structured data on your pages (the hidden JSON-LD code that tells Google and other search engines what your content is about) includes date fields such as `datePublished` and `dateModified`. ISO-8601 is the internationally standardised date format — for example, `2025-03-12` or `2025-03-12T09:00:00+00:00`. When a date is written in plain English instead — like "Wed Mar 12 2025" — machines can't reliably read it, because there's no single agreed way to parse natural-language dates. Your current schema contains at least one date in a non-standard format, which means search engines may misread or completely ignore it.
Why does non iso date matter?
Content freshness is a real ranking signal. Google uses `datePublished` and `dateModified` to understand when your pages and articles were created or last updated, and it surfaces that information directly in search results (e.g., "3 days ago" next to a result). If the date can't be parsed, Google may either ignore freshness entirely — hurting rankings for time-sensitive queries — or infer an incorrect date, making a new page look old. For AEO (Answer Engine Optimisation), where AI-powered tools like Google's AI Overviews and Bing Copilot prioritise the freshest, most reliable sources, an unreadable date can mean your content is skipped over in favour of competitors whose schema is clean. Fixing this is a quick win with direct impact on how your pages are indexed and presented.
How do I fix non iso date?
Change every datePublished (and dateModified) value in your structured data from a human-readable string to a strict ISO-8601 date — formatted as YYYY-MM-DD or YYYY-MM-DDThh:mm:ss+hh:mm — so search engines can reliably parse your content's freshness.
Authoritative references
- Intro to structured data — Google Search Central
- Getting started with schema.org — Schema.org
- Rich Results Test — Google Search Central