Honestly, the fastest fix is usually a non-slip layer between the cushion and the bench. Urban benches are often slick metal, painted wood, or concrete, so friction alone is not enough. Here are the methods I would try, starting with the least invasive.
1. Use a non-slip rug pad or shelf liner
Cut a piece of rubber mesh shelf liner or rug pad about 1 inch smaller than the cushion. Place it between the cushion and the bench seat. This works surprisingly well on smooth benches, costs almost nothing, and is easy to remove. It is the best first step if you do not want to alter the bench or the cushion.
2. Try outdoor hook-and-loop tape
Pick up heavy-duty, outdoor-rated self-adhesive Velcro strips. Clean both the bench and the bottom of the cushion with rubbing alcohol and let them dry. Apply the loop side to the bench and the hook side to the cushion, or vice versa. Press firmly and wait about 24 hours before sitting on it. This holds very well, but be careful on public benches because the adhesive can leave residue or marks when removed.
3. Add adjustable webbing straps
If the bench has slats or an open frame, use two nylon webbing straps with side-release buckles. Run one strap around the back of the cushion and under the bench, and the other around the front of the cushion and under the bench. Tighten them down. This is the most secure removable option and works for thick cushions. You can buy replacement straps or make your own from nylon webbing and buckles.
4. Use the cushion ties or add your own
Many outdoor cushions already have corner ties. If yours does, tie them tightly around the bench slats or rails. If not, you can sew short fabric loops or cord to the corners. For a no-sew option, use clip-on elastic straps or elastic cord with cord locks. Just loop the elastic around the cushion corner and the bench frame, then pull it snug.
5. Apply silicone gripper dots or anti-slip tape
Self-adhesive silicone pads or non-slip grip tape can be attached to the underside of the cushion. Place them near all four corners and one or two in the center. They grip metal and wood well, stay hidden, and do not change the look of the bench.
6. Use ball bungees for slatted benches
If your urban bench has gaps between slats, small ball bungees are perfect. Push the cord loop through a cushion corner or a sewn loop, wrap it around a slat, and secure the ball end. This is cheap, weather-resistant, and takes seconds to remove.
A few extra tips: avoid permanent glue, screws, or staples on public benches. Choose weather-resistant materials if the cushion will stay outside. If the bench gets hot in direct sun, test adhesives in a small spot first to make sure they do not soften or leave residue. For a steel bench, you could even sew rare-earth magnets into a fabric pocket on the cushion bottom, but those can scratch paint, so use them with care.