How to fix concrete cracks with weed growing out?
Use a non selective herbicide to kill off the weeds, give it time to get to the roots and destroy them too so when you get a power washer, it will clean EVERYTHING out. Dirt that got in there for the weeds to start on has got to go. The roots that are buried in the cracks will decay and turn to dirt too over time, that is why the herbicide has to have time to work before the power washing.

I would not use caulk here. It will look like stripes are everywhere, and they will not look good. Use masonry cement to fill the gaps in a few different consistencies. Mixed thin for small cracks so it can get forced in easily, thicker so it can stand up in places, like in the front of the steps in larger crack so it will not slump out.

After the work is done and it is time for cleanup, which it will be mess, I use a sponge that tile setters use, with a half filled 5 gallon bucket of water. The sponge needs to be dampened enough to be wet, but wrung out enough so it does not leave a wet trail while wiping. Damp trail only, a wet trail will re-saturate the mortar and will weaken and even possibly have it running back out of the joints you have repaired.

Use a masonry slicker to tuck in and finish the joints.