From time to time customers ask me if SNIP has a negative impact on page load time. Here is the answer to that:
The short answer is: no. In most cases you should not feel a negative impact on load time. I’m not a big fan of large plugins myself so I tried everything to not develop a plugin that has a lot of overload. Here is what I did:
1. SNIP only loads files that are needed at the moment (PHP level)
On the PHP level I developed SNIP in a way that it only loads the files that are needed at the time. For example: if you’re working on a page and SNIP was not activated to build Structured Data for pages, nothing is loaded. You should not feel a slow loading time on the backend when editing a page.
Even you have activated the Structured Data Generator on pages, it only loads a tiny metabox and some JavaScript files. Other data is loaded when it’s needed (see #2).
2. SNIP uses the REST API heavily (PHP level)
From the beginning with version 2.0 SNIP heavily makes use of WordPress’ REST API. That means, the PHP code that is needed, is only loaded if you make an API call to SNIPs REST API endpoints. For example: the functions that are needed to overwrite Global Snippet properties are only loaded if you really save the form. Nowhere else.
3. SNIP uses an internal cache mechanism
From version 2.0 SNIP has its own built-in caching mechanism. That functionality is particular interesting for all users that do not use a caching plugin. It saves a pre-built snippet to every post so that it doesn’t need to be re-built it over and over again. The cache is deleted when a Global Snippet has changed or when you edit a singular snippet on a page, post or custom post type.
I recommend to turn this functionality OFF if you’re using a caching plugin. Otherwise you have two caching-mechanisms in place which sometimes can be very confusing. And it won’t make it any faster anyway.
4. SNIP is very lightweight on the frontend
As I wrote above: I’m not a big fan of overloaded plugins. So I designed SNIP in a way that it only loads the PHP files that are needed for displaying a schema on the frontend. That is super lightweight.
Also: SNIP does not load any JavaScript files nor does it add any HTML code that would need to be rendered in the browser.
Due to the fact that SNIP only outputs plain JSON+LD code and no other bulls**t it should be as fast as possible.
5. Are there any circumstances where it can be slow?
I never had a case where a user complained about a slow page load due to SNIP. So it’s pretty difficult to find an example where it could have a negative impact. And if it were, then only if one would not use a caching plugin.
6. I’m the master of PageSpeed
My own site has almost 100 points on Google Page Speed (as of April 2020). And I’m also using SNIP on all of my sites, too (that’s why I’ve developed it). So you can be sure that I don’t even WANT a slow plugin 😉