Preheat the oven to 425 degrees. Place the pizza crust on a large baking sheet (the size may vary depending on the brand of crust; my crust fits perfectly in a 17¼ x 15½-inch pan).
Place the potatoes in a pot and cover with water. Add salt to taste. Bring to a boil and cook until fork-tender, about 10 to 12 minutes.
While the potatoes are cooking, melt the butter in a large skillet over medium heat. Add the onions and sauté until softened and lightly golden brown. Set aside ½ cup of the sautéed onions (they will be used later to top the pizza).
When the potatoes are done cooking, drain them and return them to the hot pot. Allow them to sit for a minute or two until any excess moisture evaporates and they are no longer wet.
Add 2½ cups of the cheese to the hot potatoes and mash until well-combined and smooth (be careful not to over-mash, as this can make the potatoes gummy). Stir in the sautéed onions (except the ones you set aside).
Add just enough milk to help the potato mixture be a bit more easy to spread on the crust. The consistency should be tighter than mashed potatoes. ¼ cup of milk usually works for me, but add less or more as needed, being careful not to end up with loose or runny potatoes. Taste the mixture and season with salt and pepper as needed.
Spread the potato mixture evenly over the pizza crust, leaving about a ½-inch border around the edges.
Bake for 10 minutes or until the bottom of the pizza crust is golden brown and crisp.
Remove the pizza from the oven and turn on the broiler.
Spread the reserved ½ cup of sautéed onions over the top of the pizza and sprinkle with the remaining ½ cup cheese.
Place the pizza under the broiler until the cheese is melted, bubbly, and golden brown (about 5 minutes).
Carefully remove the pizza from the pan to a wire rack. Allow to cool for 5 to 10 minutes before slicing into 12 squares. Note: If you leave the pizza in the pan, the bottom will sweat as the pizza cools, and the crust may become a bit soggy and lose it crispness.