Bed leveling is the single most important thing you can do to achieve a flawless 3D print, and it is also the thing that most people struggle with more than anything. A well leveled bed can alleviate most 3D printing issues that you have, especially if the issues that you have are prevalent on the first layer of printing.
To level your 3D printer bed, loosen the level knobs, send your 3D printer to its home position, adjust the level knobs so that the nozzle is just above the build plate at all locations, print a level test print, and then fine tune the z offset.
Loosen Level Knobs.
Most machines have 4 knobs under the table that establish the level. Typically you will not need any tools to adjust the level knobs but for some printers you will need an allen wrench. Slightly loosen leveling knobs so that the table is set slightly above the Z origin. This will give you a starting point to establish your Z offset as well as your level.
If your level knobs are at their loosest setting and the nozzle is still off the bed at its home position then you should lower your Z limit switch or replace your springs with taller and stronger springs that are able to raise the bed higher.
You can lower the Z limit switch by loosening these two bolts and raising or lowering the Z limit. If you are at the minimum Z limit and the nozzle is still not touching the bed you should then replace the springs under the bed.

Buying stronger springs is the single best upgrade that I have ever made for my Ender 3. If you are at all struggling with level issues trust me, replace your springs.
Stronger Springs on Amazon.
Send The 3D Printer To Its Home Position.
All 3D printers that require the bed to be leveled manually will have an option for sending the machine to its home position. As seen below here are the steps to send an Ender 3V2 to its home position as well as an option to disable the stepper motors once it has reached its home position.

Adjust Level Knobs To Nozzle.
Once the 3D printer has reached its home position, manually move the nozzle over the top of the nearest level knob and adjust the level knob until the nozzle is slightly above the build plate as shown below. I like to eyeball this when leveling my bed and basically make the gap as small as possible while still being able to see a gap between the nozzle and the bed.

If you want a more accurate bed level you can use a .05-.10mm feeler gauge or a sheet of paper between the nozzle and the bed. Keep in mind that if you use a thicker feeler gauge such as .2mm and then print your first layer at .2mm thickness you will actually be roughly .4mm above the build plate when printing the first layer.
Feeler gauge on Amazon.

Readjust Level Knobs To Nozzle.
Once you have adjusted all level knobs you should go back around the plate and readjust all the knobs again to ensure that all level points are still the correct distance from the nozzle. You will typically see that adjusting the back level knobs did have an effect on the front level and all the knobs will need a small second adjustment.
Print A Bed Level Test Print.
Printing a bed level test print is the best way to make sure that your bed leveling venture was successful. A bed level test print will print a thin line about the whole build plate of the 3D printer to make sure that you are getting proper bed adhesion at every corner of your build plate.
Check out this video by CHEP if you want more info on the bed level test print.
Once you have printed the bed level test print you should be able to run your finger over single lines that were 3D printed and the lines will not lose adhesion to the bed. This means your 3D printer is well leveled and you are ready to start printing.

Fine Tune Z Distance.
If your print is not sticking to the bed properly or you are able to run your finger over the initial layers and the print loses adhesion from the bed you will need to make fine adjustments to the level knobs to adjust the Z distance.
Slightly rotate all 4 knobs toward the nozzle the same amount and run the test print again. You may have to repeat this process a few times until you are satisfied with the print adhesion.
How Long Does It Take To Manually Level A 3D Printer Bed?
Manually leveling a 3D printer bed will take between 5-15 minutes and if done correctly should easily stay level for multiple prints. As a person becomes more proficient at leveling their bed they will get quicker and more accurate results.
Why Is Leveling The Bed Of A 3D Printer Important.
Leveling the bed of a 3D printer is important because if the bed is out of level the nozzle will not have the correct spacing from the plate and will not be able to establish the first layer of the print. The first layer of a 3D print establishes the adhesion to the bed for the whole print.
When Should I Level My 3D Printer’s Bed?
You should level your 3D printer bed whenever you are not achieving a proper first layer. If the nozzle is not the correct distance from the build plate at every spot on the plate you will not be able to achieve a
The level of the bed is sometimes confused with the Z-offset which is the distance of the nozzle to the build plate. The bed can be perfectly level and be a quarter inch off in Z and you will not be able to create a 3D print. The two work together to create the perfect spacing needed for 3D printing a great first layer.
How Often Should A 3D Printer Bed Be Leveled?
A 3D printer should be leveled as frequently as needed to ensure that you are achieving a smooth and consistent first layer. A 3D printer bed should also be leveled every time the machine is moved or bumped in any way because of the potential shift in the alignment of the bed and springs.
Should I Use A Bubble Level To Level A 3D Printer Bed?
You should not use a bubble level when leveling a 3D printer bed. A bubble level will tell you the true level of the bed to gravity but is not an indication of the alignment of the machine. When leveling a 3D printer bed you should level the bed parallel to the gantry of the machine.
The process of truing up the bed to itself, or making the bed parallel with the gantry is also known as tramming the 3D printer. Without knowing it what you are really doing is controlling the 6 degrees of freedom on the 3D printer. X, Y and Z are controlled with the limit switches, the yaw is fixed by the bolts in the bed and the pitch and roll are controlled by leveling the bed.
Should My Nozzle Be Hot When Leveling My 3D Printer Bed?
It is not necessary to heat up the hot end or the bed when leveling a 3D printer. Heating up the hot end and the bed creates an unnecessary risk of burning yourself when your hands are working around the 3D printer and should be avoided.
You may want to heat up the hot end to clear any unwanted build up or filament on the nozzle. If you have filament at the tip of your nozzle when leveling the bed you may end up setting your Z too low and then not achieve a good first layer.