I took a look at your site. Once the site loads initially, and once individual pages have loaded once, then the site responds quickly.
This is the standard behavior with ASP.NET sites, and not just DotNetNuke. ASP.NET has to load and compile the site. If your traffic is low, and depending on how your web server is configured, your site may get unloaded. Then, when you go back to the site, you have to wait through the initial loading again.
The trick here is to keep your site loaded. If you control your web server, you can configure it NOT to unload. If you don't control it, you need to use a "keep-alive" service to hit your site on a regular basis to keep it loaded. Generally, keep-alive services hit the site every 5 minutes.
You should also configure the Performance Settings (under Host Settings) for best performance. Look at
this link for a current description of increasing the performance of DotNetNuke sites.