Friday, April 29, 2011

How to validate compliant XML sitemap?

For the following header I get the same two errors on all my sitemaps. It's confusing because, if Google can't read my sitemap, then how can they say that each URL has the same priority? The header counts as line 2, after the XML declaration. Google claims only to have indexed about 2% of the URLs from the maps. Please help.

UPDATE: I think the problem is that I don't know how to validate against a schema. How to do that?

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">

==Parsing error
We were unable to read your Sitemap. It may contain an entry we are 
unable to recognize. Please validate your Sitemap before resubmitting.

==Notice
All the URLs in your Sitemap have the same priority...

UPDATE: Please be patient, first time validating XML. I don't understand the errors.

Errors in the XML document:
    4: 80 SchemaLocation: schemaLocation value = 'http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd' must have even number of URI's.
    4: 80 cvc-elt.1: Cannot find the declaration of element 'urlset'.

XML document:
1   <?xml version="1.0" encoding="UTF-8"?>
2   <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4     xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
5     <url>
6       <loc>http://nutrograph.com/1-butter-salted</loc>
7       <changefreq>monthly</changefreq>
8       <priority>0.8</priority>
9     </url>
10    <url>
11      <loc>http://nutrograph.com/2-butter-whipped-with-salt</loc>
12      <changefreq>monthly</changefreq>
13      <priority>0.8</priority>
14    </url>
15  </urlset>
From stackoverflow
  • It's real hard to diagnose what could be wrong without the sitemap itself. Or did I miss something obvious?

    Jesse : The sitemap is well-formed. I think the header is wrong.
  • Have you validated your XML against the schema given here: http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd

    If yes, what was the result?

    If not, what is the URL of your sitemap?

    If you don't know how to validate the XML against the schema, use http://www.xmlvalidation.com/

    Paste the sitemap-XML there, click on "Validate against external XML schema" and paste the schema after clicking the Validate-button.

    This will tell you what's wrong with your XML. If you don't know how to interpret the result, please amend your original question accordingly.

    Edit: The error was a missing namesapce-URL in the schemaLocation. The first tag has to look like this:

    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
    
    Jesse : I'm not sure how to do that..
  • Strike the above. Looking at Googles site, their sitemap header seems to be a little longer than yours.

    It's on this page: https://www.google.com/webmasters/tools/docs/en/protocol.html

    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
    http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
    
    Jesse : I think the problem is that I don't know how to validate against a schema.
    Jesse : That was the format I tried first. It didn't seem to work. I'll try it again.
  • Nottice that the schemaLocation has 2 URi's... (must have even number of URI's)

    It should look like this: **

    xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"

    **

0 comments:

Post a Comment