私の会社のブランドのウェブサイトのサイトマップは、一見したところ、うまく見えるようです。そのようなエラーは特に見られません。ただし、SEOツールであるSEMrushは、サイトマップが正しい形式ではないことを報告しています。 SEMrushは何が悪いのか教えてくれません。フォーマットが正しくないというだけです。
そこで、このオンライン検証ツールにサイトマップを提出しました。
問題は見つかりませんでした。しかし、別のツールで実行すると:
http://tools.seochat.com/tools/site-validator/
lastmod
タグに対していくつかのエラーを返します。それらの1つを次に示します。
<url><loc>http://www.photojaanic.com/photo-gifts/keychains</loc> <lastmod>2017-07-24T04:37Z</lastmod><changefreq>yearly</changefreq></url>
エラー1826:要素
'{http://www.sitemaps.org/schemas/sitemap/0.9}lastmod'
:'2017-07-24T04:37Z'
は、ユニオン型'{http://www.sitemaps.org/schemas/sitemap/0.9}tLastmod'
の有効な値ではありません。行:5列:0
これがサイトマップが間違っている理由でしょうか?なぜ日時の形式が間違っているのだろうか。
別の検証ツールも試しました。その場合でも、lastmod
の問題とともに多くのエラーが返されます。
http://freetools.webmasterworld.com/tools/site-validator
他のエラーはビデオや画像に関連しているので、私はそれほど心配していません。それを修正することができます。私が心配しているのは、lastmod
タグに関するものです。
lastmod
の問題を回避する方法は、単に時間を除外することです。ただし、エラーがある理由を知りたいです。
スキーマごとに、tLastMod
はxsd:date
とxsd:dateTime
の結合です。
時間を指定するため、最初のケースではないため、文字列はXSD dateTime
タイプに準拠する必要がありますが、そうではありません。秒でパーツを指定する必要があります。
完全な形式については、 https://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/#dateTime-lexical-mapping を参照してください。
したがって、2017-07-24T04:37:00Z
を試してみると、この要素の検証エラーはなくなるはずです。
値が空でないことを確認してください。これをしばらくトラブルシューティングし、特定のエントリの「最終編集日」フィールドが空白であるため、特定のURLに何も入力されていないため、XMLファイルでマークアップエラーが発生していることに気付きました。
ツール http://tools.seochat.com/tools/site-validator/ は、秒も指定してもエラーになりません。
<lastmod>2017-07-24T04:37:00Z</lastmod>
日時に秒は必要ですか?仕様とスキーマに矛盾があります:
lastmod
の仕様によれば、日付時刻に秒を指定する必要はありません。 lastmod
要素は、「 W3C Datetime format 」を使用します。これは、日時が有効であることに応じて異なります。
XMLスキーマによると、日付時刻には秒の指定が必要です( Patrick Mevzekの回答が指摘しているように )。