Rendering Optimizations

Blender creates images by taking the 3D geometry and calculating how the light within the scene would interact with the geometry. Increasing the complexity of a scene, lighting, texture, or simulation will increase the amount of time necessary to get a finished photo. Animation's are ultimately just a series of photos so optimizing the per-image render time has a massive effect on the overall render time of a scene.

Settings

GPU Render

This one is kind of obvious, GPU or GRAPHICS Processing unit. literally purpose built for this, make sure you're using it.

Noise Threshold

Changing the Noise Threshold from 0.01 to 0.1 cuts the render time by nearly an order of magnitude. This is the threshold at which Blender stops rendering a scene and instead begins the De-noising Pass.

Light Paths

If you reduce the light paths to 1 and begin to increase them until you no longer see a difference, its a way to shave off a little bit of time. This will be sensitive to how many reflections are necessary.

Performance

Using Curves BVH, Disabling Compact BVH, and selecting Persistent Data can help speed up the render time a solid amount assuming nothing needs to move within your scene.

World Settings

Lowering the Map Resolution of the world map for HDRI's can help, but it can also make it worse

Instancing

Instead of Shift + D, use Alt + D. This instances the polygons which allows you to not have to render unique geometry but instances instead.

Culling

If the Camera can't see it, it might not need to be rendered.

Compression and Export Format

PNG's require compression on each frame, that's extra time on each frame. For animations, it likely makes sense to use OpenEXR format, Many people choose RGBA, Half color depth and DWAA CODEC

Sources

5 Tips for FASTER Renders in Blender Cycles
5 Blender Tips That Have Saved Me 100+ Hours