Need advice, building a large image repository with advanced filtering in WordPress

[ad_1]

Im making my first website dev that involves a huge amount of content. I need some advice on whether the tools im using are sufficient, or if I might run into issues with hosting costs, bandwidth, or performance.

Here is a brief overview of my setup:
Frontend with WordPress + Elementor and JetEngine + using JetSmartFilters by the same company that develops JetEngine. This allows filtering of custom post types with meta fields and works well together (same ecosystem)

The website is essentially an image repository similar to Shutterstock, with advanced filtering capabilities. Users will be able to filter images based on subjects, objects around them, styles, etc. This requires around 250 custom fields, each with an average of 10 options available for filtering in each post.

Im hoping someone with experience or knowledge in this area can help answer a few questions:

Do I need to optimize the databases or queries to ensure search times are under 3 seconds? Are the plugins and WordPress structure sufficient for fast performance?

Will users consume a lot of bandwidth? Should I invest in above-average hosting services to handle this?

Considering the foundations are already built with WordPress and these plugins, should I consider starting over with a different framework, or is this setup enough to make it work?

The website will have a subscription model. If costs are high, would it make sense to put extensive filtering options behind a paywall?

I know Im not giving exhaustive details about the project to precisely know how it gonna perform, but I dont want to make this post a TLDR. Some extra info that maybe its important.

1. The listing users will see after a query will include an featured image, each associated with the gallery post types + some info about the author of the gallery, a separated custom post type related to the gallery by something called relationships in jet engine.
2. Filters have OR logic, allowing users to search for a sports car OR a school bus, in a rainy scenario, at night, with a person wearing a black leather jacket OR a green hoodie, dancing with a sad face etc.
3. The search results might return, llets say, 50 galleries. Each gallery listed will showthe info said above. Users can then visit the post by clicking on it.

Any suggestions or info about this topics would be greatly appreciated!

Thanks in advance \^\^

[ad_2]
1 Comment
  1. The “250 custom fields” is an immediate no from me. When it comes down to custom fields, if you’re talking things like taxonomies whereas cat, dog, pig = animal – then animal would be the parent, cat, dog pig, would be the children. Those would be terms within the ‘category’ taxonomy. I’d go the extra mile of making it hierarchical ( which categories are already ) as well. So for me the ‘custom fields’ is that individual terms or is that really 250 taxonomies?

    Custom fields are usually ‘meta’ – if you’re having to handle 250 meta fields… the db query for that ( meta_query ) could get huge… I’d evaluate what you need as meta, and what could serve best as a taxonomy. Remember, meta queries are slow, taxonomy queries already have pivot db tables setup and are slightly faster.

    For search, for any site with a crazy amount of content, in the corporate world, we always use something like Elastic Search – it’s an API layer ( and datastore ) separate from wordpress who’s only job is to do backend tasks, not serve your site. There’s sharding and many other things built in, I heavily encourage you to look into that.

    For hosting, I’d go with a service you can scale, so you can start small, then scale as needed. WP Engine is okay, Pantheon, or a bare-bones AWS setup w/ K8s/helm etc… would be ideal but pricey to start I think?

    For bandwidth costs, leverage some caching services, cloudflare is a good start, akamai/varnish is great long-term goal once the bandwidth picks up. Make sure to leverage some server-side object caching for query timing too. Granted, leveraging Elastic greatly helps as well.

    TL;DR

    Look into Elastic Search

    Get a scalable host to start

    Consider your ‘custom fields’ and try to lessen them or split between taxonomies if at all possible

    Make sure you do caching, even if you’re using Elastic

    Note: the names/services I dropped here are only things I’ve used throughout my career, definitely do your own research and make your own decisions.

 

This site will teach you how to build a WordPress website for beginners. We will cover everything from installing WordPress to adding pages, posts, and images to your site. You will learn how to customize your site with themes and plugins, as well as how to market your site online.

Buy WordPress Transfer