I am installing SSL cert and I am in doubt about should I concatenate site cert, intermediate cert and root cert or just site and intermediate cert ?
TL;DR Concatenate all but root.
It's only required to concatenate site certificate with the intermediate certificate. If there is more than one intermediate certificates you need to concatenate all of them.
The "root certificate" is the last certificate in the chain - it's the last because it is self-signed, and no other certificate in the world could verify it.
Concatenating root will work but is not recommended. The properly implemented client-side software (web browser) cannot ever trust a root that it received from your site. It must ignore it. It has all the valid roots in its trust store and there is no use to ever trust a root that is distributed over an insecure connection from a random site.
If a user wants to except your site from certificate validation, there is also no use for them to add your root certificate to trust store. More than likely that user is not aware that they open door to nearly all their SSL connections (except pinned ones). They should only ever trust your site certificate (aka the leaf certificate).
The popular ssllabs.com test site issues a minor warning in case a root is concatenated, describing the connection with something like "contains anchor".