This is probably an easy one, but I'm stumped. I have a missile using this code to seek:

Vector3 lookDirection = target.position - transform.position;
transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(lookDirection.normalized), Time.time * turnSpeed);
transform.Translate(Vector3.up * velocity, Space.Self);

My problem is it arcs slowly to a spot 80 or so units above the target, then flies in tight little circles. What am I doing wrong?

You're moving up, not forward. Try translating forward instead.

transform.Translate(Vector3.forward * velocity, Space.Self);