Существует довольно большая коллекция генераторов файлов Sitemap для XML (если вы хотите, чтобы это было сгенерировано, а не HTML-карта сайта или что-то еще?) На http://code.google.com/p/sitemap-generators/wiki/SitemapGenerators
Как правило, для любого более крупного сайта лучшим решением является получение информации непосредственно из источника, например, из базы данных, которая обеспечивает работу сайта. Сделав это, вы можете получить наиболее точный и актуальный файл Sitemap. Если вам нужно сканировать сайт, чтобы получить URL-адреса для файла Sitemap, это займет довольно много времени для более крупного сайта, и он будет загружать сервер в течение этого времени (это похоже на посещение всех страниц на вашем сайте). Периодически обходите сайт, чтобы определить, есть ли проблемы с возможностью сканирования (такие как бесконечные календари, содержимое, скрытое в формах и т. Д.), - это хорошая идея, но если вы можете, обычно лучше получить URL-адреса для файла Sitemap напрямую.