Heat olive oil in a large pot over medium heat. Add the diced onion, and cook for 3–4 minutes until it becomes translucent. Stir in the garlic and cook for another 30 seconds, just until fragrant. This sets the flavor foundation for your soup.
Toss in the carrots, celery, and potatoes. Sauté for about 5 minutes to allow them to begin softening. Stir occasionally to prevent sticking. The slight caramelization adds depth of flavor to your broth.
Add the canned diced tomatoes with their juices, followed by the vegetable broth. Stir in the thyme, basil, oregano, salt, and pepper. Bring everything to a gentle boil, then reduce the heat to a simmer.
Let the soup simmer for about 20 minutes, or until the potatoes are fork-tender. Add the green beans and zucchini during the last 10 minutes of cooking to prevent them from becoming mushy.
Once the vegetables are tender, stir in the baby spinach and let it wilt for 2–3 minutes. If using lemon juice, add it now to brighten the flavors. Taste and adjust salt and pepper as needed.
Ladle the soup into bowls and sprinkle with freshly chopped parsley. Serve with warm crusty bread, gluten-free crackers, or even a light green salad.