Average Cost to Stain a Deck. The cost to stain your deck typically ranges from $540 to $1,050 with an average of just over $700. This equates to an average cost of $2 to $4 per square foot for labor and materials. Higher-quality stains will run up the price, as will washing or sealing the wood prior to staining.