Signal detection is a serious challenge for uplink massive multiple-input multiple-output (MIMO) systems. The traditional linear minimum-mean-squared error (MMSE) achieves good detection performance for such systems, but involves matrix inversion, which is computationally expensive due to a large number of antennas. Thus, several iterative methods such as Gauss–Seidel (GS) have been studied to avoid the direct matrix inversion required in the MMSE. In this paper, we improve the GS iteration in order to enhance the detection performance of massive MIMO systems with a large loading factor. By exploiting the property of massive MIMO systems, we introduce a novel initialization strategy to render a quick start for the proposed algorithm. While maintaining the same accuracy of the designed detector, the computing load is further reduced by initialization approximation. In addition, an effective preconditioner is proposed that efficiently transforms the original GS iteration into a new one that has the same solution, but a faster convergence rate than that of the original GS. Numerical results show that the proposed algorithm is superior in terms of complexity and performance than state-of-the-art detectors. Moreover, it exhibits identical error performance to that of the linear MMSE with one-order-less complexity.