Use GPU + CPU
Since Blender Version 2.8, you can use your GPU and CPU simultaneously. Which can give you an immense advantage, especially if you own a good CPU like a Threadripper or a Xeon CPU.
If you have a Nvidia RTX GPU, you can also switch from CUDA to OptiX, which will also increase your render performance by 20%-30%.
Denoiser

Since Blender version 2.82, we have now 3 Denoisers.
The default one from Blender itself. which is also the oldest one, since it exists since version 2.79.
Then there is the IOID Denoiser from Intel, which works with artificial intelligence and delivers remarkable results, as you can see in my article “Blender 2.81 new denoiser (IOID) a real GameChanger”.
And then there is also the Optix denoiser from Nvidia, which works only with their RTX GPUs. It is the same denoiser that’s used by every game with Ray tracing and enables denoising right inside the Viewport.
Using a denoiser allows you to use fewer samples by achieving the same result.
Keep it simple
Try to avoid as many polygons as possible and delete unnecessary objects in the scene or hide them.
An additional feature of Blender 2.8 which can help is the Cycles bevel node. Which enables you to create bevels based on a normal map. But the problem here is that it only works for tiny bevels. On bigger bevels, it doesn’t look good.
Light Paths
The Light paths simply set. How often the light bounces from one to another object. Technically more light bounces mean more realism since in reality, the number of bounces is close to infinity especially with glass or in very complex scenes this is the case but most of the times there is no real difference between many or just a few light bounces speaking about the End result. For a simple scene Total: 5 Light bounces should make your scene render faster and don’t change the result.
But here it is the same as with the Denoiser. it’s all about experimenting and getting a feeling for it how it affects your rendering.
Principled Shader
The principled Shader not only brings more realism by default, it also brings optimized performance over a recreation of the same Shader. In Blender 2.8 we got Principled hair and Principled Volume beside Principled BSDF, so use them. They are outstanding. What matters is the result and not the afford you put in by creating everything by yourself.
Use the latest Blender Version.
Roughly every 3 months Blender publishes a new Major version of Blender, which not only means additional features, (which also can improve performance) It also comes with a lot of performance improvements.
If you want to stay up to date with the latest version of Blender, you can install it over Steam for the non-gamers of your Steam is the biggest online store for Videogames but it also has other software like Blender in their range.

Use another render Engine

Meanwhile, There are a lot of options, when it comes to Render Engines, which are compatible with Blender. Some simply work like cycles but faster like K-Cycles or E-Cycles, some are really fast in indoor Scenes like Redshift and some can handle things like caustics very well which currently is only supported by the Alpha Version of Blender 3.1 like Lux Core render.
But keep in mind, not every Render Engine for Blender is free.
Redshift for example cost $22 / €22.11 per month.
Adaptive Sampling
Since Blender Version 2.83, there is the Adaptive Sampling feature, which allows Blender to use different sampling rates in the same image.
That means more noisy parts of the Image that require more samples get more samples, but Blender doesn’t waste time in parts of the image which doesn’t require as many samples. Which can make it faster multiple times but also not faster at all. It hardly depends on the Image.
Just check the Box at Adaptive Sampling and you are done. You could also add value for minimum samples or mess with the Noise Threshold but I just leave it how it is.