One thing that slows down the site a lot is using a getResources call that references a lot of TVs, especially if it is searching by TV values. TVs are very slow for a number of reasons.
Of course there are other causes of slow page loads, like an overburdened shared server, lots of large images, and bad caching strategies.
If the TVs are the main problem, though, using ClassExtender to extend modResource can help a lot. It allows you to get rid of the TVs and put the data in a custom DB table, which makes things *way* faster. You can often get what you need with a single database query instead of having getResources make dozens of them.
See this for more info.:
http://bobsguides.com/blog.html/2014/06/02/why-extend-modresource/
TVs are fine for storing page-specific data if you don't have very many of them and don't use them in getResources. They are not good at all, however, for storing often-used data that you need for searching and sorting.