When using [SciDraw][1], we have full control over all label positions.  The key option names are variation on `TextNudge`. The value specified in this option will be added to the label position.

Example with frame labels:

    Figure[
     {
       FigurePanel[{}, FrameLabel -> {x, y}, 
         XFrameTextNudge -> 10,     (* shift up by 10 pt *)
         YFrameTextNudge -> {10, 0} (* shift right by 10 pt *)
       ]
     }
    ]

[![enter image description here][2]][2]

SciDraw of course draws its own frames and requires working in (and learning) its own framework.  It will not help in changing the position of *standard* frame labels.

The ability of SciDraw to move labels is one of the several reasons why I usually use it for publication figures.  I you have the time and are willing to learn it, it is a good option to deal with the label positioning problem.

  [1]: http://scidraw.nd.edu/
  [2]: https://i.sstatic.net/FY65b.png