i can tell you that every few hundered million years that the poles reverse. the is the method scientist use to calculate the rate of sea floor spreading, as the basalt oceanic crust retains the polarity of the Earth when the rock was formed from magma at a mid ocean ridge. as the earths polarity switches (very rapidly when it happens) it forms a striped effect of higher than arerage and lowwer than average magnetic strength parallel to the mid ocean ridge. as for why the poles reverse and slightly shift the only theory that i have heard (from Dr. ian blanchard, a geologist i work with) is interaction between the outer liquid core and iner soild core altering, having small effects most of the time and massive effects rarely. however he is unaware of the theory that satisfactorly explains polar shift.