For basic questions about Standard-Navigation, see the home page.
What sitemaps.org defines, is not a site map, but rather a simple pages’ list. There is no information about the site’s hierarchy or information architecture included whatsoever. sitemaps.org contains only 3 pieces of information (besides the page’s URL):
Summing up, the main difference is that sitemaps.org doesn’t do anything for the user – it just serves the needs of search engines. Standard-Navigation, on the other hand, was designed explicitly to meet the users’ needs.
If Google (and the other search engines endorsing sitemaps.org) is willing to cooperate, we could easily include the lastmod&changefreq information into our format too, thereby integrating the entire scope of sitemaps.org.
In principle, <link rel> and Standard-Navigation both address the very same issue: describing a web site’s structure. But <link rel> suffers from two major flaws:
So it’s no big surprise that <link rel> has failed. But does this mean that nobody is interested in improving web site navigation? We say no – quite the contrary: If you consider how awkward a concept <link rel> is, the fact that numerous web masters actually do make use of it, gives clear evidence of their tremendous interest in navigation issues. Because otherwise they certainly wouldn’t have bothered to fiddle about with <link rel> :-)
Finally, <link rel> isn’t suited for rendering a navigation system, because since the <link rel> tag resides inside of each HTML page, the browser would have to download every single page to get a comprehensive overview of the web site’s structure.
Actually, the idea for Standard-Navigation was born when Christoph Mueller (author of the cmSiteNavigation Toolbar extension for Firefox) and Thomas Landauer were thinking about ways to promote the usage of <link rel>. However, it soon became clear to them that the concept was flawed from the outset – so they started from sratch.
(Breadcrumbs are a navigation aid, showing your path through the hierarchy, e.g.: Home > Products > Sports > Bikes)
Since all the required information is readily available in the sitemap file, it’s easy to generate breadcrumbs automatically. We will let the users decide, if they want breadcrumbs displayed (in an extra toolbar) or not.
Choose a method:
Declare this in the <head> of each HTML file (analogous to http://www.w3.org/TR/relations.html):
<link rel="standard-sitemap" href="sitemap.xml" type="application/xml" />
Send out this HTTP header with each file:
X-Standard-Sitemap-Location: /sitemap.xml
In Apache’s .htaccess, use:
LoadModule headers_module modules/mod_headers.so
Header set X-Standard-Sitemap-Location /sitemap.xml
In PHP, use:
<?php
header('X-Standard-Sitemap-Location: sitemap.xml');
?>
Any – you state the URL in the <link> tag or HTTP header anyway :-)
For XML-compliance, you need to escape & as &. For example:
http://www.example.com/page.php?content=products&page=2
becomes:
http://www.example.com/page.php?content=products&page=2
Use the information in the HTTP header to determine if the Sitemap extension is shown in the user’s browser (see Discussion).
<item>
<variant type="text/html" url="news.htm" ... />
<variant type="application/rss+xml" url="feed.xml" ... />
</item>
<item type="application/rss+xml" url="feed.xml" ... />.
That you have to figure out on your own!
Rather not. The sitemap should only contain pages that the user wants so see intentionally.
An <item> is a clickable entry in the sidebar/toolbar. <group> is used to separate several <item>’s from the others. Rule of thumb: Use <item> for each link in your navigation bar(s). Use <group> for each navigation bar (if you have multiple). Details:
No. If the website does not contain a home page in the literal sense (i.e. no page to which all others are subordinate), there will be several entries in the sitemap below the root element <sitemap>. But note: In this case, a click on the "Up" icon does not alway bring the user to the same page as a click on the logo. See the Google sitemap on the Examples Page.
Yes. We advise against it, but if the very same page belongs to different categories, that’s the only way.
For example, you can use:
<item> <!-- home page -->
<variant lang="en" ... />
<variant lang="de" ... />
<item lang="en" name="Software" ... />
<item lang="de" name="Hardware" ... />
</item>
In this case, the home page is available in English and German; the Software page is available in English only; the Hardware page in German only.
If your website is huge and you don’t want to find out which page corresponds to which (in the other languages), you may also treat the different languages as different "roots". We strongly advise against it, because the user will not be able to switch directly to the same page in another language. It is possible though:
<item lang="en"> <!-- english home page -->
... <!-- thousands of <item>'s -->
</item>
<item lang="de"> <!-- german home page -->
... <!-- thousands of <item>'s -->
</item>
<item> <!-- home page -->
<variant lang="en" ... />
<variant lang="de" ... />
<item> <!-- first sub-page -->
<variant lang="en" ... />
<variant lang="de" ... />
</item>
... <!-- thousands of further <item>'s with their <variant>'s -->
</item>
No, not in our implementation; they’re always shown in the shortcut toolbar (in a predeterminded order). But just in case that another implementation (or device) does not feature the shortcut toolbar, we recommend to place them where you would put them if there was no shortcut toolbar at all ;-)
Inside the pull-down menu of this role, the <item>’s are shown in the order they appear in your sitemap file.