Cook bacon (optional): In a large skillet over medium heat, cook diced bacon until crisp. Remove to a paper towel-lined plate. Leave 1–2 tablespoons bacon fat in the skillet and drain the rest.
Brown the beef: Add ground beef to the skillet over medium-high heat. Cook 6–8 minutes, breaking it up, until browned. Drain excess grease if needed.
Cook aromatics: Add onion and cook 3–4 minutes until softened. Add garlic and cook 30 seconds.
Season: Stir in paprika, garlic powder, onion powder, salt, pepper, and Worcestershire sauce (optional).
Add potatoes + broth: Add diced potatoes and stir to coat. Pour in beef broth and scrape browned bits from the bottom of the skillet.
Cover and cook: Reduce heat to medium, cover, and cook 12–15 minutes, stirring every few minutes, until potatoes are fork-tender. Add a splash more broth if the pan looks dry before potatoes are tender.
Uncover to finish: Remove lid and cook 3–5 minutes over medium-high to reduce excess liquid and brown edges slightly.
Melt cheese: Reduce heat to low. Sprinkle cheese over the top, cover 2–3 minutes until melted.
Load and serve: Top with bacon, green onions, and sour cream. Serve hot.