Shifting a function in time by t0 produces a factor of exp(2 pi i f t0) in the frequency domain. In this case it's best to let that phase factor keep track of any time shift.
Of course this has to work since ifft(fft(z)) always gives back what you started with.
If you want to pad the time function before doing the fft (for example to get finer spacing in the frequency domain), then you can still let fft and ifft keep track of the shifts. ffts and iffts are oriented toward the first element of their respective arrays. You just need a new time array of the correct spacing, and that starts at -10 just like the old one:
xf = fft(xt, 20*length(xt));
tnew = (0:length(xf)-1)*ts -10;