It would be useful if ikiwiki was able to create google sitemap files to allow easy indexing.
Sitemaps are particularly beneficial when users can't reach all areas of a website through a browseable interface. (Generally, this is when users are unable to reach certain pages or regions of a site by following links). For example, any site where certain pages are only accessible via a search form would benefit from creating a Sitemap and submitting it to search engines.
What I don't get is exactly how ikiwiki, as a static wiki that's quite deeply hyperlinked, benefits from a sitemap. The orphans plugin can produce a map of pages that other pages do not link to, if you're worried about having such pages not found by web spiders.
While pages are very interlinked, most people use ikiwiki for blogging. Blogging produces pages at random intervals and google apparently optimizes their crawls to fit the frequency of changes. For me it's not so often that the contents of my blog changes, so google indexes it quite infrequently. Sitemaps are polled more often than other content (if one exists) so it's lighter for the site and for search engines (yes, google) to frequently poll it instead. So it's not that pages can't be found, but it's lighter for the site to keep an up to date index.
I've written a sitemaps plugin for my own use. With a little tweaking it should be usable for others. See my git repo for an example. You will probably need to strip out the metadata variables I gather, and tweak to generate proper priorities. The code is pretty simple though and self-explanatory.
xtermin.us rather than localhost is 404 now. -- weakish
There is a sitemap XML standard that ikiwiki needs to generate for.
Google Webmaster tools and RSS
On Google Webmaster tools you can substitute an RSS feed as a sitemap. Do not use Atom as if you have malformed XHTML it will fail to parse and you will get a ERROR message like so:
We were unable to read your Sitemap. It may contain an entry we are unable to recognize. Please validate your Sitemap before resubmitting.
Took me a minute to figure this out so I figured I'd share the steps I took:
- Added rss=>1 and allowrss=>1 to my setup file
- Created a new page where the RSS would be created with this content, replacing "first_page" with the page in my wiki with the earliest date:
[[!inline pages="* and !*/Discussion and created_after(first_page)" archive="yes" rss="yes" ]]