Just a few things that I have found on optimising my pages:
- use short id's. I know this sounds stupid but in one of my pages that used a large and complicated rich:tree the total page size was reduced by 50% when I changed from descriptive ids (tree1,container1 etc) to single character id's. Even for complicated nestled database you can see a significant reduction in generated page size by shortening your id size.
- Use a profiler, without one you are basically guessing. This will allow you to check for excessive calls to seam interceptors.
- do not make EL calls on a seam component in a large dataTable or repeated section unless it as been anotated with @BypassInterceptors. The seam interceptors kill performance if you are making lots of calls.
- be careful what you are sending back to the server on each ajax request. If you have a large datatable with input widgets in each row processing all these inputs on the server side can take a while.
-gzip or deflate content to reduce size when being transmitted over the wire.
Thats all I can think of off the top of my head, if you want more specific advice you are going to have to post the specific section of the page you are having performance problems with.