Heat the olive oil in a large skillet over medium-high heat.
Add the ground beef and diced onion to the skillet and cook, breaking up the beef with a spoon, until the beef is cooked through and the onion is tender, about 5–7 minutes.
Sprinkle the taco seasoning over the cooked beef and stir to combine.
Add the diced tomatoes (with juices), salsa, water, uncooked rice, and black pepper; stir until evenly combined.
Reduce heat to medium, cover, and simmer without lifting the lid for about 25–30 minutes, or until the rice is tender; check once after 20 minutes and stir briefly if needed.
Stir in the frozen corn and mix to combine.
Sprinkle the shredded cheese evenly over the top, cover, and let sit for about 2 minutes until the cheese melts and the corn is heated through.
Sprinkle with chopped cilantro, add any optional garnishes, and serve immediately.