Leakage is a particularly damaging error that occurs when a qubit leaves the defined computational subspace. Leakage errors limit the effectiveness of quantum error correcting codes by spreading additional errors to other qubits and corrupting syndrome measurements. The effects of leakage errors on the surface code has been studied in various contexts. However, the effects of a leaked data qubit versus a leaked ancilla qubit can be quite different. Here, we study the effects of data leakage and ancilla leakage separately. We find that data leakage is much less damaging. We show that the surface code maintains its distance in the presence of leakage by either confining leakage to data qubits or eliminating ancilla qubit leakage at the critical fault location. To demonstrate this, we introduce new techniques for handling leakage: taking advantage of gates with one-sided leakage, effectively isolating leakage events to data qubits alone and mixing two types of leakage reducing circuits, to handle data leakage and ancilla leakage separately.