Prep your meat mixture. In a large bowl, combine ground beef, breadcrumbs, beaten egg, ketchup, Worcestershire sauce, mustard, garlic powder, onion powder, diced onion, salt, and pepper. Mix gently with your hands until just combined—overmixing will make the steaks tough.
Shape your steaks. Divide the mixture into 4 equal portions and shape into oval patties about 3/4-inch thick. Use your thumb to create a slight depression in the center of each patty (this prevents them from puffing up in the middle).
Heat your skillet. Place a large skillet over medium-high heat and add the vegetable oil. When the oil is shimmering but not smoking, it's ready.
Cook the steaks. Carefully add the patties to the hot skillet and cook for about 4-5 minutes on each side until they're nicely browned and cooked through (internal temperature of 160°F/71°C). Don't overcrowd the pan; cook in batches if necessary.
Rest the cooked patties. Remove the steaks to a plate and cover loosely with foil to keep warm while you make the gravy.
Start the gravy base. In the same skillet (don't clean it—those browned bits add flavor!), melt the butter over medium heat. If using sliced onions for the gravy, add them now and cook until softened and lightly caramelized, about 5-7 minutes.
Create your roux. Sprinkle the flour over the butter (and onions if using) and whisk constantly for about 1-2 minutes to cook out the raw flour taste. The mixture will look like a thick paste.
Add the liquids. Slowly whisk in the beef broth, ensuring there are no lumps. Add the Worcestershire sauce, ketchup, and garlic powder. If using, add the tomato paste now too.
Simmer to perfection. Bring the gravy to a simmer and cook, stirring occasionally, until it thickens to your desired consistency, about 5-7 minutes. Season with salt and pepper to taste.
Reunite steaks and gravy. Return the Salisbury steaks to the skillet, nestling them into the gravy. Simmer gently for 2-3 minutes, spooning the gravy over the steaks to coat them.
Serve with pride. Plate each steak with a generous spoonful of gravy on top. Additional gravy can be served on the side for mashed potato pooling purposes.