The custom cache key is required so that request.url_root is part of the key,
so that multiple domains pointing to the same server will get the correct
cached sitemap (since the sitemap contains the domain).
Initially the rel="alternate" hreflang="xx" links in the sitemap caused the
size of the file to increase exponentially as additional languages were added.
The current implementation has a single sitemap.xml for each language, with a
sitemap_index.xml at the root.