A contractor will charge around $1 to $2 per square foot to stain a new deck while refinishing and restaining a deck can cost between $4 and $6 per square foot or more.