Cations are smaller than their atoms: $\mathrm{Na^+}$ (102 pm) is much smaller than Na (166 pm). Anions are larger than their atoms: $\mathrm{Cl^-}$ (181 pm) is larger than Cl (102 pm). In an isoelectronic series (same number of electrons), more protons make a smaller ion: $\mathrm{O^{2-}} > \mathrm{F^-} > \mathrm{Na^+} > \mathrm{Mg^{2+}} > \mathrm{Al^{3+}}$.
💡 Why it works
A sodium atom that loses its $3s$ electron loses its whole outer shell; what is left is the neon-like core, held by 11 protons, so it is far smaller. A chlorine atom that gains an electron keeps the same 17 protons but now has 18 electrons repelling one another, so the cloud spreads out. In an isoelectronic series, every ion has the same 10 electrons in the same arrangement, $1s^2 2s^2 2p^6$; the only difference is the nuclear charge, from 8 in $\mathrm{O^{2-}}$ to 13 in $\mathrm{Al^{3+}}$. More protons pull the same cloud in tighter.
Five ions with 10 electrons each, drawn to scale. Radii (Shannon, 1976): 140, 133, 102, 72 and 53.5 pm, shrinking as the nuclear charge rises from 8 to 13.
✏️ Worked example: An isoelectronic series
Rank $\mathrm{S^{2-}}$, $\mathrm{Cl^-}$, $\mathrm{K^+}$ and $\mathrm{Ca^{2+}}$ from largest to smallest.
Count electrons: S has 16, so $\mathrm{S^{2-}}$ has 18; $\mathrm{Cl^-}$ 18; $\mathrm{K^+}$ 18; $\mathrm{Ca^{2+}}$ 18. All isoelectronic with argon.
Protons: S 16, Cl 17, K 19, Ca 20. More protons, smaller ion.
Thinking the ion with more protons is bigger in an isoelectronic series ("aluminum is a bigger atom than oxygen, so $\mathrm{Al^{3+}}$ is bigger than $\mathrm{O^{2-}}$"), or that anions shrink. With the electron count fixed, protons only pull; they add no size. Check: in an isoelectronic series the anions are the big ones and the most highly charged cation is the smallest.
Practice
Pass with 3 right answers, the last 2 in a row. Each right answer earns 2 XP.