Internal linking is the right answer and it's been covered well here, so one thing I haven't seen mentioned: measure it instead of going by feel.
"Some pages index fast, some sit for weeks" is only useful if you know which ones and what they have in common. What worked for me:
- Keep a list of every new URL with its publish date.
- Check it at 3 days, 2 weeks and 6 weeks.
- Split what isn't indexed by GSC status: "Discovered - currently not indexed" usually means Google hasn't bothered to crawl it yet (crawl budget or weak internal links), while "Crawled - currently not indexed" means it looked and passed. Those need different fixes. More links won't rescue a page Google already read and didn't want.
And recheck older URLs too. Pages that got indexed fast and then quietly dropped out a month later are more common than people think, and you only notice if you look again.