I fish a shallow rocky river a lot and the tactic will change based on conditions. Water clarity plays a major roll, I don't know how your river is normally this time of year but the water I fish is normally super clear but we have had a lot of rain so it is stained. That said, in shallow water with smallmouth you will want to use reaction style baits when the water is stained and finesse style baits when the water is clear or lightly stained. You did good with a NED rig, so expand into tubes and at 3' you will want a tube jig that is 1/16oz to 1/8oz with a 2.75" to 3.5" tube, a 4" tube is good if you have stained water but go to the smaller side if the water is clear. For the stained water I like shallow running cranks and wake style cranks as well as spinnerbaits, double willow models and if you have lightly stained water say, just stained enough that you can see the bottom but not too well, then a 1/4oz spinnerbait in pearl or some type of shad pattern will work. The darker the water the larger the bait, 18" to 24" of visibility you'll still want a double willow model but in a 3/8oz version in the same natural patterns, but when you get 1' or less visibility you'll want a 1/2oz bait with a willow blade and small Colorado kicker. It is important to realize that in shallow water even when the water is stained, there is still a lot of light penetration and I'll still use a willow blade, the only time that changes in a river is if I'm fishing deeper water or if the water is muddy like chocolate milk, then I'll go with big Colorado blades or a chatterbait. I also like using soft plastic jerkbaits, a 5" super fluke is a good option and will get crushed in stained to clear water, if the fish are swiping at it and not getting the hook I'll switch out to a floating style hard jerkbait, with treble hooks you'll get those swiping fish, the key is to working the bait fast, three quick jerks followed by a 1 second pause and repeat, it will result in some of the most violent strikes you can imagine.