Hello Mark, thanks so much for taking enough time too to bring a good set of answers. Boy you deserve it. I will quoting too to improve reading:
The product has been available to the general public for about 12 hours, so we really need guidance from the community what the doc needs are. Will be fixing this.
I understand. For what I readed in the comments, I’m not the only one asking the same questions. Please consider add these ones to the FAQ here at WP and your site. How Falcon works, explained for the geeks who want to know what will be htaccessed/htmlized/ and how, and when, as you just answered above.
Please upgrade to 5.0.2 which fixes a bug that caused sites in a subdirectory to not cache pages. Then clear your cache and also disable and reenable caching to be safe. Let me know how this goes and please start a thread for this specific issue if it still exists. I’d like to resolve it for you.
I did the upgrade to 5.0.2. I didnt noticed any difference. The homepage is still the only page being cached. I will open a new thread regarging this. Probably has to do with something in the taxonomies or the server configuration…
Basic caching uses PHP to serve up pages that are stored on disk. So PHP, WordPress and Wordfence execute and interrupt execution to serve up a pre-rendered page early in the execution cycle. This provides a nice speed increase without having to edit your .htaccess. Some sites can’t do this which is why we included the feature. If you aren’t seeing a performance gain, my guess is that your site does some heavy lifting early on in the execution cycle and this bottleneck isn’t solved by basic caching. Falcon Engine modifies your .htaccess to have your web server serve pre-rendered pages directly to the user. We use a different directory structure which reduces stat() activity on your server disk and is therefore faster and gets better performance than other caching plugins. Please see https://www.wordfence.com/blog/ for more info on this.
For what you say, is “Basic caching” something like the “Late Init” you can find at WPSC or W3TC? It allows PHP to be executed and load the cached file early in the execution cycle, and does yours use transients to remember queries? something in the headers to force browser cache? My two test sites where I tested Falcon werent really accelerated by using Basic Cache nor Falcon Cache.
Also please benchmark us against W3TC and WPSC before you pass judgement. I think you’ll be pleasantly surprised.
I benchmarked the load using webpagetest.org. These are the results, expressed as seconds required to fully load the test page in the first view, then second view:
https://paisajesmundiales.com.ar/2013/el-desierto-de-badain-jaran (a small gallery, 1140 KB total)
WITH NO CACHE: 9.679, 5.063
WordFence Basic Cache: 9.875, 5.011
Wordfence’s Falcon: 8.957, 5.625
WITH W3 TOTAL CACHE: 8.707, 3.072
https://paisajesmundiales.com.ar/ (some humble posts excerpts in a home, 3016 KB total)
WITH NO CACHE: 9.835, 9.445
WordFence Basic Cache: 9.551, 8.346
Wordfence’s Falcon: 8.172, 6.980
WITH W3 TOTAL CACHE: 9.011, 2.737
All the test were taking measuring from AR simulating Chrome browser. And note that the server is in the USA. I’m testing what my target useers will see.
W3TC was configured as I know it really works well: Page Enhanced + Browser Cache. Nothing else.
Surprised? Not yet. Still not impressed ??
I suggest you to use .htaccess rules to block IPs EVEN WITH FALCON DISABLED. This will improve WordFence for people who dont feel comfy abandoning plugins like W3TC.
THIS will be a really good performance improvement. If you block IPs in the very first lines of .htaccess, it won’t require a single piece of PHP/HTML to be executed/retrieved and abusers won’t almost even consume your bandwidth.
This is an easy one to implement. Hope to see that soon ??
Disabling XML RPC is using the official filter, confirmed.
Line 341 of version 5.0.2.
This is the BEST XML-RPC filtering management I’ve seen. iThemes offers it but it’s to aggresive since they block access directly from htaccess. Others are doing the same. I was using the filter in functions.php but having this inside Wordfence is better.
Although, you should warn users in the option page that XML RPC is being disabled by default and could break some things, like remote publishing.
Please be clear: We’re not open to debating whether this feature should or should not be part of Wordfence. We did our research, debated it internally and made the call. If you don’t like it, simply don’t use the feature and use your favorite other-caching plugin. But The performance you’ll get with Falcon will give you a faster site (at least according to our benchmarks) than any other major caching plugin. Features like minification may seem like a good idea, but when you’re already serving up your pages compressed using gzip/deflate, why would you want to remove whitespace from your pages? They already arrive compressed at the client side. Object and database caching may seem like a great idea, but have you benchmarked it? We showed a 10% performance gain with DB caching in a major plugin. It feels good to enable it, but really delivers little gains. What we’ve done here is focus on the really big win which is to serve pre-rendered pages directly from your server’s disk while simultaneously reducing the number of filesystem stats the server has to do. The performance gain you get is unbelievable – it’s around 3000% to 5000%.
Ok, I respect your philosophy. If you think you can do a better cache than the most well known plugins in this community, be my guest. I will support it if it works the better. I know it’s still green and you have to work it out, so let’s see hoe better it may become. The feature I miss the most when setting Falcon is the possibility to use a CDN to pull the images from; and the settings for that field is a nightmare you’ll have to sail deep in if the cache have to do a very good job with CDNs. Also, it shouldnt interfere with plugins like the official cloudflare one.
Another thing concerning me about cache is, how long will Falcon wait before collecting garbage? I have site where I need the cache being regenerated every 2 hours, and other sites where the cache is recycled once a week! If Falcon will be collecting garbage several times a day in sites with hundreds of pages which are not willing to change a single bit during weeks or even months, it will add an extra, unneeded load to the cpu and ram usage. Will Falcon allow to deal with it? WPSC wasnt doing it right lastly, so that I switched to W3TC, which is hard to configure, but once you get it, it’s like heaven in earth.
I appreciate your efforts to provide an unified experience, security+performance. The only thing I hope is that you guys do it right, and dont screw the security part in the process. I have witnessed very bad experiences with brand new features added to well known plugins. It happened to JetPack, Shareaholic, BackWPup, iThemes Security, and even W3TC and WPSC theirselves… All of them wanted to leverage the experience but the very first results were a PITA. With time they fixed it. They worked it out during weeks while answering hundreds of threads written by angry people with pitchforks and torches. And they get over it and now they are the most downloaded plugins here.
Hope you go in the same success road, but be warned, and prepare some gallons of coffee, you are entering the very intrincated jungle of cache possibilities, where it depends really if it’s Linux or Windows, or if WP it’s installed in the root folder, in a subfolder, in a subdomain, or even in a root folder but using taxonomies like if it were in a subfolder (I have one site like this).
Oh and before I forget, another question: how will be Falcon dealing with logged in users? how will it be caching dynamic pages if it won’t deal with objects? Logged in users will still experience a non-cached version of the site? I really love how W3TC deal with this particular thing. Database cache is not something I miss, I use MySQL cache in the server, so the queries are cached from the very beginning.
My best regards,
Marcelo