What causes "ghosting"?
Ghosting is an artefact in the print due to the vibrations in the printer that are induced by rapid changes of direction.  It is important not to confuse them with inherent vibrations in the printer due for example to the belts being loose or the bearings not being in perfect order.

The good news is that it is relatively easy to tell them apart: ghosting (also known as "ringing" or "ripples" or "waves" or a number of other names...) is always downstream of a change of direction, and fades rapidly.



Inherent vibrations - on the other hand - tend to be consistently present when printing along a given direction, and do not fade.



Mechanically, ghosting works like this:


The moving part is travelling along - for example - the x-axis, when suddenly the direction of movement becomes the y-axis.
At that moment, the stepper motor of the x-axis stop rotating, but the momentum of the moving part stretches the belt even so slightly past the intended stop point.
At this moment the belt becomes like a rubber bend / spring, absorbs the kinetic energy of the moving mass and releases it by "throwing" it past the intended stop point in the other direction.
This keeps on repeating a number of times, but at each pass, some of the energy is dissipated, and the moving mass moves less end less away from the ideal stopping point.
While all of the above is happening, the object has also begun to move along the y-axis, so the extruded plastic looks "weavey" along the y-axis.


Understanding how this process works, makes it possible to understan why the three main factors affecting ghosting are:


The amount of mass being moved
The speed, acceleration and jerk settings
The elasticity of the mechanical components


Namely, mass and speed are important because their product is the momentum.  That in turn means that diminishing either one of the two will reduce the amount of "overshooting" past the stopping point.

Elasticity of the mechanical components is important as the more flex/stretch the part can take for a given amount of force, the more overshooting a given momentum will result in.

Finally, acceleration and jerk are important because - simplifying things a bit - the faster the change of direction happens, the less time the system has to adjust without vibrating.

So, concretely... what can you do to fix/reduce ghosting?  Three things, of course! :)


Reduce the mass being moved.  Depending on the geometry of your printer, the mass being moved could be the bed+print, the printing head, or an entire gantry.  These are normally considerations done when designing the printer itself, and engineers normally mitigate problems by using lighter materials (plastic over metal, aluminium or carbon fiber over steel, etc...), or adopting different designs (like using a Bowden extruder instead of a direct one, to save the weight of the stepper motor).
Reduce speed, acceleration and/or jerk.  Speed is normally the safest bet, as - besides your prints taking longer - there is really no penalty for it.  Acceleration and jerk - on the other hand - can cause overestrusion at sharp corners.
Reduce the elasticity of the system.  This is commonly achieved by tightening the belts and eventually switching to more rigid rods / tracks / rails.


A couple of resources that may come in handy for you to understand and solve the problem better:


A really nice article with illustrations (two of which I "stole" for this post)
A test model specifically designed to highlight any possible ringing problem with the printer.
A video showing lots of different test prints done with various settings (very useful to understand how changing the above parameters affects the print).