Additionally, should I be applying any caching to the media section of the website?
We do have caching in code, where we are pulling in a lot of data from different content nodes and serving it in a ViewModel, but other than that, it's a vanilla setup.
What are other people doing to their sites to optimize the performance of their websites? Are there any quick wins that we should 100% be using?
Performance is endless issue )
I worked on performance tasks a lot of times, can you get link to your site, I will look and maybe will give you some idea about frontEnd performance fix.
Caching of partials and output caching for whole pages is the best performance fix, what type of cache are you using?
At the moment the only caching I have applied is via HTTP Response Headers for things like CSS images and other more static files.
We also use server-side caching for ViewModel data, to save time on fetching and building the ViewModel each time. We use ObjectCache (System.Runtime.Caching) for this.
Other than that we don't cache the partials or the pages. I will actually look to implement that though as I know some of the data in our partials will hardly ever change.
I didn't actually have any performance issues to fix, I was just asking for the recommended practice to optimize performance. However I did do some investigating I have partially implemented the use of CachedPartials. Presently it's just on our staging environment so I won't know how effective this is until it's released to live.
One thing I did discover is that we are limited on where we can use CachedPartials due to our site being multi lingual. You can cache by page, which resolves some of those issues (the URL is different for each language variant), however the home page (root) uses the same URL for all languages. The language data to display is determined by GeoLocation or a cookie, not by URL. This means we can't cache any partial used on the homepage, such as the navigation or the footer. This is unfortunate. It's a shame you can't pass through a ViewData variable to return a different variant of the cached partial.
We could use a redirect so the root URL is never used (/), it would always be /uk/, /us/ etc, but I'd need to think about that a little more before committing to it.
IIS is not the highest performance web server that ever was created. So you will find that if you put something like Varnish, Squid or Nginx in front of your IIS server, performance will go up.
In regards to performance of Umbraco, we have found that overuse of nice url is a killer - only use that for content that is going to be displayed to the end users
These changes have raised our performance scores quite a bit.
One of the suggestions was to Bundle and Minify the CSS and JS files. I achieved this using the ClientDependency, rather than System.Web.Optimization. Instructions can be found here:
Hi, my opinion is to choose any CDN Services as they give better results.I also had the same problem in my website 10XCDN Services helped me to fix my problem.With their CDN I have good webpage performance. I love the fact I got a Test Trial before I bought them.. They gave really good integration support. Know about them on http://10xcdn.com/
Optimize performance of website
I am running a large corporate website in Umbraco 7.4.3. The website runs fine, but we are always looking for performance improvements where possible.
I wanted to check if there is anything I could or should be doing to improve website performance.
For example I found this old article about caching the back-office: https://umbraco.com/follow-us/blog-archive/2007/12/14/dec-10-dramatic-performance-increase-in-two-minutes/
Is this still a recommended approach?
Additionally, should I be applying any caching to the media section of the website?
We do have caching in code, where we are pulling in a lot of data from different content nodes and serving it in a ViewModel, but other than that, it's a vanilla setup.
What are other people doing to their sites to optimize the performance of their websites? Are there any quick wins that we should 100% be using?
Thanks in advance.
Nathan
Hi Nathan,
Performance is endless issue ) I worked on performance tasks a lot of times, can you get link to your site, I will look and maybe will give you some idea about frontEnd performance fix.
Caching of partials and output caching for whole pages is the best performance fix, what type of cache are you using?
Best,
Alex
Hi Alex,
At the moment the only caching I have applied is via HTTP Response Headers for things like CSS images and other more static files.
We also use server-side caching for ViewModel data, to save time on fetching and building the ViewModel each time. We use ObjectCache (System.Runtime.Caching) for this.
Other than that we don't cache the partials or the pages. I will actually look to implement that though as I know some of the data in our partials will hardly ever change.
Thanks,
Nathan
Hi Nathan,
Did you fix performance issue? Can you share your experience with community about perfomance?
Thanks,
Alex
Hi Alex,
I didn't actually have any performance issues to fix, I was just asking for the recommended practice to optimize performance. However I did do some investigating I have partially implemented the use of CachedPartials. Presently it's just on our staging environment so I won't know how effective this is until it's released to live.
One thing I did discover is that we are limited on where we can use CachedPartials due to our site being multi lingual. You can cache by page, which resolves some of those issues (the URL is different for each language variant), however the home page (root) uses the same URL for all languages. The language data to display is determined by GeoLocation or a cookie, not by URL. This means we can't cache any partial used on the homepage, such as the navigation or the footer. This is unfortunate. It's a shame you can't pass through a ViewData variable to return a different variant of the cached partial.
We could use a redirect so the root URL is never used (/), it would always be /uk/, /us/ etc, but I'd need to think about that a little more before committing to it.
Thanks,
Nathan
Hey Nathan
IIS is not the highest performance web server that ever was created. So you will find that if you put something like Varnish, Squid or Nginx in front of your IIS server, performance will go up.
In regards to performance of Umbraco, we have found that overuse of nice url is a killer - only use that for content that is going to be displayed to the end users
For specific performance testing try this https://www.jetbrains.com/profiler/
Cheers Dean
Hi,
For some of the easiest ways to improve the performance refer below links
http://www.gajadigital.com/en/blog/2016/june/web-optimization-tools-you-can-t-ignore/
http://www.gajadigital.com/en/blog/2016/july/website-performance-hacks-tips-to-score-above-90/
Thank you Dean and Manjunatha for the tips.
Additionally I've made a few simpler changes to the site I'm working on by following the suggestions by Google PageSpeed Insights. https://developers.google.com/speed/pagespeed/
These changes have raised our performance scores quite a bit.
One of the suggestions was to Bundle and Minify the CSS and JS files. I achieved this using the ClientDependency, rather than System.Web.Optimization. Instructions can be found here:
http://www.diplo.co.uk/blog/web-development/using-the-clientdependency-framework-in-umbraco/
Cheers,
Nathan
Hi, my opinion is to choose any CDN Services as they give better results.I also had the same problem in my website 10XCDN Services helped me to fix my problem.With their CDN I have good webpage performance. I love the fact I got a Test Trial before I bought them.. They gave really good integration support. Know about them on http://10xcdn.com/
is working on a reply...