Random Drills
One of the best ways to improve is through multiball training, and one of the best drills you can do there (besides an intense stroke workout) are random drills. When you play a match, you don't know where your opponent is going to put the ball, so you have to be ready to cover the whole table. When you do simple rote drills like forehand to forehand or backhand to backhand, or side-to-side footwork, you get practice, but you are not getting the practice needed to prepare you for the randomness of actual match play. For that you need to do random drills.
The problem with random drills is that you can't really do them very well live (i.e. with a practice partner) until both players are relatively advanced. And so players avoid doing them until they are somewhat proficient - and then they practically have to start from scratch doing random drills that they should have been doing early on. Once you can hit a decent forehand or backhand you should be doing some sort of random drills as well. Few do so.
So get a coach, or a practice partner you can take turns with, and do random multiball drills. At first have them feed the ball randomly to two spots - middle forehand and middle backhand. Make sure your first move is the right one; you have more time than you think, so don't rush. When you are comfortable at doing this at rally speeds, then go random the whole table. Learn to cover all five spots - wide forehand, middle forehand, middle, middle backhand, and wide backhand.
Let me emphasize - the key is that the first move must be the right move. No moving to the forehand and then changing when you see the ball going to the backhand, or vice versa.