I am creating an app that will automatically update sitemap.xml
each time new content is added to, or updated on the site.
According to Google\'s best pract
The lastmod
tag is optional in sitmaps and in most of the cases it's ignored by search engines, because webmasters are doing a horrible job keeping it accurate. In any case, you may use it, and the format depends on your capabilities and requirements; you don't actually have to provide a timezone offset if you can't or don't want to, you can choose to go with a simple YYYY-MM-DD as well.
From the Lastmod definition section of sitemaps.org:
The date of last modification of the file. This date should be in W3C Datetime format. This format allows you to omit the time portion, if desired, and use YYYY-MM-DD.
If you want to go down to that granularity and provide the timezone offset as well, you're correct, it's UTC +/-. From W3C Datetime:
Times are expressed in local time, together with a time zone offset in hours and minutes. A time zone offset of "+hh:mm" indicates that the date/time uses a local time zone which is "hh" hours and "mm" minutes ahead of UTC. A time zone offset of "-hh:mm" indicates that the date/time uses a local time zone which is "hh" hours and "mm" minutes behind UTC.
And example, still from W3C:
1994-11-05T08:15:30-05:00 corresponds to November 5, 1994, 8:15:30 am, US Eastern Standard Time.
PHP should actually be:
date('Y-m-d\TH:i:s+00:00');
Date.prototype.toISOString()
The toISOString() method returns a string in simplified extended ISO format (ISO 8601), which is always 24 or 27 characters long (YYYY-MM-DDTHH:mm:ss.sssZ or ±YYYYYY-MM-DDTHH:mm:ss.sssZ, respectively). The timezone is always zero UTC offset, as denoted by the suffix "Z".
// expected output: 2011-10-05T14:48:00.000Z
Properly format last modified (lastmod) time for XML sitemaps in C#
var ss = DateTime.Now.ToString("yyyy-mm-ddThh:mm:ss:zzz");
The format for the lastmod field in Google Sitemaps XML for C# is the following:
var lastmod = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz");
It provides values such as <lastmod>2018-08-24T09:18:38-04:00</lastmod>
which is the W3C Datetime format.
In PHP, you can use :
$lastmod = date("Y-m-d\Th:m:s+00:00");
This will display something like:
2018-02-14T08:02:28+00:00