Should a redirect to external site have a delay?

There are many ways to redirect a user to an external site. In my case, I use it for "Universal Book Links". These are links that redirect to a specific country-based store, using the user's IP address to determine their geolocation.

My redirect goes to an internal page, with a delay of 10 seconds before the redirect happens. I do this to alert the user that a redirect will be done, and also to provide an external link in case the automatic redirect is blocked.

I've based my 'delay-before-redirect' actions on what I have seen other 'big' sites do. Some do it for privacy reasons (to alert users that they are going off-site).

The questions are: should the delay and redirect notification happen? Is 10 seconds too long? Does this delay enhance the user experience? Is there any reason not to have the 10 second delay?

I realize this is not a technical question, but more of a design and user interface question. But a user of my services questioned why the delay - why not just redirect immediately?