Static WordPress Community

Looking for static generator for WP. Need help to choose

Hi, we a looking for static generator for our wordpress project. Could somebody give us advice which plugin more suit for our needs:

  1. Multisite
  2. ACF plugin
  3. Any SEO plugin + XML sitemap.
  4. Internal search.
  5. 100 000 + pages.
  6. Excluding some pages from static and leaving them as dynamic? We need it for some pages with multichoice filters.

Thanks! Best regards.

I believe WP2Static is the most capable of the plugins, and should meet your needs best. There is an Algolia addon to provide search. WP2Static isn’t amazing with a large number of pages, but if slowness turns out to be a problem then maybe there’s some optimization that can be done.

Leaving some pages as dynamic is something you configure on your CDN, not your static generator. You will tell the CDN to get certain pages from WordPress instead of your static files. You can still cache the pages this way.

You’ll probably want WP2Static 7.1.6 for compatibility with the Algolia addon. I’m not how core WP2Static handles sitemaps. You can try the advanced crawling addon if the default sitemap support isn’t there, or if you need more options.

AFAIK, the ACF and SEO plugin requirements shouldn’t affect your choice of static plugin.

Hi John, thanks for your reply!
What problem we can have with large number of pages? Does Wp2Static regenerate all pages after every content update, or just the changed pages?

WP2Static will crawl the entire site on each update. I do have some code in the advanced crawling addon to limit the crawl, but it hasn’t been battle-tested. It’s also just an inherently difficult problem with WordPress. If one thing changes in the header or footer, all 100,000 pages get changed too. This means that “crawl changed pages” can lead to very unpredictable behavior. E.g., you changed one page and thought it would crawl just that page, but forgot that you updated a plugin earlier and now you’re actually waiting on a 100,000 page crawl.

A better idea for some sites may be to crawl only the pages that are “updated” or “published” in WordPress, and not try to detect changes otherwise. This requires more awareness from the operator on when they need to trigger a full crawl, but is much more predictable. There isn’t currently an option for that approach, but it should be straightforward to add. We’ve also talked about options for crawling some fraction of the site periodically in order to eventually catch up in those situations where something does change every page on the site.

Strattic’s hosting service is supposed to be able to handle very large sites well, but their compatibility page says that they don’t support multisite or having any dynamic pages. If multisite isn’t a hard requirement, you could consider using them and changing the dynamic pages to be static-compatible.

1 Like

Note, I haven’t talked about this much at all, but it did work when I implemented it :smiley:

Screen Shot 2021-06-12 at 10.09.44 am

Image shows the “Events to queue new jobs” section in the Options screen within WP2Static.

But, this requires you to be using the Jobs / scheduling functionality of WP2Static, which is a bit more complex than just clicking the button on the Run screen to generate your site.

If you really need dynamic pages, and don’t want to change them to a serverless function, then YMIR can be an interesting alternative. You don’t get the security benefits of a purely static site, but the performance benefits are theoretically great (not sure how much it costs).

I work at Strattic (not in support) and know that we do help some customers to get some dynamic filters working on their static sites, but we’d need to get more specific info from you to help advise about that (what plugins/themes these filters are coming from, along with any customisation you may have applied). Strattic support team has also received your enquiry, but may take a couple more days to get back to you, if not already.

Thank you, guys! Will read information you gave me. Have a good weekends!