News:

Support the VirtueMart project and become a member

Main Menu

Optimize best practice guide?

Started by w360, April 17, 2020, 11:05:08 AM

Previous topic - Next topic

w360

Hi

Is there a guide to optimize your VirtueMart installation in regards to speed?
I have a list of plugins i normally use for Joomla but i am unsure if they work well with VirtueMart.

Offcause i enable Joomla standard optimisation.

Use:
AdminTools
Often JCH (unsure if this works well with Virtuemart)
Litespeed Cache (litespeed server) or joomla cache.
Use sensible templates and dont use more plugins/modules/components than i really have to.

So do any of you have a list of things you always do when you want your site to run most effectively?
Especially when it comes to VirtueMart of course.
Joomla expert - Virtuemart novice.

GJC Web Design

QuoteLitespeed Cache (litespeed server).
Use sensible templates and dont use more plugins/modules/components than i really have to.

This is also my mantra

Plus some good news here for forth coming releases

https://docs.virtuemart.net/tutorials/development/241-reduced-database-access-by-using-booleans-for-reference-tables.html
GJC Web Design
VirtueMart and Joomla Developers - php developers https://www.gjcwebdesign.com
VM4 AusPost Shipping Plugin - e-go Shipping Plugin - VM4 Postcode Shipping Plugin - Radius Shipping Plugin - VM4 NZ Post Shipping Plugin - AusPost Estimator
Samport Payment Plugin - EcomMerchant Payment Plugin - ccBill payment Plugin
VM2 Product Lock Extension - VM2 Preconfig Adresses Extension - TaxCloud USA Taxes Plugin - Virtuemart  Product Review Component
https://extensions.joomla.org/profile/profile/details/67210
Contact for any VirtueMart or Joomla development & customisation

Studio 42

Quote from: GJC Web Design on April 17, 2020, 11:27:09 AM
Plus some good news here for forth coming releases

https://docs.virtuemart.net/tutorials/development/241-reduced-database-access-by-using-booleans-for-reference-tables.html
You have plenty of unused datas in Vm and bad queries.
The use of NULL is not an optimization of tables for eg.
The VM queries  load most time all fields, this is slow too.
I load the full categories tree in 1 query(with language fallback) but Vm core query load each level and need 1 query for each children tree.
So before optimizing and modify the tables, the queries and loaded content should be optimized !

pinochico

As sad Patrick and me confirm:

Optimize is rewrite a lot of core code from VM and a lot of code from another 3d party plugins and modules.
And use powerful server - we use some from this - https://www.hetzner.de/dedicated-rootserver/matrix-px
This is right journey

If You are not programmer you can use optimize plugins, but it is only a substitute for who are just a so-called dummy / clicker / administrator / installer of eshop and applications.
As a result, it may cause subsequent malfunction of the basic functionality of the eshop.
www.minijoomla.org  - new portal for Joomla!, Virtuemart and other extensions
XML Easy Feeder - feeds for FB, GMC,.. from products, categories, orders, users, articles, acymailing subscribers and database table
Virtuemart Email Manager - customs email templates
Import products for Virtuemart - from CSV and XML
Rich Snippets - Google Structured Data
VirtueMart Products Extended - Slider with products, show Others bought, Products by CF ID and others filtering products

w360

So what you to are saying is that Virtuemart is a pile of crap and if you want to have real webshop performance you better, A: Be a developer or B: Use another shop system. ?
Joomla expert - Virtuemart novice.

pinochico

What I say is something different:

if you use open source:
- you build individual applications and extensions from different developers with different programming procedures...
- nobody approves the code - does not authorize the program code as the main programmer of the open source project (as it happens at shopsys ecommerce)

in the final you get the same result whether you use Virtuemart or other open source solutions (Joomshoping, Hikashop, Prestashop, Woocomerce ....)
It's the same for everyone.

Virtuemart is a good startup and even on it, using procedures that Patrik or I wrote, you can prepare a professional solution with a load
3-20k customers at one time
1.5 million products
comparable to e-shops programmed to order (alza.cz, mall.cz)

You don't have to be a programmer (nor do I consider myself a programmer), but you should be able to:
- Understand program code and Virtuemart / Joomla functions
- edit templates and create override in PHP HTML | CSS | LESS
- find in code what function is called and why and be able to call it in various parameters with override
- be able to work with git / gitlab, php storm / coda / notepad2, transmit / filezilla ...

Or find someone who can do these adjustments for you.

Example:
We use the kkyoutube plugin from a German developer to display youtube videos on the product detail tab. This plugin is programmed to use the Google API (why?) And because it is poorly programmed, it calls this API where the video is not displayed (in product administration, product category listing on FE ...) so without seeing the video, the daily API call limit (10,000) will be exceeded and the video will not appear in the product detail for the customer at all.

I'm just an administrator, but by looking into the code I found out and was able to tell the programmer exactly what I want to fix and I could check it and test it.
As a result, the programmer has modified one function and it already works.

You don't have to work like this, you can be just the one who installs and sets up, but then you aren't able to make professional solutions, just e-shops for hobby (play the game) solutions.
And this is true with any ecommerce.
www.minijoomla.org  - new portal for Joomla!, Virtuemart and other extensions
XML Easy Feeder - feeds for FB, GMC,.. from products, categories, orders, users, articles, acymailing subscribers and database table
Virtuemart Email Manager - customs email templates
Import products for Virtuemart - from CSV and XML
Rich Snippets - Google Structured Data
VirtueMart Products Extended - Slider with products, show Others bought, Products by CF ID and others filtering products

w360

I understand what you are saying but it's not what comes across from the former posts.

We work with Opencart, Prestashop and (sigh) WooCommerce and we fully understand that none of them works without some setup and using best practice not to mention using quality/compatible plugins.

But what i dread to hear is: You got to make changes to core files if you want good performance under stress.

The main reason i am here is because we have a client who has a functioning shop in VirtueMart and she has been through a few "developers" who seem to only been able to manage the solution and make it perform.

Hence, what are the routine optimization steps you go through when launching a new Virtuemart shop?  (i got joomla covered)
Joomla expert - Virtuemart novice.

GJC Web Design

for smaller VM shops the performance is perfectly acceptable if on a decent server and the points above ( clean out the crap and a well thought out template functionality wise)

For larger shops we go to VPS or dedicated and Lightspeed cache creates a real step change in speed of delivery ( makes of course no difference to un-cached pages)

Think about also what is required for the shop .. adding endless bells and whistles that no visitor ever uses is just silly . .. in most cases they come to the shop to buy something - not be astounded by the technical achievements of the coder...  or the soaring beauty of the designers creation -- well - depends how shallow they are I guess..  ;) 
GJC Web Design
VirtueMart and Joomla Developers - php developers https://www.gjcwebdesign.com
VM4 AusPost Shipping Plugin - e-go Shipping Plugin - VM4 Postcode Shipping Plugin - Radius Shipping Plugin - VM4 NZ Post Shipping Plugin - AusPost Estimator
Samport Payment Plugin - EcomMerchant Payment Plugin - ccBill payment Plugin
VM2 Product Lock Extension - VM2 Preconfig Adresses Extension - TaxCloud USA Taxes Plugin - Virtuemart  Product Review Component
https://extensions.joomla.org/profile/profile/details/67210
Contact for any VirtueMart or Joomla development & customisation

Studio 42

@w360
All ecommerce try to add maximum features, so load more info as needed for most cases.
All templates load many javascript that 90% of user never use and more your pay for a template and mote you have crap inside.
Many site use template frameworks that load and check plenty of functionnality.
Many Joomla site have more then 100 plugins installed and published, but only use 10 to 20 plugins.
Many site do not check the pagespeed, do not optimize the script and css.

So yes, you dont need to be a developer, you simply have to be not too stupid ;)

w360

Quote from: Studio 42 on April 17, 2020, 22:52:12 PM
@w360

Many Joomla site have more then 100 plugins installed and published, but only use 10 to 20 plugins.

So yes, you dont need to be a developer, you simply have to be not too stupid ;)

Not any site i have ever worked on, but you are right on the stupid part but that goes for every system out there.

But i think we are on the same page in general BUT is there any SPECIFIC tips you would like to share? For most systems we use we a list of tweaks, we go though everytime we start a new project.

So something like:
Instal xxx plugin for added xxx.
Remove/edit/overide xxx code
Insure xxx is indexed etc.
Joomla expert - Virtuemart novice.

Studio 42

#10
My general advice.
Add "nofollow" on all unrelated menu and internal links to get better SEO(for eg. Link to cart, contact, tos ...
Do not use frameworks, if you know how to work with a template.
Find optimized modules for your needs.
Remove (or at minimum unpublish) all unused plugins, modules.
Clean always your trash.
Verify if you can replace Javascript(eg modal, slideshows) and use bootstrap only, if you can.
Use PHP 7.2 release and PHP FPM, if you can.
Verify all your H1,h2 .... for better SEO. Most template use H3 for module headers and is not good for SEO.
Use related products or my custom plugin, buy together to sold more.
Do not use big image when you can use a resized one.
Implement webp
Verify your site work with http2
In .htaccess use mod_header, mod_deflate adde expire times to css,images and javasripts.
Use robots.txt to disable access to bad bots.


w360

Thank you!  :)

That list makes total sense to me but how do you implement webp? I haven't had the time to really look into the new format yet.
Joomla expert - Virtuemart novice.

pinochico

webp:

I use plugin for Joomla, but you have to know - I use macbook for developing and Safari and for me this plugin is not for use.
But we using for antoher people with IE, Chrome...

The list form Patrick is not finished for me, we use for eshops and websites next another top secret solutions, but they not related with Virtuemart :)
www.minijoomla.org  - new portal for Joomla!, Virtuemart and other extensions
XML Easy Feeder - feeds for FB, GMC,.. from products, categories, orders, users, articles, acymailing subscribers and database table
Virtuemart Email Manager - customs email templates
Import products for Virtuemart - from CSV and XML
Rich Snippets - Google Structured Data
VirtueMart Products Extended - Slider with products, show Others bought, Products by CF ID and others filtering products

NixNives

Quote from: Studio 42 on April 19, 2020, 15:23:54 PM
My general advice.
Add "nofollow" on all unrelated menu and internal links to get better SEO(for eg. Link to cart, contact, tos ...

Why would you add nofollow to any of your internal links? Google's algorithm uses it to find pages and determine relevancy. If you do not have any links to your TOS for example it's more or less like the page doesn't exist, because the spider will never find it. And pages like that are important for determining the trustworthiness of a page

pinochico

QuoteIf you do not have any links to your TOS for example

But you have link, don't forget about this.
In cart, if I check this site by html and seo, then TOS is link (I mean <a href="xxxx">
If is link, then you have to add right params. (of course for all link in website).
If not then lighthouse show for you as error.

Welcome :)
www.minijoomla.org  - new portal for Joomla!, Virtuemart and other extensions
XML Easy Feeder - feeds for FB, GMC,.. from products, categories, orders, users, articles, acymailing subscribers and database table
Virtuemart Email Manager - customs email templates
Import products for Virtuemart - from CSV and XML
Rich Snippets - Google Structured Data
VirtueMart Products Extended - Slider with products, show Others bought, Products by CF ID and others filtering products