Home Forums Pre-purchase Questions Question about scalability Reply To: Question about scalability

  • This answer is specifically about the front end of a site, I do not get overly concerned with the performance of the admin.

    The issue of scalability is not specific to ACF itself, but how it is used. What type of DB queries you’re trying to force WP to do and many other factors.

    Inherently, ACF will not have an effect on scalability.

    Beyond that there are two many variables and too many ways that it can be used in a way that will effect site performance and most of these have to do with the number of DB queries and how the data is being queried.

    Making WP and ACF scalable requires understanding how both work, what could cause bottlenecks and either finding alternatives or mitigating them. Again, the possibilities are just too numerous to list them all.

    I will give one example. The ACF image field. Many developers set the image field to return an image array that contains a lot of information that will likely never be used. ACF must do a lot of extra queries to get all of this information. This is probably fine on a small site or if there is only a single image on the page, but if there are many images to be shown then it’s going to slow things down. It is more efficient to return the image ID and then to do the work of getting only the information about that image that you actually need without depending on ACF to do the work. You may have 15 image sized defined in WP, ACF does not know that you really only need information about 2 or 3 of those image sizes, so it gets everything.

    I will say one final thing, most of the code that you will find for ACF in the wild does not take these issues into account. Even a lot of the code I post here does not take these issues into account because I attempt to answer the question being asked without injecting my own opinions, though once in a while I will suggest alternatives.

    In my own code, unless I am pressed to do something in a hurry I am always asking these questions: What is this doing? How is it doing it? Is this the most efficient way to do it?