Steven,
Start by viewing your analytics to see what categories and tags are currently working for your audience. I suspect you have over-engineered your current solution and a lot of category and tag pages aren't being visited, or if they are, not for very long.
Next, make sure you don't have overlapping or redundant categories or tags, for example, "family portraits", "family reunion portraits", "maui family portraits", and "maui senior family portraits". This confuses your audience and makes it hard for you to ensure consistency and analyse results. You might want to have events as categories (weddings, reunions, births) for example, and locations and venues as tags.
Then, don't create a category or tag for everything. Set a minimum number of posts that would fit into the category or tag. You don't want a category or tag page, for example, to contain a single blog post.
Position your search button higher on the page.
Lastly, if you don't want a football field-sized list of categories and/or tags, use a drop-down.
I looked at your site Steven. Do you know that you have a mix of active and indexed pages that are http, https, and blog posts in a subdomain as well as subdirectory? You might want to clean that up.