To attach a seat cushion to a metal park bench without it sliding off, your best bet is a two-part fix: create grip under the cushion and anchor it to the bench slats. A metal bench gets slick when it’s wet or when people shift around, so friction alone helps, but straps make it stay put.
Start with a non-slip layer. Cut a piece of rubberized shelf liner, an RV rug gripper, or a roll of non-slip rug pad to the size of the cushion and place it between the metal slats and the cushion. This stops most casual sliding on smooth metal. If the cushion has a smooth bottom, choose a gripper fabric with a rubbery mesh texture so it grabs both surfaces.
For a stronger hold, add outdoor cushion straps. Get two or three lengths of outdoor-grade hook-and-loop tape or webbing straps with side-release buckles. Wrap them around the cushion and the bench slats, then cinch them snug. If the bench has gaps between slats, thread the straps through the gaps instead of wrapping the entire seat—this looks neater and holds better. Cheap indoor Velcro tends to weaken in heat and rain, so use heavy-duty or sewn straps.
Another option is to attach stick-on grip tape or silicone dots to the underside of the cushion. Clean the metal bench with rubbing alcohol, let it dry, and press the strips or dots firmly along the edges and middle. This works well on smooth benches but may need replacing after harsh weather.
If you prefer no visible straps, sew or stick a piece of anti-slip fabric to the bottom of the cushion. Some outdoor cushions already have this, but you can add it with fabric glue or heavy-duty outdoor double-sided tape. Just remember that tape alone can fail on textured or hot metal.
The best bench cushion hack is to combine a rubber gripper underneath with two straps around the bench. That will keep the cushion from sliding off even when people sit down, stand up, or twist around.