Self-avoiding walk of length n on the integer lattice Z^d is the uniform measure on nearest-neighbour walks in Z^d that begin at the origin and are of length n. If such a walk closes, which is to say that the walk's endpoint neighbours the origin, it is natural to complete the missing edge connecting this endpoint and the origin. The result of doing so is a self-avoiding polygon. We investigate the numbers of self-avoiding walks, polygons, and in particular the "closing" probability that a length n self-avoiding walk is closing. Developing a method (the "snake method") employed in joint work with Hugo Duminil-Copin, Alexander Glazman and Ioan Manolescu that provides closing probability upper bounds by constructing sequences of laws on self-avoiding walks conditioned on increasing severe avoidance constraints, we show that the closing probability is at most n^{-1/2 + o(1)} in any dimension at least two. Developing a quite different method of polygon joining employed by Madras in 1995 to show a lower bound on the deviation exponent for polygon number, we also provide new bounds on this exponent. We further make use of the snake method and polygon joining technique at once to prove upper bounds on the closing probability of n^{-4/7 + o(1)} on a subsequence in the two-dimensional setting.