Heat a large pot over medium-high heat, then add the ground beef. Cook until browned, breaking it apart with a wooden spoon, about 5 minutes. Remove excess fat if necessary.
1 medium onion
Add chopped onion and minced garlic to the pot with the beef. Sauté until the onion is translucent and the garlic is fragrant, about 3-4 minutes, stirring frequently.
1 medium onion
Pour in the crushed tomatoes and beef broth into the pot. Stir to combine, scraping up any browned bits from the bottom of the pan.
1 medium onion
Stir in the Italian seasoning, salt, and pepper. Bring the mixture to a gentle boil, then reduce the heat to a simmer.
1 medium onion
Add the uncooked pasta shells to the simmering broth. Cook according to package instructions until al dente, about 8-10 minutes, stirring occasionally.
1 medium onion
Once the pasta is tender, sprinkle the shredded mozzarella and grated Parmesan cheese over the soup. Cover the pot and let sit for 2-3 minutes until the cheese melts and the soup turns slightly thickened, with bubbling and melted cheese on top.
1 medium onion
Give the soup a gentle stir to combine the melted cheese evenly, then ladle it into bowls. Garnish with extra herbs if desired, and serve hot for a comforting, cheesy meal.