WPJohnny https://wpjohnny.com WordPress Performance Guides and Reviews Wed, 10 May 2023 12:23:15 +0000 en-US hourly 1 https://wpjohnny.com/wp-content/uploads/2019/04/cropped-Fav_sp-32x32.png WPJohnny https://wpjohnny.com 32 32 Neve review – fun cloud theme for WordPress https://wpjohnny.com/neve-review-fun-cloud-theme-for-wordpress/ https://wpjohnny.com/neve-review-fun-cloud-theme-for-wordpress/#comments Mon, 08 May 2023 13:14:24 +0000 https://wpjohnny.com/?p=9365 A new cloud theme for WordPress…built by an A-grade development company. And now compared against the big 4 (GeneratePress, Kadence, Blocksy, Astra).

It’s my honor to present Neve to you for several reasons. One is because I’ve followed their work for a long time. But another is because I got to see my feedback come to fruition in this theme. Neve was a theme I used for the past 2.5 years and just now finally reviewing on my site.

Why? Because it didn’t do anything too unique from my existing theme-stack (GeneratePress, Kadence, Blocksy). I loved everything about Neve but didn’t have a reason to cheat on my theme wives…

…until now.

Our first date with Neve

We’ve all been with Neve. (You just only didn’t know it.)

Neve is built by the same company (ThemeIsle) behind Hestia theme. Remember Hestia? That super popular free lightweight WordPress theme that was at the top of nearly every “fastest WordPress theme review” article from years ago? (Ok…maybe some of you are too young to remember.)

Yes, that one! Well, your high school crush just got even hotter. Hestia has blossomed and reborn again as Neve. Actually, it’s not the same theme, it’s a brand new one…but still carries the same values from its developers (ThemeIsle).

And believe it or not, I’ve already known of and used Neve for 2.5 years already! (As of MAY 2023.)

Who is ThemeIsle?

ThemeIsle has built many popular free themes since but catering mostly to the mass-produced market and not so much for the DIY/developer theme market. Which is funny because the WordPress theme market has evolved and flipped around so much.

Back in the days, WordPress themes were constantly being created as new ones replaced old ones. Now it seems everyone has caught on to frameworks, which allows you to keep the same (parent) theme code forever. And more notably…allows you to keep the same theme name forever.

For that reason…we easily recognize Genesis and GeneratePress because they’ve been around forever…definitely among the “oldest” themes in the modern era. Whereas Neve is considered new only because it’s core core wasn’t sold under the same framework label forever.

It doesn’t matter. My point is…Neve (and its creator ThemeIsle) has been around a while and experienced lots of success over the years.

What I like about ThemeIsle

A-grade developers (Romanian)

I do love Romanian devs. Strong culture for excellence, quality of code, quality of design. Their work is enterprise professional. Great coding and no issues anywhere. Extremely professional.

Experienced theme devs

They’ve already made several hits over the years. They understand the WordPress theme market well and pay very close attention to what users want. Of course…every theme dev wants to make users happy. The difference with ThemeIsle is that they have the skills and experience to do so.

Large support team

One of things separating ThemeIsle from other theme shops is their size. They are probably the biggest and best support team out there. And can happily answer any type of support questions…ranging from total noob to pro developer. If you’re the high maintenance client who needs handholding, then you need ThemeIsle!

Neve VS other themes

Very hard to say when top themes are good at everything. But here’s where I would position Neve against the other top themes today (GeneratePress, Kadence, Blocksy, Astra).

They are even for the usual features:

  • Customization – design your own layouts, headers/footers, colors, typography, and theme templates.
  • Header & menu builders – create beautiful header/menu designs without requiring a bloated 3rd-party plugin.
  • WooCommerce – (easily) customize your shop templates for better conversions.
  • Performance – lightweight clean code for faster page load and high page scores.
  • Accessibility – for humans AND machine crawlers (e.g. search engines, SEO).
  • Site Library – choose from dozens of premade designs so you can build new sites in minutes, instead of weeks.
  • Developer features – mainly HOOKS & FILTERS. You can hook blocks or custom code to anywhere in the site you like, and apply conditions as to when it would show.

These are the features every top theme has nowadays. As you can see by the list, Neve is right there with the best of them. Whatever they do, Neve does as well. You don’t lose any “cool unique feature” going with Neve. They all kind of do the same thing!

Customizer UI

I’m happy to say that although all themes are easy to use, I felt Neve’s UI was designed slightly better. We’re talking about the slightest of margins, right?

  • GeneratePress – was more text-based, not many useful images but very intuitive organization. Very clean and concise.
  • Kadence – had nice images but somewhat disorganized layout IMO. Sometimes the images were so much that you scroll a lot.
  • Blocksy – different layout style and really well-organized. I’m not a fan of the small font. You may feel it requires a bit of scroll.
  • Astra – different layout style and organized in its own way. Also has nice images. But I really hate the constant advertisements for their PRO version.
  • Neve – very similar organization to GeneratePress but also has nice amount of helpful images.

Again…all of these are super easy to use. Not hard by any means. But I just felt Neve was a tiny tiny bit easier to find my way around things. With the right amount of minimalism and helpfulness.

Developer hooks

Neve has a really setup for using developer hooks. Which is the feature to “hook” (place) custom content and code anywhere you want in the site. (NOTE: all the themes label this feature differently.)

  • GeneratePress “Elements” – well-built and easy to use for developers. But can feel more technical to non-devs.
  • Kadence “Hooked Elements” – actually simple way of setting up. Choose what type of content you want to hook, then where and when to display it.
  • Blocksy “Content Blocks” – super intuitive. First you make the content, then decide where to hook it.
  • Astra “Custom Layouts” – has a few more screens to click through.
  • Neve “Custom Layouts” – simple click on Custom Layouts, then create and edit super easily.

Again, all themes do it pretty well and you’ll be fine if you know what you’re doing. But I felt Blocksy was the easiest to use (intuitive and requiring the fewest clicks), while Neve gives users the most “user guidance” for their hooks feature.

Site Library

  • Kadence – best site library IMO. Many awesome designs that look different from each other and not generic.
  • Blocksy – just a handful of super polished designs. It’s a personal preference between Kadence vs Blocksy.
  • GeneratePress – more minimal and wireframe-ish. Developers may prefer these for being more unstyled.
  • Astra – tons and tons of super generic designs. Ewww.
  • Neve – there was like 2 or 3 I liked, and the rest felt super generic, but not as bad as Astra.

The design library is the only place where I think Neve could improve. I already gave the feedback to remove all the lesser templates, but I’m guessing they’re keeping them because it looks better for marketing or because many users actually choose them? (I don’t know.)

Cloud Library

This is a feature I think Neve was the first to do. Then Kadence had it. I’m not sure if GeneratePress does. And I think Blocksy and Astra don’t have it.

Basically…you can create site templates and content parts, in either Gutenberg or Elementor or Beaver Builder (I’m not sure what other pagebuilders are supported) and then access and re-use them from any other site. It’s all stored in the cloud and attached by your Neve PRO license key.

I think it’s an amazing feature and so cool. Especially if you’re managing a ton of sites and don’t want to keep exporting and importing theme settings files. Also, there are things that aren’t so easily exported. Or maybe you only want certain parts. Anyway, I give Neve a lot of credit for being innovative on things like this.

Full-Site Editing (FSE) Compatibility

Neve is definitely one of the first themes of the big 4 big 5 to support this new WordPress core feature where you can use Gutenberg blocks to build your theme templates and template parts.

It’s a lot of fun to play with and further reduces the need for pagebuilders or custom code. Kudos to Neve on this.

Support

This is where Neve has a big advantage and disadvantage. It’s totally different.

  • GeneratePress, Kadence, Blocksy, Astra – all these guys have dedicated customer support as well as thriving Facebook groups.
  • GeneratePress, Blocksy – small dedicated dev team. But good support and with a good heart.
  • Kadence, Astra – big companies. I imagine their support is not as good as the other two. Not as personalized, not as skillful.
  • Neve – seems like big developer shop and used to handling all kinds of support requests, for all levels of users. Especially since they have experience doing non-developer themes.

Would I recommend the Neve theme?

Best users & use cases for Neve

  • Newbies – WordPress beginners and non-coders would be well-served on Neve. It’s got tons of options, but also super intuitive UI and helpful images to guide them through all customizations. And great support to handhold them through every question. Neve just feels like a fun, friendly user experience all around.
  • Business owners – you want a mature theme that 1) has all trendy features so you can compete against other businesses, and 2) is well-coded by a trusted company with good reputation. You don’t want any site issues or bugs whatsoever. And lastly, responsive support should you ever have problems. Business owners are somewhat like newbies (in not knowing everything), but also have their own DIY dev experience.
  • Developers – again, Neve has all features you would need…from usual customizations to advanced hooks & filter options…all from a super friendly UI. Then they’ve also got a template cloud to help you build multiple sites quickly across your network. And a busy FB group community to bounce ideas and help requests off of.

Curious to cross the street? Try Neve theme today! (FREE / PRO)

]]>
https://wpjohnny.com/neve-review-fun-cloud-theme-for-wordpress/feed/ 2
BEST PLUGINS for WordPress developers & reviewers https://wpjohnny.com/best-plugins-for-wordpress-developers-reviewers/ https://wpjohnny.com/best-plugins-for-wordpress-developers-reviewers/#comments Mon, 01 May 2023 14:12:14 +0000 https://wpjohnny.com/?p=13007 Are you a WordPress developer, tester, reviewer, or affiliate?

  • Then there’s a good chance you’ll like my suggestions on this list.
  • Have your own favorites to add? Suggest them in the comments.

Best WordPress Plugins for developers & reviewers

Site management:

  • WP Dashboard Notes – put colored notes in your dashboard. Great for creating TO-DO lists for yourself or other site admins.
  • Better Search Replace or WP Migrate Lite – to replace content and text strings, or update links on your site.
  • WP Reset – reset your site back to new, and have options what to delete during reset. You can choose what to keep (themes, plugins, etc).
  • Plugin Groups – put plugins into groups to easily manage mass activate/deactivate. You can import/export plugin lists across different sites.
  • WP Core – is a cloud-based plugin list to automatically download your favorite plugins. Super convenient to download all favorite plugins ASAP. You can even put custom plugins that aren’t on the WP repo.
  • File Manager – easy way to access your site files without having to get FTP access.
  • WPvivid Backup – because duh, back-up your shit! Create helpful backup points to restore from. All-In-One Migration is another great tool to create 1-file backups.
  • MainWP – manage multiple sites all under one central dashboard. See server info, site info, handle management tasks like updates and backups, and more. Great pricing and open-source mentality. ManageWP is the main player in the space…slightly easier to set-up, arguably prettier UI, and faster dashboard…but super high pricing. EWWWW.

Design UI/UX:

  • Temporary Login Without Password – creates an auto-login link so you can get into the backend without logging. Great for passing around quick access without having to deal with passwords.
  • User Switching – to test how things look/function from another user’s POV. Login as User is another alternative.
  • WP Dummy Content Generator – create dummy content to help you simulate a busier site to test the site’s design or performance. It can even create CPT content.
  • Duplicate Posts – quickly duplicate posts with 1-click. (Alternative: NS Cloner copies entire sites on multisite setups.)
  • Multiple Themes – simultaneously activate multiple themes on your site, choosing which themes to activate on which pages. Useful to compare different themes, or different versions of the same theme.
  • RTL Tester – in case you want to test text direction of RTL in your site (to verify themes & plugins).

Code & Performance:

  • WP Server Health Stats – shows server information. Overall specs, load and resource usage, as well as PHP info.
  • Query Monitor – shows all queries, allowing you to diagnose where performance or coding issues might be. Useful for tracking down problems in your themes or plugins.
  • Debug Bar – great for seeing PHP notices and warnings. Checkout the many other useful Debug Bar addons as well.
  • WP Console – use PsySH console from your browser. PsySH is a runtime developer console, interactive debugger and REPL for PHP.
  • Code Profiler
  • Variable Inspector
]]>
https://wpjohnny.com/best-plugins-for-wordpress-developers-reviewers/feed/ 5
MainWP vs ManageWP – best WordPress management plugin https://wpjohnny.com/mainwp-vs-managewp-best-management-plugin/ https://wpjohnny.com/mainwp-vs-managewp-best-management-plugin/#comments Sat, 29 Apr 2023 14:03:31 +0000 https://wpjohnny.com/?p=13073 ManageWP, MainWP, InfiniteWP, Jetpack Manage, iThemes Sync, etc.

I’m sure you’ve heard of site management plugins before. Basically, it’s a plugin that you install on all your sites…which allows them all to be managed from one central dashboard.

Run updates, do site tasks, check site health and security, and many other capabilities when you add extensions.

To keep things realistic and concise, I compare only the 2 big dogs in this category…ManageWP and MainWP! (Why waste time covering the inferior stuff, right?)

What are site management plugins?

Intro to site management plugins

These are plugins that allow you to manage multiple sites all from one centralized dashboard. So instead of logging into each one to do site management tasks, you could simply access them all in one place. It’s convenient time-saving way to manage many sites, whether for yourself or for clients.

Typical tasks/benefits you can manage:

  • See a whole list of sites in one place
  • 1-click login into admin dashboard (without needing password)
  • Core, themes, plugins – quickly install, activate or deactivate, or make 1-click to update them all
  • See and edit posts
  • Backups and restores
  • Uptime monitoring – get notified if a site isn’t running
  • Security – checks and reports
  • User management – see, manage, add, delete, block
  • Site-management and security reports
  • WooCommerce – see sales across sites
  • Client reports
  • With extensions, you can even do so much more!

The moment you get to managing more than 5 sites on a daily (or weekly) basis, it’s a no-brainer to use a site management plugin. They even have free plans…so there’s no reason not to!

How I use site management plugins

  • Shortcut admin access – easily jump into dashboard for all my sites. The ones I access regularly are already easy since I have bookmarks right on my browser toolbar. The sites I don’t jump into often are the ones much easier managed now. I could be on any computer anywhere and by logging into one site, I access all the rest without having to remember passwords.
  • Site overview – see all sites from one place (no matter what server they’re on). Also see what theme, plugins, and PHP version they’re using. Easily manage updates.
  • Manage other people’s sites – super helpful for managing updates for clients, family and friends.
  • User management – quickly create users on all sites.
  • Uptime monitor – there are many free options out there but setting it up from a site management tool is the most hassle-free.
  • Backups and Cloning – again, super easy way to set up routine tasks across all your sites. Faster way of setting of backing across multiple sites, and equally impressive is being able to clone and copy sites back and forth…especially if they’re not on the same server!

Basically, your life is so much easier when you don’t have to keep logging into sites individually to do routine tasks…and also so you can see what each site needs all from one place!

ManageWP vs MainWP – brand reputations

These are the 2 most established companies in the space. While they do the same thing, they do it in very different ways, with different approaches and pricing. And I would dare say, they cater to very different user markets. Both have a useable free plan, and then you pay if you want the extra goodies.

ManageWP is the big commercial brand (with nicer looking website), selling their software as a subscription service. Your centralized dashboard is accessed via their website. It has really nice branding, nice UI, appears more professional and “user-friendly”, but is also much more expensive. It’s very annoying that you can’t price things out ahead of time since the price depends on what premium features you want. Everything little thing costs a $1 extra and added up at the end, can easily be $100-300/year that you pay…depending on how many sites and how many features you use.

MainWP is the smaller (but still well-established) open-source brand, selling their software at 2 options (you can pay a subscription, or buy LIFETIME rights for a onetime fee). The dashboard software is hosted on your servers (installed and access through a designated WordPress site). You own the software and have full control of its customizations and hacking. Being that the LIFETIME fee is only $499 and you have full control of its flexibility…I’d almost say this is always the no-brainer option for a dev. $499 and it’s free to use no matter how many sites or features you use.

All other site management plugins (listed here with notes why I didn’t consider them):

  • InfiniteWP – fewer features, more complex/uglier UI, not so attractive pricing. From a more recent review of their site, it seems they updated their UI.
  • JetPack Manage – I already hate JetPack and now don’t see the point of a plugin which doesn’t add many features.
  • iThemes Sync – not a bad alternative but also doesn’t have any unique qualities over the 2 big dogs. I think it’s only a good deal if you get it as part of the iThemes bundle. Either way, I’m not a big iThemes fan.
  • WPRemote – price is so high and from the YouTube reviews I saw, the control panel didn’t look particularly appealing to me.
  • WP Umbrella – new company. Their price is way too high. That $2/site adds up super fast. Will admit their screen looks clutter free. But I’ve yet to try them.

The biggest issue I have with all these other site management plugins is their marketing. It’s like they know they’re not the superior site management plugin, that they can’t compete with ManageWP or MainWP…so their marketing is aimed at VALUE and BENEFITS based marketing. Talking about how you’ll be so relaxed and have less headaches, etc.

C’mon now, cut the crap. Go straight to the features. Show up screenshots of your dashboard instead of feel-good cartoons of people smiling. Oh and no surprise…their plans are really expensive!

ManageWP vs MainWP – head to head comparison

Pricing & Approach

This has to be mentioned first because it really affects how you approach and use site management.

  • ManageWP – is a SaaS (software as a service). You pay an ongoing subscription based on how many sites and how many features you have.
  • MainWP – is a software. You can pay an ongoing subscription based on how many sites and features you have, but you can also buy it fully with the LIFETIME license (which amazing also includes lifetime support).
  • …and both have free plans available, which already allow unlimited sites and many useful features already. You really could use the free plan forever.

However if you’re thinking for the long run, it really helps to be setup with the better-fitting plugin in the first place.

As a dev like myself who loves powerful features, and the ability to customize things, and also lower pricing…MainWP’s lifetime purchase option is the easy winner here. But let’s keep exploring to see which option is really best…

Setup ease

  • ManageWP – you log into your centralized dashboard (on their website), and enter in the admin user & pass of the sites you want to manage. With that admin login alone, ManageWP automatically installs the child site plugin.
  • MainWP – first you have to install the dashboard plugin onto your designated dashboard site. Then you install the child plugin into every child site you want to manage, then you have to go back to your dashboard site and verify the connection. Sounds like a hassle but trust me, it’s really not.

ManageWP definitely feels easier to setup, but while MainWP is a couple extra clicks…it wasn’t hard by any means. Both are easy.

Control panel design (UI)

  • ManageWP – might theoretically seem prettier since it’s a totally separate site, and not mixing in any way with WordPress. It’s not a dashboard sitting inside another dashboard. Its design is purposefully made with site management in mind…specific fonts, icon scheme, and layout spacing to make site management easy.
  • MainWP – would theoretically seem less pretty since it sits inside a WordPress site, but actually it takes over the whole screen and looks like a totally custom panel (with no clashing of WordPress styles). Also has more info. It too looks pretty in its own way but feels more cute, whereas ManageWP looks more corporate and enterprise-ey.

Personally, I prefer more MainWP’s UI design. ManageWP’s design looks less cluttery (feels kinda like an app with icon-reliant navigation)…but MainWP’s design makes more sense and feels more similar to typical WordPress settings logic (also like a webhost control panel as well). So although it’s more cluttery, I feel MainWP UI is easier to use and find things.

Features

Generally, MainWP has more features. ManageWP has fewer features, but might already be enough for you. ManageWP might also do certain features in a better way (like backups in their free plan). So it ultimately comes down to deciding if you’re a FREE or PAID user, and then to compare the features you want.

Extensions

  • ManageWP – is a closed-source commercial SaaS…so only they can make extensions.
  • MainWP – is open source software. So tons of extensions available (both official & 3rd party).

ManageWP is like Shopify, and MainWP is like WordPress. So basically…you’ll have way more options and flexibility with MainWP.

User experience (UX)

The more I watch people manage their websites, the more I realize how different I am from everybody else. User experience is truly a subjective metric. We all manage websites differently. And find pain and pleasure in different clicks and cognitive tasks.

  • ManageWP – doesn’t feel like WordPress. Different layouts and placing of sub-menus and sub-settings. The layout is clutter free but making little changes or tasks require pop-ups and more sub-menus to click through. Every so often, the free plan runs you into subtle advertisements for paid plans. It’s still easy to use, but your mind has to “remember” where things are…and I find this extremely annoying.
  • MainWP – feels a bit more cluttered because nearly all options are right in front of you. Just about every setting can be predictably found on the busy left side menu. And then you have shortcut links on top and right side. I also love that you can customize which settings/info appear on your settings pages.

I honestly feel MainWP will get your site management tasks done in fewer clicks. Fewer levels of navigation and pop-ups to wade through. Maybe ManageWP panel is only better in that the settings screens load faster (since it’s on their proprietary platform and hosting). But all in all, I just love my MainWP experience.

Support

  • ManageWP – I haven’t had to use it. Their service is clearly defined so I never got lost, or had a customization request to make.
  • MainWP – their chat support is responsive and their FB group is also active. I feel totally encompassed by their team and community.

Both companies are totally fine. Can support newbies or devs equally well, I feel.

Pricing

  • ManageWP – totally awesome FREE plan. Or pay more or less $1/site for premium features.
  • MainWP – totally awesome FREE plan. Or pay $15-30/month for premium features. Or pay $499 for LIFETIME unlimited use.

Both are an equally great deal from FREE up to 10 sites. Once you get over 20 sites…MainWP gets cheaper, and starts to feel like a steal.

Fantasy suggestions for MainWP

  • Dev logs – create a way to easily see error logs for each site. Also a slow query report.
  • Folder management option – to be able to place sites into folders.

I only included suggestions for MainWP because I love it so much more. Also because I feel it has more flexibility to improve (via core updates or 3rd party extension).

Recommended use cases

  • FREE plan users – anybody who never intends to pay can use both just fine. Pick the one with the UI you like and let it be. Try both and pick the one you like…there’s really no risk!
  • Minimal management (0-10 sites) – pricing is same here whether you’re on free or paid plan. Pick
  • Internal company use – if you want the most professional company vibe, and cost is no matter since you’ll expense it out anyway…then I suppose ManageWP could be a better fit. I personally would still choose MainWP regardless, though.
  • WP management business – you’ll probably want to compare their WHITE-LABEL features and see if the dashboard and customer reports is customizable to the way you like. And then yes, compare the features. Price-wise…MainWP just flat out wins in the long run.

My pick overall is MainWP.

  • I recommend you try MainWP because it wins in almost every way for me. Looks, works, and priced better. LIFETIME deal is an awesome buy! (You can call me biased. I just love the product and the spirit behind it.)
  • ManageWP is worth a look but the higher pricing, fewer features/extensions, and cleaner look (but annoying settings navigation) turn me off. I don’t care that it’s more popular.

Best of all…both MainWP & ManageWP have free plans available. So you can check out both for yourself. There’s really no risk!

]]>
https://wpjohnny.com/mainwp-vs-managewp-best-management-plugin/feed/ 4
BEST Gutenberg Pagebuilders for WordPress 2023 https://wpjohnny.com/best-gutenberg-pagebuilders-wordpress/ https://wpjohnny.com/best-gutenberg-pagebuilders-wordpress/#comments Thu, 27 Apr 2023 14:39:43 +0000 https://wpjohnny.com/?p=12737 A comprehensive list of the many types of Gutenberg blocks and pagebuilder plugins for WordPress.

I cover as many as I can…from simpler ones with just a few common block options…to specific-use ones with unique features…to comprehensive ones that have full block sets, features and style libraries.

Most important of all is that I compare them contextually to each other. So you can get some clarity between how they stand out from each other. Which is hard to do with every Gutenberg plugin today claiming to be “the best and only” Gutenberg plugin you’ll ever need.

Let’s dig for the truth shall we?

The beauty of Gutenberg

The Gutenberg hate criticism will (soon) go away.

As much as people have complained about Gutenberg…about it’s difficulty-of-use, or being too different from how users envision site-building, or how its been forced upon users…we can’t deny one thing…

… Gutenberg is maturing!

And it’s maturing in a way I actually didn’t see coming. Gutenberg has standardized its internal code output in a way that plugin developers can actually build their own 3rd-party interfaces on top of Gutenberg!

Gutenberg actually provides interface flexibility!

So for everyone who complains that Gutenberg sucks, and that they’d rather use Elementor over Gutenberg, and such and such. They actually CAN!

No, not Elementor itself, but that Gutenberg block code allows it to be built using other UI layouts. Which is beautiful because that’s what the real Gutenberg complaint ever was in the first place. Nobody hated its code quality or block features. What people hated was the Gutenberg editor!

Gutenberg is still adding new features.

I’ve seen the latest talk about more incoming features to the Gutenberg editor and I’m being excited. Things I never thought I would need, are suddenly appearing to be very essential and game-changing for the future of WordPress editing. I was already such a big fan of Gutenberg. I already thought it was brilliant and life-changing. And now you tell me there’s gonna be even more?!

Wow wow wow. I can barely contain myself.

Gutenberg block plugin comparisons

What is Gutenberg? And what are Gutenberg blocks?

This is a needed pre-explanation for certain readers that don’t even know what Gutenberg is.

  • Gutenberg is the default editor for WordPress.
  • And it already comes with a default Gutenberg block options…like paragraph text, title text, boxes and columns, YouTube embeds, etc.
  • Basically…it comes with standard “blocks” that you can choose to put together your content.
  • And within each block, are block settings. For example…a text block might have settings for font type, size, color, etc. A section block might have settings for spacing, background color, etc. An image block might have settings for opacity, ratio, fill pattern, etc.

Some of you might be just fine with the default Gutenberg blocks that already come with WordPress. Others of you might want different kinds of blocks and with different features. In this case…you would install a 3rd-party plugin to get these extra blocks & features.

There are many types of Gutenberg block plugins.

  • The simpler ones give you a set of general Gutenberg blocks. Enough to completely build most websites.
  • The specialist ones give you some very specific blocks or specific features for your existing blocks.
  • The comprehensive ones give you a massive set of Gutenberg blocks and also a style library full of existing preset template designs. You can use these not only to build your pages but also your theme template areas (like header, footer, widget styling, etc). Do to their comprehensive feature-set, they like to call themselves “Gutenberg pagebuilders”.
  • Some of these “Gutenberg pagebuilders” even come with their own UI so you’re working in their unique editor instead of the default Gutenberg editor.

And yes…you can use several Gutenberg plugins together since they were all made to work with Gutenberg. This is definitely a huge advantage for Gutenberg over traditional pagebuilders, because you previously couldn’t mix parts of one pagebuilder (e.g. Elementor) with parts of another (e.g. DIVI). However…you won’t be able to do this if you’re using one of the Gutenberg block plugins that come with their own interface.

One other distinction to make is that Gutenberg block plugins often market themselves under different labels. And that users may refer to them under a wide range of labels as well.

  • Gutenberg block plugin
  • Gutenberg block library
  • Gutenberg addons
  • Gutenberg pagebuilder

Basically…they’re all WordPress plugins that add new blocks, features, or functionality to your default WordPress Gutenberg editor.

1. Gutenberg block libraries

Gutenberg block libraries are great for building simple sites and page content, newbies learning how Gutenberg works, or devs who prefer custom-coding more complex blocks and page layouts.

These 3rd-party plugins offer your site a collection of new Gutenberg blocks. Simple ones offer more basic block options (e.g. text, images, sections, etc). More advanced ones offer many custom blocks (price tables, table of contents, read time, 3rd-party embeds, etc). Some use a freemium model, where the FREE version offers basic blocks and PAID version gives you more advanced custom blocks.

The advantage are these are the easiest to use. Since they have the fewer features and settings. Disadvantage are these don’t have any global options or template libraries. Which means complex designs may take longer to build from scratch.

It’s a good start for a simpler site, new users wanting simpler interfaces with fewer settings/options. Or for developers who like simpler visual options and preferring to custom build or custom style things themselves in code.

  • Otter Blocks (FREE, PRO) – beautifully simplified set of blocks with the right amount of pre-styling, that look beautiful in the editor as well as on frontend. Many extra features like conditional display, sticky blocks, WooCommerce template customization, etc. So simple to use. A freaken quality product by an A-level dev team. It’s too bad they didn’t build a custom template library to become a full Gutenberg pagebuilder. (RECOMMENDED – comprehensive set of blocks, simple settings, powerful features)
  • CoBlocks (FREE) – made by GoDaddy, a company I truly hate but this is actually a good plugin. Clean no-frills plugin with great UI. No template library, just like all plugins in this category. (RECOMMENDED – clean and simple, right amount of blocks)
  • Ultimate Blocks (FREE) – nice block library with clean settings UI. Their red accent color contrasts nicely against the WordPress admin blue color.
  • GenerateBlocks (FREE) – quality dev team with great UI, but adds very few core blocks. More suited to a dev-user who knows how to create custom blocks from these core blocks or via custom-coding. A non-coder will find this block library much too minimal and un-inspiring, un-fun.

Choosing between these mostly comes down to which block library has the right blocks and right amount of blocks for you. Ideally, it has only the ones you want and none of the ones you don’t want. The settings UI area also matters…you’ll want the right balance between flexibility and simplicity.

Worst case scenario, you’ll have to use multiple block libraries side-by-side and that’s ok, too. It’s just that later when you find yourself growing out of one block library and migrating to another…it can be a pain to keep track of which blocks were used on which pages. For that reason, I try (as much as possible) to use only one block library per site.

I will say that once you find yourself heading towards larger and more comprehensive block libraries…you might as well consider stepping up to the “Gutenberg pagebuilder” plugins that come with more features (like global settings and template libraries). They come with so much more power, and not that much more complicated to use.

2. Gutenberg native pagebuilders

Gutenberg pagebuilders are basically block libraries but with extra features (e.g. global settings, conditional display, and template libraries). They help you build your entire site (WP templates, headers & footers…not only page content) and also with more complex designs, using only Gutenberg blocks.

Their included Gutenberg block collections are usually more comprehensive, offering you not only more building elements but also many complex patterns and block templates to help you build more complex sites from start to finish.

These are great for building elaborate site designs purely in Gutenberg and without having to code whatsoever.

  • Kadence Blocks (FREE, PRO) – an awesome product! Many awesome block options and with super clean settings UI. And beautiful template library of many designs I would actually use. Probably the best design library out there. They strike a good balance of feeling minimal yet still being very comprehensive. I’m sad that the original Kadence developer sold his product out to StellarWP, but there’s no denying this is an awesome product and that StellarWP has a better reputation than Awesome Motive. (RECOMMENDED – minimal feel but comprehensive, great UI, best design library IMO)
  • Stackable (FREE, PRO) – their product is awesome and they’ve been around a while. Always tweaking and maturing their product. Their team and community have a lot of real world experience. Probably the most comprehensive set of blocks, block settings, and template library out there. They were definitely the first and probably still the most comprehensive Gutenberg pagebuilder on the market. Very active developers and community. (RECOMMENDED – most comprehensive set of blocks and features, strong and matured community)
  • Spectra (FREE, PRO) – many blocks, nice UI, nice global control for spacing and block enabling, awesome template library. A great product all around. Nice support docs and community. Built by the same team behind Astra, one of the most popular WordPress themes ever (despite several controversies in the WP community). Definitely a good option for newbies and pros alike. (RECOMMENDED – comprehensive block library, large community, clean UI and simple to use.)
  • Genesis Blocks (FREE, PRO) – the free version is very minimal, but still usable. Good option for coders. The pro has more block options, nice templates (that I would actually use), and extra client/dev features you should check out. Has a nice clean minimal vibe that suits coders.
  • GenerateBlocks (PRO) – once again, quality product by a quality dev team and great UI. However…their block library is not as comprehensive as the competitors…feels more like general wireframes than polished designs. And suits more of a dev-user who can cleverly create custom blocks using existing core blocks or custom-coding. Paying for PRO doesn’t unleash dozens of custom blocks like with other plugins.

If you’re at this point, I highly recommend going with pagebuilders that offer more options than you need, so you have room to grow. You won’t need all the features now, but you may later and can save yourself extra hassle down the line (without having to migrate to another pagebuilder).

The ones with template cloud option like Kadence Blocks and Otter Blocks make them a beast for devs!

Do you want even MORE power? Perhaps more developer-features, or build more complicated visual designs even faster? Or just looking for a different workflow style? You might want to consider a “proprietary sitebuilder”.

3. Gutenberg proprietary sitebuilders

Gutenberg proprietary sitebuilders come with their own editing UI, instead of the standard Gutenberg UI. Their custom editing UI offers you a different editing experience (usually more visually-based and/or with more developer-friendly features), but still outputs native Gutenberg code. I also included some builders that don’t use Gutenberg but work alongside Gutenberg.

Unlike the previous block libraries or native Gutenberg pagebuilder plugins, these proprietary sitebuilders completely take over your sitebuilding process. And vary in compatibility with other Gutenberg libraries/pagebuilders (or at least not without hacks). However they’re usually very full-featured and allow you to do anything you can imagine, all from one plugin.

These powerful plugins offer even more flexibility and features for hardcore website builders, or those wanting to work in a different manner (from the usual Gutenberg editor). They do require more skill or learning curve to use, but allow you to do complex tasks faster than the simpler less powerful plugins. Definitely overkill for simple tasks and designs, though.

  • Cwicly (PRO sub, FREE coming soon):
    • Actually works off the native Gutenberg editor and therefore compatible with any other Gutenberg plugins.
    • Adds many cool workflow features to your existing native Gutenberg editor.
    • Definitely the #1 option if you want to keep everything in Gutenberg and have all Gutenberg features/capabilities. However, the other options might be a better fit for you despite not being fully Gutenberg.
    • (RECOMMENDED – different workflow style, compatible with other Gutenberg plugins, improving fast)
  • Bricks (PRO ltd):
    • Has its own editor but is based off Gutenberg block code.
    • Is actually installed as a theme and requires you to design your theme completely from scratch (templates available). Can be overkill if you wanted something generic and not so custom.
    • After building the theme with Bricks, you can choose Bricks or Gutenberg to build your pages/content.
    • (RECOMMENDED – most powerful dev features, strongest active community, great pricing)
  • Breakdance (FREE, PRO sub):
    • Has its own editor, with super user-friendly UI similar to traditional pagebuilders like Elementor/DIVI.
    • Can be used with any theme. Letting you custom-build your own theme parts, or use the existing theme.
    • (RECOMMENDED – easy to use, most polished UI)
  • Builderius (PRO ltd):
    • Basically an IDE code-builder for WordPress templates only. You can’t use it to build your content.
    • It’s a great tool for specific use-cases and developer workflow styles. Allows you to “visually” hardcode your theme templates/parts. For building content pages, you use Gutenberg or anything else you like.
    • (RECOMMENDED – only for “hardcoding” custom template designs.)

Choosing the right one for comes down to your workflow style. You’ll have to test out each to see which is best for the way you like to build sites, has the features you need, and with settings organized in a way that’s most sensible to you. You might also want to consider something that’s still easy to use for clients to manage themselves (so they bother you less).

I’ll have a fully expanded guide on this soon.

4. Gutenberg special blocks & addons

These Gutenberg plugins specialize in giving your site some special features or settings that you wouldn’t find with the usual Gutenberg block plugins/builders above.

Some of them will be used in place of other Gutenberg block plugins above. Some of them will be used as a compliment to the other Gutenberg block plugins above. And take note…some block plugins above already have these features built into them.

  • GreenShift (FREE, PRO) – like a native Gutenberg pagebuilder plugin, with a comprehensive block collection along with template library and global options, but they specialize in adding animations to all your blocks. It’s a great option if you really want to add animations to your site and weren’t able to do it with other block plugins. Greenshift works, I just feel the UI is a bit unrefined, the template library lacks polished designs, and most of all…that their outputted code (although loads fast) doesn’t deliver the super high page scores like they advertise all over their site. Either way, Greenshift is not my library of choice even if it did deliver fast page scores. I much prefer more the more polished UI and template designs of the more mature block plugins (GenerateBlocks, Stackable, etc).
  • Block Visibility – gives you lots of conditional options for your block, like choosing whether to display them for certain user roles (admin vs editor vs reader), logged state (logged-in vs logged-out), among various other conditions (time, placement, etc). Some similar but less popular alternatives are Conditional Blocks and Wicked Block Conditions.
  • Blocks Animation – made by highly-respected development shop, ThemeIsle. Adds CSS animation capabilities to all your Gutenberg blocks.
  • EditorsKit (FREE) – nice toolkit of extra Gutenberg features. The dev here contributes to WP core.
  • Timeline Blocks (FREE) – adds timeline block.

4. Other plugins

All the Gutenberg plugins I felt were misses. Listed here (for posterity reasons), along with explanations why they weren’t included in my recommended lists above.

They aren’t recommended because they either have some fatal flaw, still too new, or have a direct competitor that is superior in every way. Any plugin listed here means I wouldn’t use it at all, because I couldn’t find any clean advantage or specific use-case for it. Although I admit some show potential to have unique advantages.

There are many out there that aren’t listed below. If you think they’re worthy of making this list, let me know. I got tired of checking out endless generic options again and again.

  • Atomic Blocks (FREE) – was a good block library, and still active, but now superseded by Genesis Blocks. You should be using Genesis Blocks instead.
  • B Blocks (FREE) – this block library had some interesting options. But I feel the plugin is still too new. The website looks unfinished, with many product demos not working right (or maybe the website was not working right). I’d pass for now.
  • Editor Plus (FREE) – minimal block library that adds just a few more helpful blocks (instead of the whole kitchen). Looks clean and simple, but I hate the generic branding.
  • Essential Blocks (FREE) – I hate the generic name of both the product and the developer name, but this is a nice free product. The toggle block caught my eye.
  • Getwid Blocks (FREE) – seems like a nice block library. But I dislike the generic branding. Their website feels strangely anonymous and faceless.
  • Ghost Kit (FREE, PRO) – native Gutenberg pagebuilder with promise. I like the unique branding and the website seems polished. They have some nice blocks and features especially made for developers. (HAS POTENTIAL)
  • Gutentor (FREE, PRO) – comprehensive blockset, works well. Not impressed by their giant style library of mostly generic designs. Also not a fan of the overall UI especially block settings area. Lacks some polish, and slightly ugly still. Extra options are conditional load for assets, block enabling by post type, and template library enable/disable. Compares most directly to Kadence Blocks and Spectra, both of which are clearly better. (HAS POTENTIAL)
  • Gutenverse (FREE) – feels super generic. Big list of blocks, but the website feels and brand overall doesn’t feel unique.
  • PublishPress Blocks (FREE, PRO) – argh, so close and they ruined it. They offer a comprehensive set of blocks, many powerful block features, and clean-enough settings UI. But I hate that their long ass name “PublishPress” is on every block (cluttering the block-choosing panel and reducing readability), and that every block settings panel has the annoying advertisement to upgrade to pro. UGH! Will also say that their purple color scheme doesn’t contrast nicely against the WordPress admin blue color. (HAS POTENTIAL)
  • Snow Monkey Blocks (FREE) – huge collection of blocks. Seems to be growing in popularity but we’ll see where it goes.
  • Twentig (FREE) – nice native Gutenberg pagebuilder, with good block selection and quality branding. I expect them to grow quickly. (HAS POTENTIAL)
  • Qubely (FREE, PRO) – nice native Gutenberg pagebuilder that on paper compared well against its more direct competitor Stackable. I just can’t get over the fact that this company was discouraged years ago and basically asked its user-base to start paying for PRO or else they would cease operations, they’ve since dropped activity on their product. And its product quality and community activity is also not on Stackable’s level. Stackable simply does everything better and in every way.
]]>
https://wpjohnny.com/best-gutenberg-pagebuilders-wordpress/feed/ 13
WPJohnny WordPress theme roundup 2023 https://wpjohnny.com/wpjohnny-wordpress-theme-roundup-2023/ https://wpjohnny.com/wpjohnny-wordpress-theme-roundup-2023/#comments Tue, 25 Apr 2023 16:32:21 +0000 https://wpjohnny.com/?p=12709 A brief look at my top theme picks this year, and why.

You’ve heard many of these names before (Astra, GeneratePress, Kadence, Blocksy, etc). And you’ve watched them battle it out…going head to head on features, nitpicking between nuances, perhaps even dipping into the pool of controversy and acquisition drama.

You wouldn’t think it, but actually a lot has changed in the WordPress theme industry. Perhaps not in features and re-establish

Once the dust settled in 2023, this was what I saw…

Recent changes in the WordPress theme industry

Copycat features

As annoying as this is (for the monetizing-hopefuls), I’m also happy for it. You can bet that the top themes are all copying each others’ best features and in a sense always improving themselves to stay with trends. It’s a good thing about open-source principles.

The top themes are never really too far from each other. And you can be safely assured that whatever feature a competitor makes, yours will probably have it soon enough. This means less jumping around each year. You can just stick to what you like.

  • Granular design flexibility
  • Speed and minimalism
  • Settings in WP customizer
  • Themebuilding capabilities – headers, footers, etc
  • Developer hooks & filters
  • Site library

Gutenberg integration

It seems all themes nowadays have maximized their integration with Gutenberg in every way. Making it easy to build not only site content but also site templates with Gutenberg blocks. Things that you used to need a traditional pagebuilder for can now be done with Gutenberg. (At last…we are finally evolving away from Elementor, DIVI.)

It seems the top theme-makers have even gone further, many creating their own Gutenberg block library and pagebuilder to go with their theme. This makes for an even tighter integration, giving users even more features. It’s a win-win for all.

A return to design templates

This is something I’m really excited about. For many years, it used to be that you picked themes based on how they looked. After all…that’s what a theme was, a design template for your site. It’s only purpose was to focus on aesthetics and nothing else.

But then themes were sold on “flexibility”. The more features and customizations could be made, the more secure users felt about the theme’s future. The thinking was the theme had to be flexible enough to create literally ANY design. And that was crazy since it led to themes becoming so bloated that a whole new era of themes was born out “minimalism” (basically selling less).

We’ve now gone full circle to where every theme has every feature, and there seems to be a silently-agreed upon standardization of themes. In the features that they offer, in their settings UI, and integrations with popular plugins. This theme standardization has now allowed us to focus on the main area where they DO differentiate…the design. 😉

So we got the features, the integrations, the UI, and now the designs…here we go!

Johnny’s favorite WordPress themes 2023

The features, the UI, the designs…here we go!

1. GeneratePress

Still my favorite. I like their vibe and soul the most. Stable, mature, solid features built exactly the way experienced devs like to work. I can’t say enough good things about the developer (Tom Usborne). I love using this theme to build custom designs.

For non-coders and non-developers, I’m much likely to recommend the next 3 themes (Kadence, Blocksy, Neve).

  • Great features for all users, but I’d consider them with the most dev features (or most dev-minded approach) than all competitors. Most granular setup for HOOKS & FILTERS features.
  • Has GenerateBlocks – Gutenberg block library and pagebuilder built by same company.
  • Nice site library with few designs but well-polished and modern hip vibe.
  • Solid community with good dev experience and design sense.
  • Been around a long time (longer than anybody else). Very mature product and community.
  • Lacks a drag-and-drop menu builder (in case you really wanted this). All other competitors have it.

Get GeneratePress theme or see my GeneratePress review

2. Kadence

They’ve got all the latest features but also really nice designs and also their own KadenceBlocks (Gutenberg block library and pagebuilder). Very similar to GP, but much better design library and fewer dev features. A good choice if you want to work off their starter templates and/or don’t need such complex dev features.

Although I use GeneratePress the most and like it’s comprehensive feature-set, Kadence theme is the one I most recommend for the general user. It has great design templates out of the box, beautiful UI that’s intuitive and easy-to-use, still has developer goodies like HOOKS & FILTERS, and integrates nicely with their awesome Kadence Blocks plugin.

  • Really nice UI. Lots of free features.
  • Great features for most users, just no dev-features like GeneratePress.
  • I think Kadence has the best starter templates of any theme. Good professional hip designs. And just the right amount of options and differentiation between them. (Not too many, not too little.)
  • Has HOOKS & FILTERS features as well.
  • Has cloud library feature.
  • I’m not a fan of them selling out to a bigger company, but also relieved they didn’t sell out to (not-so) Awesome Motive.

Get Kadence theme or see my Kadence review

3. Blocksy

Another solid choice. Beautiful designs and great features. Small but dedicated dev team who really care about their product. Very comparable and similar to Kadence theme (especially since Kadence copied some of Blocksy’s features a while back).

A really nice theme with many innovative approaches to design and theme-building. Since they first innovated things, many of their features have been copied by other themes. They still have unique beautiful designs, distinct UI nuances, and a diedhard community.

  • Really beautiful site starter designs. My favorite starter designs from this list are Blocksy’s and Kadence. Blocksy templates feel more posh, Kadence templates feel more hipster. Maybe Kadence wins because they have more options and differentiation…also a native KadenceBlocks plugin. But it really comes down to your preference.
  • Has HOOKS & FILTERS features as well, done in very intuitive way.
  • They don’t yet have a native Gutenberg block library plugin. Not a big deal since you can pair this theme up with any block library you want.
  • Their theme settings UI uses smaller text. You may or may not like this nuance compared to other themes.

Get Blocksy theme or see my Blocksy review

4. Neve

A big company with long-time experience building amazing themes (great design, features, code quality) and also A-level customer support to really support all kinds of users. They’ve been around a long time and made dozens of popular themes over the years. They used to cater to end users but are now targeting dev users with Neve.

Really nice alternative to the other 3. Big time quality and top notch customer support. You can try them if you want to see a different approach and different vibe to usual WordPress themes. Since the other 3 kind of copy each other so closely.

  • Awesome template cloud feature. Save your customized templates in the cloud and import them into other sites.
  • They’re less-known among the dev crowd but they totally deserve to be compared with the top. Super intuitive HOOKS & FILTERS features, that’s arguably easier to use than all other competitors.
  • They also have Otter Blocks, super awesome Gutenberg block library plugin.
  • Arguably the best customizer UI design compared to the others. It’s a small margin and very small difference, and perhaps very subjective but you can see for yourself.
  • From what I remember, I think they were first to do the cloud library feature.

Get Neve theme or see my Neve review

5. Astra

Officially the most popular WordPress theme, and for good reason, but it isn’t my favorite (also for good reason). Astra most definitely follows the trends (copying everybody else’s top features) but their soul feels generic. They’ve also been involved in lots of community drama and controversy. The product itself has been a little buggy in the early years but I expect it to have matured by now.

Still though…I would never recommend Astra over the other options…it doesn’t have any unique qualities and its track record isn’t as clean as the others.

  • Great features for most users. And they do have some dev features.
  • Also has WPSpectra – Gutenberg block library and pagebuilder, built by the same company.
  • Has HOOKS & FILTERS features as well.
  • I absolutely hate their design library. Hundreds of generic templates that look good in thumbnails but you won’t choose any because they lack substance. You’ll waste lots of time scrolling. Feels like they made their template library out of B-grade rejected designs.

Get Astra theme or see my Astra review

6. Bricks / Breakdance

Technically not a theme, but if you were gonna go a build-it-yourself route….these are my recommended options:

  • Bricks theme – great for building sites completely from scratch with many granular controls for developers. The #1 option for having more developer features. See my Bricks review.
  • Breakdance builder – think of it as an easier-to-use and less bloated version of Elementor/DIVI. Nice for people who prefer a more visual workflow similar to traditional pagebuilders. Also works alongside any theme. See my Breakdance review.

These options are for working in a totally different non-Gutenberg editor. Which can feel easier or more difficult. And can also give you a wider range of features and workflow options that you didn’t have with Gutenberg.

Still can’t decide?

Some distinctions to help you narrow it down.

  • Which features to compare? – comparing features is nice, but also the UI. Make sure the layout is easy and makes sense to you.
  • Not a pro? – compare template libraries to see which one has the design closest to what you want.
  • Low budget? – compare their FREE vs PAID versions.
  • You a dev working from scratch? – GeneratePress and Bricks get my vote completely.
  • Need support? – I think Neve customer support is the most noob-friendly. Others are better with community support.

At the end of the day. All of these are solid options and almost all (except Bricks) has free version for you to try out.

Why didn’t other themes make this list?

  • Because I didn’t know them.
  • They didn’t offer anything unique to compete or stand out against the ones here.
  • They’re still too new and unproven.
  • But do mention them in the comments for me to consider for future reviews!
]]>
https://wpjohnny.com/wpjohnny-wordpress-theme-roundup-2023/feed/ 15
Awesome Motive isn’t awesome https://wpjohnny.com/awesome-motive-isnt-awesome/ https://wpjohnny.com/awesome-motive-isnt-awesome/#comments Thu, 30 Mar 2023 07:01:59 +0000 https://wpjohnny.com/?p=12734 Screw those guys. They suck. Big middle finger from right outside the fences of Syed Balkhi’s multi-million dollar estate.

They’re the WordPress equivalent of Google. A giant conglomerate gobbling up any and all competition and innovation in the market space. I can’t remember a time when I didn’t cringe when hearing about a beloved company selling out to Awesome Motive.

While they do serve many (happy) paying users…I don’t think they’re good for the industry. At least not in spirit.

What’s the crime here?

The spirit of open-source is innovation and problem-solving.

2 principles I feel AM couldn’t be any further from. As much involved as AM is in the open-source WordPress space, I feel they couldn’t possibly be any further from these core principles.

They aren’t innovating shit.

That’s something more commonly done by lone programmers or business owners with a unique problem they have to solve on their own…for their OWN needs. AM isn’t a lone programmer or business owner, they’re just a copycat business ripping off competitor ideas or buying out companies outright. (A more successful version of WPMU DEV, a notorious “me too” conglomerate in WordPress history.)

They aren’t solving problems.

Well…not unless you’re counting “making money” as a problem to be solved. Cuz that’s they only problem they seem to be solving to me. They acquire businesses (rather than building them these days) and then immediately go…hmmmm, how can we maximize profits here? Plain as day to see.

  • The only problems AM owners/shareholders are solving are – “how to make more money?”
  • The only problems AM managers/employees are solving are – “how to keep my job?”

Their business practices seem awfully predatory at worst, and annoying at best. Their products all have the same-y mediocre vibe. Giving you just enough to justify the price tag. No more, no less. With their pocket size, they can easily copy away any competitor’s innovation advantage. Then using every plugin under their umbrella to cross-sell and nag you to death. (Because profit beats user experience, right?!)

Oh, and don’t get me started on that silly WPBeginner site either (their core lead engine for plugin sales). It’s like your average magazine off the newsstand…50% ads, and 50% advertorials. So basically…100% ads and very little content. It was the pioneer annoying affiliate-marketing site of its time.

Should we burn Awesome Motive to the ground?

Of course not.

As much as many of us hate McDonald’s, Starbucks, Amazon, and other similar American capitalist-style conglomerates…there are many who like them.

By all means, if you don’t mind paying the premium pricing for that “corporate polish” and bureaucracy as opposed for actual product value….then go ahead.

In the meanwhile, I’ll keep saying what I feel. That AM lacks soul. Prioritizes profits over true product value. And any product under their umbrella becomes an investment, not an innovation.

They are after all, a company and not a person. *And they care as much about you as McDonalds does.*

  • Anybody else clapping for and re-sharing Syed Balkhi’s “entrepreneur success stories”…I sincerely hope he buys out your favorite plugins and jacks up their subscription price on you.
  • Personal note to Syed…because I just know somehow, all product owners end up reading everything I say about them. “No personal hate towards you, dude. I’m happy for you. That you got to achieve things you wanted in life. Also that you gave back via philanthropy. I’m just not a fan of your business. That’s all.”
]]>
https://wpjohnny.com/awesome-motive-isnt-awesome/feed/ 17
Greenshift – Gutenberg pagebuilder blocks (with animation) https://wpjohnny.com/greenshift-gutenberg-pagebuilder-blocks-animation/ https://wpjohnny.com/greenshift-gutenberg-pagebuilder-blocks-animation/#comments Fri, 03 Mar 2023 18:25:06 +0000 https://wpjohnny.com/?p=12685 You can now have all the typical fancy WordPress pagebuilder animations you want, but without any of the bloat!

  • This Gutenberg pagebuilder, gives your site endless animation capabilities but none of the bloat!
  • Your site will still have lightweight code and high page scores!
  • Yes…you can have all the fancy effects from those bloated Elementor sites, but your site will load fast!

It almost sounds too good to be true. Is there a catch? Let’s take a look…

History of bloated pagebuilders

Why traditional pagebuilders (Elementor, DIVI, WPBakery, etc) sucked…

The biggest complaint was that they were bloated. They might have looked fancy and had cool fancy/flashy effects but they loaded tons of heavy JS and CSS files on the frontend. Causing your site to take forever to load and getting low page scores.

And for what seemed like a decade, you had endless debates back and forth between developers and end users.

  • Developers wanted to stick to building only essentials. A cleaner-looking site that was coded simpler, ran smoother, and was easier to maintain.
  • Users wanted to have the coolest-looking site possible. The more flashy, the more they would standout from their competitors (it was believed).

And then you had many people in the middle who tried to satisfy both through a variety of compromises:

  • Hardcoding sites – they look great and run well, but more work for both users and devs to maintain. They also cost much more and took longer to build.
  • Building only essentials – this was a compromise that satisfied no one. Users were sad about giving up their “cool designs”. Devs were frustrated about not being able to give users the cool features they wanted. Or losing clients because they switched to another developer who sold them on fancy promises.
  • Caching and hosting – many people tried to offset the site bloat by paying for cache plugins or even faster webhosting.

Still to this day, there are a dozen solutions on the market to try and make a bloated site somehow run faster. But almost all of them have one major flaw…they’re only bandaid solutions at best.

The solution was to compromise.

This made the most sense. Simply don’t put effects on your site that trigger unnecessary JS/CSS load…and then you won’t have to deal with trying to optimize all that later. It made the most sense to developers. It made the most sense to users.

Sure…it killed the fun for many people, especially daydreaming clients who don’t understand web technology. They just see “cool things” out there on other sites, and now want their site to have the same.

But anyway…the compromise made the most sense. And best of all, it worked. Minimalism really does work.

But is it really what users wanted? *devil laughing on the shoulder*

Greenshift created blocks WITH animations

Yes…imagine a whole library of Gutenberg blocks with endless animation capabilities.

  • Text blocks (titles, paragraphs) – where you could make words (all or just selected ones) animate.
  • Media (images, videos, galleries) – that flip or slide, or carousel around.
  • Objects (counters, icons, buttons) – that change design state upon engagement.
  • Containers (sections, tabs, tables, panels) – that flip and reveal content in dozens of creating ways.
  • And more – mouse effects, 3d modeling, and more!

I saw the list and it was crazy. They have a ton of blocks! All the gimmicky “bloated” features that your neighborhood speed-expert said you couldn’t have (sliders, parallax, etc)…well, now you can!

The Greenshift blocks are fast!

Yes…that’s the first question everyone wants to know. Are they actually fast loading? Yes, they are! Your site will load super fast and still have high page scores!

I know, I know. It seems too good to be true, right?!

How the heck are they doing this? It’s actually pretty easy. I assume they wrote their own lightweight animation libraries (instead of giant jQuery) and then applied automatic speed optimizations. Conditionally loading on pages only when used, and automatically lazy loading them. Your initial waterfall impact for having a dozen cool effects might only be an extra 20kbs of CSS/JS on the frontend instead of 400kbs (like with those old school bloated pagebuilders)…but after the first second, it’ll load the other 200kb of assets. Which isn’t totally lightweight but at least will FEEL lightweight.

Greenshift blocks are easy to use!

This also really impressed. Usually when plugins have tons of features, they take a while to figure out. But these guys did a great job. I didn’t have to use any documentation and right away I understood how to make things animate. It was quite fun to play around with!

Roadmap

They have really interesting things in the works. Follow their discussions and website to get more info.

  • layers, tables, charts, ACF integrations, forms, WooCommerce stuff, and more!

Reservations about Greenshift?

Design library

This is the biggest thing lacking. You can’t just give users a giant set of tools. They need more examples of how to tastefully use things. So I’d say they need to have this up ASAP. Same with how Elementor and DIVI have tons and tons of nice examples. This matters to me more than all the other cool features they have coming up.

Right now their design library doesn’t have many examples. And the designs look super generic and not really showing off all their capabilities (in a professional manner) . I didn’t see a single layout in there showing a full page layout with carousel or slider. Definitely makes me go “hmmmm….are they afraid their demo won’t score a high page score?”

Some demos scored poorly on PageSpeed Insights

One of their demos, when I plugged it into PSI…it scored like 53. These horrible scores can be seen on many other example templates I checked, too. And they were quite basic, too: just snippets of a carousel or one animation instead of an entire page loaded with them. However, you can still admit that the page loaded fast and was very lightweight. (Which…if you know who I am, then you know that’s fine by me since I don’t care about pagescores too much anyway. But am still irked that they don’t live up to their promises.)

Not a fan of their comparison page

I don’t like their biased comparison page, showing how they have faster page scores than everybody else. They didn’t even show what the pages looked like. It’s not a very good or very fair comparison. And looks shady to do comparisons this way.

Faceless company

Their about page doesn’t feature any face or personal name. Feels very unprofessional and perhaps not trustworthy. Is this a new-and-shy developer? Or perhaps someone not proud of their work to claim it?

What problem are we really solving?

My biggest issue, and this is really only just for me personally, is that it doesn’t help many people. Sure…there are legitimate cases for having all these cool animations at your disposal. Maybe you’re doing a really cool site for a video game or movie, or museum. Or want to have an extremely interactive experience for whatever reason. I get it. Perhaps even to show off your online portfolio in a very immersive creative way. THIS is the only legitimate reason for all these effects.

And I know damn well most people wanting this plugin are not that. They’re foolish business owners thinking every extra flashy animation is gonna bring their visitors that much closer to making a purchase. And they’re freaken wrong!

But who am I to judge anyway? This plugin is a whole lotta fun. And while I don’t think most (98%) of you should be messing it…I’m also here to say, it wouldn’t hurt for you to have a little fun and push your limits of creativity. For the truly professional creatives out there, you’re going to be oh-so-surprised about Greenshift. It’s that cool.

Should you try Greenshift?

I think it’s fun and can be useful. Some of you true professionals may have a legitimate use for its cool features and know how to use it tastefully. Newbies wanting crazy effects will at least experience less bloat with this plugin than with others. It’s a win-win all around.

Play around and see where this goes. Although the plugin doesn’t fulfill its pagescore promises, it’s still a step in the right direction for Gutenberg animations.

]]>
https://wpjohnny.com/greenshift-gutenberg-pagebuilder-blocks-animation/feed/ 4
Cwicly – WordPress Gutenberg pagebuilder review https://wpjohnny.com/cwicly-wordpress-gutenberg-pagebuilder-review/ https://wpjohnny.com/cwicly-wordpress-gutenberg-pagebuilder-review/#comments Wed, 01 Mar 2023 01:42:38 +0000 https://wpjohnny.com/?p=12522 What makes this WordPress pagebuilder different from all the other ones?

  • What’s the UI & workflow like?
  • What features does it have?
  • Is it worthy of taking market share from the competition?
  • What’s the pricing?

I run this recently-released Gutenberg sitebuilder through my gauntlet of skepticism.

Who is Cwicly?

Their CEO is Louis-Alexander Désiré.

I tried to do some research and couldn’t find him anywhere. No public history in WordPress commercial development or any WordPress development. No company page in LinkedIn. I don’t know who he is or what he’s done. I also don’t know anybody who knows who he is. (I also never heard of any of the team members either.)

Not to worry, that could be a really cool thing. A new mind, with a new perspective, uninfected by common crowd-think.

What is Cwicly?

Cwicly is an enhanced Gutenberg-based pagebuilder.

It’s built upon and works alongside the native WordPress Gutenberg editor. But it’s more than just a collection of Gutenberg blocks.

  • It can take over template theming (with a more mature version of WordPress full-site editing).
  • Import layout designs.
  • Has its own settings panels and other helpful editing tools to improve upon the editing experience.

It relies heavily on the existing WordPress Gutenberg editing interface, and then adds it’s own UI panels and settings areas around that.

Basically…adding more features to your existing Gutenberg editor to make for a more friendly, and more powerful Gutenberg editing experience. I thought their slogan “The Ultimate WordPress Gutenberg Toolkit” was exactly perfect for what it does.

What’s Cwicly’s promise?

A fuller, free-er WordPress site building and Gutenberg experience. Go through their website copy and there’s lots of talk about how it enhances your native WordPress editing instead of adding more interfaces and needlessly duplicating existing functions. Design faster and free-er, with powerful tools for advanced devs while still being client-friendly to use. All while outputting cleaner code, faster page-loading, and higher page scores.

Alright alright! You got my curiosity! I clicked the [TRY FOR FREE] button before washing the melted ice cream off my hands.

User interface (UI)

The UI needs work.

  • The official demos and other reviewers’ videos look better (with the dark mode), but my sandbox demo was ugly IMO.
  • Default editor content looks too unstyled. Couldn’t they have picked a better default font…like maybe a sans-serif system font?
  • Too many panel areas, each with their own design scheme and font styling. Left edge (icons only), left panel (block selector), right panel (block settings), and top toolbar. Feels like a mess, rather than a cohesive editing experience.
  • I appreciate them trying to minimize the settings panels but I feel like things require too many clicks. Over-reliance on image icons instead of text labels of what things do. I was often hovering my mouse around to discover or remind myself of what buttons did. We must remember the goal is speed. Saving space doesn’t help if it doesn’t save time! I’d rather spend more time scrolling and less time hovering to read/remember what each icon does. Labels also train my subconscious to know where to find other things in the future.
  • Messy display of borders between elements. Sometimes hard to understand/see what or where elements are.
  • Why are element ID’s and classes at the top of the element primary settings panel? Why couldn’t they be at the bottom or better yet, just stick them in the “advanced” tab. I probably would have stuck the conditions and interactions settings into the advanced tab as well and put the hyperlink down elsewhere. Aghhh…I’m not sure, anyway I shouldn’t be judging based on my own bias.
  • I do think the hovering “+” signs for adding new elements are cool in how you can quickly choose whether the added element goes inside, above, or after.
  • How the heck do I activate dark mode for the editor? Looked all over and couldn’t find. Searched the documentation and couldn’t find.

Overall, Cwicly wasn’t so intuitive for me, and will be even less intuitive for a newbie user. I only understood it because I had the experience to “guess” where things would be. Spend a little more time and everything makes sense. But it doesn’t feel smooth and simple. Their layout doesn’t actually teach you how it works. They’ve managed to make Gutenberg feel more complicated (not a good thing). I wish they would have stuck to more a familiar Gutenberg editing layout…and then simply added upon that.

Believe me, I appreciate their approach of making it a very visual tool. The thin left-most panel reminds me of the Adobe Photoshop toolbar. Same goes for the block settings panels. It’s nice to look at but requires so much mental spend to find each click. Maybe a balance could be found. (And maybe we just have clashing layout logic. Perhaps there’s an army of users who will love and intuitively understand what Cwicly did.)

User experience (UX)

Does Cwicly actually improve your Gutenberg experience?

This should be the very first question if your product is labelled as a “Gutenberg enhancer”. And I’m seriously still deciding if Cwicly is actually any better than the default Gutenberg editing experience.

  • Some of you might go “Oooooh, my Gutenberg looks sexier!”
  • Others might go “Ewwww, what happened to my Gutenberg?!”

It was more of the latter for me. Like it added more features (that I probably won’t need), while hiding or moving around the basic common options that I did use often. It looked like someone installed a WP admin theme over my Gutenberg editor and then some CSS files didn’t load.

Users with more polarized opinions of Gutenberg may find it disappointing on both ends.

  • For users who LOVE Gutenberg – Cwicly clutters it up without really adding more essential features. It even somewhat forces you away from the familiar Gutenberg way of doing things.
  • For users who HATE Gutenberg – Cwicly still reminds too much of Gutenberg’s editing interface. Feels like lipstick on a pig.

So basically…it’s ironically/strangely worse from both ends. People who hate Gutenberg will hate Cwicly even more. People who love Gutenberg may or may not like Cwicly’s opinionated version of Gutenberg.

One thing is for sure, Cwicly doesn’t help newbies learn (or understand) Gutenberg any faster. I think a total newbie would be more confused by Cwicly than without it.

What was fun, what was not fun?

What kills me the most was the contrasting user-experience I had between different tasks.

  • Anything advanced or Cwicly-specific feature was lots of fun. Things like messing around with the themer, or dev features (dynamic fields, etc) was so easy and intuitive. I felt powerful.
  • But basic Gutenberg tasks…like styling a button, was kind of annoying. Because of all the little settings panels and granular options you had to click through. It felt so tedious.

I did enjoy Cwicly’s features. I just didn’t enjoy its non-features (basic tasks). Hahaha.

Features

  • Enhanced Gutenberg UI – whether you feel it actually improves your overall Gutenberg experience is subjective. I think some things are genius and other things a bit annoying. Since the UI is the feature, for a workflow tool like this.
  • Blocks shortcut bar (left panel) – I freaken love this idea! Whoever came up with it, give that person a million dollar raise. I loved being able to add my most commonly used blocks. Honestly, this should be spliced into a free plugin for the WP Repo. (pretty pleeeeeease? *bambi eyes*)
  • Block library – Cwicly adds their own 30+ blocks to your existing Gutenberg block library. I agree that theirs are all essential ones (as stated in their marketing copy) and no fluff. You can probably build most sites entirely using only their blocks. Should you need to use others, they’d integrate just fine.
  • Style library – I have mixed feelings Cwicly’s style library. The designs seem polished enough, but the library is hard to use. Small panel and not so helpful category descriptions make it cumbersome to use. I wish it opened a bigger/wider panel in the middle of the screen and easier to scroll through options.
  • Theme templating – like other sitebuilders, Cwicly can be used to design template parts, like header and footer. I really like how powerful this is!
  • Speed & performance – yes…it’s fast. does it satisfy page scores? that’s for you to find out. Muck it up with tons of unnecessary blocks and see if you still score high.
  • Developer features – Cwicly has several cool developer features that serious devs would really appreciate…dynamic content, filters, query, fragments, repeater, page-specific styler, etc.
  • Roadmap – keep an eye on it. I see many interesting things on here…free version, WooCommerce templating, megamenu builder, raw HTML conversions, and more.

I really like Cwicly’s feature list. Maybe I disagree with Cwicly on UI and UX but their development mentality (on what features are necessary) aligns exactly with mine.

Support

Cwicly has an active community and lots of engagement between both devs and users. It’s exactly what I want to see.

  • Comprehensive support documentation.
  • Active (Discourse) forums.
  • Roadmaps
  • They offer 24/7 support, which I haven’t used.
  • Facebook Group is still small. Just 1,000 but a nice tight and activity community.

Cwicly VS the competition

VS default Gutenberg & block libraries:

  • Some people – might just prefer the default Gutenberg editor (look) and usual block library plugins. Simple, quick and easy.
  • Other people – might prefer Cwicly’s more visual workflow, and added features. Also their way of adding more options and settings.

I guess it all depends on what you’re planning to do. And whether you want a Gutenberg experience, an enhanced Gutenberg experience, or no Gutenberg at all.

VS other Gutenberg pagebuilders:

  • Stackable – I would probably prefer Stackable. Because it feels more native to Gutenberg whereas Cwicly changes the interface without really adding more features. Basically creating a learning curve without reward for learning. Both use the native WordPress FSE (full-site editing) feature to do theming and templating. Stackable has a nicer design library. I love the wireframe templates.
  • GenerateBlocks – a more minimal block library, and can also be used with FSE. Pro version has more blocks, dynamic features, and also super polished design library. I’m a huge fan of GenerateBlocks. I would prefer GenerateBlocks as well. I would guess GenerateBlocks is the closest direct competitor to Cwicly. Both in terms of the overall product features, approach to problem-solving, and type of dev-users they cater to.
  • KadenceBlocks – same idea as GenerateBlocks. But I think GenerateBlocks has more advanced dev-features. Kadence however does have nice template library.
  • Spectra – made by the guys behind Astra. Haven’t even tried but from what I see, I would probably choose them over Cwicly as well just because I think their UI would be better.
  • Qubely – it’s fallen off my list. Buggy and complaints. Also that one public post they had a while back asking for “public support” (money) did not reflect well on them.

UI wise, Cwicly’s main competition is here. With the more comprehensive block plugins that not only have Gutenberg block libraries but also have workflow enhancements, style libraries and theme-templating capabilities. I personally would prefer GenerateBlocks and Stackable. (Either or, not both simultaneously.) Probably prefer KadenceBlocks over Cwicly as well.

VS modern sitebuilders (Bricks, Breakdance, Oxygen)

  • Bricks – is a theme with a powerful built-in pagebuilder. It’s a simpler but more powerful version of Oxygen. Has its own visual workflow.
  • Breakdance – BD is gonna feel smoother and more intuitive, more polished, more fun. Cwicly will feel more like Gutenberg, up to the user to decide which he or she prefers.
  • Oxygen – Oxygen is a very visual pagebuilder with tons of dev features and settings. Cwicly is a Gutenberg pagebuilder with a handful of dev features. Both are for devs, but Cwicly is simpler in use, features, and workflow.
  • Brizy – I haven’t used Brizy much but I feel I would generally choose Brizy over Cwicly. Up to your preference.

Clean code output and performance just like the others. But the others have their own editing interface…their own custom editor (if you will). The Cwicly interface isn’t as smooth, cohesive, or unique (of course). Definitely not comparable in workflow features. Can build similar things but honestly not even a fair comparison. Cwicly isn’t trying to be a whole new pagebuilder, it’s just adding to your existing Gutenberg experience. Features wise, these tools are a better comparison against Cwicly.

There is one big advantage Cwicly has over modern sitebuilders…it’s that it has its own UI just like them but still allows you to mix in Gutenberg blocks from other 3rd-party plugins. This is huge as Bricks and Breakdance don’t seem to allow that.

VS oldschool bloated pagebuilders (Elementor, DIVI, etc)

  • Cwicly outputs cleaner and faster code, but the building experience is different and much less (noob) user-friendly IMO.
  • People who like traditional pagebuilders probably belong more on Breakdance or Stackable.

These are the people not tech-savvy enough to use Gutenberg or even understand what it is (a block library, a pagebuilder, a design-tool ecosystem?). They want (or need) an all-in-one plugin that has every possible tool for them. While Cwicly might be this for dev-users, it won’t be for average users.

Improvement suggestions for Cwicly

Basically, all the things I’ve already said before:

  1. Clean up the UI. Like a lot. The easiest suggestion would be to put things back to be closer to the native Gutenberg UI, and then add cleverly on top of that. The harder suggestion is keep what you have but redesign it so sexy that I like your way better.
  2. Redo that style library. Make it open a big panel in the middle so I can scroll through designs easier. Maybe more helpful descriptions.
  3. More icons on the shortcut bar. Maybe you decrease space-margin between them if we add more icons? I can think of 12-15 blocks I’d love to use regularly.

Would I recommend Cwicly?

Personally, I wouldn’t use (or recommend) Cwicly even if it was free.

  • I can’t recommend it to beginners because it seems more complicated than even default Gutenberg. Too much reliance on image icons instead of text labels prevents them from learning technical terminology faster.
  • I wouldn’t recommend Cwicly to devs since there are better dev tools on the market. Bricks, Oxygen, Breakdance.
  • I wouldn’t recommend Cwicly to diehard Gutenberg users because they can already do similar things with other Gutenberg pagebuilders that have a better UI. Stackable, GenerateBlocks, Spectra come to mind.

Cwicly is a good idea conceptually, but not matured (design-wise) yet and also doesn’t compare favorably against existing competitors. Other pagebuilders (Gutenberg & non-Gutenberg) offer a cleaner interface, more features, and were more fun to use.

But give Cwicly some time to mature and its use cases will expand massively. I appreciate its qualities more with time!

What users and use-cases best fit Cwicly?

At first glance, Cwicly seems a poor fit for everyone. Offering a mix of features that don’t fully satisfy any specific type of user. But in looking deeper, I’d have to say Cwicly does perfectly suit a particular hybrid-workflow type of dev.

  • Likes Gutenberg and Gutenberg editor. Finds it’s simple and fast.
  • Needs theme-templating capabilities.
  • Wants advanced developer features.
  • Needs something more powerful (but less cluttersome) than a block library.
  • Needs to do theme templating, but not take so much time.
  • Doesn’t want something as non-native or complex as Bricks or Oxygen, and/or just wanted something more familiar for clients (already familiar with Gutenberg).
  • Last but not least…someone who likes the Cwicly UI design. (Just because I didn’t doesn’t mean someone else won’t.) Also that Cwicly is the only Gutenberg pagebuilder with its own UI and still allows you add blocks from other 3rd-party plugins.

These traits are very specific but I do believe this type of “advanced/hybrid Gutenberg developer” exists. If this is you, you’ll absolutely love Cwicly.

Simplicity & power (power & simplicity) is a hard balance to find. But I do believe Cwicly visualized it well (from a developer POV). The vision is there. I just hope the UI design and overall UX matures to see it better.

Cwicly’s unique features are:

  • Its customizations on the Gutenberg editor. I actually do like that Cwicly IS Gutenberg. So you can use it alongside many other Gutenberg plugins.
  • Cool shortcut toolbar on the left – genius!
  • Some designs and settings nuances on their added Gutenberg blocks see if you like it.
  • Gutenberg themer – using WordPress FSE feature to design templates with Gutenberg blocks.
  • And some nice developer features – check them out to see if you need them. I haven’t compared side-by-side with every competitor to know what Cwicly has and doesn’t have.

…basically, Cwicly is already quite similar to several other Gutenberg pagebuilder plugins on the market. And probably the main thing that stands out is its UI.

Cwicly is a cool way for devs to build theme templates and content with Gutenberg blocks. While benefitting from workflow enhancements and powerful dev features, all within the familiar Gutenberg editor.

Is all this enough to justify a paid cost? ($49/year for 3 sites, $99 for 10 sites, $199 for 1,000 sites.)

  • For me…no. I think others are cheaper and better (or more mature), like GenerateBlocks. They do however have a free version on the way, and that would be interesting.
  • But maybe you’ll have a different experience from me. Maybe you’ll like their UI.

The best part of all is Cwicly’s trial is so easy. Just one click of the button and a demo site is fired up and ready for you to play within 2 minutes. Check out the UI theme-building and advanced features, and you’ll know if it’s for you.

]]>
https://wpjohnny.com/cwicly-wordpress-gutenberg-pagebuilder-review/feed/ 32
Breakdance – WordPress sitebuilder review https://wpjohnny.com/breakdance-wordpress-sitebuilder-review/ https://wpjohnny.com/breakdance-wordpress-sitebuilder-review/#comments Thu, 23 Feb 2023 09:14:26 +0000 https://wpjohnny.com/?p=12345 My thoughts on the Breakdance builder, its launch controversy and overall standing among modern pagebuilders today:

  • Some things are (really) good.
  • Some things can use improvement/adjustment.
  • I completely stand with the angry users.
  • But I also stand with the developer and product.

Let’s get to the details, shall we?

WordPress civil war – Soflyy (Louis Reingold) VS Oyxgen users

Some much-needed background context and drama behind the firestorm Breakdance’s launch caused.

For the people living behind a rock and never heard of Oxygen (because your lame ass is still on DIVI/Elementor/WPBakery)…do allow me to catch you up to 4 years ago.

Oxygen was revered by myself as well as many other developers as a genius product at its launch. It was sold for a very reasonable $160 lifetime price. And offered a completely different approach to the nasty bloated traditional pagebuilders (like Elementor, DIVI, WPBakery).

It was fast, powerful, fun to use, and catered to seasoned professionals instead of blind untrained end-users. It’s combination of pricing and refreshing take on pagebuilders made it the people’s champion despite its flaws.

But people are never satisfied for long, are they?!

As pagebuilders and WordPress’s core Gutenberg builder matured…Oxygen’s users started to make little requests:

  • What about this feature?
  • Or hey can we do this thing like “such and such” other builder?
  • Or “I’ve always wished for this _____ effect.”

The more Oxygen users truly committed themselves to Oxygen for every project, the more they found all its shortcomings, flaws, dead-ends, and annoyances.

And for a while…it seemed like the Oxygen development team was truly listening. Like that boyfriend who goes “uh huh, uh huh” while you’re telling a story as he’s on his phone.

The broken promises

It seemed like Oxygen was truly listening and intending to improve its product for users. Everyone (the users) believed a silent agreement had existed. That users who paid the lifetime fee would be patient for Oxygen to execute those requests at their convenience (since they weren’t paid an on-going subscription fee). And the more time that passed without Oxygen getting improvements, the more users believed Oxygen was going to surprised them with something big.

Hahaha…and boy did Louis Reingold and his Soflyy development team surprise Oxygen users.

The Soflyy completely delivered on all users’ promises….BUTTTTTT….

Louis (I assume it was Louis) didn’t actually improve Oxygen. He completely rewrote a new builder from scratch…and called it Breakdance (builder). With not only all the features Oxygen users had been requesting for months/years…but even more.

And ^&@!%$#*%!@$ packaged it as a completely new product, with an annual subscription price!!!

Hahahahahha….of course, users are gonna be pissed. They feel tricked, betrayed, etc. All these years of Oxygen’s website copy arrogantly proclaiming their business model was sustainable turned out to be at worst (a lie) and at best (an over-estimation of their business experience).

Who does WPJohnny support?

Both.

I support Louis Reingold and Soflyy in their business goals. And I also suppose Oxygen users in their anger.

Louis is putting out genius level work and the man deserves to get paid. Oxygen users…especially the ones who complained the most, I felt they all got far more value than the measly $160 lifetime price they paid for it.

In an ideal world. I wish Louis had the sense to be more transparent. I don’t expect him to open his mouth and spill his secret roadmap to competitors. But it would have been nice for him to dedicate just 5% of his time to add essential Oxygen requests (like copy/paste) before dismissing it entirely to focus on his new child (Breakdance). And only once Oxygen users were satisfied…he could have said “Hey guys, upon adding features to Oxygen…I’ve discovered how I can make an even better sitebuilding-experience, it deserves to be released as a completely separate product.”

Louis is making the same decision like Brian Gardner did in abandoning Genesis (a one-time fee product) to pursue bigger and more sustainable money in subscription-model opportunities elsewhere. It’s not a crime at-all whatsoever for anybody at anytime to want more money.

Btw, I think the name Breakdance is both amusing and well-fitting. I was a breakdancer myself and love that name for the builder. Breakdancing requires limitless creativity by mixing/combining an endless pattern of “common” moves. Of course, many WordPress users probably won’t ever get the name. But I do and I like it.

Initial thoughts of Breakdance

Breakdance is fucken cool.

You can’t act like it’s not. It’s definitely a huge improvement upon Oxygen in every way and therefore…stands as both a success story and a failure story. A success because it’s awesome. A failure because the creators deserve every bit of criticism from angry Oxygen users. They definitely took many of the users feedback and resold it back to them as another product. Absolute betrayal, I get it.

Things I thought was cool:

  • Better than Oxygen – Oxygen was already pretty good. So to be better Oxygen immediately makes you REALLY good. I understand Breakdance can’t do everything Oxygen does, but I still think it’s a better fit for a wider set of scenarios.
  • Editor loads fast – feels like a native WordPress tool instead of another CMS system emulating itself inside of WordPress (an inception of editors, if you will).
  • Clean UI – very easy UI to understand, good font size and spacing, LIGHT or DARK editor color mode to contrast against your site colors. Feels easier to use than Oxygen.
  • Advanced features – many great features to accomplish complex designs and features. Also to cut down on the number of extra plugins needed.

Things I’m skeptical of:

  • Form builder – spam protection and other advanced add-ons. I’d say it’s fine for light use but a serious business will want a dedicated form plugin like Fluent Forms.
  • Will Soflyy turn and betray users again? Abandoning them and open a new product? I doubt it if this one sustains itself under a subscription model. But regardless, I just don’t trust them to be transparent with me anymore. Sorry, the trust is broken!

Breakdance vs competitors

Breakdance vs Gutenberg:

  • For the average person, I’d almost have to choose Breakdance.
  • Gutenberg for the average person is almost sadistic.
  • Gutenberg for the average (low-grade) developer is almost sadistic as well when attempting more advanced designs and theme functions.
  • Beginners and even many “developers” simply don’t understand what Gutenberg is and isn’t. And how to add complex designs/functionality in Gutenberg without bloating it.
  • For the average user, Gutenberg is almost always not sufficient enough on its own. You need at least 1 core block library and perhaps a handful more block plugins to really get everything done. Knowing this and knowing how to do this, complexes its “simplicity”.

Breakdance vs traditional pagebuilders:

  • Breakdance wins against traditional pagebuilders (Elementor, DIVI, etc) but also against Gutenberg pagebuilders (Stackable, Qubely). Faster frontend & backend performance (clean lightweight code), faster design-building, more fun to use.
  • Breakdance is easier to use. Feels like much less friction to start. Easier distinction between what is design and what is content.

The company said Breakdance was meant to compete with traditional pagebuilders, and Oxygen was for devs (competing best with Bricks, although Bricks wins).

Breakdance vs Oxygen:

  • Let’s not play around with Soflyy’s claims of Breakdance and Oxygen being 2 separate tools (marketed to 2 separate types of users).
  • Breakdance is for me simply superior for the most important things. Oxygen only wins for dev-specific things.
  • Breakdance was obviously created upon Oxygen’s feedback, and to me its linear successor. For me, it’s the “new Oxygen” made better and easier to use for both newbie users and advanced devs alike. I expect it to add dev-specific tools and eventually canibalize on Oxygen’s market share.

Breakdance vs Bricks:

  • This right here is the REAL fight! (Breakdance is the newer one trying to upseat the current king, Bricks.) Yes…I understand Oxygen is better competition and more directly aimed at the dev-user market like Bricks. But I think Bricks is so much better than Oxygen that Breakdance is its better competitor. For sure I think Breakdance would love to siphon off Bricks’ market share and even Oxygen as well (since Breakdance business model profits more).
  • Breakdance even has the same yellow & black theme as Bricks. (Can I declare they copied? Not sure as they’ve couldn’t have had that color chosen long ago in development.)
  • Plugin instead of theme – Breakdance is a plugin and can work alongside any theme, whereas Bricks IS the theme. This means Bricks might require more work since you have to build your site from scratch. Whereas Breakdance could use your theme’s existing templates, and also makes it easier for you to migrate an existing site from its old pagebuilder over to Breakdance.
  • Features – both seem pretty even for the average user. But serious power users will see a definite advantage for Bricks. Developer-friendly filters, etc.
  • UI ease of use – Breakdance feels more polished and “pretty”. But really, both are easy to use. Breakdance has an advantage in appearing easier for 1st-time users and also more familiar for people coming from traditional pagebuilders. But really…both are awesome and easy to use. Breakdance also does a better job of intuitively “teaching” you its available features.
  • Style library – Breakdance has a much more polished set of templates. They look professionally done and ready to publish. Bricks library looks like mockups and need more work to look as professional.
  • WooCommerce templating – both can a lot of WooCommerce template customization.
  • Price – Bricks has a $99/249 one-time price whereas Breakdance has a free version, and a paid version which costs $150/annually. After what happened with Oxygen, I’m not sure sure I’d say the advantage is Bricks. But if $$$ is all you’re counting, Breakdance price for FREE version is better and Brick’s price for PAID version is more attractive.
  • Vibe – I freaken love Brick’s vibe. Its 1-man developer Thomas Ehrig comes across as a really awesome friendly community super hero to me. Kinda like Tom Usborne’s equivalent (GeneratePress) against Brian Gardner (Genesis). Breakdance on the other hand, I’m sorry but they’re gonna be seen as dishonest for long lonnnnnnnnng time.
  • Community – Bricks has the bigger and more active 3rd-party community. More 3rd-party extensions and addons, etc.

Again, I totally understand that Breakdance is not like Oxygen (which is more comparable to Bricks). But I do believe Breakdance has enough features to tempt devs into its simpler way of working.

Should you get Breakdance?

I don’t see how anybody who loves pagebuilders wouldn’t love Breakdance.

It’s a fantastic tool with incredible features cleverly organized around a super easy-to-use design. Yes…I understand some Oxygen users are still sore about the betrayal but really, paying $150/year for Breakdance is nothing for the value it provides.

I do believe Breakdance finally has a sustainable model that allows them to keep their A-team on its constant development.

Do I trust Louis Reingold to be communicate transparently in his future “surprise” endeavors? Definitely not. He’s never been a public kinda dude and I don’t expect any different from him next time around.

  • Breakdance has a free version, that’s fun to play with and powerful enough to create real-world stuff.
  • The pro version at just $150/year, I think is worth it.
  • So good in fact that I’m willing to step away from my forever hardcode attitude towards future site developments. And I would also definitely recommend it to clients.

Try Breakdance.

]]>
https://wpjohnny.com/breakdance-wordpress-sitebuilder-review/feed/ 11
ScalaHosting review – traditional shared hosting (custom panel) https://wpjohnny.com/scalahosting-review-traditional-shared-hosting-custom-panel/ https://wpjohnny.com/scalahosting-review-traditional-shared-hosting-custom-panel/#comments Sat, 17 Sep 2022 03:38:51 +0000 https://wpjohnny.com/?p=12330 A traditional webhosting service provider…with their own custom control panel.

Solid performance, good/fast support, and reasonable pricing. Scalahosting feels like your conventional webhosting company…offering a mix of shared vs dedicated hosting services. Where they differ is the option to choose from their home-grown control (called “SPanel”) which looks like a ripoff of cPanel.

It’s a big deal in this day-and-age as cPanel has kept hiking its costs (while not offering improvements to justify the increases). It’s forced many large webhosts to explore building their own panel and creating more variety in the webhosting world. A change I wholehandedly support and also stand behind as a middle finger to cPanel.

SPanel works well and offers tremendous cost savings that are passed down to the end users and resellers. How cool is that? 🙂

Who the heck is ScalaHosting?

ScalaHosting is the real deal. Kind of like the next SiteGround.

If you haven’t been paying attention to them, I don’t blame you. For whatever reason…despite the big plays they’ve been making, they’re still far under the radar. The name “ScalaHosting” isn’t memorable enough…if anything, it reminds me of the “White Mamba” Brian Scalabrine (for your basketball fans).

But that’s probably more a branding issue than name choice. The logo doesn’t stand out much. The web design isn’t distinct enough…whoever did their most recent redesign obviously built off of existing webhosting sites, like SiteGround and A2. It’s not a bad design…it’s just that it feels too same-y as everything else. It’s like they tried so hard to fit in that they no longer standout.

…so then how the hell did I notice them 3 years ago? 😉

ScalaHosting built their own control panel – SPanel

These guys are fucken crazy. If there’s anything crazier than trying to run a webhosting business…it’s trying to build your own webhosting panel. And I know this because I was trying to do exactly the same thing! I was in the exact same positions as these guys. Sick of new cPanel management getting greedier and greedier constantly jacking up licensing prices. Their vulturous business strategy really upheaved the shared hosting industry.

This inspired many webhosting companies to search for alternatives, like DirectAdmin or Plesk (still owned by same company, but cheaper), or to even build their own. SiteGround successfully did it but it’s not hard to see how, they got big money. But for a little guy like myself…it’s such a huge task. I tried pricing it out too, chatting with other devs and engineers to see what a partnership deal or project costs might look like.

So it came as no surprise that I would find ScalaHosting sooner or later. They literally built their own cPanel clone (no easy feat)…and for this alone, I give them lots of respect and tip my hat off to them. Needless to say…I was already biased to like them before I even tried them.

Products

ScalaHosting mainly has 4 main webhosting products, along other complementary hosting services.

  • ScalaPanel “managed cloud VPS” – this is their main product. You get a powerful cloud VPS server with their proprietary SPanel control panel. It looks like a simpler version of cPanel. Very easy to use and powerful. Runs fast. Defaults to Apache server but has option to enable OpenLiteSpeed (which is faster and also compatible with LiteSpeed Cache plugin).
  • Self-managed VPS – allows you to choose your own setup, kinda like most datacenter-level webhosts or cloudpanels. Pick your server specs and what OS/server/panel you want on it.
  • Managed Cluster – basically their cluster setup, where you have multiple servers joined together to offer high-availability for serving massive traffic and maintaining maximum downtimes. It’s powerful, but massively overkill in necessity and pricing for 99.99% of clients out there.
  • Shared hosting – cheap and uses cPanel for the control panel. You can buy this if you just wanna test their service but I’d personally choose at least one of the plans with SPanel…as that’s their main unique trait.
  • Other hosting – they also sell email hosting, reseller hosting, domain registrations, and SSL certificates.

Server locations

They only have 3 datacenters. 2 in the US and 1 in Europe. It should be sufficient for most people. But others in farther away destinations of wanting a more particular datacenter location will have to shop elsewhere.

Features

It seems many webhosts more or less have the same features so I try to cover or make mention of what stands out to me.

  • Old school style panel – cPanel or SPanel. Has many features and easy to use. The UI might appear “messy” compared to modern panels but it’s easy to use and arguably faster to use (since all features can be reached from the main page)…whereas other panels have more settings screens and tabs to click through.
  • LiteSpeed/OpenLitespeed web server – depending on which options you choose. I love LiteSpeed because of its performance gains and compatibility with my favorite WordPress cache plugin (LiteSpeed Cache).
  • Backups – daily scheduled backups.
  • Free SSL – standard feature.
  • SShield Cyber Security – not sure if this is their WAF or malware scanner or maybe both. But anyway, they have typical security measures like any other hosting company.

Performance & support testing

Their proprietary SPanel control panel

I like it. It seems barebones and not fancy looking but it works well. Very snappy and fast…and the main feature besides it working well is that they don’t have to pay expensive licenses for it and therefore you save money as a customer.

Cost savings are great for end-users (bring down costs) and also for resellers (improving profit).

Server performance (underlying hardware)

I’d say their shared hosting server performance is B+, sits just below the usual VPS tier provided directly from cloud providers like Digital Ocean, Linode, Vultr, AWS, etc. It’s plenty fast enough and the price is cheap for the space provided. If you’re looking for cheap solid shared hosting, I recommend Scalahosting.

For their upper tier dedicated services…they integrate with Digital Ocean which is considered in the usual A-tier of datacenter hosting.. Check their site carefully to know what comes with what.

User experience

I was pleased with the customer UI and panel. Things look like the typical shared hosting account, with billing area and control panel. Is it sexy like modern cloud panels? No. But it’s easy to understand and works well. Click around to make settings changes was fast and easy. I had a good experience.

Speed

Things were fast. Pages load quick enough. Not much else to comment here. Nothing freakishly fast.

Their support was super friendly and helpful.

I’ve used the chat support for both their tech and billing staff on various occasions (over 6 months) and the wait was never more than 2 minutes. They solved my problem easily every time except for once. And the one time that they couldn’t solve (a rare issue), the staff told me to wait for his follow-up email and I received one a few hours later with good news.

Suggestions for improvement

Things that could be better:

  • Enabling OLS – from SPanel wasn’t so straight forward as one-click. I had to contact support and they did it for me.
  • Lacking cPanel WP Toolkit – their cPanel uses Softaculous WordPress installer instead of WordPress Toolkit (the latter is much better IMO).
  • More datacenter locations for shared hosting – I would have liked to see an Asian location but I totally understand if their target market isn’t there.

Should you host with ScalaHosting?

What are ScalaHosting’s strengths?

  • Reasonable prices, good service – this alone makes them comparable to the top tier of traditional webhosting providers. Good performance and support.
  • SPanel – this is what sets them apart from the rest. Instead of paying for the now-expensive cPanel, you can use their home-made SPanel control panel. Which works and feels alot like cPanel. Easy to use and fast-performance.
  • Geared for managed VPS hosting – this is their main service, they prefer focusing on VPS hosting rather than shared-hosting.
  • OpenLiteSpeed – great for performance, and works with the awesome LiteSpeed Cache plugin. Many hosts still don’t offer LiteSpeed so this is a refreshing sight for me.

ScalaHosting is for anyone wanting a cheap managed VPS server with good performance and support.

  • Convenient to sign up from one place and get a managed server with all the software ready to go. Conventional looking control panel and easy 24/7 support make it a great alternative to the more modern panels nowadays where you have to buy your server from one place and cloud panel from another.
  • If you’re just a traditional shared hosting user don’t care much for SPanel and just want a regular cPanel shared hosting account, you could use Scalahosting for that as well. Cheap and works well.

Try ScalaHosting today (my affiliate link)

]]>
https://wpjohnny.com/scalahosting-review-traditional-shared-hosting-custom-panel/feed/ 14
Cloudways is cashing out (acquired by Digital Ocean) https://wpjohnny.com/cloudways-is-cashing-out-acquired-by-digital-ocean/ https://wpjohnny.com/cloudways-is-cashing-out-acquired-by-digital-ocean/#respond Thu, 01 Sep 2022 21:19:00 +0000 https://wpjohnny.com/?p=12373 I’d guess Cloudways is cashing out.

It’s too big to evolve with the times and I assume not much market share left to conquer. Instead of spending big money to improve, they sell off their current work for big money…and start a new business elsewhere.

Digital Ocean picks this one up as a lead generator. Much in the same fashion that WP Engine acquired StudioPress.

https://www.cloudways.com/blog/cloudways-joins-digitalocean/

It’s a smart move IMO.

Cloudways had to exit at some point as they can’t possibly grow any further and rewriting their whole product (and code base) would probably lose market share due to upgrade friction. Digital Ocean on the other hand pays a one time price for a respectable name and leverages it to sell recurring-revenue products (servers).

What happens to both companies?

Cloudways is effectively dead if you ask me. I don’t see Digital Ocean improving it (same way how WP Engine didn’t do much with StudioPress/Genesis Theme). How the heck does the original product grow when the soul behind it has moved onto something else? Need we be reminded that Cloudways was acquired for its CUSTOMERS rather than its PRODUCT?

Digital Ocean, I’m more worried about. Their recent big moves, like this acquisition and the price hikes, suggest either one of two things. Either they’re doing really well and making aggressive plays to leverage their market position. Or their growth is stagnant (for their liking) and they’re desperate to try anything.

]]>
https://wpjohnny.com/cloudways-is-cashing-out-acquired-by-digital-ocean/feed/ 0
HostArmada review – old school shared hosting (with a twist) https://wpjohnny.com/hostarmada-review-shared-hosting-with-a-twist/ https://wpjohnny.com/hostarmada-review-shared-hosting-with-a-twist/#comments Fri, 13 May 2022 20:30:07 +0000 https://wpjohnny.com/?p=12033 My personal review of this interesting NEW-SCHOOL take on an OLD-SCHOOL style webhosting.

They gave me a free account like a hundred years ago. I looked at their site and was like….yeah, whatever. And then time passed and since they really persisted (and had a different vibe in their emails then most companies), I decided to give them a shot.

They service seemed cheesy at first glance, but then I actually grew to like them. Here’s why…

1st thoughts of HostArmada

Their website design feels like a modern generic version between Cloudways and Kinsta.

It’s the modern generic design…of blue-purple-pink pastel colors with the retro illustrations of people standing around servers and circuit boards. Hahaha…I guess nobody wants anymore of the old school real photos of people smiling around computers and heavy corporate “trust” colors, like blue and gold (sometimes, red and green).

Old-school shared hosting vibe…(in terms of pricing & branding)

  • Everything’s on sale – everything costs only $1.99. Of course…not literally that cheap…but you know what I mean!
  • They do domain registrations! – lol, can’t remember the last time I saw a host doing that.
  • Tons of hosting products – you can see the site for yourself. Managed, Shared, Cloud, Reseller, Dedicated, etc.

It’s really REALLY easy to get turned off by this. Seeing stuff like this feels like another coupon flyer in my mailbox. You’re just sick of it and don’t see the point of yet another low-cost low-value low-expectation hosting service.

Like why?!!!!
WHYYYYYYYY…build another non-innovative company? Who the heck gets up in the morning for this?

BUTTTTT…their setup isn’t totally old school. (It’s shared hosting using fast VPS, not slow dedi’s.)

When looking at their map of available datacenters …I realized they weren’t my grandpa’s shared hosting type of company. They’ve got a new school twist! Instead of only a few low-grade datacenters with low-end bare metal dedicated servers, they’re using high-performance VPS cloud servers (and over a dozen locations around the world).

Let’s go over that again…

Instead of old school super cheap bare metal on slow ass hard drives, they’re using high performance VPS instances to run their shared hosting. And if I had to guess, they’re using Linode infrastructure. Since I recognize all those datacenter locations. But how the heck are their prices so low???

Which puts us in a very interesting place. If I had to guess…they’re using Linode instances (which are very high quality but quite costly for shared hosting) with huge block storage volumes mounted onto them. The block storage is still quite (relatively fast for shared hosting) but makes things so much cheaper!

How else are they able to give away 15GB of space for just $2.99? Either way, I appreciate their hustle to provide a quality service at a great price!

Features

Old school style backends…cluttered WHMCS & cPanel.

To be clear, a super-skinned WHMCS (almost seizure-inducing) and a thankfully un-skinned cPanel. I’m quite familiar with both and like them. Reliable, works well, loads fast, and just about every client/end-user has seen them before.

If I had one wish, it’s that they make the WHMCS color scheme less aggressive. For those who don’t know what WHMCS is…it’s the billing area software that many hosting companies use.

cPanel is cluttered. Can be good or bad.

It’s bad if you’re a new-school dev who knows what he’s doing, and wants a clean minimal interface with fewer things to distract from your work.

It’s good if you’re a newbie client and love having 50 new toys to click on in your hosting panel. The HA cPanel is truly loaded to the max. They got all the usual cPanel stuff AND (non-WordPress) script installers AND WordPress theme installers AND a proprietary site-cacher (it’s actually Memcache object cache).

LiteSpeed web server & .htaccess

LiteSpeed server is awesome and high performance. HTaccess feature is useful (and even necessary) for certain plugins. These things are nice to have and depending on your level of skill and type of us, can be really useful. LiteSpeed web server allows the use of LiteSpeed Cache plugin (my favorite cache plugin), so I’m super happy about that as well.

Email hosting & File Manager

If you’ve always been on shared hosting (SiteGround, GoDaddy, 1and1, Bluehost), these things are nothing new to you. If you’re from the cool-kids club of using cloud panel hosts (Cloudways, RunCloud, GridPane), these things can be a serious luxury. Either way…they’ve got it and it’s a nice feature to have!

“Inode limit” (technical term for how many files you can have)

Ahhh…found the first gotcha! The inode limit sets a big limit on how many files you can have. So while my super cheap plan comes with 40GB of high-speed storage, I actually won’t get to use up most of it with typical WordPress files. The space is more useable for large backup files.

  • For those wondering, my inode limit was 500,000 files for a 40GB storage plan.
  • And my 200MB site (using only 0.5% of the space limit) already took up 13,000 inodes (2.5% of the inode limit).
  • So basically…I’ll only be able to use like 8GB of that space for typical WordPress stuff. The extra space only benefits if I have larger files, like images or backups.

But despite this limit…they are still cheaper than big name low-budget webhosts like SiteGround or A2.

Stock features…

Basically…the stuff that aren’t special to me but it’s nice to know that they have.

  • Backups – nice to have. So you can have a fallback when you jack up your site like a newb.
  • Free SSL – duh!
  • Malware scan & removal – they will scan and clean your site when it gets hacked (because you didn’t know how to maintain it). This is actually really nice service.
  • WAF & IP Firewall – nice to have. Actually benefits both the provider and the client…since servers will run faster due to fewer DDOS interruptions.

Developer features (SSH, WP-CLI, Git)

This is all really good stuff to have! I love the modernized WP-CLI and Git access. Super useful for busy coders and especially if they wanted to use this cheap hosting as a sandbox environment.

Performance

LiteSpeed servers…do I gotta say more? (It was fast.)

The HA (LiteSpeed) servers were fast. Sites up came up quick. Everything snappy. Was it the fastest thing on earth? No, of course not. But definitely faster than the typical bottom-tier hosting companies like GoDaddy, 1and1, Bluehost.

Was it as fast or faster than the better shared hosting giants like SiteGround and A2? Honestly, I felt like it was. Now maybe I had a new server or my server was lucky to have quiet tenants. I doubt that they rigged my review setup as I used it months after they gave me the account.

Hosting backend performance was responsive as well.

I would also like to report that navigating around the control panel and billing area backends were also pretty responsive. I remember other companies like Cloudways and GoDaddy being unbearably slow to get around. Each settings page click was like a 5-second wait. SiteGround can be a little slow too…2-3 seconds sometimes.

Support

Skilled, friendly support…and available 24/7.

I felt absolutely ridiculous the whole time I tested this. I purposely broke the site in 2 places, and then jumped onto chat support pretending to play dumb like I didn’t know how my site broke.

The chat support was surprisingly efficient. Wednesday night at 10PM USA Eastern time, I was the next person in queue and an agent answered within 2 minutes. He “spoke” [typed] perfect natural English…without any of the “Yes, sir. How can I help you, sir. What is your name and email, sir.” type of bullcrap from usual Asian support staff.

He took a look and fixed the problem within 60 seconds. Then told me how he fixed it. He was friendly, professional, efficient, and most of all…had obvious programming skills. Making him a high-level support engineer IMO. (A real “tech support”, not “customer support”.)

I thanked him for his time and moved on in absolute shame. Lol…I feel so bad since I’ve been Mr. Tech Support numerous times in my life. Oh and PS: I feel a little extra stupid because I thought I was clever in how I broke the site. And if I’m being honest, he certainly fixed it at least 10 minutes faster than I would have! 😂😂

Should you host with HostArmada?

Yes, they’re definitely worth a shot.

I actually liked them. The prices are super cheap, performance and service was good, support was good. And the cost is so low, it’s almost free compared to usual prices nowadays.

Just on pure notion alone that they’re doing something kinda new in the industry is worth a shot. And also that I had a pleasant experience when using the service validated my feelings.

The service is only 3 years old (started in 2019) and trying to grow aggressively. I think by the 6-year mark…they’ll either go down in performance or up in price. We’ll have to see how it turns out but as of today, it’s a great deal.

Who are the best customers for HostArmada?

HostArmada is a great fit for the typical shared hosting client:

  • You’re new to webhosting – and just want something cheap.
  • You’re on low end shared-hosting (GoDaddy, 1&1, BlueHost) – and want something faster, more reliable, and better support.
  • You’re on higher end shared-hosting (SiteGround or A2) – and want something cheaper. HA prices are like $3-5/month instead of $15-30/month.
  • You want to be a reseller – (selling hosting to your clients).
  • You want cheap email hosting – to go with your cheap hosting and/or don’t want to pay for expensive email hosting like G-Suite.

You got small sites with low traffic and just starting out. Or your sites are so lean and well-cached that you don’t need a big fancy VPS. Good performance + Low cost = High value.

Curious to try HostArmada?

]]>
https://wpjohnny.com/hostarmada-review-shared-hosting-with-a-twist/feed/ 3
WordPress is (slightly) losing market share because… https://wpjohnny.com/wordpress-is-slightly-losing-market-share-because/ https://wpjohnny.com/wordpress-is-slightly-losing-market-share-because/#comments Wed, 11 May 2022 21:44:29 +0000 https://wpjohnny.com/?p=12126 …because web users are getting dumber.

Hahaha, now that we’ve gotten the usual inflammatories out of the way…let’s put out some genuine theories backed with daily insight.

WordPress along with the world it operates in…are both changing.

WordPress used to be the simpler option for experienced developers.

Back in the days (I get 2 years older every time I say this), the only people messing around with websites had to know minimal HTML and CSS, and basic webhosting tasks like buying a domain, repointing DNS, signing into cPanel, logging into FTP, uploading and downloading files.

WordPress was incredibly beautiful because it cut down on all the tedious tasks of building a new site. You weren’t wasting time with boilerplate template stuff, html sections and restarting CSS frameworks. It was very plug-and-play. Anything you wanted to build was already done by some coder who had the very same idea. You were saving endless time and money in a truly open-source world, working alongside others who thought more or less like you.

But now…WordPress has become the more complicated option for inexperienced web-users.

The WordPress user-base today has expanded so much farther beyond its original demographic. Clients who used to pay for developers are now managing and even building their own sites. I’m talking about people who not only don’t know basic web development but also don’t know basic WordPress knowledge. They want to save thousands from not hiring a developer…but happy to give up $20-50/month for simple functions already put together. That’s how the core WordPress itself and its 3rd-party ecosystem radioactively mutated into some 1000-legged octopus.

WordPress sites are no longer a simple blog…but an e-commerce site, membership site, portfolio site, community site, and on and on. More functions, more features, more fancy visuals, MORE MORE MORE! What could’ve been simple plugins are now overly-bloated and overly-marketed (aka “confusing”) for the sake of profit (rather than user-experience).

And who does the site serve? Oh everybody and every fucken metric. Has to look nice for visitors, load “fast” for Google, integrate with external services, yet easy to use for non tech-savvy end users, easy to maintain for business owners, and still have all cutting-edge features of a million billion-dollar SaaS? (Shopify, Squarespace, Wix, etc.)

It’s no wonder that WordPress is having an identity crisis with both devs and bottom-users jumping ship. Devs hate the bloat and commercial grime. Users hate the complexity and confusion.

We’ve fallen to the point where newborn devs are using WordPress not out of personal preference but because there’s so much money in the market. And users likewise are choosing WordPress because of the number of devs and active development for it. Because otherwise…they’d rather choose something easier. Something that doesn’t have to be “learned how” to use.

WordPress will NEVER be “easier” to use.

That ship has long sailed. The moment you asked the utility knife for just one more feature…you (basically) transformed it into the airplane cockpit that it is today. It’s more granular than ever…thanks to people who insisted on hacking every little aspect of it.

The only thing WordPress can be now is flexible. You can craft it into whatever Frankenstein application you want. It can do anything and everything. But you must choose carefully and make sensible choices. Because with great power, comes great responsibility.

Ultimately who is to blame?

Nobody if you ask me. Times have changed. Everything’s changed. WordPress feels like a bicycle trying to keep up with cars. Or more like…a car trying to be both a plane and a bicycle.

I wouldn’t point a finger to any single thing such as Gutenberg, ever-changing speed metrics, or slow hosting. If anything…all those things have gotten much easier over the years, not harder.

The only thing making WordPress harder are the demands users put on it. By asking WordPress to do more with less development skill, less user skill, fewer server resources, and smaller development budget. Yeah….THAT will make any development platform hard, I can guarantee you that much!

What should you do?

If you think you can find something better…do let me know when you find it.

There’s a hundred new options out there much more specifically catered to whatever it is you’re trying to build. Whether it be a photography site, e-commerce, membership, forum, etc.

There’s also a hundred new platforms for how you want to build. Coding in different languages or libraries. Or different click-and-drag builders. The choice is literally yours.

But what will I (WPJohnny) do?

I’m sticking with WordPress because I love the WordPress way of doing things. Yes, the landscape has gotten absolutely crazy. This is expected when your once serene deserted tropical island gets discovered and is now overrun with commercial tourism and elitist gentrification.

I stay because I’ve never lost sight of what WordPress once was and still is. I know my way around perfectly, so nothing confuses or distracts me from my goals. The dizzying myriad of options sits comfortably by my side like a painter’s palette. I know exactly what feature/option I need and when I need it. But I can’t say the same for those swimming off for “easier” islands elsewhere.

I wish you all the best of luck and I guarantee we’ll find each other in another world, whether it be WordPress or another platform. Happy exploring, everyone!

]]>
https://wpjohnny.com/wordpress-is-slightly-losing-market-share-because/feed/ 10
Exporting databases using WP-CLI https://wpjohnny.com/exporting-databases-using-wp-cli/ https://wpjohnny.com/exporting-databases-using-wp-cli/#respond Tue, 26 Apr 2022 02:23:28 +0000 https://wpjohnny.com/?p=12069 A fast and easy way to export large databases using WP-CLI.

I like exporting with WP-CLI because it’s very easy to use and especially helpful for exporting large databases (that crash when exporting via phpMyAdmin). WP-CLI is always more convenient to use than MYSQL shell…and requires much fewer commands.

1. Log into SSH

I won’t cover how to do this. What I will talk about is whether to login with server “root” user or the user account for the site.

  • Using “root” user can be faster if you’re already logged in, and don’t have the site-user credentials handy. However, using “root” user might require an extra step…which is changing ownership for the exported DB and moving it elsewhere.
  • Using site user account is faster since the file exports to an easily-accessibly directory (the site home directory) and with proper ownership already set.

This guide assumes you’re using “root” user…which has more details to consider and I’ll leave you to follow only the steps that matter to you.

2. Navigate to directory of the site (whose database you want to export)

cd /home/user123/public_html/

  • Obviously, the above example is a CENTOS server. A directory path for a site on Ubuntu server might be more like /var/www/domain.com/html.

3. Export DB using WP-CLI command (to user home directory)

wp db export dbname.sql --allow-root

  • The command above is if you’re using “root” user. For non-root users, you can leave out the --allow-root at the end.
  • You can choose whatever exported filename you want. It doesn’t have to match the database name.
  • You can also specify an exact directory if you prefer. Put an absolute directory path like /somewhere/somewhere/dbname.sql.
  • Can also specify a different exported DB name.

4. Navigate to home directory

Use cd if you exported to your home directory. If you specified another directory, then navigate there instead (e.g. /somewhere/somewhere).

From here, you can:

  • Change ownership if you want the file accessible by another user. chown -R user456:user456 dbname.sql
  • Move the exported DB file elsewhere (like to a certain user directory). mv dbname.sql /path/to/dir
]]>
https://wpjohnny.com/exporting-databases-using-wp-cli/feed/ 0
Mounting Linode storage volumes https://wpjohnny.com/mounting-linode-storage-volumes/ https://wpjohnny.com/mounting-linode-storage-volumes/#respond Sat, 23 Apr 2022 15:21:49 +0000 https://wpjohnny.com/?p=12058 I’m going to show you how to mount Linode’s additional storage volumes to your server.

They’re really handy for adding space to your server. Only thing is they don’t add space overall to the server, you mount them to a specific directory (mount-point) and only that directory has more space.

While the storage volume drives are fast enough to run applications, they aren’t as fast as the ones on your server. So I probably wouldn’t try to do heavy php or DB processing off the storage. I would use them only for lower priority items, like maybe backups or media (images & videos).

It’s a good option for when you need more space but don’t want to upgrade or pay for a bigger server.

First go to your storage volume page, then click [Show Config]. Follow the steps with my notes:

  1. mkfs.ext4 "/dev/disk/by-id/scsi-0Linode_Volume_demo25-blockstorage" – enter this line exactly as given by YOUR CONFIG (not my demo one).
  2. mkdir "/mnt/demo25-blockstorage" – you can skip this step if you’re mounting the space to an existing directory. (Which IMO is more likely to be the case.) Otherwise, create the exact directory where you want it to be mounted.
  3. mount "/dev/disk/by-id/scsi-0Linode_Volume_hoon25-backupstorage" "/mnt/demo25-blockstorage" – but type exactly the path you want mounted (whether an existing one, or the one you specified above).
  4. Edit your /etc/fstab file, and add this to the bottom: /dev/disk/by-id/scsi-0Linode_Volume_hoon25-backupstorage /mnt/demo25-blockstorage ext4 defaults,noatime,nofail 0 2 – but again, make sure you type exactly the path you want mounted.

That’s it! Easy peezy!

]]>
https://wpjohnny.com/mounting-linode-storage-volumes/feed/ 0
DNS Basic Info & Troubleshooting https://wpjohnny.com/dns-basic-info-and-troubleshooting/ https://wpjohnny.com/dns-basic-info-and-troubleshooting/#comments Sat, 26 Mar 2022 16:05:29 +0000 https://wpjohnny.com/?p=11964 Basic knowledge about DNS and how to fix DNS problems.

I wrote this for 5-year olds, complete with cute replacement terminology (and cartoon illustration…ha, jk). If you don’t understand it, I can’t possibly think of any easier explanation for you.

Let’s get to it!

1. How DNS works

DNS stands for “domain name system”.

DNS is used to connect domain names to computer IP’s. Because nobody likes to type 74.6.231.21 into their web-browser. It’s much easier to type yahoo.com. And that’s how it (magically works).

  • You type a domain into your browser.
  • The browser passes the request for the domain name to the nearest DNS server. (It basically says “Hey…which computer is hosting that domain name?”)
  • If that DNS server knows exactly the computer (and its IP) hosting that domain, it will connect you directly.
  • If the DNS server doesn’t know which computer hosts that domain, it passes the request to other DNS servers until it finds the computer (server, IP) that’s serving that domain name.
  • Then your browser is connected to that server and data is sent back and forth.

How many DNS servers are involved during a domain name lookup process?

  • It can be at least 5-10 jumps before it finds the web-server.
  • Request is made from local computer.
  • Then goes to nearest DNS server, which could be on the same computer and/or another computer on local network.
  • Then local ISP.
  • Then to a large organization that manages all TLDs of that domain name (.com, .net, .shop, etc).
  • Then to the registrar company that manages your domain (e.g. GoDaddy).
  • Then to DNS proxy service if you use one (Cloudflare, Amazone Route 53, DNSME, etc).
  • Then to a datacenter hosting the servers.
  • Then specifically to the server with the website.

Basically, many many jumps. And could be even more if each network had many machines locally (pretend if you went to an external IP like 45.21.5.55 which housed tons of machines internally starting from local IP’s like 192.168.0.1).

2. DNS tools to play with

DNS tools are useful for learning purposes or to diagnose real-world issues.

  • Ping – shows whether the domain resolves successfully to an IP, and if it’s responding. FYI: if the server isn’t responding, it might have blocked PING (for security purposes).
  • Reverse IP Lookup – does the reverse of domain name resolution. You put in the IP and it tells you the name (hostname) of the server behind it.
  • All sites on IP – looks up all websites hosted on that IP.
  • DNS Lookup – looks up all DNS records for a domain.
  • MX Lookup – looks up only the DNS records related to email for that domain, and shows them in greater detail.
  • Lookup IP WHOIS – you found the IP behind a domain name but now want to see who owns it. Commonly used for reaching out to buy their domain, DMCA complaint, or lawsuit. This tool only works if 1) the WHOIS doesn’t have privacy protection on it, and 2) if it’s not proxied behind another server (like Cloudflare).
  • Traceroute – shows all the computers hopped through during the name resolution process. Can also pinpoint the exact location of a DNS failure. Sometimes very rarely, the fault is of another server’s (and not yours) and this tool shows exactly which one.

3. How to fix DNS problems

The first step is to know whether you even have a DNS problem.

Detecting your DNS problem:

  • You type an address into your browser and your site doesn’t show up.
  • You see error messages about connection not possible, or possible bad DNS entry. Another possible scenario is you do see something, but maybe it’s not what you wanted (e.g. wrong website, or wrong redirect).

And this is all assuming that you know for sure the web-server is working. How do you know if it is? Errr….well, by pinging the IP or logging into SSH and checking service status, or logging into the control panel and see that things are working.

Realistically speaking, there are only 2 scenarios you can fix. Any other DNS problem would be related to some upstream provider and not accessible/fixable by you.

Common DNS problems and fixes:

  • Incorrect DNS records – all DNS records (for your domains/subdomains) are either an A record (pointing to an IP) or a CNAME record (pointing to a domain). Go make 1) they are pointing to the right IP’s or domains, and 2) you don’t have duplicate records. In case you don’t know where your DNS records are…they’re managed by either your webhosting account, DNS service (e.g. Cloudflare), or domain registrar.
  • Upstream DNS service failure – highly unlikely situation (since this outage affects thousands if not millions of angry clients) but can happen at times. This can be easily resolved by configuring your domain registrar, to point to the name servers of a different DNS service (like Cloudflare)…instead of using the existing name servers from your domain registrar or webhost.
  • Local DNS service failure – this is usually fixed by the webhost when you contact them for support. If you’re the one managing your own server, restarting the DNS service can fix it. Sometimes you need more work. Such as the DNS service won’t start because your server is out of space. Or your DNS zones need to be rebuilt on the server (follow server guides to accomplish this).

Can you theoretically “diagnose” these things in a more scientific way? Sure you can. But for me the diagnosis and fixes are so obvious since there are very few (common) points of failure. Visit a browser and if the site is down, you check the web server. If web server is running, then check the DNS service and its records. If all seems good, check from another computer in same household or mobile phone, or another computer in same city, then another computer in far away location.

It’s only when you have a more complicated in-house (local network) DNS issue, that the more complicated DNS diagnosis steps need to be done. For simple web-hosting stuff, DNS diagnosis is pretty easy.

Things that seem like DNS problems, but aren’t.

  • Web-server down – sometimes the DNS records are fine; it’s just the server that’s down.
  • Bad Redirect – sometimes you got a redirect somewhere in the server config (htaccess file), or DNS proxy level (e.g. Cloudflare page rule).
  • DNS issue from local ISP – more common than you’d expect. Website can’t be reached and you immediately blame your own server/hosting. Testing from another computer or friend (from your same ISP) or even mobile doesn’t work. But when you ask a far away relative or friend to test, it works. It probably means your local ISP has DNS issues (unable to reach the site) or might be blacklisting your webhost datacenter’s IP range or blocking your domain (for spamming?).
  • DNS issue from local network – uncommon but also happens. Maybe your local network (route) or the computer itself has a DNS issue. This is easily detected by testing with another computer on your same network. Maybe your router needs to be reset, or if you were screwing around trying to use another DNS service like Google (then you need to put it back or do it correctly). Or maybe your computer needs a DNS flush, restart, or more complicated DNS service repair steps.

Did I miss anything? You tell me! (in the comments below)

]]>
https://wpjohnny.com/dns-basic-info-and-troubleshooting/feed/ 1
Best WordPress Themes – UPDATED 2023 https://wpjohnny.com/best-wordpress-themes/ https://wpjohnny.com/best-wordpress-themes/#comments Tue, 08 Mar 2022 17:44:00 +0000 https://wpjohnny.com/?p=686 A list of my favorite WordPress themes and why! I also include my most hated themes(for better context). If you’re looking for pagebuilders, go here.

WordPress “themes” (as they are called) are individual extensions that give your site a different look. Some themes are simple and come with one standard look right out of the box. Other themes have a few basic settings allowing you to change the colors or fonts. And then other themes are labyrinth of options, allowing you to change almost every little detail (colors, fonts, animations, even switching up layouts to make it look like an entirely site altogether). Obviously: the more options, the more complicated.

WordPress (PREMIUM) Themes & Frameworks:

  • GeneratePress – great performance theme and well supported with many dev features. Cult favorite among coders and DIY’ers. I love their “elements” feature for replacing pagebuilders (but without the bloat of one).
  • Artisan Themes –  love the unique designs and ease-of-use of this little known company. Incredible “modules” feature without the bloat of pagebuilders.
  • ElmaStudio.de – from Germany. If you love that European minimalist Bauhaus design, Ellen and Manuel’s work are incredible.
  • ThemeBeans – beautifully coded, lean and sexy minimalist designs.
  • Marketer’s Delight – beautifully-coded theme for “internet marketers”. Highly recommended over the better-known Thrive. Is this generation’s Thesis.
  • Genesis Framework – my old “best” WordPress framework (used by respected developers). Well-coded, fast and easy-to-use with many great themes. Great community of A-level devs.
  • Thesis Theme – clumsy UI, tricky to customize (for beginners AND developers). Popular theme back in the days and still many loyal users familiar with it.

My personal recommendation:

Premium themes cost money and while they aren’t always better than free themes, it’s usually the case. It’s no surprise that free themes tend to be simpler with fewer options while paid themes are fancier-looking with more customization options. The free themes don’t usually come with support and are made to help the theme developers market their paid themes. If anything, their feature sets tend to be castrated a bit to encourage you to upgrade.

Paid themes have not only more features but also more support. As the years go by, these themes are also more likely to be updated to keep them compatible with newer servers, WordPress updates, and other plugins. And while not ALL paid themes are quality, they are a much safer bet for future-proofing your site. Updating themes takes a lot of work, so how do theme developers make money with only one look? Trends come and go, with users chasing a new “cool look” elsewhere the moment a theme gets too popular and it used everywhere.

The worst theme developers, IMO, are the ones that stop supporting their old themes when creating new themes. The best theme developers use what is called “frameworks”. Instead of building a completely new theme and rewriting the code from scratch each time. They use the same base code and then change only the design. This was formerly known as “parent theme” (the main theme) and “child themes” (the customizations). But now the term has been changed to “framework” and “child themes”. If you’re going with a premium theme, try getting a framework or at least a paid theme that has many users and lots of ongoing development & support.

WordPress (FREE / FREEMIUM) Themes:

  • GeneratePress – my current favorite framework at the moment. Has a beautiful free version as well, and the premium version is only $59! Incredible support and thriving community of newbs and pros. Highly recommend this one!
  • KadenceThemes – nice UI and awesome template library. They also have a KadenceBlocks plugin. I like their clean design vibe that doesn’t have that generic stock look.
  • Blocksy – awesome theme. Great coding, super fancy starter designs, awesome header/footer builder. Officially now a top player with big user base.
  • Neve – nice designs and UI, all trendy features, nice cloud library, amazing customer support. Big company with resources to really support newbies.
  • Astra – very customizable free theme, lightweight and runs fast, good for those using pagebuilders. The most popular free theme at the moment. Only problem is many bugs, slow support, autoloads in their other plugins!
  • OceanWP – free starter theme, beautiful and comes with a pagebuilder. I like their area where you can granularly disable all scripts/styles (but I wish it had more explanation). Requires paid plugins to get full functionality. I personally dislike their aggressive pricing for every little add-on and it’s no surprise Astra is more popular. :/
  • WordPress default themes – yes, they look like every other theme out there but they aren’t bad. Nicely-coded, just personalize the look a bit and you’re all set!
  • JohnnyTheme – just kidding, hehehe 😉

My personal recommendation:

Free themes are almost never a good option for serious websites. You’ll always get to a place where you want a design-change or feature that isn’t provided in the free theme. And now you’re stuck at the crossroads deciding whether to install bloated plugins, custom-code this extra feature or migrate to a premium theme that does everything you want and more. At the very least…if you’re going with a free theme, pick one that has a “premium” version you can upgrade to.

Be careful with overly minimal themes. Minimal may be fast, but that’s sometimes because it’s “unfinished”. There’s no point in choosing an unfinished theme that requires a dozen more plugins to really do the job, essentially nullifying all your speed savings.

BAD (or mediocre) WordPress themes:

  • AVADA – bloated, slow, poorly-coded, many issues. The designs can appear incredible to beginner website owners but actually very gimmicky and generic-looking to professional designers.
  • Electro – crazy bloated! Don’t use it. Requires a lot of processing and many queries (1000+ compared to under 100 for other) even without anything on the page.
  • Envato theme market – lots of junk themes with a few goodies in between.
  • Flatsome – it’s not bad looking, just still too bloated. Sorry!
  • Jupiter X Theme – slow and bloated!
  • MyThemeShop – lots of generic mass-produced themes. Some are obvious ripoffs. Their latest “Schema” looks like the GeneratePress default child theme (which I think Astra ripped off as well). Even some of the showcase sites in their testimonials look very amateurish
  • ThemeForest – The7, BeTheme, Enfold, X. These are all the same junk as AVADA. While truly professional sites are working hard to cut down on non-essentials and cleaning up their sites more and more, these junk themes are piling on more and more features to be everything to everyone. They will always be a poor fit for your site for that reason. But yes, you can buy it for the sexy generic out-of-the-shelf look!
  • Qode – bloated!
  • Redux framework – anything with Redux framework.
  • Thrivethemes – I’m especially turned off by their gimmicky marketing that does so well with “internet marketers”. They’re not bad, but simply not how I would recommend serious internet marketers to build their sites. (FYI: just about everyone on the internet is an “internet marketer”.)
  • ZigZagPress – nice look, but not so nice coding. Or at least that’s what many programmers say.

My personal recommendation:

I think these themes are great if you’re just wanting to learn WordPress and play around with options. But realistically speaking, they are an absolute waste of time and money, orrrrr…there’s way better options out there. If you planning for a serious website and want to have thousands of users, you’ll soon throw these themes away and pick another. Why? They are slow, cumbersome, and have many compatibility issues with other plugins that you’ll need in the future as website owner.

Oh, and I’m not done yet. They are awfully difficult for professional developers to work with. I hang out with developers on a regular basis and everyday, they’re mentioning about yet another “client that had an AVADA/X/DIVI theme”. And they all laugh because they know what the inside joke is. The funny thing is clients soon find out as well. The reason why they chose the theme in the first place was because it “looked cool”. But you soon realize the “cool look” isn’t cool at all, and in fact is extremely generic, because you now look like the million other amateur sites with the same look. That theme was marketed to the masses for a reason.

Still not done. The themes are also not that easy to use. They CLAIM to give you this amazing look out of the box but guess what, try to change anything or shift things around and you’ll see how hard it can get. Simple changes are ok but doing anything more than a minor change will require either a programmer or help from the developers or community. The developers will be slow to answer because guess what, they’re buried under thousands of other beginner requests and the community won’t be much help either because very few professional developers will be using these themes. So while they might be popular and have many users, they have many BEGINNERS users that won’t be much help to you.

BUT WHAT ABOUT THEIR LOOK?! “But these themes look so cool!” you say? You can copy any look you want with any other framework, almost even without coding.

What WordPress theme should you choose?

TRUTH #1 – you need to go with a popular theme.

Why? The true support for a theme comes from the community, not the official theme developers. The more popular it is, the more support you can find for it (written guides, video tutorials, etc). It’s easier to get free tips from people who’ve used it before and also easier to find professional developers who know how to work with it efficiently. There’s also more 3rd-party extensions. And also continuing development for the theme to keep it alive, updated with trends, and compatible with future plugins. The theme keeps getting better and better with time when the community for it grows (and developers are rewarded for ongoing development).

Going with some obscure theme from some unknown company will always cause you problems (no matter how much “support” the official theme company claims to offer). Nobody will know how to fix problems or make customizations. Developers will be unfamiliar with it and take twice as much time to make simple changes. Does this mean you should NEVER try a new theme or theme company? If you’re on an important production site, I wouldn’t take that chance.

TRUTH #2 – you need to go with a framework.

Frameworks allow theme developers to re-use functional code while staying flexible with design code. Aside from aesthetics, themes needs to be coded for compatibility with plugins (shopping, multi-lingual), Google search engines, social media sharing, accessibility, WP customizer integration, DNS prefetch, and many other areas beyond my awareness. To re-code this for every new theme would be time-consuming and probably overlooked!

But if you’re going with a company that uses a framework, you can bet their themes will always be coded well and supported since they all share the same base code. You could be using one of their older themes but still have the updated base code and maximum compatibility/security. Not only that but if you build your theme design off a framework, you’re free to update the framework as often as needed without worry that your design may break or lose compatibility one day. It’s an incredible idea!

I never liked theme developers that keep jumping from one theme to another, cashing out each one for a short period before abandoning it to chase their next cash cow. This contributes to a wasteland of abandoned code…leaving a trail of vulnerable sites full of issues that other developers have to clean-up. It’s unethical wasteful coding and cheating customers out of a more futureproof solution.

TRUTH #3 – when in doubt, pick something more neutral.

This is the hardest part. Many beginners see a billion different themes, each one super cool-looking in its own way and they know longer know what they or what their brand should be. When in doubt, remember that it’s about the content and not the theme. What text do you have, what images do you have? Where will your stuff go?

Don’t waste your time trying to pick the coolest design and then later trying to stuff your content or even worsecreating content to fit your design. There’s an even worse possibility than that, that the design is distract users from appreciating your content. That bold red theme looks great on the previews but throw in your content and now it feels like that red is all over the place, clashing with your images, and you get sick of it. The more exciting your content and logo, the more neutral your design can be (to let your content shine). And the more simple your content is, the more bold your design can be. 

Pick a theme that won’t bore you out so quickly. Strong colors get annoying after awhile and become a branding dilemma later when you want to switch to another color. Unique layouts can also get boring when you want your site to just function like a normal site. Side-scrolling might be fun for artsy portfolio sites but not for daily blogs, shopping, business when readers just want to get to your content!

Why are some themes so slow?!

Haven’t you noticed many themes on Envato, ThemeForest, or Code Canyon are slow as hell?

Why do you think that is?

It’s because they’re coded for newbies/non-coders. They load every CSS/JS library ever invented, so that people don’t have to learn how to code.

Think about it like this:

  • DEVELOPERS prefer to work on blank sheet of paper…drawing up only what they need.
  • NEWBIES are different, they buy the whole store…buying every song on every CD even when they only like a few. And then they spend the rest of their lives trying to unload/prevent unwanted items from loading.

It also helps A LOT to not have a pagebuilder. If all you need a pagebuilder for is just the homepage, you can custom-code it for like $300-1000. So worth the money. Design it in Elementor first if you want, then show a programmer and say “I want you to hardcode this”.

We build so many custom themes/plugins in house because of this. We want it to load ONLY what we need and nothing more. That’s why our sites break speed records. We have fancy WooCommerce sites loading in 200ms.

Now maybe for smaller clients, they only have a few thousand dollars…not a big budget. That’s fine, pick a clean theme, and custom code the home page. and you should be able to get under 1 sec pretty easily with only a few thousand spent.

]]>
https://wpjohnny.com/best-wordpress-themes/feed/ 72
Akamai’s Linode acquisition – initial thoughts https://wpjohnny.com/akamai-linode-acquisition-initial-thoughts/ https://wpjohnny.com/akamai-linode-acquisition-initial-thoughts/#comments Sun, 20 Feb 2022 10:34:48 +0000 https://wpjohnny.com/?p=11941 Thoughts right off the top of my head surrounding this surprise news.

In hindsight, I could have totally seen this coming. All the right pieces were in play. Every hint and cue was there but I didn’t suspect it because of my blind faith in Linode. But push that personal bias aside and what do you see?

  • A company going stagnant compared to its competition.
  • A company promising to expand service coverage but moving slowly (or not really moving at all).
  • A company hinting at new products and services (for years) but never delivering.
  • A company that feels same-oh same-oh despite a new website design.

And it’s easy to be content when you see a beloved company not changing much. The real lesson here is to have not detected something serious in play behind the scenes.

But what does this mean for Linode/Akamai, and its position in the cloud industry for coming years?

Why did Linode sell out?

No more growth left.

Linode has an amazing brand and quality service with a diehard fanbase. You’d think these principles alone could float any company for decades. But Linode is different.

It’s too big and too successful. It has too much market share and stands out too much. And when you’re that big in such a rapidly-changing industry…you have no choice but to keep evolving with the times.

I’d guess Linode, a [relatively] “small” privately owned company, did not have the funds, experience, or culture to evolve their old school datacenter-hosting operation into the massive cloud service shops that we see today in Amazon AWS, Google GCP, or Microsoft Azure.

Sure they tried keeping up with the times…adding dedicated CPU/GPU/MEM instances, block storage and load-balancers. But by the time they added containers, it felt like when your local liquor store finally accepted Apple Pay (wayyyyyy too late).

With the way cloud-computing was going, we were soon entering the edge-computing era…and Linode’s software setup was in no way flexible enough to handle that.

Ok so fine…their software and services weren’t going to take us into the future. But they still had their core hosting services, right? Well…that was kinda stagnant too. They never did get that coveted datacenter in South America (Brazil) like the market giants AWS/GCP did. They also never got around to offering bare metal like they teased (or did they?)

Don’t get me wrong, Linode was and still is massively successful. Just not enough to get themselves to the next level.

Cue in Akamai…

What will Akamai [probably] do with Linode?

DISCLAIMER here (although I should have mentioned it earlier)…I’m speaking purely out of my ass and have zero knowledge whatsoever about what’s actually mentioned in the boardroom.

I don’t know anymore than you do. It’s just a guess. But one that I’m willing to bet my money on based on conversations I’ve had with Linode team members, and outsiders who are dedicated or highly knowledgeable about Linode.

UPDATE: some key people way high up in the industry privately congratulated me on having very accurate guesses. 😀

Synergy and scaling in the edge-computing era

Akamai’s a massive CDN giant who 10 years ago, you would have looked at as being equal to Linode (a hosting infrastructure company). Neither being better or more essential/useful than the other. If anything…you’d argue Linode was easily more essential since its services could be used by all businesses down to the smallest ones whereas Akamai was only serviceable to large enterprises.

Well times have changed, haven’t they?!

Hosting nowadays isn’t just large companies putting simple static assets at the edge. It seems the future of webhosting is everyone (including small companies) shoving EVERYTHING to the edge. Or another way to put it…to automatically mirror or cloud-cluster every server process.

Why? I’m guessing it’s partly because edge-computing is trendy and seems sites are getting more global than ever serving clients from farther away than ever. Even a tiny site wants fast performance at the edge. So now everything is gonna get CDN’ed with more and more traditionally dynamic-processes being pushed to the edge.

But my other guess is that it might be technically easier now to build cloud infrastructure with edge-capability already built in. Especially with the almost-mainstream adoption of containerization. Simply put, ya just make a giant server cloud of nodes all over the world. All services put on it. And booom…instant edge-capability for all your services. (Instead of wasting time granularly deciding what does and-doesn’t get pushed to the edge.)

Long story short:

  • Akamai (a traditional CDN company) will now have many more datacenters from which to operate their CDN mirrors.
  • Akamai will also have more servers (and software) to do more than just CDN.
  • Akamai will be able to offer more services from hosting to CDN, and everything in between.
  • Akamai will (probably) aim to be a more simplified but easily as potent full-featured cloud service provider to AWS/GCP.
  • Akamai also picks-up Linode’s existing client base and easily transitions them into edge-hosting. A built-in business with lots of upsell opportunities.

How does Johnny feel about this acquisition?

And will Johnny still trust Akamai/Linode moving forward?

Ahhh yes, the questions everyone asks. On one hand, the feeling is bittersweet. To have watched one of my most beloved companies (of my entire web development existence) being swallowed up by another company.

But on the other hand, I think it’s exciting news. Linode was in an evolve-or-die situation that we all knew it wasn’t able to do. This acquisition was the only way to keep it alive in the coming age of edge-computing. And if you’ve known Akamai, then you’ve also known Akamai to be an oldschool no-BS awesome company. They elicit many of the same virtues and values that I saw in Linode. It’s not like Linode got bought by a greedy giant in Amazon or some gimmicky new-kid on the block (I won’t name any names here).

It’s honestly the best situation for Linode right now. And I’ll happily stand by it. But if it ever goes to shit, you can bet your ass I’ll be the first to cry and complain and also first to start waving my UpCloud flag just sitting in my drawer.

What do you think? Place your guesses (bets) in the comments and let’s see if we’re right in 1, 2, and 5 years from now.

]]>
https://wpjohnny.com/akamai-linode-acquisition-initial-thoughts/feed/ 8
Hosting Services Breakdown – domain registrar, web hosting, email hosting, DNS https://wpjohnny.com/hosting-services-breakdown/ https://wpjohnny.com/hosting-services-breakdown/#respond Thu, 13 Jan 2022 10:51:59 +0000 https://wpjohnny.com/?p=11909 A beginner description of the different components in webhosting.

Another noob guide for noob readers. If you’re new to webhosting basics and don’t understand what [things] you have to sign up for..and why, this is for you!

What it takes to run a (simple) webhosting service…

Running a webhosting service requires many things.

While you may pay just one price, say GoDaddy at $15/month, for a webhosting service. It’s not like you’re paying $15/month for one magical box that does everything. You’re paying for a hundred micro-services all conveniently bundled and configured working together into one “simple” panel interface from one login. This convenience is why many first-time website owners buy all their hosting from one place.

Webhosting requires many servers, each offering many [different] services.

  • Domain registration – simply holds a record of who owns the domain name
  • DNS service – servers that point visitors (typing in your URL) to your web server (IP).
  • WEB server – servers that hold your website files and database, then process incoming website requests and returns the desired webpage and information to visitors.
  • EMAIL server – servers that send, receive, and store emails.

So again…for this reason, many first time users prefer to go the convenient route and just pay for a service that offers everything in one place. It’s easier, simpler, and you don’t have to have so many logins…and more importantly, don’t have to learn so many technical things. You can get straight to the fun part…which is building your website.

So why do intermediate users sign-up for (separated) hosting services?

Because it’s better to purchase different hosting services from specialized providers!

And why?!

Do you think a master chef buys all his ingredients from one supermarket?

  • Of course not!
  • Maybe he/she buys the meat from a local ranch/butcher. Then the cheese from a French cheese store. Pasta from an Italian pasta store. Herbs/seasoning from a neighbor’s garden. Fruits and vegetables from his/her own backyard.

Do you think a car enthusiast buys all his car parts from the local Autozone or department store?

  • Of course not!
  • He’ll get the body kit from one place, brakes from another, engine stuff from another, tinted windows from a tint shop, tires from a tire shop, wheels/rims from somewhere else. Etc and etc.

So experienced website owners will also split their webhosting needs across different providers:

  • Domain registration – from a specialized domain registrar that offers many domain TLD options (com, net, org, etc), low pricing, and good privacy (so you don’t get spammed or stalked).
  • DNS service – to easily manage their own DNS from one place, configuring multiple service providers into each domain. Essential for working with modern webhosts that don’t provide their own DNS service. Also specialized DNS services have faster routing, along with performance and security features.
  • Website hosting – from a specialized webhost that offers better performance, better support, more resources, or configuration freedom.
  • Email hosting – from a specialized email host that offers more features or resources, higher deliverability rates (to reach customer inboxes instead of spamboxes), better spam protection.

Most people don’t get any more separated than this. But in reality…you really go to the next level…like what the “experts” do.

How do the “pros” separate their hosting needs?

Pros practically build their own hosting infrastructure from scratch.

They do this for various reasons:

  1. Save money – only noticeable when you’re doing it at scale. Otherwise, the complexity (obviously) wouldn’t be worth the effort.
  2. Features – they want their own configurations and features. And/or need something better or different from what exists in the market.
  3. Sell their own service – doing their own thing to resell it to clients.

This can be as simple as combining different 3rd-party services, or as complex as configuring their own clusters for each service.

Examples of server cluster configurations:

  • Domain registration – ok, almost nobody builds their own registrar. They will use an existing one. I like Whois.com or Cloudflare (which is a DNS service provider but now also does domain registrations).
  • DNS service – if building your own…you’ll need at least two DNS servers in case one goes down, so there’s always a name server available to resolve visitor requests to your url to your web server. And then maybe even some POP servers if you want to build your own CDN service.
  • Web hosting cluster – at the very least, you’ll need one dedicated box for this. 20 years ago, some people had the NGINX-Apache hybrid approach where NGINX was the (cache) reverse proxy sitting in front of the Apache (backend PHP) web server. But nowadays you can get real crazy complex-clustering…splitting PHP service, file storage and database storage…all onto separate servers. Then you might even have backup servers. Some are actually live copies of the others, whereas some are just backup storage servers. Probably also a load balancer (server that sits in front of all the rest) to redistribute traffic to your less-busy servers.
  • Email hosting cluster – bare minimum, you’ll probably want inbound email server, outgoing email server, and email storage server.

Jesus…is this literally what the pros do?

Yes and no…

In the old days, yes. It was cheaper to configure all this in-house. Build a server-rack in your company’s back office, and spend a whole weekend setting up everything.

But today’s world is so much better and cheaper. You can pay for these services all granularly from various cloud service providers (like Digital Ocean for dedicated servers, Cloudflare for DNS, MXroute for email, etc). Or you go to the giant cloud service providers (like Amazon AWS, stands for “Amazon Web Services”) where you can rent separate servers/services for virtually every component of your entire webhosting infrastructure cluster.

For example:

  • To handle your own DNS – you get Amazon’s Route53 DNS service. Or you can purchase raw dedicated servers from Digital Ocean, install Linux and configure your own DNS service. Or you can literally buy physical servers, set them in your home or office, and then install Linux and configure your own DNS service.
  • Then for webhosting – you purchase dedicated servers from Amazon’s EC2, or from Digital Ocean. Or again…put physical servers in your home or office.
  • Then for email – you can just purchase a solid email service, like MXroute or G-Suite. Or setup your own email hosting on a dedicated server, then split up your outbound emails to use your email hosting for regular emails…but then route through Amazon’s SES or SendGrid/MailGun for transactional emails, and then MailChimp or MailerLite for marketing emails.

Anyway…my point is…shit can get pretty granular and broken down to the most smallest of components if you know what you’re doing (and if it matters to your business).

I hope you learned something. I hope you’ve some clarity or at least a less-blurry vision of what your company’s future cloud technology needs may be. If this all seems too technical for you…please don’t worry, as your business grows…you’ll naturally take notice of services that align with your needs. I learned all this shit from necessity over the years…not from a blog. (And you can, too!)

]]>
https://wpjohnny.com/hosting-services-breakdown/feed/ 0
Guide to Security Headers https://wpjohnny.com/guide-to-security-headers/ https://wpjohnny.com/guide-to-security-headers/#respond Thu, 23 Dec 2021 15:11:00 +0000 https://wpjohnny.com/?p=11600 What are security headers and how do they protect your site?

  • Literally…WTF is a security header?
  • What do they really protect anyway? (servers? sites? users?)
  • What do they do?
  • How do you use them?
  • Which ones should you actually worry about?

I’ll explain in technical as well as non-technical terms.

1. Why this guide exists

This guide exists for naive clients arguing with their devs over silly pages scores and “security tests”.

If your dev sent you this…it’s because you don’t know any better and you need to stop being that clown arguing with their doctor based off shit they read online.

Many “security headers” recommendations out there are not important and/or not recommended for your site. They can break functions if you’re not careful. Not only that but your site not fulfilling every check mark doesn’t mean it’s insecure. Security tests nowadays are very much like those page score test scores (Core Web Vitals, GTmetrix, etc.) And similarly…just because those sites give you a less-than-perfect score or one failing metric doesn’t necessarily mean your site is slow or poorly-built.

And last but not least, if you’re gonna argue with your dev (who knows more than you), then you better school yourself and know what you’re talking about.

“But isn’t security important?”

Of course, it is. But real server security is based proper server hardening, security protocols, network and WAF firewalls. Website security is based on good coding, and general security precautions.

And where does security headers fit in the grand scheme of overall website and web-server security?

…most of them are not really that important. They’re simple checklist type tasks that make very little impact on your site security.

2. How do Security Headers work?

Before we even talk about security headers, you must understand that they’re simply HTTP headers and to know what HTTP headers do. (Yes, do read that fucken guide or you’ll be completely lost for this guide.)

Also note that security headers are to provide security to your website visitors, NOT your web-server or your website. To secure your web-server or website, you’d be doing other things (like server firewalls or WordPress application security).

“Security headers” are basically HTTP response headers that are sent out with the webpage and tell browsers how to display (or engage with) the content.

The “security” that they provide (to visitors) is by telling the browser to limit how the webpage is displayed or engage with.

Examples of things a security header can restrict:

  • Don’t show content (or display a warning) if the request is sent via http:// instead of https://.
  • Don’t show content or load a request if it’s sent from an external url (different from the original url). Such as your user is loading https://yoursite.com/yourpage but your page has external asset requests like https://othersite.com/sneakyscript.js. In this case, the browser won’t load that external request because your HTTP response header told it not to.
  • Don’t allow the browser to use the computer’s microphone or camera.

So again…in the event that your website is ever hacked, security headers basically protect your users (and their browsers) from inadvertently compromising themselves or executing malicious scripts/commands. Security headers do NOT protect your website or web-server from being hacked.

How security headers are applied (or configured) to your website:

  • Security headers are applied differently depending on your web-server (Apache/LiteSpeed vs NGINX).
  • Basically…Apache/LiteSpeed allows global server-wide configuration as well individual overrides for each site (via .htaccess). Whereas NGINX only has the main global Nginx configuration file. Global config files are only accessible to the server-admin or if you have full server access.
  • Nowadays security headers are automated by your webhost. But you may (or may not) have the ability to customize them further.

3. Real-world examples of security headers (and my opinions)

Here’s more or less how I feel about each one of them (and WHY). Of course…you’re welcome to do whatever you want, and go against my recommendations. I’m not here to argue. But please, don’t be a PITA client to your dev.

NOTE: all my examples below are for Apache/LiteSpeed servers (with .htaccess). If you’re on NGINX server, you’ll have to look up its equivalent…but thing is NGINX doesn’t allow configuration on the site level, it only has the main server configuration and most users won’t have access to the NGINX configuration file anyway.

Default Content Security Policy (CSP)

Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; connect-src 'self'; img-src 'self'; style-src 'self' 'unsafe-inline'; font-src 'self' data:;" always;
  • Above was just an example snippet (don’t not blindly use for your site).
  • The CSP header tells browsers which resources, and from which domains they are allowed to load.
  • For example, your CSP header might specify all requests must be loading from your domain. Or that CSS and JS requests can only be loaded from your domain but not others.
  • This header must be custom-configured to your site needs or else it almost always breaks WordPress site functionality, even brand new installs! For example if you have special request types, or need to allow other domains (like for CDN or 3rd-party services)…then you must specify that in your CSP header. Otherwise, certain elements of your site may not load properly.
  • Recommended reading for more info on CSP.

HTTP Strict Transport Security (HSTS)

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
  • The HSTS header tells browsers to always connect to your site using HTTPS. This prevents MITM attacks or attacks targeting insecure HTTP connections.
  • Possible drawbacks? – if for any reason there is ever a lapse in your SSL certificate renewal or messy migration, your site will be completely blocked from access. (There is no browser “Advanced – proceed anyway” link.) For this reason, I personally hate HSTS security and feel it’s potentially a lot of problems.

Default Referrer Policy

Referrer-Policy no-referrer, strict-origin-when-cross-origin;
  • Sets your site domain as the “referrer” in the request header when clicking outbound links from your site. This is less about security and more about following GDPR regulations.
  • Read more about Referrer Policy security header.

X-Frame Options: SAMEORIGIN or DENY

X-Frame-Options "SAMEORIGIN";
  • Putting SAMEORIGIN prevents your site from loading frames or content from other domains. So hackers cannot load junk (from another site) into your site.
  • Putting DENY (instead of “SAMEORIGIN”) blocks your website from being embedded elsewhere. So others can’t fake your content and steal your clicks (“clickjacking”).
  • You can lose functionality with these headers, or certain pages may not work. Test it!
  • You cannot (should not) use both SAMEORIGIN & DENY. Pick just one.

Cross-Site-Scripting (XSS)

X-XSS-Protection "1; mode=block" always;
  • XSS (or X-XSS) security header tells your the browser to block any requests containing malicious scripts.
  • Any lost functionality? This one is pretty safe to use and doesn’t (shouldn’t) break any functionality.

Default Permissions Policy

Permissions-Policy "accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()";
  • Above snippet is only an example!
  • The Permissions Policy header decides what browser features the website can use on its own page or in embedded content. Example of browser features are: geolocation, video-autoplay, encrypted-media decoding, user’s camera/microphone, fullscreen, etc.
  • Any drawbacks? Kind of a pain to granularly block every nuanced setting. I’d say you can safely ignore this.
  • To enable Permissions Policy header – enable in your .htaccess or NGINX config and customize it for your needs. An easier (less technical) method is using Really Simple SSL plugin (PAID version) but I really hate slowing down your site with more plugins for these tiny things.
  • Customize your permissions policy with this Permissions Policy generator.

X-Content-Type-Options

X-Content-Type-Options: nosniff
  • The X-Content-Type-Options header stops the browser from trying to MIME-sniff the content type and forces it to stick with the declared content-type. MIME-sniffing is used by hackers who disguise backdoor files under another content-type/extension and then try to request/run it from the browser.
  • Safe to use and doesn’t do too much.

Other server configs for security (but are not actually HTTP headers)

For many people, “security headers” are just bits of code you stick into the htaccess file. And I totally get why it seems that way. In reality, they are configuration info that your web-server processes and then alters the server response before replying to browser requests.

However, because since you’re already in htaccess…many security guides will suggest you to do other things as well (that are technically not HTML headers) but still help with security:

  • Blocking XML-RPC protocol – this is security for your web server (not your users). Prevents DDOS attacks on your WordPress XML-RPC protocol…by restricting access to it. Of course, you don’t block it if your site uses XML-RPC.
  • WAF firewall (like the 7G WAF) – a list of rules that protects your server from many DDOS attacks on network layer 7 against this site.

4. Where to see your website HTTP response headers

Example of security headers enabled.

To see your security headers in browser developer tools:

  • Right-click anywhere on your page and click Inspect, reload page and then go to Network tab then Headers tab, and scroll down.
  • In the image above, you can see all the security headers I enabled in the Response Headers section.
  • Your site headers may appear different.

You can also see notices about your security header in (free) online security tests:

5. What’s the grand takeaway regarding security headers?

  1. Don’t be an annoying punkass client arguing with your dev about silly security headers (that don’t apply to you).
  2. Don’t blindly enable security headers without knowing how they affect your site. (YOU WILL BREAK SHIT IF YOU DO.)
  3. Don’t assume your site needs every XYZ security header because some fancy-looking online security test said so.
  4. FOR DEVS – Don’t argue with clients either. School them or fire them (or both). Today, they challenge you on security headers…tomorrow, it’ll be on speed recommendations…next week, something else. Don’t even waste your time.
]]>
https://wpjohnny.com/guide-to-security-headers/feed/ 0
What are HTTP headers? (and why they’re useful) https://wpjohnny.com/what-are-http-headers/ https://wpjohnny.com/what-are-http-headers/#comments Wed, 22 Dec 2021 13:32:06 +0000 https://wpjohnny.com/?p=11843 What are HTTP headers, how do they work, and how are they useful to you?

A technical guide for developers, DIY-er’s trying to understand servers on a more detailed level, naive clients arguing with their devs, or randomly bored people with nothing else to do in their life.

What (the hell) is an HTTP header?

HTTP headers are bits of information that is passed along within every communication between (web) servers and (browser) clients.

When your browser visits a website…it sends an HTTP request to the (web) server. Which includes HTTP request headers with info like:

  • What URL you’re requesting (duh!) – https://somesite.com/somepage
  • If your visit is referred from another page.
  • What browser you’re using – Chrome, Firefox, etc.
  • What language set in your browser – English, Spanish, etc.
  • What things your browser can cache – css, images, etc.
  • See full list of HTTP request fields.

In short, request headers give the server useful information about yourself (your computer, your browser, what info you want, and how you’re able to process it).

When your server returns the website…it sends an HTTP response to your web client (browser). Which includes HTTP response headers with info like:

  • Status of the URL – 200 (working), 301 (redirected), 404 (not found), 500 (server not working), etc. See all HTTP status codes.
  • What web server – Apache, NGINX, LiteSpeed.
  • Caching info – if the page is cached, if it’s using CDN, etc.
  • Content-encoding – GZIP, Brotli.
  • Content type – HTML, text, etc.
  • Age of the cached content – so your browser knows whether to download new info or not.
  • What type of content can be executed in the browser – videos, PDF, etc.
  • What browser features can be used – microphone, camera, etc.
  • See full list of HTTP response fields.

In short, response headers give the browser useful information about the website and specifies how your browser is allowed to use (or engage with) that website.

How can I see what HTTP headers are sent?

How to see what HTTP request headers are sent from your browser:

How to see what HTTP response headers are sent from the website:

  • Open up the Developer Tools in your browser. (Can do it by right-clicking anywhere on the page and click “Inspect”.)
  • Reload the page, and then click on “Network” tab and then “Headers” tab.
  • Then scroll through the headers and check out what useful info is shown.

What are HTTP headers used for?

HTTP headers are useful to share information between servers and clients.

The average web-user has no idea HTTP headers are sent in the background with every REQUEST and RESPONSE. Using the internet for them means “typing words into a box, and waiting for pictures to show on the screen”. They don’t know much more information is being passed around behind the scenes.

How are HTTP request headers useful?

The typical user doesn’t need to know what HTTP request headers are sent out from their browser. Maybe if you care about so much security/privacy, you might try and alter the headers sent out (by altering the settings in your browser). Or use a private browser.

But a website owner or developer on the other hand may have many uses for HTTP request headers:

  • Tracking purposes – they might want to know the demographics of their web visitors. So they’ll use something like Google Analytics which basically tracks and charts the info found in HTTP request headers.
  • UI/UX purposes – showing different content or page design depending on the detected browser information. For example, showing dark version of the site to users who prefer “dark mode”.
  • Multilingual purposes – to redirect users of certain languages to another URL. Or how about different content or prices depending on the user’s geographical location (like those sneaky travel sites).
  • Security (for the server) – to configure the server to block (or limit) certain types of users or user-agents. Web developers can use web application firewall (WAF) rules to block certain browsers from attacking the server.

How are HTTP response headers useful?

Again, not much here for typical users. But for a website owner, developer, or host can have many essential uses for HTTP response headers:

  • Diagnosis – to understand why a website doesn’t load, or why certain assets don’t load properly. Is it the server’s fault? Or DNS not routed properly? Or stuck in a redirect loop? Did the CDN go down? Is there some annoying security protocol blocking access?
  • Optimization – using the header info to improve how the site loads. Knowing which items could be cached longer or differently, what aspects of the webhosting is set up properly or not.
  • Security (for users) – to prevent certain types of (malicious) content from executing on the user’s browser. For example not allowing scripts or assets loaded from an external site; this is useful in case your site is ever compromised or hacked, the security headers set on the site won’t allow it to compromise your users (installing malware on their home computer, or displaying/redirecting to more bad content).

To change response headers…it would be done from altering your web-server (configuration) or website code, depending on the header!

Now you know what “headers” are!

Now you understand when website guides talk about “cache headers”, “security headers”, “response header” or “request header”…they’re all just referring to HTTP headers. (And obviously…not talking about “HTML headers” which is the top of your website page.)

Maybe you’ll also feel a little less stupid when talking to your developer, children, dog/cat, Uber driver. Hooray!

]]>
https://wpjohnny.com/what-are-http-headers/feed/ 1
WPCloudDeploy custom hacks and fixes https://wpjohnny.com/wpclouddeploy-custom-hacks-and-fixes/ https://wpjohnny.com/wpclouddeploy-custom-hacks-and-fixes/#respond Sat, 18 Dec 2021 00:43:00 +0000 https://wpjohnny.com/?p=11740 Helpful customizations and hacks when using WPCD to build your own cloud-hosting panel.

Our list of hacks in here are short for now but will grow over time as we share little things we did to build our own custom cloud-hosting solution. Obviously…we share the simple easy stuff for the community. Keeping our most special features/hacks to ourselves. 😉

1. Re-design admin areas

Probably the most overwhelming thing about WPCD is its massive set of features. It’s great for admins but will totally scare off non-techy end clients. So I definitely suggest simplifying admin areas.

Some helpful UI-customization ideas below:

  • Add Admin CSS plugin – allows you to customize CSS styling in WP admin area.
  • WPFrontendAdmin – beautiful plugin and will change your life! Probably useful for many other special projects as well. Instead of letting users into the backend…you expose only certain parts of the backend into their frontend account areas. This can be a much easier (non-techy) way to customize your user experience and also not let it feel so WordPress-ey.
  • UiPress – different way of customizing your admin layout. You’re letting users into the backend but completely changing how it looks.
  • Hardcode page templates and CPT’s – this is the top strength of WPCD, also best way to customize and fastest performance. But you already knew this!

2. Text string translations

There are tons of text all over the place that could be re-written better. I suggest using Poedit to rewrite them. But there are many other code ways you can go about it to get rid of unnecessary text blocks. Good luck.

3. Generate SSL’s for www-domains.

WPCD’s current way of enabling/generating SSL for “www” domains is really hacky and clumsy. So we hacked the WPCD core plugin code to generate SSL’s for both the non-www and with-www versions of the domain simultaneously. Which IMO should have been standard behavior.

Go to includes/core/apps/wordpress-app/scripts/v1/raw/04-manage_https.txt (line 168 of WPCD version 10.8) and…

REPLACE:

    if [ ${WWW} = 'TRUE' ]; then
        certbot certonly --non-interactive --agree-tos -m ${email} --webroot -w ${DOCHM} -d ${domain} -d ${MY_DOMAIN2}
    else
        certbot certonly --non-interactive --agree-tos -m ${email} --webroot -w ${DOCHM} -d ${domain}
    fi

WITH:

    # if [ ${WWW} = 'TRUE' ]; then
    #     certbot certonly --non-interactive --agree-tos -m ${email} --webroot -w ${DOCHM} -d ${domain} -d ${MY_DOMAIN2}
    # else
    certbot certonly --non-interactive --agree-tos -m ${email} --webroot -w ${DOCHM} -d ${domain} -d www.${domain}||certbot certonly --non-interactive --agree-tos -m ${email} --webroot -w ${DOCHM} -d ${domain} 
    # fi

4. New management features as plugins.

If you’re planning to add new server or site management features, I recommend building them in as add-on plugins. Rather than hacking the WPCD core (duh). Of course…we still had no choice but to hack the core for many things.

5. Customizing the servers & sites LIST pages.

  • Start with the built-in WPCD fields settings.
  • Then you’ll probably want customize your columns and detailed information in them. Use hooks!

6. WPCD crons not running

This causes issues with new site creations and other plugin triggers.

  • We fixed by deleting all expired transients.
  • Then deactivating and reactivating the WPCD core plugin.
]]>
https://wpjohnny.com/wpclouddeploy-custom-hacks-and-fixes/feed/ 0
phpMyAdmin stuck when dropping tables https://wpjohnny.com/phpmyadmin-stuck-when-dropping-tables/ https://wpjohnny.com/phpmyadmin-stuck-when-dropping-tables/#comments Thu, 16 Dec 2021 15:32:03 +0000 https://wpjohnny.com/?p=11735 Does your phpMyAdmin hang, freeze or load endlessly when dropping tables?

Here’s the quick fix:

  • Yes…you can drop database tables via SQL query or via command-line. But that’s too techy for many of my readers.
  • So do it the simpler way via phpMyAdmin like this…click “DROP” (located right-side of your tables), uncheck “Enable foreign key checks” and click [OK].
  • Or use wp-cli – navigate to the site’s root directory and use wp db reset.
  • Or maybe you have to clear browser cookies?

And that’s it!

(You only have to drop the heaviest tables, then can drop all the rest via “Select All” like you normally do.)

]]>
https://wpjohnny.com/phpmyadmin-stuck-when-dropping-tables/feed/ 1
WordPress MySQL database import errors (and fixes) https://wpjohnny.com/wordpress-database-import-errors-and-fixes/ https://wpjohnny.com/wordpress-database-import-errors-and-fixes/#comments Wed, 15 Dec 2021 15:16:30 +0000 https://wpjohnny.com/?p=11722 Writing this guide for the many DB import issues out there.

I recently had to sit through a brutal 70-site migration and ran into every DB import problem in the past week. Like all the most annoying ones, all coming together to make me wanna jump off a balcony.

Let’s cover them here in this guide so you don’t wanna kill yourself like I did.

Background

Trust me, I’ve been there before. You’re not a beginner. You do everything right. Heck, you’ve done this a thousand times. Export and re-import databases. It’s not new to you!

But every once in a while, you got a son-of-a-gun issue where shit won’t import properly. It’s always the gosh-darn import! And the guides out there don’t help much or are not totally accurate to your issue.

My tactics below might work for you.

  • Try one or another. Or a mix. And by some random chance, your import might work magically on the 14th try.
  • PLEASE MAKE BACKUPS OF YOUR DATABASE (before doing crazy stuff).

Good luck to all my fellow DB-importers out there!

1. Size & timeout issues

Most of you will get this problem at one point in your life or another. The database is so big (or server so slow or internet so slow) that the server times out during the import. Even though, phpMyAdmin might let you continue where you left off…it’s still better to have a clean import that doesn’t have any issues.

Ways to fix:

  • Go to PHP settings (in your server settings or php.ini) and increase max_upload_size, max_execution_time, max_input_time.
  • Another thing you can do is to export the database in compressed format. When exporting, choose “Custom” then scroll a little and pick “gzipped” in the compression dropdown. And when importing, you simply import that compressed GZIP archive.
  • If your database is soooo huge, then export only several tables at a time, or even individually. More often than not…it’s just one (or a few) giant table/s that’s holding up everything. Just select them off as needed.
  • You can also get around it by importing your database through SSH (using mysql shell or WP-CLI) but I’m guessing you’re not technically there if you’re reading my guide.
  • Sometimes the import didn’t go clean and you have to fix the issue of phpMyAdmin stuck when dropping tables.

2. Auto-increment, primary key, duplicate table, etc

These could all fall under “corrupted database table” issues. For whatever reason, you’re presented with a scary red box and some random message like 1062 - Duplicate entry '0' for key 'PRIMARY' import as separate tables. Then you read online and find a billion guides that say different things and they all don’t help.

Try my simpler fixes first:

  • Export in GZIP compressed.
  • Select all tables and run “repair” before exporting. (Only works for MyISAM tables.)
  • Select all tables and run “optimize” before exporting.
  • Select all tables and run “analyze”, or “optimize” and then “analyze” before exporting.
  • If the error says something about “Duplicate entry” for any number other than “0”, you could try going directly to that entry in the table and change that number to something else (that’s not being used). And if it’s a transient, you’re probably fine to just delete it.
  • Ok sure…if you’re getting the PRIMARY KEY issue on your options table, you can visit it and then click “Structure” tab and click “Change” on the primary key row and then check the tiny “A.I.” box and save. But that has never resolved my issue. If you got serious table corruption, you’ll need to run some manual SQL commands. Many have written scripts out there but I suggest you hire a dev to fix for you. As every issue is slightly different in what you need to do.
  • Another tactic that works is to pick “Custom” and deselect any tables that had issues during export. Then export those troublesome tables individually (by themselves). Separating the tables also helped magically many times.

3. WordPress shows new installation screen

So you’ve imported just fine but now WordPress acts like a blank install (when you visit the site) even though you can see the database in phpMyAdmin.

This is an easy fix. It’s like that you just need to edit the prefix in your wp-config.php file:

  • Check your prefix in phpMyAdmin. The default table prefix is wp_ which gives table names like wp_options, wp_posts, etc.
  • If your table prefix is something else (say ddb12_), then you need to go to your wp-config.php file and edit the line that says $table_prefix = 'wp_';.

Just doesn’t work

Sometimes, nothing works or shit is so corrupted that you’re all out of ideas.

In moments like this, I’ll try these random options:

  • All-in-One Migration – export and reimport.
  • WP Migrate DB – export and reimport. Or get the PRO version and push directly.
  • SSH – use the command line (and MySQL shell) to import. Navigate to the directory with the SQL file and use a command like mysqldump -u dbuser -p dbname > dbfile.sql
  • WP-CLI – use this to import your database.
  • Hire another dev to run manual SQL fixes for me. Cuz who got time for that?!!

Any other issues I missed? Leave it in the comments and I’ll add them to my list!

]]>
https://wpjohnny.com/wordpress-database-import-errors-and-fixes/feed/ 2
Custom LOG OUT link without WP-nonce confirmation https://wpjohnny.com/custom-log-out-link-without-confirmation/ https://wpjohnny.com/custom-log-out-link-without-confirmation/#comments Wed, 08 Dec 2021 16:37:53 +0000 https://wpjohnny.com/?p=11696 Quick guide for anyone trying to create their own custom log out links (from a menu or within their content).

So what’s the issue?

  • You create a logout link to https://domain.com/wp-login.php?action=logout
  • But when you visit it…it asks for a confirmation. Annoying, right?

So to get past that we add a little snippet to functions.php (in your child theme).

The fix

Paste this snippet into your functions.php but replace yourdomain.com. And now you can create your own users logout link anywhere you like!

add_action('check_admin_referer', 'logout_without_confirm', 10, 2);
function logout_without_confirm($action, $result)
{
    /**
     * Allow logout without confirmation
     */
    if ($action == "log-out" && !isset($_GET['_wpnonce'])) {
        $redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : 'https://yourdomain.com';
        $location = str_replace('&', '&', wp_logout_url($redirect_to));
        header("Location: $location");
        die;
    }
}

What about other fixes?

Long story short, I wrote this guide because the other fixes didn’t work. If you have other solutions to share, let me know in the comments.

]]>
https://wpjohnny.com/custom-log-out-link-without-confirmation/feed/ 9
Swift Performance WordPress Cache Plugin – UNOFFICIAL GUIDE https://wpjohnny.com/swift-performance-wordpress-cache-plugin-unofficial-guide/ https://wpjohnny.com/swift-performance-wordpress-cache-plugin-unofficial-guide/#comments Sat, 04 Dec 2021 16:50:00 +0000 https://wpjohnny.com/?p=1043

My unofficial guide to speeding up WordPress with SWIFT Performance cache plugin! (Updated Dec 4, 2021)

The SWIFT Performance cache plugin was something I was really excited about because it made such a difference on my sites. I was previously cycling between 3 or 4 different cache plugins throughout various sites but can now replace almost all of them with just this one (my other favorite being LiteSpeed Cache).

The only thing lacking was official documentation as many users still don’t understand what each option does or how to diagnose when problems arise. Since most of the official Swift team is busy developing their plugin, I decided to write my own community guide.

Read on for my best SWIFT Performance setup tips!

I am NOT an employee or official Swift developer in any way. I wrote this unofficial guide to help Swift users because I’m such a big fan of this incredible cache plugin.

I’ve done speed miracles with it on hundreds of client sites and realized the time I spent helping users could free up Swift developers to focus on implementing my fantasy features, instead of playing tech support.

In the spirit of self-empowerment and efficiency, please enjoy my guide below!

QUICK Setup Guide

Here’s the 5-minute setup version for busy people. It doesn’t take much to get fantastic results out of this amazing #1-ranked speed plugin. Just make sure you aren’t blindly enabling everything.

(NOTE: I like my configurations so much better than the official Swift auto-configurations. For full explanation of why I chose these settings, see my DETAILED setup guide.)

  1. Install SWIFT Performance Lite (free version), or SWIFT Performance (premium). Click MANUAL settings, then Advanced View (top-right button).
  2. General > General – enable “Use Compute API” if you have paid version.
  3. General > Tweaks – put 301 HTTPS redirects into “Custom Htaccess” area here.
  4. Media > Images – disable “Lazy Load Images”.
  5. Media > Embeds – enable “Youtube Smart Embed” and “Lazy Load Iframes” if you have Youtube embeds or GoogleMaps NOT at the top of the your page.
  6. Optimization > General – disable “Optimize Prebuild Only” and “Fix Invalid HTML”. Enable “Disable Emojis” if you don’t use them.
  7. Optimization > Scripts – disable “Merge Scripts”.
  8. Optimization > Styles – disable “Merge Styles”.
  9. Caching > General – pick “Disk Cache with Rewrites” for Caching Mode, and “Action based mode” for Cache Expiry Mode. I’d use “Time based mode” only if your site has non-content updates often (like new comments or changes in product status).
  10. Caching > Tweaks – disable “Avoid Mixed Content”.
  11. Caching > Exceptions – exclude all post types except posts/pages/products or any other post types that are actually browsed on frontend with their own URL slug. Exclude any pages with contact forms. If you have WooCommerce, exclude the Account/Cart/Checkout pages.
  12. Caching > Warmup – choose “Unlimited” for Prebuild Speed if you have that option and your site is 1000 pages or less.
  13. Plugins > WooCommerce – enable “Cache Empty Minicart” but “Don’t disable” for Disable Cart Fragments, and disable WooCommerce Session Cache (BETA).
  14. CDN – enter your info if you have CDN.
  15. Hit [SAVE CHANGES] then [CLEAR CACHE], and Swift is done setting up!
  16. Check the Warmup Table – make sure all important pages are listed and pre-cache successfully. Click “Start Prebuild Cache” or go to Caching > Warmup and “Enable Remote Prebuild Cache” if they don’t. (It’s ok if a few weird items show up or some items don’t cache.)
  17. Check if your site is caching – visit your site in Chrome incognito window without logging in. Right-click anywhere on the page, click “View page source” and scroll to the bottom. If you see “Cached with Swift Performance Lite”, it is working! (Try refreshing the page if you don’t.)
  18. Enjoy fast speeds! – or read on for more tips and troubleshooting steps.

If you have problems:

  • Swift should be super fast! – if you’re not getting instant page loads, go back and reconfigure things! (PS: it really helps to have good webhosting.)
  • Site design or function breaking somewhere? – disable Merge Scripts and Merge Styles. Or re-enable them individually to isolate problems. (Don’t forget to purge your CDN or Varnish after content/cache changes!)
  • Problem with https/SSL redirects? (or weird URLs showing on front-end) – put your 301 HTTPS redirects in “Tweaks > Custom Htaccess” instead of htaccess.
  • Contact forms not working? Exclude contact page from caching, or just switch to Caldera forms. I’ve had issues with Contact 7 (and hate that it loads on every page).
  • “Cached with Swift” not showing in page source? – maybe the page isn’t caching, but could also mean something is stripping out HTML comments. (Cloudflare does this sometimes.)
  • Still need help? – follow my detailed steps below. Free support available on Swift knowledgebaseWP repo, Facebook group, or ticket support (for premium users).
See my incredible speeds on fancy WooCommerce store! (using VPS without CDN)

DETAILED Setup Guide

STEP #1 – Install SWIFT Performance plugin

Install SWIFT Performance Lite (free version), or SWIFT Performance (premium).

Swift has few requirements but can work even if some of them aren’t available:

  • Apache modules – mod_deflate, mod_filter, mod_setenvif…all 3 usually available on most servers.
  • Loopback – this is when your server can visit itself. Sometimes not available if you block robots or indexing from crawling your site.

The modules aren’t required but help give the best performance. Most shared hosting accounts already have them; some VPS do not, ask your webhost/sys-admin to install. Most of you won’t have any plugin conflicts or rewrites issues, and if you do Swift tells you how to fix it. (NOTE: the script doesn’t detect LiteSpeed servers so the modules might be installed not detect, you are fine.) Even if you do see errors, continue anyway; Swift should still work.

STEP #2 – Go through Swift Performance Settings

Go to Swift settings and click [Advanced View] on top-right.

I’ve gone through all the settings and leave my detailed thoughts on them below. Anything I forget to mention means I left it at default settings.

General:

  • General > Hide Footprints – disabled, so I can see Swift comments in source code. (FYI: Cloudflare may remove HTML comments.)
  • General > Use Compute API (premium) – awesome feature, enable it! Speeds up cache pre-build and reduces CPU usage. Especially useful on big sites (over 400 pages) and/or slow server.
  • General > Clear Cache Role – default is fine, unless you want to allow editors or other users to clear cache after making site changes.
  • General > Disable Admin Notices – enabled. Remove ads asking you to buy paid version.
  • General > Disable Toolbar – enable if you don’t Swift options in the top toolbar.
  • General > Page Specific Rules – allows you to override global Swift settings on a per-page basis. Really cool feature, but only necessary for fine-tuning super bloated sites.
  • General > Beta Tester (premium) – allows you to try the latest features. I wouldn’t recommend for production sites. But can be fun for your own personal ones that you maintain on a daily basis.
  • General > Collect Anonymized Data – disabled for me.
  • General > Debug Log – enable only when diagnosing problems.
  • General > Disable Cookies – I don’t use it. It’s for GDPR purposes; if you’re using another mechanism/filter to load cookies only after GDPR is agreed to. Cookies are only used for appcache and identify user for GA Bypass, must be UNCHECKED if you use these features. Doesn’t impact speed either way.
  • General > Beta Tester – don’t enable for production sites. Enough said.
  • Tweaks > Custom Htaccess – put 301 HTTPS redirects here. (This is much preferred than using SSL plugin!)  If for whatever reason this messes up your site or creates ugly URL’s, try putting redirects directly in htaccess instead (I recommend anywhere ABOVE the Swift section).
  • Tweaks > Background Requests – haven’t used it but it’s awesome! Prevents unnecessary AJAX requests from slowing down your page-load. (For example, removing ajax requests that aren’t critical to users…post views, etc).
  • Heartbeat > Disable Heartbeat – ignore this unless your admin area is slow (caused by certain plugins and/or many logged-in users). WordPress Heartbeat API is a cool function that tracks user sessions in admin and auto-saves content when editing, but can be CPU-resource heavy on admin and frontend pages. You can disable all except Post/Pages. If certain admin/front-end plugins stop working, then leave it all on but increase the frequency. (You can use Heartbeat Control plugin instead for more granular options.)
  • Heartbeat > Heartbeat Frequency – fine, still wanna decrease heartbeat impact on your server but don’t wanna disable? Simply raise the frequency. I think 120 seconds is safe but honestly if you’re having heartbeat issues, you should just get better webhosting.
  • Cronjobs > Limit WP Cron – WordPress unnecessarily loads cron on all un-cached page loads. Lowering this is a great idea if you have high cron activity.
  • Cronjobs > Enable Remote Cron – usually disabled. Enable if your site relies on cron jobs that misfire because A) your host disabled WP Cron, B) all your pages are cached, or C) you almost never log into WP-admin.
  • Google Analytics > Bypass Google Analytics – awesome idea of locally-caching the Google Analytics JS script and merging it with site JS (theoretically removes one external call to google). In terms of speed, it didn’t help so much but does give you a higher page speed score (superficial benefit). Only problem is GA won’t work on uncached/excluded. To guarantee 100% GA function during cache prebuild and on uncached pages, I stuck with CAOS plugin or my theme to handle GA.
  • Whitelabel (premium) – useful for agency or webhost trying to hide their speed-up secrets. Lets you rename Swift plugin and description so clients can’t tell that you’re using Swift.

Media:

  • Images > Optimize Images on Upload (also enables next 4 settings) – I prefer ShortPixel for image compression, but Swift can save you lots of money and negate yet another plugin on your site.
  • Images > Image source – Media Library is the default option. But the wp-content directory is really nice for when you have other images in the wp-content directory and not attached to the default WP media library. Really cool option.
  • Images > Image Optimizer – experiment and figure out what works best for your site. Would be great if I had a comparison idea of what percentage quality equals ShortPixel’s LOSSY or GLOSSY compression…but I don’t. Test it yourself.
  • Images > Resize Large Images – useful for non-techies uploading oversized images straight off the camera. But otherwise, leave it off if you intentionally want large images for HiDPI (retina) screens.
  • Images > Keep Original Images – leave enabled in case you want to restore originals later and re-optimize with another plugin, or to generate different media sizes. Or at least keep them until you find the best compression settings.
  • Images > GenerateWebP – usually enabled. Generates WebP version of all images.
  • Images > Serve WebP – use “picture elements” is the preferred option; use rewrites option if you have styling issues. How rewrite option can also fail if using CDN or Cloudflare. Test carefully.
  • Images > Preload Image by URL – great to preload important images (like ones at top of page) to make them appear quickly.
  • Images > Preload Image by CSS classname – more efficient way of preloading important images, by identifying their CSS classes.
  • Images > Lazyload Images – disable! I hate lazyload. It’s a counter-intuitive tactic of speeding up page load by not loading everything. Guess what?…not loading everything initially means everything loads slower! Poor user experience and feels slower; annoying when scrolling quickly through busy sites or stores. But useless if you have only few images on most pages, and dreadful if you have images above the fold. Unnecessary if you’re on free CDN (Cloudflare), although can save you money if you’re on paid CDN. There are some rare use cases, like if you have really big images and/or many images AND your visitors don’t scroll quickly…but in 99% of cases, your site will appear to load faster without lazy load!
  • Images > Exclude Images URL – exclude images from lazyload based on url string.
  • Images > Exclude Images by CSS classname – more efficient way of excluding images from lazy load by using their CSS selectors.
  • Images > Respect Lazyload Standards – should definitely by ENABLED, unless you want to override those settings from elsewhere.
  • Images > Preload Sensitivity – specifies how soon lazy-loaded images should be loaded when user is scrolling to them. The 50-pixel default setting seems fine but you can always increase if users scroll fast (and you want the images to appear sooner).
  • Images > Load Images on User Interaction – great tactic to only load images if browser is interacted with. Good way to keep server loads down and probably also improves page scores. It probably won’t make much difference if you’re already lazy loading images.
  • Images > Inline Lazy Load Images – reduces HTTP requests by putting inline image request in base64 code. This should be left disabled IMO for modern browsers.
  • Images > Lazyload Placeholder – choose your style of placeholder image. Most sites user transparent. Medium.com website likes blurred. Others do low-quality image. It’s really by personal preference. Images that aren’t key to the content don’t really matter. But if they are, you’ll probably want at least transparent to low quality.
  • Images > Lazyload Background Images – hell no! Don’t enable this. You need those backgrounds (especially ones at the top) to come up immediately, or else your site appears slower!
  • Images > Fix Missing Dimensions – useful to prevent layout shifts due to slow image-loads. But I personally don’t need it.
  • Images > Force Responsive Images – most themes already have responsive images. Enable it if your theme/pagebuilder (I hate you, Thrive Architect) wastefully loads large images on mobile. If this feature fails to make your images responsive, leave it off.
  • Images > Gravatar Cache – usually disabled. Only useful if you consistently have many comments. On my popular posts (500+ comments), uncached comment avatars alone make up 60% of the load time. But then again, why bother caching something that loads at the end of your posts anyway?
  • Images > Gravatar Cache Expiry – I would use a long time like 1 month since most people never update their Gravatar images. And even if they did, who cares…it would matter if the cache doesn’t update immediately.
  • Images > Inline Small Images – fantastic feature with lots of arguments for and against. Leave it UNCHECKED if you don’t know what it is, your small images aren’t at the top of your site, have many pages, or care about faster cache prebuild (like me). Try it CHECKED if you have many small images at the top (social or ecommerce icons) not using font format (FontAwesome), slow image calls, or very few pages. It’s probably better for small websites.
  • Embeds > Youtube Smart Embed (enables next option) – clever! I like it. Creates an image thumbnail (appearing just like a Youtube embed box but without loading all the laggy assets), which loads the video when clicked.
  • Embeds > Exclude Youtube Videos – disables “smart embed” function on chosen videos. Useful if you have videos at top of website and/or want them to autoplay.
  • Embeds > Preload Sensitivity – specifies how soon lazy-loaded YouTube embed iframes should be loaded when user is scrolling to them. The 50-pixel default setting seems fine but you can always increase if users scroll fast (and you want the iframe to appear sooner).
  • Embeds > Lazy Load Iframes (enables next 2 options) – clever! I love Swift for this. Useful if you have multiple iframe video/video embeds on one page AND/OR they’re located far below the fold. Don’t enable if you have iframes at the top of your pages, it will delay your perceived page load! Common iframes are Youtube embeds, Googlemaps, or Facebook boxes.
  • Embeds > Exclude Iframes by URL – awesome! Use it to exclude important iframes (like ones near the top of the site) from lazy loading.
  • Embeds > Exclude Iframes by CSS classname – more efficient way of excluding YT iframes from lazy load by using their CSS selectors.
  • Embeds > Respect Lazyload Standards – should probably be ENABLED unless you want to override settings from elsewhere and use your lazy load settings.
  • Embeds > Preload Sensitivity – specifies how soon lazy-loaded YouTube embed iframes should be loaded when user is scrolling to them. The 50-pixel default setting seems fine but you can always increase if users scroll fast (and you want the iframe to appear sooner).
  • Embeds > Load Iframes on User Interaction – loads iframes only after user has clicked or scrolled on page. Great for iframes lower on the page.

Optimization > General:

  • Enable Server Push – I recommend disabled. It speeds up sites by preloading CSS/JS assets for your other pages so they load faster when clicked. It’s more beneficial for sites with lots of CSS/JS, but also more likely to cause problems on sites with lots of CSS/JS (broken elements, laggy load, high CPU usage). Test carefully if you enable it. Page scores may appear slower since each page load is now loading more assets. I also think it’s unnecessary if your site loads the same CSS/JS for every page (which is already browser-cached).
  • Optimize Prebuild Only – uncheck so your site is always optimizing. Enable to limit when cache is built (not needed for most sites).
  • Optimize in Background – usually disabled, but can be useful for big sites and/or VPS servers. I have several sites with 100-200 posts on VPS and have been fine without it. You can play with it for yourself. This makes Swift function like those “on-the-fly” cache plugins, which negates the benefit of prebuilding cache.
  • Optimize 404 pages – leave this DISABLED to save server space. You don’t need page optimizations (CSS, JS, etc) for 404 pages anyway.
  • Prebuild Booster – I prefer disabled. It prebuilds using memory resources rather than CPU. On strong servers, I prefer it off. It’s probably helpful on shared hosting (to avoid hitting CPU limits).
  • Disable Emojis – disable if you don’t use emojis in content or comments. Browsers already show emojis already, anyway.
  • Limit Simultaneous Threads – disable if you have your own server or a small site (100 pages or less). Enable and set to 1, 2, or 3 if you’re on shared server or want to prevent site from hogging server resources. Ideally, you’d want to use all resources to prebuild cache quickly.
  • Merge Assets for Logged in Users – disable if you’re the only admin user. It theoretically speeds up sites with many logged-in users (membership/forums/etc) by combining and delaying CSS/JS. But really, you should just stay away from this entirely due to potential broken styles or functions. It also doesn’t help page scores either since they can’t reach logged-in areas.
  • Prefetch DNS – leave ENABLED. It preloads and reduces DNS wait for any visits to or assets called from 3rd-party domains.
  • Collect domains from scripts – usually enabled. It scans and preload external domains found in javascripts, speeding up external requests. You might disable to avoid pre-triggering things (for tracking purposes).
  • Exclude DNS Prefetch – excludes domains from prefetching DNS. I’d disable specific ones maybe to limit charges/triggers by 3rd-party asset requests?
  • Normalize Static Resources – useless if you use “Merge Scripts” and “Merge Styles”. It improves higher page speed scores, but not actual speeds. I enable this but never for sites often updating their design. Many caching engines (also Cloudflare) already intelligently cache static assets with query strings.
  • DOM Parser Max Buffer – I never mess with this.

Optimization > Scripts:

  • Merge Scripts (enables/disables other options) – I wouldn’t merge JS if I were you. It combines all your JS files into one file and load. There’s a weird balance; it’s safer to use when you have fewer scripts (but less impact), has more impact with many scripts but also higher chance of conflict or delaying page load. The best use for it is to delay/lazyload some scripts. The worst use is for higher page test scores.
  • Aync Execute – async execution sounds great but wasn’t checked by default. Maybe it breaks functionality when JS doesn’t load in order. Leave it off, or just test it carefully.
  • Exclude 3rd Party Scripts – off by default, but it really depends. I think the tradeoff is between merging 3rd-party scripts (decreasing their external load time), VS keeping your overall merged scripts lighter. The more scripts you have overall and/or the more these 3rd party scripts don’t affect your overall load, the more I think you should leave them excluded. Otherwise, merging these 3rd party scripts will give you a faster page speed score BUT slow down your perceived load time for real users.
  • Exclude Scripts – THIS is where you go to manually exclude javascript requests from merging. Enter a distinct word or text string instead of the entire url. (e.g. putting “special” prevents “https://domain.com/…/special-123.js” from loading.) The main reasons for excluding scripts are 1) to fix broken functions, or 2) to keep the script loading in its original order, e.g. not merging a slider script so that it can load first and render the top of your site faster. Merged scripts usually get deferred to the end of the page. I would probably exclude anything related to your pagebuilder or forms.
  • Footer Scripts – love this feature but haven’t used it. It prevents non-critical scripts from being combined with front-loading scripts and further delaying your initial load. Honestly, all these little things to think about are why I don’t recommend merging scripts!
  • Deferred Scripts – don’t merge this scripts, but keep them deferred. Good for any scripts that cause problems when combined, but you also don’t want them loading first (when excluded from combine).
  • Exclude Inline Scripts – just like above but for inline scripts. Maybe you have Google Tag Manager or other scripts that need to load from exact positions in the code (header/body/footer). Exclude them by entering a distinct text string found in the code, like “tagmanager” for GTM. If it doesn’t work, just don’t merge JS at all.
  • Footer Inline Scripts – I would not mess with this. If they’re inline, it’s probably for a good reason. This is advanced stuff!
  • Exclude Script Localizations – enabled by default and I don’t know what it is so I leave it alone.
  • Minify Javascripts – it increases cache prebuild time, I would disable this if you have many pages or use Cloudflare (which already does it).
  • Minify with API – check it only if the default minify JS option above causes errors.
  • Proxy 3rd Party Assets – I disable; it’s a vanity feature. Resolves longer expire times on 3rd party JS/CSS (Pingdom/GTmetrix complaint), but may break things.
  • Safe Mode – might fix errors during JS combine.
  • Separate Scripts – clever idea of generating different merged JS for each page instead of one global merged JS for all pages (loading scripts even on pages where they aren’t used). It’s useful if you have many different post types (pagebuilder, products, portfolio, gallery, forums, etc). Only issue is it delays cache-build and can eat up lots of space if you have many pages.
  • Print merged scripts inline – awesome idea deferring JS load till the end! It works best if you don’t have much JS and the top of your site doesn’t use JS (menus, image sliders, critical pop-ups, etc….if any, exclude them). UNCHECK if JS is needed for initial page items or you like faster prebuild (like me).
  • Lazy Load Scripts – amazing for preventing 3rd party scripts from lagging your site load (e.g. Tawk.to, ads, caldera, etc). Works beautifully and improves your page scores without affecting front-end function. Don’t use it for GA/GTM!
  • Include Scripts – I never used but think it’s to include scripts that are called from other scripts which you excluded.
  • Block Scripts – block scripts from loading. In case you don’t need them or want to refactor them elsewhere (like in header or footer).
  • Disable jQuery Migrate – any site using updated themes/plugins can safely enable this. jQuery migrate is a javascript library to keep older JS code working.
  • Preload Scripts – use this to load slow/bloated JS scripts that are necessary for page rendering (like visual elements near the top of the site).
  • Custom Header JavaScript – useful for manually adding JS to the head to fix JS-combine issues. Of course, I’d rather not combine JS in the first place!
  • Custom Footer JavaScript – useful for manually adding JS to the footer to fix JS-combine issues. Of course, I’d rather not combine JS in the first place!

Optimization > Styles:

  • Merge Styles (enables/disables other options) – just like with JS, I wouldn’t if I were you. It combines all CSS files into one file. There’s a weird balance; it’s safer to use with fewer stylesheets (but less impact), most beneficial with more stylesheets but also higher chance of broken styles. The best use is to cache entire CSS with a long expiry time so users don’t have to keep downloading it. The worst use is doing it for GTmetrix/Pingdom scores. Since CSS is so critical to page rendering, I don’t recommend merging it (or at least not theme-related CSS).
  • Generate Critical CSS – speeds up “perceived load time”, rendering the top of the site first. I think it’s unnecessary nowadays, causes FOUT issues and slows down overall load time. Test it on and off for yourself. I always prefer it off. I think “unused CSS” is safer option but also less aggressive; whereas viewport is faster but may leave out some necessary styling. This feature benefits more for super-bloated sites.
  • Extra Critical CSS – add any other CSS that you need loaded ASAP on page load that was missed out by the auto-generated critical CSS.
  • Extra CSS – add extra CSS to the regular CSS rather than critical CSS.
  • Print critical CSS inline – puts critical CSS into the header instead of a separate file. I would only recommend this if your CCSS is very small and/or you only have very few pages on your site (like 3). Because otherwise you’re adding unnecessary CSS weight to each HTML requests when that CSS coulda been cached on its own as a static asset.
  • Print full CSS inline – I don’t recommend it unless your page is super lightweight.
  • Separate Styles – great tactic generating different merged CSS for each page instead of one global CSS for all pages (loading styles even on pages where they aren’t used). It’s useful if you have many different page types (pagebuilder, WooCommerce, forums, etc). Only issue is it possibly delays cache-build and eats up lots of space if you have many pages. I prefer it only on smaller websites with multiple page variations; big sites, I don’t merge.
  • Minify CSS – I would stick to “basic” if I was going to use this at all. Choose “Don’t minify” if you prefer faster cache-building and/or already have it enabled from Cloudflare. Makes no impact on smaller sites.
  • Bypass CSS Import – makes more sense to be enabled by default.
  • Exclude 3rd Party CSS – try this if you have CSS problems.
  • Exclude Styles – manually exclude CSS from here if you have CSS problems. Enter a distinct word instead of entire asset URL. (e.g. put”special” instead of “https://domain.com/theme/special-file.css”.) The main reasons for excluding styles are 1) to fix broken styling, or 2) to load it faster, e.g. not merging slider CSS so that it loads first and renders the top of your site faster. Merged styles are slower to load because you have to wait for entire combined CSS to load.
  • Exclude Inline Styles – can fix CSS-merge issues. Some themes/plugins have CSS inline but Swift removes and merges it with global CSS. To put back inline styles, enter distinct text found in the CSS code. If you don’t know how to troubleshoot all this, just don’t merge CSS at all.
  • Include Styles – clever but I don’t use it. It manually includes CSS, letting you prevent specific JS from loading without losing the CSS calls inside.
  • Preload Styles – use this to preload key CSS files, ideally the ones related to your overall theme design and ATF items.
  • Force Swap Font Display (enables next option) – in my opinion, DISABLED! It solves FOIT issue by giving you FOUT issue, which is much worse UX in my opinion. (Most people using this do it for higher page scores.)
  • Exclude Force Swap Font Display – type name of font-family to exclude from force-swap. Good use case would be any menu fonts loading at the top of the page. As the font reload would look especially jarring to visitors.
  • Disable Full CSS – clever way of disabling all unnecessary CSS but be careful! It may leave out necessary CSS so test it carefully. If having issues, can try adding missing CSS into “extra critical CSS” or just disable altogether.
  • Compress Critical CSS – shortens the super long CSS class names to save some bytes. Useful if you have bloated plugins with super long CSS class names/ids (e.g. “ubermenu-item ubermenu-item-type-post_type ubermenu-item-object-page ubermenu-item-has-children ubermenu-item-9544 ubermenu-item-level-0 ubermenu-column ubermenu-column-auto ubermenu-has-submenu-drop ubermenu-has-submenu-mega”)… lol, yes. That’s a real class name.
  • Remove Keyframes – remove CSS keyframe animations from critical CSS. Should be safe to enable unless you have animations or slideshows relying on CSS keyframes instead of JS at the top of your site. Just test it and see.

Optimizations > Fonts:

  • Manual Preload Fonts – decide what fonts to preload. Probably not necessary IMO. Unless you got tons of slow-loading fonts.
  • Use Local Fonts – if you’re loading any webfonts (from external sources), this saves and loads them locally. Beautiful feature!
  • Exclude Local Fonts – in case you want to exclude any from being hosted locally. I imagine this is only for fonts that display weirdly on your site when loaded locally, or ones that are seldom used or called throughout your site.
  • Force Swap Font Display – shows a fallback font if your custom fonts take too long to load…avoiding the FOIT issue. However, if you have lots of real-world experience, you’ll know that FOIT is nowhere near as bad as FOUT…which is what happens if you use this feature. Therefore, I highly DO NOT recommend this! (Seriously, think about it. Any text that really needs to be shown that fast…should probably not be allowed to use a fallback font!)
  • Exclude Force Swap Font Display – exclude specified fonts from using swap-fallback display method. I don’t use this because I don’t bother with swap display at all.

Optimizations > HTML:

  • Fix Invalid HTML – I disabled as I assume it delays cache building. Enable it only if site has an issue.
  • Minify HTML – I assume it delays cache building (and no noticeable benefit) so I disable if I have many pages or slow server. Cloudflare already minifies HTML/CSS/JS also.

Caching > General:

  • Enable Caching – you must ENABLE this. If you don’t see this option or even the “Caching” tab, your host is probably disabling cache plugins. WPengine and some other hosts do this.
  • Caching Mode – disk cache with rewrites is fastest, disk cache with php is slightly slower but may have less issues. Some cache plugins (CometCache) prefer the php route. They argue it’s better but I only care what’s fastest. Memcached with PHP should be very fast as well but depends on your hosting environment. Memcached works better on VPS than on shared hosting.
  • Early Loader – should be checked.
  • Cache Path – check this directory if caching or prebuild doesn’t work; might be wrong path from old server. (Go to cPanel “File Manager” for the right path.)
  • Cache Expiry Mode – I prefer “Action Based Mode” for 99% of sites. You can pick “Time based mode” if your site has non-content updates often (like new comments or changes in product status).
  • Bypass Nonce – only available when using Action Based expiry mode. Basically extending nonce life indefinitely to match the cache expire. Sometimes site functions (e.g. cached forms) don’t work correctly because plugin nonces expires before the cache expires. This feature fixes that problem.
  • Cache Expiry Time – normally I use Action Based Mode for expiry, which is basically an expiry time of “forever”. So if you’re using Time Based expiry mode, then pick whatever interval you think your site cache should be refreshed. That’s your call to make.
  • Extend Nonce Life – sometimes site functions (e.g. cached forms) don’t work correctly because plugin nonces expires before the cache expires. This feature fixes that problem.
  • Clear Cache on Update Post by Page – I don’t use it. Swift clears cache often.
  • Clear Cache on Update Post by URL – I never had to use this since I use Action Based Mode which auto-clears after any changes. Folks using Time Based Mode may want to clear any page that shows dynamic content. (For example, clearing home page or blog category pages so they show the latest posts.)
  • Clear Cache on Update Post by Custom Rule – much more efficient regex/wildcard way of custom clearing multiple pages when posts are updated.
  • Clear Cache After Update – probably better to leave this ENABLED. You might prefer disabled if your site is huge (takes forever or many server resources to preload) and has so many themes or plugins that update automatically.
  • Enable Caching for logged in users – to be safe, only enable IF you have many logged-in users. Don’t enable “Share Logged in Cache” unless all logged-in users should see the same content, otherwise it crosses user data (e.g. user A sees user B’s info). You should exclude account/profile pages from caching in general!
  • Separate Mobile Device Cache – disable! Only used if you have AMP enabled via theme/plugin or specific design or ads for mobile visitors. If you don’t know what AMP is, do not enable this!
  • Enable Browser Cache – enable! It helps performance.
  • Enable Gzip – leave enabled!
  • Send 304 Header – disable.
  • Cache 404 pages – enable only if you have a small site and/or the same non-existent URL’s are visited often. Otherwise, it can quickly clog up your warmup table.
  • Cache Sitemap – love this function! Enter a sitemap url here so the preloader caches things in a more intelligent manner. Back in the old days, Swift was randomly scanning your site for urls and often preloaded unimportant pages first.
  • Enable Dynamic Caching – one of Swift’s amazing advanced features, leave it alone for now. (Intended for developers or pros.) Can cache or allow compatibilities with features like multi-currency, etc. I’ll explain it later.
  • Cacheable AJAX Actions – another incredible advanced feature. Leave it alone.
  • AJAX Cache Expiry Time – leave it alone…unless you know that you need it longer.
  • Ignore Query String – leave this unchecked!

Caching > Tweaks:

  • Enable Proxy Cache – interesting feature I haven’t used yet. Uses Cloudflare’s “cache everything” rule to cache pages and get super fast load. Only issue is how to clear these pages upon changes or updated information.
  • Proxy Cache Maxage – should be spelled “max-age”. Default setting is a day. Seems fine but longer is ok too if your site doesn’t update much.
  • Proxy Cache Only – saves cached files only on the proxy. This is a good way to save disk space for large sites or sites with limited hosting plans. But I assume your site might load slower if the proxy cache is cleared and you don’t have a local cache?
  • Ignore GET Params – use this to ignore certain URL parameters. All the standard FB, UTM, GA are ignored by default. But there might be more from whatever ad network you use or 3rd-party referrals.
  • Avoid Mixed Content – disabled. It can create issues for asset URL’s! Only necessary if your site is still using HTTP but has some 3rd-party requests in HTTPS (like GoogleMaps). Most sites are in full HTTPS already!
  • Keep Original Headers – I leave it enabled.
  • Exclude Headers – exclude specified headers from your cached pages.
  • Case Insentive URLs – I leave it disabled. Never had a use-case for it. All your URL’s should be lower-case anyway.
  • Strict Host – basically generates cache only for one version of your site domain (with or without www). This probably helps prevent display problems related to that issue, but also save storage space. Good idea to use but make sure you have a permanent site redirect to force users to the right version of your site domain.
  • Ajaxify Placeholder – display options your lazyloaded elements. You can use the default “hidden” which is empty until it loads, or a “blurred” box like Medium, or “show cached” which shows cached version until it updates to the live version afterwards.
  • Ignore Query String – I don’t use it. URL’s with query strings exist for a reason…it’s risky to ignore them if you don’t know what you’re doing.

Caching > Ajaxify:

WOW, this whole section is freaken cool and clever!!!

  • Lazyload Shortcodes – only use for shortcodes that aren’t used for ATF content.
  • Lazyload Template Parts – very clever! You can practically lazy load everything below your ATF. Be careful that it doesn’t affect your SEO.
  • Lazyload Nav Menus – can use for any menu except the ones loading at the top of your site.
  • Lazyload Blocks – use to lazyload your heaviest/laggiest Gutenberg blocks, or ones that cause you a bad page score.
  • Lazyload Widgets – lazyload widget positions that are slow-loading or causing bad page scores.
  • Preload Sensitivity – decide how soon lazy-loaded elements should be loaded when user scrolls to them. The 50-pixel default setting seems fine but you can always increase if users scroll fast (and you want the images to appear sooner).
  • Ajaxify Placeholder – display options your lazyloaded elements. You can use the default “hidden” which is empty until it loads, or a “blurred” box like Medium, or “show cached” which shows cached version until it updates to the live version afterwards.
  • Lazyload elements – clever tactic of using lazyload to dynamically load parts of the site that shouldn’t be cached. For example: recent comments, related posts, recently viewed products, forms, etc. Anyone wishing for object caching or the ability to un-cache certain parts of their pages can use this feature.

Caching > Exceptions:

  • Exclude Post Types – you should exclude all post types EXCEPT posts, pages, products, and any post type that shows on the front-end with its own unique URL slug. (If don’t exclude any post types; the site will cache all items even if they don’t show on the front-end, further delaying cache prebuild for critical items. Big sites should definitely exclude unnecessary post types!) Pro tip: it’s faster to type the first letter of items or press the down arrow key on your keyboard, than to click around.
  • Exclude Pages – you should exclude any pages with “live info”, “private data”, or don’t work properly when cached. Good examples are pages with forms, dynamic WooCommerce (account, cart, checkout, wishlist), fancy sales pages (with tracking scripts), and any other dynamic/private pages.
  • Exclude URLs – exclude any URL’s that couldn’t be single out using post types or pages above. You can use REGEX to exclude many URL’s at once. (I highly recommend adding “#revision#”, “#autosave#”, and “#json#” in here to prevent those items from caching. You can also add “/feed” or others as well.)
  • Exclude Cookies – prevent users with specified cookies from seeing cached pages. Useful for showing live/updated pages for certain users.
  • Exclude Content Parts – useful for excluding specific content or post types that show on multiple pages. Enter distinct text to keep specific content from caching.
  • Exclude User Agents – prevent certain devices from seeing cached pages.
  • Exclude Crawlers – prevent specified search engines or crawlers from seeing cached pages. They see uncached pages showing most recent content, but can also increase server load if they visit often.
  • Exclude Author Pages – I check this. Author pages aren’t visited often, so focus your caching mechanism on other pages.
  • Exclude Archive – I prefer UNCHECKED. Blog category pages are visited often and do run slow if not cached. Not caching them ensures they show the latest posts but it’s unnecessary as Swift rebuilds cache pretty often.
  • Exclude REST URLs – CHECKED. You don’t need these items pre-cached.
  • Exclude Feed – CHECKED. You don’t need these items pre-cached. They load fast enough and aren’t visited often. Plus, it can double the number of items in your cache table (how messy).

Caching > Warmup:

  • Prebuild Cache Automatically – usually checked, one of Swift’s top features. (Only time you shouldn’t use prebuild is when you have so many pages, like over 1k, that server is always busy prebuilding, or you have so much traffic that they prebuild pages for you already.)
  • Prebuild Speed – always try to use “Unlimited” if you have your own server/VPS or don’t have many pages (400 or less). If you’re on shared hosting with resource limits, pick one of the other options or your host might penalize you for “High CPU/resource usage”.
  • Discover New Pages – it’s better unchecked, but you should enable this if Swift can’t find all your pages. Only issue is it sometimes caches many unneeded items but you can exclude them anyway.
  • Warmup Table Source – auto is fine for smaller or lightweight sites with few pages. But if you have many pages and/or your server is slow, I highly recommend sitemap option to prioritize important pages first. Sometimes Swift prebuild mechanism will put low priority items first (like tags) which means your key pages take longer to precache after a purge.
  • URLs page page – decide how many urls are shown in your warmup table. Higher number if you’re on a fast server and/or have tons of pages. Lower number if your warmup page takes forever to load.
  • Warmup Priority – can drag this around but the default setting is best IMO!
  • Remove redirects – this should probably be enabled. And also if you see them, you should find-replace these outdated URL strings in your site database.
  • Prebuild Author Pages – UNCHECK. This option pre-caches author pages but I prefer caching them only when they’re actually visited.
  • Prebuild Archive – this should be CHECKED to pre-cache category pages.
  • Prebuild Terms – check only if you think users often click on your term pages (e.g. tags). Otherwise, leave it disabled if you’re one of those sites that only have like 100 posts but 1000 tags! (Basically, you don’t want your prebuild to waste time precaching tag pages instead of content.)
  • Prebuild REST URLs – unchecked for me. Not necessary to prebuild these.
  • Prebuild Feed – unchecked for me as well. Not necessary!
  • Enable Remote Prebuild Cache (premium) – usually DISABLED! Use only when your server can’t visit itself and can’t prebuild cache; maybe because you blocked bots or indexing? It can speed up or slow down your prebuild depending on your setup, often fixing prebuild issues.

Caching > Varnish:

  • Enable Auto Purge – enable if you’re using Varnish. It clears Varnish cache automatically, so you don’t have to do it manually every time Swift clears cache.
  • Custom Host – usually not necessary, unless you’re using Cloudflare or other DNS proxy. Enter the Varnish server IP and port here.

Caching > Appcache:

Incredible feature but 99.99% of you shouldn’t mess with this!!! It can slow down your prebuild without any noticeable benefit. The feature downloads your site into the user’s browser on first visit, dramatically speeding up navigation. Keep in mind the default appcache size for devices (100MB for desktop, 5MB for mobile) as per official Swift documentation.

The 100MB desktop limit can actually fit an entire for most smaller sites (especially if you’re not merging CSS/JS). The 5MB mobile limit may or may not fit the entire site. There is where it comes in handy to cache only certain pages. Honestly, this appcache function alone is so beautifully thought-out it could have been its own plugin or at least a paid add-on. I am forever grateful to Swift for including special features like this!

PS: I don’t use appcache at all for my own sites! Regular Swift caching functions have been amazing enough! (Also, my sites are already coded super lean already.)

  • Enable Appcache for Desktop – check to enable this feature.
  • Appcache Mode – depends on the size of your site. Pick “Full site” if your entire site cache fits within 100MB, or use Exclude Pages function to make it fit. Pick “Specific pages only” if your site is much bigger than 100MB, or you prefer only specific pages for app-cache…then use Include Pages function to select them. I think most sites should pick only the main pages. This allows you to build/load appcache faster onto users’ browsers, focusing on the most visited pages. (FYI: your site cache size can be found on the Swift Dashboard.)
  • Desktop Max Size – not sure how this applies. I leave it alone.
  • Exclude Pages – clever addition! It’s great to exclude unnecessary pages from desktop appcache. Reminder: desktop appcache allows 100MB total.
  • Exclude Strings – a more efficient way of excluding items from desktop appcache based on URL string.
  • Enable Appcache for Mobile – check to enable. (NOTE: it uses more data.)
  • Appcache Mode – since mobile appcache limit is only 5MB, you’ll most likely have to use the “Specific pages only” option and pick your most crucial pages.
  •  Mobile Max Size – I don’t mess with it.
  • Exclude Pages – really useful since mobile appcache is only 5MB, so you should pick only your most essential pages.
  • Exclude Strings – again, use it to exclude items from mobile appcache.

Plugins:

As always, Swift is on some next-level shit again! They have special optimization settings that show if you have certain plugins installed.

  • Contact Form 7 > Smart Enqueue Assets – I love it! One of my longest standing complaints about CF7 was that it loads its CSS/JS on every page even when you’re not using forms! I’ve always told everyone to switch to Caldera but with this setting, you don’t have to (if you love CF7). Enable this but check carefully in case Swift doesn’t properly detect all your CF7 forms. Still though, you should switch to Caldera anyways!
  • Elementor > Lazyload Youtube Background – enable this unless your video embeds are used in the hero section of your site. Another option, you can enable this but use the lazyload-exclude attributes for your hero embeds.
  • WooCommerce > Cache Empty Minicart – enable!
  • WooCommerce > Disable Cart Fragments (premium) – I usually disable! It speeds up that annoying WooCommerce admin-ajax call that lags your waterfall reports BUT disables your minicart count (the little number in the cart icon at top of your site). You can disable it on all pages, disable it only on some, or leave it on if it doesn’t affect the site/server much. It’s your choice. (Yes, this feature can replace the Disable Cart Fragment plugin by LittleBizzy.)
  • WooCommerce > WooCommerce Session Cache (BETA – premium) – disable. It caches users’ shopping items in cart, but doesn’t work perfectly. Site sometimes feels slower with this on and sometimes mixes cart sessions between users. Test carefully if you use it.
  • WooCommerce > Ajaxify Prices – only needed if your site shows different prices to different users (like based on location, etc). It lazyloads prices use ajax, after the cached page loads.

CDN:

  • General > Enable CDN – check if you’re using a CDN. This feature does NOT replace your CDN plugin; keep your CDN plugin enabled if you have one. Swift’s CDN settings are only for purging CDN, not for activating it! (PS: Cloudflare is not considered a CDN in the traditional sense; use the Cloudflare tab instead.)
  • General > CDN Hostname – put the hostname URL without the “https://”. It should be something like “cdn.yourdomain.com” or “yourdomain.cdn-name.com”.
  • General > Use Different Hostname – in case your CDN uses a different hostname for SSL domain version of your assets. I’ve never seen this needed.
  • General > SSL CDN Hostname – should probably be empty, as most CDN’s use the same hostname regardless of http or https.
  • General > CDN Custom File Types – specify what files (extensions) to cache on CDN. I don’t understand why this is needed, don’t know if it’s a whitelist or what. Test with and without, and see.
  • General > Exclude File Types from CDN – exclude files from CDN for various reasons. Maybe because of CDN costs, or because the file is loaded faster (or more reliably) from your server?
  • Cloudflare > Enable Auto Purge – check it if you have Cloudflare. Otherwise, you’d have to manually purge Cloudflare cache every time you make changes on your site or Swift cache. (Make sure you enter your account email and API key.)
  • Cloudflare > Cloudflare Auth Method – I guess it depends on which one you have access to.
  • Cloudflare > Cloudflare Account Email – fill in your account email.
  • Cloudflare > Cloudflare API Key – put in your Cloudflare global API key.
  • Cloudflare > Cloudflare Host – put your domain name (without the www).
  • MaxCDN (StackPath) > Alias/Key/Secret – fill it out if you’re using MAXCDN.

Import / Export:

I never use this as different sites will have different settings. Besides, I can configure Swift in only 2 minutes anyway. **TIP: whenever you import settings, check the “Caching > General > Cache Path” to make sure it’s the right address.

  • Import/Export from FILE – safest option, it downloads the settings to your computer. To import a file, first open it up on your computer using code editor (like Notepad++ in Windows, or TextWrangler in OSX), copy all the text and then enter into the import box in Swift.
  • Import/Export from URL – fastest option, you can quickly copy settings from one site to another. (Again, don’t forget to check the cache path!)

Hit [SAVE CHANGES], clear cache, and Swift is done setting up!

Go play around with the front-end (on incognito browser or any browser not logged-in) to test speeds. Or keep reading for more performance tweaks.

STEP #3 – Check Warmup Table

Check your SWIFT Warmup Table to see if it’s caching all your pages.

  1. CLICK the Swift Performance link from your dashbar (top) or admin side-panel (left) Tools > Swift Performance.
  2. SCROLL DOWN to Warmup Table and see if it’s caching all your content (posts, pages, products, etc). Big sites take more time.
  3. CACHE CATEGORIES – if some category pages don’t cache by default, enable “Prebuild Archives” in the cache settings.
  4. WAIT FOR PREBUILD – prebuilds should run automatically but if not, click “Start Prebuild Cache” or even “Reset Warmup Table”. It can take from minutes to hours depending on the website size. You’re almost ready to fly!
  5. CACHE NOT BUILDING? – don’t freak out if you see weird URL’s or that not all pages are cached. It’s normal behavior and fantastic that Swift has this warm-up table for you to diagnose issues. (FYI: many other cache plugins don’t cache everything either, but they lack a convenient table for you to know that.) As a diagnostic step, you can manually click “Cache page” on the uncached items or by visiting them on the front end.
  6. CHECK FRONTEND to see if your site is caching – open up Chrome incognito window and visit your site without logging in. Right-click anywhere and click “View page source”, then scroll to the bottom. If you see “Cached with Swift Performance Lite”, it is working! *CHEERS*

STEP #4 – Testing for issues

Without logging in, browse around your site on desktop and mobile. Everything should be fast, look and function normally. If everything is perfect, skip to the next step. If something is broken, it is 99% almost always because you enabled “merge scripts/styles”. (If you want my advice, don’t merge CSS/JS.)

Broken styling issues? (usually WooCommerce stores or pagebuilders)
…or broken functionality? (forms, sliders, or things not working when clicked)…read below:

  1. Go to Settings > Optimization > Scripts/Styles
  2. Disable “Merge Scripts” and “Merge Styles”
  3. Try the front-end again. If everything works, you can stop here (caching will still be really fast) or continue to isolate and resolve the issue.

Some of you will still insist on merging because you want that vanity page score. Ugh…I’m telling you, it’s not best practices for performance! But here’s what you can do if you insist:

  1. Re-enable one at a time “Merge Scripts” and then “Merge Styles” to isolate the issue.
  2. It’s usually just one CSS stylesheet or one JS script that’s causing the problem. You can try playing with the other Script/Styles optimization options to see if they solve the issue but that’s never worked for me. The proper way is to exclude that problematic CSS/JS (whichever one it is) from merging.

How to find and exclude problematic scripts/styles from merging:

  1. Isolation Method #1 – leave MERGE SCRIPTS and/or MERGE STYLES enabled, open up the site in Chrome > Developer Tools > Network (tab), and reload the page. Click the little red error circle to see which CSS/JS are missing. Exclude them from merging and see if things work.
  2. Isolation Method #2 – disable MERGE SCRIPTS and/or MERGE STYLES (or even caching altogether), and scan your site in Pingdom. Scroll down to the waterfall and sort the loaded items by file-type (neatly displaying all CSS/JS). Now go back to Swift settings and merge scripts/styles again but manually exclude whichever CSS/JS you think is causing the issue. (Hint: whatever’s breaking is probably related to the problem. Did a certain plugin or theme function stop working? Try disabling those CSS/JS.) Yes, it will take a lot of trial and error. It could be anywhere; maybe a plugin, maybe a theme.

There’s a lot I’m not spelling out because this is very technical and should be handled by advanced users. If you’re having this much issue with merging CSS/JS, you shouldn’t be doing it. It’s nobody’s fault…not yours, not the cache plugin, not your other plugins/themes. (Sure you can try another CSS/JS merge plugin like Autoptimize and it might work for your current setup but then break another day.) I really really don’t recommend merging CSS/JS!

The fact of the matter is: every WordPress extension requires it’s own set of code to function and when you mix different code together, conflicts may arise. For best practices over the long term, you really shouldn’t be merging CSS/JS anyway!

STEP #5 – Other features

You’re welcome to check out the other tools here but make sure you’re careful and make a backup if you don’t know what you’re doing. I’ll go over these in a more advanced guide!

  • Image Optimizer (premium)– I prefer ShortPixel but this works, too.
  • Database Optimizer – useful, but be careful not to break things! It doesn’t impact speed much unless you have thousands of auto-loaded transients. It’s more for reducing database size than for speed. (Yes, this can replace WP Optimize.)
  • Critical Font (premium) – really clever feature! I can’t believe Swift thought of this…if only all custom iconfont services were this easy! For most users, it helps if you have Font Awesome 4.x and older. It regenerates icon fonts using only necessary icons so you’re not wasting 150ms loading the entire Font Awesome library of 5,000 icons on every page. (Newer FA 5 uses SVG.)
  • Plugin Organizer – simply incredible feature and warms my heart. I can’t believe they gave this away for free. It should be a premium plugin or at least not overlooked by the community. It’s easy to use but from a caching standpoint, I consider this advanced speed-up strategy so I won’t cover it in this guide.
  • Upgrade to PRO – should you do it? Is it worth it? Just to support this incredible plugin alone, yes it’s worth it. But as for what features make the most impact…Compute API (reduces server CPU usage), Enable Remote Prebuild (resolves many difficult caching problems), Image Optimizer (save money on image optimization), WooCommerce caching (more features), Whitelabel (hide your speed-up secrets), critical font (speeds up older FontAwesome).

STEP #6 – Final functions check

Make sure nothing is broken!

  • Clear your cache, also purge CDN or Varnish (if you have them).
  • Wait for caching to complete, then check every page.
  • FRONT END CHECK: posts, pages, forms, shopping cart, affiliate tracking.
  • BACK END CHECK: pagebuilders, other admin tools.
  • CACHING: are the items in table caching? Do you see the SWIFT comments in the source? (Sometimes items don’t appear as cached in the table but are in fact cached on the front end.)

Known issues?

  • Website is still slow – either your webhosting is really bad, website too bloated, or you have the wrong settings. Check other plugins, too. Anything with redirection, security, e-commerce, or causes many database queries can slow a site.
  • Broken styles (CSS) or functions (JS) – disable merge scripts/styles. Also make sure your theme or other performance plugins are not trying to merge as well. (Avoid having multiple performance plugins doing the same function.) Swift appcache feature might also break CSS. Can also try regenerating CSS in your theme and other plugins as well.
  • Broken visual elements – check “Optimization > General > Fixing invalid HTML”.
  • Weird characters/symbols – disable GZIP from caching options.
  • Contact forms not working – exclude the contact page from caching. Try switching to Caldera forms. I’ve had issues with Contact 7 (and hate that it loads on every page).
  • Weird scrolling or screen refreshes – disable “smooth scroll” or other scrolling effects in your theme settings. And if the screen refresh won’t go away, please stop merging JS. (Or at least exclude the JS causing it.)
  • Excluded/unwanted items still caching – unwanted items showing up in your warmup table? Try clicking [Reset Warmup Table]. Try disabling “Cache 404 pages”.
  • Items not caching? – make sure cache directory address is correct and writeable. Try removing some items from “Exclude Post Types”.
  • Items not pre-caching – make sure “Prebuild Cache Automatically” is enabled. Can also try “Enable Remote Prebuild Cache”, or other caching modes (less ideal). Make sure your robots.txt file isn’t blocking everything “Disallow: /” (common on staging sites).
  • White screen of death (WSOD) or error 500 – it’s unfortunate but not every plugin is compatible with others. You can restore your site by deleting the Swift section in htaccess, delete “wp-content/cache” directory, delete “wp-content/plugins/swift-performance” directory, also delete “swift-performance-loader.php” in wp-content/mu-plugins directory. Another trick I’ve found is to change your php version, then change back.
  • High CPU usage – some complain Swift causes high CPU usage, but this isn’t accurate. Swift has an aggressive (really fast) pre-caching mechanism that uses all available resources to pre-cache your pages. It’s much faster than other cache plugins taking forever to pre-cache your site (like 10 pages/hour). Some popular remedies: limit simultaneous threads to 1-3, turn off Merge Scripts/Styles, turn off minify HTML. You can also disable pre-building cache, but then the first visit will be slower.
  • Swift Dashboard or Warm-up Table not loading – this can happen for huge sites with thousands of cached items. Change your “max_input_vars” to something high (like 5000). You can ask your webhost to help you with it. But either way…as long as you can access your Swift Settings and pages are caching on the front-end, you are fine!
  • “Cached with Swift” not showing in page source – it could mean that the page isn’t caching, but could also mean something is stripping out HTML comments. Maybe you have Cloudflare enabled? Disable it temporarily and see if the comment shows.
  • Weird www or non-www URL issues – place the proper htaccess redirects placed. You can do it in Swift’s custom htaccess, or open up your htaccess and put the code at the very top above Swift htaccess code.
  • Cache size is HUGE – uncheck “Separate Scripts” and “Separate Styles” option, or better to just not merge them. Don’t cache for logged-in users. Also exclude unnecessary post types.
  • Website still won’t load after deleting Swift – if you had issues and want to delete Swift, make sure you delete Swift from plugin directory, also mu-plugins, also remove Swift .htaccess rules. Then run manually trigger WP-cron. I’ve seen instances where Swift prevented WP-cron from running and so many cron jobs were backed up and lagged the server a bit even after delete. Once you’ve triggered WP-cron manually, it can be 5-10 minutes before your site regains useable state.

Need Expert Help?

I’ve tried my best to offer detailed advice for everyone. But there will always be sites that need special configuration. Still have problems? Contact one of the Swift support channels mentioned below.

  • Free help is available on the Swift Performance Users Facebook group (fastest response, official support team and myself are on there), Swift Lite WordPress repo (slower response), or Swift website ticket (great option and more privacy for paid users).
  • More explanations about features can be found on official Swift knowledgebase (not fully documented), or the free Facebook group above.
  • If you need help but still insist on doing things on your own, please respect your level and avoid messing with settings that you don’t understand. Swift has features for newbies as well as developers and server experts.

If you would like paid help or even just a free look at your site, don’t hesitate to contact me. (I configure Swift on dozens of sites every month.)

Take care and may the “Swift” be with you! 😀

Support SWIFT Performance Plugin!

Loving the plugin? Leave them a nice review or buy the paid version.

]]>
https://wpjohnny.com/swift-performance-wordpress-cache-plugin-unofficial-guide/feed/ 240
BEST WordPress Cache Plugins 2022 https://wpjohnny.com/best-wordpress-cache-plugins-2022/ https://wpjohnny.com/best-wordpress-cache-plugins-2022/#comments Fri, 03 Dec 2021 14:25:49 +0000 https://wpjohnny.com/?p=11634 The best cache plugins to speed up your WordPress sites and where I would use them!

The plugins are listed in order of what I recommend most people to try from first to last. In my own personal use case, I love LiteSpeed Cache the most for my high traffic sites (best performance, features, reliability) and then use Swift Performance Lite or WP Performance for smaller sites. FlyingPress, Swift PRO and WP Rocket are nice for clients (and bigger sites) who can pay and need something better than a free plugin.

1. WP Performance (FREE)

  • If you don’t know what you’re doing, start here.
  • Very easy to use.
  • Safe to play with caching and won’t break your site. Please don’t try to enable every feature.
  • I absolutely LOVE the CSS/JS combine UI. So easy to choose what is combined or not. And I’m shocked other cache plugins don’t copy it. Really, the founder should get a freaken award for coming up with this.
  • Works well for all types of sites.
  • Yes, people…I recommend this even if it hasn’t been updated in a while. It works fine and I like it! (now stop asking me this question over and over)
  • WP Performance – cache plugin review
  • Recommended settings (coming soon when I’m not lazy)

2. Swift Performance (FREE & PAID)

  • Tons of caching features and low cost!
  • Swift FREE is the most full-featured free cache plugin out there (along with LiteSpeed Cache).
  • Tons of features, a bit complicated for newbies and risky since they enable stuff that break or slow down their site. I feel Swift has somewhat become 2022’s W3TC (of course, not literally). Their UI could use another overhaul to make it appear simpler. But nonetheless, still one of my favorites.
  • PAID version has even more incredible features. (Many that nobody else even thought of.) Works great.
  • Only thing about the mass features IMO is that many of them are for bloat mitigation…which my sites don’t have and therefore, don’t have to worry about. If you have a super bloated site and need help optimizing every nuance, Swift PRO has more features than anybody else…however, the advanced optimizations also require much more skill and knowledge (which I’m sorry, 98% of users don’t have).
  • I recommend Swift free for sites below 400 pages and/or fewer than 10k hits/month. Above that, you should use the pro version.
  • Swift Pro is especially great for sites with many pages but little traffic (thanks to its aggressive preload function).
  • Swift Performance vs WP Rocket – WordPress Cache Plugin Comparison
  • Recommended settings

3. FlyingPress (PAID)

https://flying-press.com

  • Best PAID cache plugin with advanced features yet simple UI.
  • Quality cache plugin built by a respected speed specialist (Gijo Varghese).
  • Very simple and easy to use yet has advanced/unique functions not found in other cache plugins.
  • Plugin has matured beautifully since its launch over a year ago. And now I really REALLY like it. If you want the power of a paid cache plugin but don’t like Swift PRO’s complexity, go with FP!
  • If Swift (FREE) and WP Performance don’t work for you and you’re not on LiteSpeed servers, FlyingPress is a solid choice.
  • I definitely recommend FlyingPress over WP Rocket in every way! (They are both similar category…of being pro plugins with clean simple UI. But FlyingPress has even simpler design yet more advanced features.)
  • Totally biased review of FlyingPress cache plugin
  • Recommended settings

4. LiteSpeed Cache (FREE, but…)

  • My favorite cache plugin out there…tons of features, enterprise-grade performance & reliability…but requires LiteSpeed server (or QUIC.cloud).
  • You need to be on LiteSpeed or OpenLiteSpeed server to use its caching features. Or have a QUIC.cloud account (they have free plans).
  • Best for sites with many pages and high traffic. I don’t recommend for sites with little traffic (below 10K hits/month). Small sites are better with WPP or Swift since they can pre-cache.
  • The one and only thing LiteSpeed Cache lacks is a cache-preload feature…which it makes it suitable only for sites which have more traffic (at least 1k visits/month). If you have low traffic and still want to use LSC, you need to use their server cache-crawler (only available with OLS, or LS-ent if the webhost enables you) or QUIC.cloud service (which is also awesome).
  • Many advanced features but can feel too complex for the average WP user.
  • Why LiteSpeed Cache version 3.0 is the #1 cache plugin for me
  • Recommended settings

5. WP Rocket (PAID)

https://wp-rocket.me

  • Simple to use and great documentation. Still enough useful features, and reliable.
  • I don’t like it because this plugin is stale and hasn’t innovated anything lately (features are behind competitors). I personally feel it’s an abandoned plugin and the dev team is focusing on another product. Also doesn’t help that its founding company was sold off in MAY 2021 already. Ewww…
  • UI is very nicely designed and also simple since it doesn’t have many features like the other plugins.
  • Main reason why some people don’t like WP Rocket is cost or lack of granular features. Depending on the user, it’s ease-of-use can be a pro or a con.
  • IMO if you really like WP Rocket, you should go with FlyingPress…it’s similar vibe (pro caching features but simple UI) and better in every way.
  • No, I’m not being contradictory about criticizing WP Rocket when WPP hasn’t had updates. Bottom line is WPP is free and WPR is not. WPP also has the better UI and all the features I use. They’re not judged the same because they don’t cost the same!
  • Recommended settings

Plugins not on this list (and why)

Of course I have to write this or else you guys keep asking me the same questions over and over:

  • Autoptimize – not a caching plugin.
  • Cache Enabler – a good simple cache plugin for sites on NGINX servers. It’s not special or outstanding enough to be on my list. Not everyone is on NGINX nowadays (at least not me) and it doesn’t have any special feature or UI to separate it from others. Maybe you’ll like that it’s simple…but that isn’t good enough for me.
  • Comet Cache – not bad, just isn’t special and doesn’t stand out from the ones I mentioned.
  • Hummingbird – made by WPMU DEV, who I hate. End of story.
  • PerfMatters – not a caching plugin.
  • PhastPress – not a caching plugin.
  • W3TC – their outdated UI got even worse (lol)…endless scrolling and full-width text descriptions, new update now bombards you with a superstore of paid add-ons. Basic caching features are laid out in an overly technical way. Advanced caching features not understandable by even the average developer. I do appreciate that its text labels, and descriptions staying true to server-admin language and terminology…but that’s also part of why I don’t recommend it to others. Because 99% of people cannot understand what things do.
  • WP Fastest Cache (WPFC) – outdated UI but very space efficient…all main settings on one page and doesn’t waste vertical space (which I really like), but doesn’t have any unique features setting it apart from the ones listed here. I personally feel WPP is a better and more modern replacement for WPFC.

Before bringing up other cache plugins to me…please ask yourself if you’ve tried ALL the ones on my list? Because if not, then do it so you understand why I’m recommending these first.

]]>
https://wpjohnny.com/best-wordpress-cache-plugins-2022/feed/ 25
WordPress documentation plugins – fast review https://wpjohnny.com/wordpress-documentation-plugins-fast-review/ https://wpjohnny.com/wordpress-documentation-plugins-fast-review/#comments Fri, 03 Dec 2021 00:22:08 +0000 https://wpjohnny.com/?p=11625 Some quick notes about the options I found so far and what I feel about them.

Things I was looking for:

  • Easy to use.
  • Simple rather than full-featured.
  • Lean-code, fast!
  • Un-opinionated designs (that don’t clash with my theme), so I can easily do my own CSS styling.
  • Ok, fine…some features, but not that much! 🙂

I haven’t tried them all out in-depth so don’t take my word at all!

WordPress documentation & knowledge-base plugins:

These are all the ones I’ve tried. If you got experience with these or others that I didn’t mention, please share your thoughts in the comments. I’ll update this lazy review as I try more.

1. BSF Docs (FREE)

  • The only one I’ve really tried and used.
  • Made by Brainstorm Force (aka “the Astra guys”) and probably the only plugin I like and use from them.
  • It’s clean, simple, and gets out of your way.
  • Has a basic layout and AJAX search. Great if you want to get up and running fast and want to style your own thing.
  • If it matters to you, this plugin is not popular. I think many people see it as being too minimal and not enough features for an all-out super comprehensive knowledge-base. But its minimalism fits me perfect. I want my documentation to feel like a pamphlet, not a library!

2. BetterDocs (FREE & PAID)

  • If you don’t know where to begin and want the best and full-featured option, I think THIS one is the best one.
  • It looks the most professionally-built…you can tell its difference in class from the WP repo descriptions alone.
  • I am probably gonna grow and switch into this one any day now…when I’m not too lazy to convert over all my docs (*ugh!*).
  • Tons and tons of features and layouts and what not. I imagine it might be overkill for some of you (with it feeling like you’re setting up a WooCommerce store, lol).
  • They also got a Facebook group (nice!).

3. weDocs (FREE)

  • This looks like a nice middle option. Seems to have more layouts and features than BSF Docs, but definitely not full-featured like BetterDocs.
  • Very simple, minimal, clean, but has a layout that’s ready for clients. Whereas BSF Docs feels like you might need a little styling.
  • Doesn’t seem to have a live-search option…BOOOO!
  • Also seems brand new, their site has some pages not built out yet. But they do have many great reviews.

4. Echo Knowledge Base (FREE & PAID)

  • I ran away from this from the very first second because it was so ugly. Uggggg-ily!!! Ugly demos, ugly site, ugly everywhere. (I know looks aren’t everything…but c’monnnnn!)
  • BUT…it’s got 5-star reviews, with many people praising its fantastic function and support.
  • Also advertises tons of features, built-in layouts and styling, table-of-contents, icons, linking to different resources, and on and on.
  • I think it’s worth a try…I just know that I can’t get over its looks. (*Thanks Echo, for making me feel so shallow! [sad face]*)

5. DocsPress (FREE)

  • Not sure how I feel.
  • Says it was originally built-off (or inspired by) weDocs. I’m guessing a fork.
  • Has a nice range of features, not too much or too little.
  • Design feels very minimal and un-opinionated.
  • Has many happy users raving that it’s the best simple doc plugin and “much better than weDocs”.
  • Only thing holding me back was how simple their demo was (it didn’t showcase all features well IMO). And didn’t agree with the styling in their demo.

5. WP Knowledgebase (FREE & PAID)

  • Mehh…also a no for me.
  • The designs seem out of date. The demo docs looks like it was built in 1980. And no surprise, the WP repo plugin hasn’t been updated in a year. At least its website featuring the pro version looks nice, though.
  • It sells itself as being full-featured, but I feel it’s neglected and not keeping up with the other powerhouse knowledge-base plugins.
  • I also didn’t like that the live search was kinda slow on the demo (compared to my BSF Docs).
]]>
https://wpjohnny.com/wordpress-documentation-plugins-fast-review/feed/ 3
Open-Source FILE MANAGER script comparison https://wpjohnny.com/file-manager-script-comparison/ https://wpjohnny.com/file-manager-script-comparison/#comments Wed, 01 Dec 2021 19:35:13 +0000 https://wpjohnny.com/?p=11386 My comparison of different (free) file manager scripts out there.

Useful if you want a “file manager” feature for your sites or web server (and your webhosting stack doesn’t have one). Or if you’re like me and building your own webhosting panel. I was just shopping around different scripts and these were what I found. Hope it helps ya!

Things I cared about:

  • Clean UI – minimal, don’t wanna see lines all over and waste of vertical space. Easy to navigate.
  • Shows useful info – file/folder sizes, permissions, ownership.
  • Full featured – especially archiving! It seems many didn’t have.
  • Customizable – for custom colors or branding, nice to have but not more important than other points above.

Best file managers so far…

  • TinyFileManager (demo) – best one IMO. Has all features and looks “good enough”. Minimal without wasting space.
  • FileBrowser (demo) – still too simple, UI takes too much space, and I don’t see archive options.
  • FileGator (demo) – too simple and missing critical features, like archiving. But some people may like its cleaner pretty-ness.
  • Chonky (demo) – too simple, not enough critical features.
]]>
https://wpjohnny.com/file-manager-script-comparison/feed/ 5
FlyingPress cache plugin – UNOFFICIAL GUIDE – UPDATED 2022 https://wpjohnny.com/flyingpress-cache-plugin-unofficial-guide/ https://wpjohnny.com/flyingpress-cache-plugin-unofficial-guide/#comments Mon, 29 Nov 2021 14:33:00 +0000 https://wpjohnny.com/?p=11555 My updated 2022 review and configuration guide for FlyingPress.

A freaken beloved plugin by superstar dev Gijo Varghese. I love this dude and everything he does. As has been mentioned only in 100 different ways in my original: Totally biased review of FlyingPress cache plugin

But let’s get an update today, shall we?

  • What’s changed?
  • What configuration is best?

Still haven’t purchase it? Get FlyingPress now.

Balanced Feature-sets

FlyingPress has one of the best feature-sets of any cache plugin. This is because all the right features AND NOTHING MORE. I’m not talking about a mediocre Goldilocks solution where it lacks advanced stuff. It has all the basic, intermediate, AND advanced features that you’d need. All the best and most essential ones…and I’d even say unique or uncommon in other cache plugins.

I’ll list my favorites:

  • Caching and granular purging – for when content changes affect more than one page.
  • Cache lifespan options (from 2hrs to 24hrs) – instead of silly “1 week” options.
  • Ignore query strings – to speed up referral clicks from Google, Facebook, etc.
  • Critical CSS (force include selectors) – to negate issues with broken CSS when using CCSS feature.
  • Lazy render HTML elements – freaken awesome for lazy loading entire page sections
  • Load scripts on user interaction – to prevent external asset loads from impacting your page load.
  • Self-host Google fonts – locally hosts your Google fonts…freaken awesome!!!!
  • Preload Critical Images – to keep ATF images loading faster so your site appears faster for users.
  • Placeholder Image for YouTube iFrames – love this feature and also that you can cache these images locally. Would’ve been nice if this feature worked for Vimeo as well….which is highly common for membership sites nowadays.
  • FlyingCDN – I don’t know how good/aggressive this is. I never tried it.

In case it isn’t obvious. You can tell Gijo’s cache plugin is a combination of the top cache plugins out there….the features and settings layout is very obviously a combination of LiteSpeed Cache, Swift, and WP Rocket. Basically, the 3 best cache plugins out there.

And his plugin very tastefully cherrypicks all the best features and discards the superfluous ones. I applaud him for that cuz it seems nowadays everyone wants to stuff their plugin full of features to justify charging more for it!

Best settings UI

Super easy to use. You don’t have to scroll endless or read through overly technical instructions. I do feel some settings could have benefitted from a link to a guide with settings recommendations or slightly more explanation for newbies. But really, it’s great. I love it.

Recommended configuration settings:

CACHE:

  • Cache Pages – enable this unless you’re diagnosing/developing.
    • Additional Auto Purge – default option “NONE” is fine unless you need to also clear other pages.
    • Cache Lifespan – most sites should have it on “NEVER”. Otherwise use an interval that matches your update intervals. For example if you update your site every day, then use the 24-hour option.
    • Exclude Pages from Caching – list any pages that have dynamic info based on different user or user session. For example…cart, account, checkout, or any page that you don’t want cached.
    • Ignore Query Strings – useful to avoid unnecessary page-caching for query strings. Some query strings cause content changes (e.g. language, currency, etc) and should be treated or cached as separate pages. Other query strings don’t cause content changes (e.g. FB/Google trackers, affiliate cookies) and are only used for tracking, so these should be ignored. I recommend placing these 3 on separate lines: fbclid, gclid, utm*, _ga.
  • Optimize for Logged in Users – caches logged-in users. I recommend leaving this off. I suppose you could use if your backend is sooooo slow but it’s likely to cause problems. Your best option in this case is to get better webhosting or get rid of slow plugins.

CSS:

  • Minify & Optimize CSS Files – I always prefer OFF but you can enable it safely if you really want. I would only use it on lean sites and not for heavy sites with tons of pages and CSS. Although it’s more impactful for larger sites with heavy CSS, it would also slow down your cache build.
  • Generate Critical and Used CSS – I hate CCSS and never use it. But nonetheless it’s here if you want to test and see if it makes your site feel faster. Or for pages core purposes.
    • Load Unused CSS – in order of least aggressive to more aggressive… async > on user interact > remove. Obviously, the first option is safest and best for newbie users. But if you got skills and time, I recommend testing each option starting from most aggressive to least aggressive. Start with “REMOVE” and then step down from it if you see things break.
    • Force Include Selectors – awesome feature to manually specify CSS selectors that were missing from CCSS. Useful complementary feature for those doing aggressive CCSS work.
  • Lazy Render HTML Elements – absolutely love this. Use this to lazy load entire slow-loading page sections. I’m not a fan of lazy-loading but will admit this can do wonders for page scores and overall page load times when working with super bloated sites. But you have to choose the right CSS selectors!

JS:

  • Minify JavaScript – I always prefer OFF but you can enable it safely if you really want. I would only use it on lean sites and not for heavy sites with tons of pages and JS. Although it’s more impactful for larger sites with heavy JS, it would also slow down your cache build.
  • Preload links – I prefer OFF. It’s fun when it works but can be troublesome for many sites. The function preloads links when users hover over it. But can cause high server usage if users hover over many links before clicking. This function may also mess with your cookie tracking (affiliates, etc).
  • Defer Javascript – IMO only useful for providing better page scores. But stupid for real-world use if it blocks essential JS from loading on-page items. Basically…you’d be improving page scores at the cost of making your site load slower. (Like I said, stupid.)
    • Defer Inline Javascript – useful if it doesn’t affect your visual page load. IMO, it’s safe…but be careful with it breaking ATF items/animations.
    • Exclude Scripts from Defer – very useful for big sites where you want some JS deferred but not all. Definitely what I would use for extreme-tuning.
  • Load Scripts on User Interaction – wonderful idea to delay loading of external scripts (that are likely not required for your visual page load). List the external request domains here.

FONT:

  • Optimize Google Fonts – hell yeah. Awesome feature to locally-load Google Fonts. I don’t know how Gijo automates all this as it’s common for a site to load fonts from many places…theme, pagebuilder, plugin, another plugin, etc. If I were you, I’d try to help this mechanism by loading fonts only from your theme…and then choosing “inherit” from all plugin font settings.
  • Display Fallback Fonts – not a fan of this as this would create the ugly FOUT effect.
  • Preload Fonts – only needed if your site loads a ton of fonts…which it shouldn’t be.

IMAGE:

  • Lazy Load Images – I prefer never lazy loading images because it makes your site appear to load slower.
    • Lazy Loading Method – try BROWSER NATIVE first and see if it’s good enough (visually and page score wise). The USING JAVASCRIPT method is more aggressive but also requires an extra JS request.
    • Exclude Above Fold Images from Lazy Load – clever feature. Set it to whatever you need. I noticed the default is “2” which makes sense. I assume he intended to exclude the logo and first image in the page/post. But other folks might have more.
    • Exclude Images from Lazy Load – also very clever. Useful for header images or any other images that noticeably impact your site’s visual load.
  • Add Responsive Images – you can use Gijo’s FlyingCDN or also do this through other plugins…like image optimization plugin. Or maybe your theme already does this as well.
  • Add Width and Height Attributes – very useful. Should ENABLE if you’re lazy-loading images.
  • Preload Critical Images – ENABLED!
  • Disable Emoji – can be ENABLED, since all browsers display emoji’s natively already.

IFRAME:

  • Lazy Load iFrames – I absolutely love this. But don’t use if your site auto-plays an important YouTube video right at the top of the page.
  • Use Placeholder Image for YouTube iFrames – absolutely useful for YouTube embeds that aren’t auto-played. ENABLED!
    • Self-host YouTube Placeholder – great idea, ENABLED!

CDN:

  • FlyingCDN > Get Started – I haven’t tried FlyingCDN to know how good it is. You tell me.
  • Enable CDN – enable it if you use a traditional CDN that comes with a CDN sub-domain. Do NOT use this if you only have Cloudflare.

DATABASE:

Not really useful IMO. I never mess with database stuff.

  • Post Revisions – I personally never delete revisions. But can be useful for big content sites.
  • Post Auto Drafts – I personally never delete drafts. But can be useful for big content sites.
  • Trashed Posts – delete if you know you don’t need them.
  • Spam Comments – saves you a click.
  • Trashed Comments – saves you a click.
  • Expired Transients – safe to do.
  • All Transients – safe to do.
  • Optimize Tables – safe to do.
  • Automatic Cleaning – I recommend leaving it on NEVER.
]]>
https://wpjohnny.com/flyingpress-cache-plugin-unofficial-guide/feed/ 11
LiteSpeed Cache WordPress Plugin – UNOFFICIAL GUIDE https://wpjohnny.com/litespeed-cache-wordpress-plugin-unofficial-guide/ https://wpjohnny.com/litespeed-cache-wordpress-plugin-unofficial-guide/#comments Fri, 26 Nov 2021 11:22:00 +0000 https://wpjohnny.com/?p=2192 I don’t know why it’s taken me this long to release a guide for one of my favorite cache plugins. Much of the internet and WordPress speed groups associate me with Swift Performance WordPress Cache Plugin but don’t be mislead, I am very much an equal fan of LiteSpeed web server and its complementing LiteSpeed Cache plugin!!!

Learn how to configure this advanced plugin for maximum speed and hassle-free caching!

EDITS:

  • APR 28, 2020 – updated to reflect new LSC version 3.x.
  • See if you can find my contributions in the changelog. 🙂
  • NOV 26, 2021 – updated to reflect new LSC version 4.x. I left some outdated options to make sure they are no longer used elsewhere.

Some background about LiteSpeed web servers:

  • LiteSpeed is the 4th most popular web-server behind Apache, NGINX and Microsoft IIS. It’s popular since it has the speed of NGINX but the compatibility of Apache.
  • You can run Apache software on it (like WHM/cPanel) and also use Apache configurations (like htaccess).
  • It’s popular both for small-time users on VPS as well as large commercial webhosts running off dedicated servers.
  • It gives great performance out of the box without much configuration.
  • Comes with native-software caching plugins for WordPress, Joomla, Drupal, Magento, and others.
  • Also comes with built-in security against brute-force attacks and also DDOS protection.

A little background about LiteSpeed cache plugin (aka “LSC”):

  • Fantastic FREE cache plugin that has one requirement—has to be used on LiteSpeed servers (which I absolutely love). On non-LS servers, you can use all of its features except caching (which is the main feature).
  • This is a true enterprise-grade caching plugin (incredible for both consumer use and enterprise use). I highly recommend it for any site with massive traffic (over 1 million monthly visitors) and/or many pages (over 1k pages).
  • LSC is updated really often. Their developers are extremely aggressive in fixing bugs and issues immediately. Their business model revolves around maintaining their server-clients so they never lag on any critical issues. Any bugs found is usually fixed in a matter of HOURS (not days, not weeks).
  • For those not running on LiteSpeed, I like Swift Performance cache plugin as my other favorite cache plugin. Rocket, Breeze, Comet Cache, Cache Enabler and Speed of Light are also all nice as well.

LiteSpeed Cache’s many features:

  • Server-side caching (using server to generate cached pages rather than slow PHP)
  • Object caching
  • Can cache private pages (logged-in users), and admin pages
  • Image optimization (yes, for free!)
  • CDN compatibility
  • Database optimizations
  • QUIC.CLOUD – sneaky new feature to serve cache pages via CDN for those not on LS servers!
  • And a ton more!

What I personally like about LiteSpeed Cache over other plugins:

  • Excellent for sites with massive traffic (my preferred choice)
  • Essential for sites with thousands of pages (my preferred choice)
  • Has object-caching
  • More granular and developer options for caching private content
  • It’s a true server-side cache plugin (faster than PHP-level ones)
  • Many advanced CSS/JS optimization options (if that’s your thing)
  • Free image optimization
  • Database optimizations (convert tables to InnoDB & view autoloads)
  • New QUIC.CLOUD service in the works

LS & LSC not only speeds up your site but decreases your server usage by a lot—improving performance while saving money!

QUICK Setup Guide

Here’s the 2-minute setup version for busy people. It doesn’t take much to get record-breaking results.

(NOTE: I like my configurations so much better than the default LiteSpeed Cache settings. For full explanation of why I chose these settings, see my DETAILED setup guide below.)

  1. Install LiteSpeed WordPress Cache Plugin (free). Then go to Settings from admin side-panel.
  2. General > General > Request Domain Key – do this if you plan to use QUIC.cloud services or you want LiteSpeed caching features on a non-LiteSpeed server. For those using LScache on a LiteSpeed server, you can continue without QUIC.cloud integration.
  3. General > General > Guest Mode – OFF.
  4. Cache > Cache > Enable Cache – turn it ON. If you’re not on LS server, sign up for QUIC.cloud.
  5. Cache > Cache Logged-in Users – OFF.
  6. Cache > Purge > Serve Stale – OFF.
  7. Cache > Drop Query String – type the following 3 entries on a separate line (fbclid, gclid, utm*).
  8. Cache > Browser > Browser Cache – ON.
  9. Cache > WooCommerce > Privately Cache Cart – OFF
  10. CDN > CDN Settings > QUIC.cloud CDN – turn on if you want to use QC CDN.
  11. CDN > CDN Settings > Cloudflare API (Cloudflare-users only) – enter email, global API key, and domain.
  12. Page optimization > CSS Settings > Generate Critical CSS – OFF.
  13. Page optimization > CSS Settings > Inline CSS Async Lib – OFF.
  14. Page optimization > Optimization Settings > Remove WordPress Emoji – ON. (Modern browsers already support emojis natively.)
  15. Hit [SAVE CHANGES] and you’re flying at light-speed!

Got issues?

  • No need to exclude or worry about anything, LSC is fantastic out of the box!
  • Are you really so lazy? Here’s my default LSC config if you want. (But you’ll still need to do steps 2, 8, 9 above.)

DETAILED Setup Guide

STEP #1 – Install LiteSpeed WordPress Cache Plugin (LSWCP)

Requirements:

  • You must be running on LiteSpeed webserver OR QUIC.cloud service to use their caching mechanism. For best results, please be on a LiteSpeed server!
  • If you’re purchasing webhosting from a 3rd-party service, make sure they’re running on LiteSpeed server.
  • If you’re managing your own web-server, make sure you configured the cache roots for LS and also enable crawler function.

STEP #2 – Configure LiteSpeed Cache plugin

Go to settings from admin side-panel. Click on LiteSpeed Cache > General.

I’ve gone through all the settings and leave my detailed thoughts on them below. Anything I forget to mention means I left it at default settings. You can also view official LiteSpeed Cache documentation.

General > General Settings:

  • Automatically Upgrade – OFF is safest, but honestly you could totally put it to ON. LSC is built freaken solid; updates have never broken any of my sites (unlike other consumer-grade cache plugins like Rocket or Swift). LSC is updated so often it might be less annoying if you just allow automatic upgrades or else you’ll see update nag screens every week (haha). One little caveat: I’ve seen occasional updates creating issues with their Image Optimization feature, so you might want to avoid automatic updates if your site heavily relies on this feature.
  • Domain Key – you can request a key if you plan to use any QUIC.cloud features. It’s basically a big CDN but with many extra features like image optimization (compression, placeholders), generate critical css, page caching at the edge. I only use it for image compression for sites not using ShortPixel. I don’t need the other stuff. If you’re using LSC on a non-LiteSpeed server, then you’ll need QUIC.cloud to benefit from their caching capability.
  • Guest Mode > OFF. I don’t suggest using this. It can create problems if you don’t test well. Safer is OFF. But if you want so that page scores or new users to never hit a cold cache, you can enable this. Again…I don’t recommend it. And you don’t need it.
  • Server IP > put in your web server IP so LiteSpeed cloud services can call/cache your site quicker. Also reduces the crawl overhead, especially if you have over 1k pages.
  • Notifications – OFF for me.

General > Tuning:

  • Guest Mode User Agents – automatically displays guest mode cache for these agents. You can add more to improve performance for certain agents. Or also remove agents from here.
  • Guest Mode IPs – I imagine these are IP’s of page score servers. You can add more if you know what you’re doing.

Cache > Cache:

  • Enable Cache – ON (duh!)
  • Cache Logged-in Users – OFF for most folks. Only practical if have very few logged-in users, AND they all see different info, AND they visit the site and log in often! Even then, I prefer to leave this off just in case of potential conflicts. You definitely shouldn’t use this if you have many users; it would create too many cached pages and hardly any will be used.
  • Cache Commenters – doesn’t have much effect either way, but I prefer OFF.
  • Cache REST API – won’t apply to most of you. Leave it ON, but turn off if any functions break.
  • Cache Login Page – ON is faster since bots often attack the login page. Turn OFF if it breaks your login page (design, function, captcha). For those changing wp-login url, don’t do that! LiteSpeed servers natively protect admin urls. Much better performance to let LS shut down brute force attacks than to do it with slow security plugins!
  • Cache favicon.ico – ON.
  • Cache PHP Resources – ON. Really helps with poorly-coded themes/plugins.
  • Cache Mobile – OFF for most sites! Don’t turn on unless you have AMP or mobile-specific design/content. Sites with responsive design doesn’t mean you need this!
  • List of Mobile User Agents – leave it alone. It’s only used if “Cache Mobile” is on. Can add other devices here if you feel some are missing.
  • Private Cached URIs – never used. It’s for pages that need to be cached separately for each visitor (assuming they each see different content). A good example would be user-account pages, but this caching isn’t necessary if your users don’t log in that much. Besides, they’re users already so they probably don’t mind a tiny bit of extra load time. I also don’t recommend since your server spends extra time building cache and users might not be back anytime soon to take advantage.
  • Force Public Cache URIs – pages listed here will be cached. Useful for excluding specific pages from wide-reaching exclusion rules based on string.
  • Drop Query String – incredibly useful to avoid unnecessary page-caching for some query strings. Some query strings cause content changes (e.g. language, currency, etc) and should be cached as separate pages. Other query strings don’t cause content changes (e.g. FB/Google trackers, affiliate cookies) and are only used for tracking, so these should be listed. I recommend placing these 3 on separate lines: fbclid, gclid, utm*, _ga.

Cache > TTL:

Safer to leave these all alone. Some can safely be raised if you never ever ever update your site.

  • Default Public Cache TTL – don’t touch.
  • Default Private Cache TTL – don’t touch.
  • Default Front Page TTL – don’t touch.
  • Default Feed TTL – don’t touch.
  • Default REST TTL – don’t touch.
  • Default HTTP STATUS 404 Page TTL – don’t touch.
  • Default HTTP STATUS 403 Page TTL – don’t touch.
  • Default HTTP STATUS 500 Page TTL – don’t touch.

Cache > Purge:

I never mess with any of these.

  • Purge All On Upgrade – safest is to leave this ON.
  • Purge Stale – I love the idea behind this (reducing server load during cache purge) but it shouldn’t be used for 98% of sites out there unless you know what you’re doing. Leave it OFF.
  • Auto Purge Rules For Publish/Update – default settings are fine. You can uncheck certain options if you know they never get updated when new posts are made. Or you can also check “All pages” to be sure that everything gets purged upon new posts or updates. If you have widgets on blog posts that get new comments regularly, “All pages” would be a good idea.
  • Serve Stale – OFF is safest so your site never displays outdated content. But if changes are very minimal and you’re constantly bombarded with heavy traffic, this is a nice way
  • Scheduled Purge URLs – used to purge specific URL’s at a specific time.
  • Scheduled Purge Time – exact time used for scheduled purge. This feature is for people not using auto-purge, or have content generated from external source that doesn’t trigger auto-purge.
  • Purge All Hooks – these listed hooks trigger a site purge whenever certain actions are made. The default ones are should be left alone as they directly affect the site design. You can add other hooks from other plugins as well if they affect your site design. (If you don’t know how to add hooks, just manually purge cache whenever you make site changes that affect the frontend.)

Cache > Excludes:

I almost never use any of these. They only thing useful here for me is excluding certain pages from cache. All the other stuff is probably only for diagnostic purposes.

  • Do Not Cache URIs – used to exclude pages from cache. (I recommend listing pages that have contact forms, logged-in pages, or any checkouts. Although WooCommerce checkout is already excluded by default.)
  • Do Not Cache Query Strings – exclude certain query strings from cache. Good for certain use cases where some query string pages refresh content often.
  • Do No Cache Categories – exclude categories from cache.
  • Do Not Cache Tags – exclude tags from cache.
  • Do Not Cache Cookies – exclude cookies.
  • Do Not Cache User Agents – exclude user agents.
  • Do Not Cache Roles – exclude specific user roles from cache. Not necessary unless you’re actually caching private pages or logged-in users.

Cache > ESI:

I love the advanced ESI function in that it allows you to benefit from cache even in (dynamic) pages that shouldn’t be cached. It’s an incredible feature and usually only configurable from the server and never from a plugin…but LiteSpeed is just special like that.

You can convert any functions or content, widgets to ESI and it will allow you to decide specifically how to cache it: privately, publicly with its own TTL (good for shorter TTL content), or not cached at all (remaining completely dynamic). In my few test cases, I found that the function worked perfectly BUT still has some issues for any functions that rely on their own specific triggers and JS functions and such. Test carefully and consult the documentation if you decide to use this.

  • Enable ESI – I leave it OFF as I don’t use it much.
  • Cache Admin Bar – ON seems safe and logical.
  • Cache Comment Form – ON seems safe and logical.
  • ESI Nonces – for certain plugins (using nonce security functions) to work seamlessly with private cache.
  • Vary Group – don’t mess with unless you understand it.

Cache > Object:

Object caching usually isn’t enabled on servers unless A) your webhost specifically allows it or B) it’s your server and you have Memcache or Redis enabled.

  • Object Cache – OFF is safe for most folks. You can turn ON if 1) you have memcache or redis installed, 2) you have lots of dynamic content or database queries.
  • Method – Redis is preferred over Memcache.
  • Host – should be localhost unless it has another address (probably slower and less ideal to have it on an external server).
  • Port – default port should be fine unless you installed on custom port.
  • Default Object Lifetime – default of 360 seconds is safe but you can increase if your dynamic content doesn’t get refreshed that fast.
  • Username – usually not needed unless you’re using the SASL-secured fork version of memcache.
  • Password – usually not needed.
  • Redis Database ID – usually left alone unless you want to use different Redis database ID to improve performance on clogged up Redis databases.
  • Global Groups – I don’t touch it. You can add more if needed.
  • Do Not Cache Groups – I don’t touch it. You can add more if needed.
  • Persistent Connection – ON is safest.
  • Cache Wp-Admin – I prefer this OFF unless you’re actually using object cache to speed up backend. I usually recommend upgrading server if your backend is so slow.
  • Store Transients – should be left ON.
  • As for “Persistent Connection”, “Cache WP-Admin”, or “Store Transients”…you can enable or disable these depending on your needs. Safer option is to have all of them off or don’t even use object cache in the first place if you don’t know what you’re doing. Caching WP-admin is tempting considering that the admin area can run slow on heavy sites, but you risk showing outdated information.

Cache > Browser:

This is the same function as those HTML expiry lines in your htaccess or that some other plugins do.

  • Browser Cache – I like this ON.
  • Browser Cache TTL – anywhere from 2592000 seconds (which is 30 days) to 31557600 (1 year) is fine to me.

Cache – Advanced:

  • Check Advanced Cache – usually checked unless you’re using multiple cache plugins together, which I highly don’t recommend. In case you ARE using LSC alongside another cache plugin, you can leave this checked or unchecked depending on which plugin needs or intends to use the advanced-cache.php file.
  • Login Cookie – only needed if you have multiple sites sharing the same domain name (one in sub-directory). In this, one site needs to enter a unique lookie cookie identifier so LSC doesn’t mix up which visitors are logged in to which site.
  • Improve HTTP/HTTPS Compatibility – should be OFF and you should not be having mixed content anyway as that affects your SSL status.
  • Instant Click – I leave it OFF. It’s fun when it works but can be troublesome for many sites. The function preloads links when users hover over it. But can cause high server usage if users hover over many links before clicking. This function may also mess with your cookie tracking (affiliates, etc).

Cache > WooCommerce:

  • Product Update Interval – the 1st option is safe. Second is better, and third option is best performance. The last is safest. Ultimately, you can decide based on whether or not A) you actually even track stock quantity, and B) show different store notice on category or product pages based on stock status.
  • Use Front Page TTL for the Shop Page – ON makes sense.
  • Privately Cache Cart – OFF. I don’t like how it’s ON by default and doesn’t make sense. This feature sometimes caused mixed cart sessions for me. I think caching non-empty carts are a waste as potential buyers don’t hang around for too long anyway. Either they buy or they don’t. And if they plan to buy, I think they can be patient for an extra second.

CDN > CDN Settings:

  • QUIC.cloud CDN – I think everyone should register for a free QUIC.cloud account. Whether you should enable it is another matter. I personally don’t. QC has these features: HTML-caching on CDN (necessary if your server is slow and/or you don’t have LiteSpeed server), image compression (if you want to use LSC compression instead of ShortPixel/etc), generate critical CSS (I don’t recommend CCSS), CDN for static assets (if you don’t already use another CDN service), and some others.
  • Use CDN Mapping – turn ON if using CDN. (Folks on Cloudflare or QC should ignore this.)
  • CDN URL – put in the CDN URL and which file types to include. You can add multiple CDN’s (such as if you use one service for images, but another for videos). If using multiple CDN’s for the same assets, it will randomly choose.
  • HTML Attribute To Replace – I don’t touch it. Add more if needed.
  • Original URLs – you normally don’t have to change this unless your site spans multiple URL’s. For example some multi-sites or multi-lingual sites will use multiple domains or subdomains.
  • Included Directories – the defaults should be enough but feel free to add other directories that you want to include.
  • Exclude Path – used to exclude any directories sitting within the included directories above.
  • Load JQuery Remotely – I leave it OFF but you’re welcome to see if the other options make any difference.
  • Cloudflare API – for Cloudflare-users only. Enter email, global API key, and domain. This way, LSC purges Cloudflare cache when your LSC cache purges.

CDN > Manage:

  • Cloudflare – I don’t mess with.
  • Development – if you want to conveniently disable Cloudflare without having to log in and deal with 2-FA security (haha).
  • Cloudflare Cache – convenient way to purge only Cloudflare cache (and not your LSC cache), such as when you update some images or other assets and want the change to show immediately.

Image Optimization > Image Optimization Summary:

LiteSpeed’s awesome free image compression service just got even easier to use! It’s really incredible. So easy to use. All the features of the top image compression plugins out there. And LiteSpeed Cache does it all for FREE! Yikes!

  • Gather Image Data / Send Optimization Request – click this to request free image compression.
  • Pull Images – when your image compression is ready, click this to download them to your site. (Your original images will be put into a backup directory; I assume somewhere in your “wp-content/uploads”.)
  • Clean Up Unfinished Data – click this when some compression processes get stuck and never finish. then you can request more.
  • Calculate Backups Disk Space – handy tool tells you how big the backup folder. You ought to download them from your server to your home computer and delete off the server to save space.
  • Remove Original Image Backups – do this only after you backup using the previous option.
  • Rescan New Thumbnails – if you made changes to existing images, click this so LSC is aware of them.
  • Use Original Files & Use Optimized Files – how cool! You can switch back and forth to see the difference. Or if you want to revert quickly. If you want to revert specific images, you do it from your media library.
  • Destroy All Optimization Data – in case you hate LSC’s compression and want your original images back.

Image Optimization > Image Optimization Settings:

  • Auto Request Cron – turn it ON if you want your site to automatically request optimization for all newly added images.
  • Auto Pull Cron – turn it ON if you want to automatically download optimized images to your site. I assume this option and the previous should be the same (whether ON or OFF).
  • Optimize Original Images – probably ON.
  • Remove Original Backups – OFF unless you’re 100% sure you like LSC’s image optimization quality. Enabling this automatically deletes your originals after optimizing (and you can’t revert).
  • Optimize WebP Versions – I leave it OFF, but feel free to play with it if you got lots of time.
  • Optimize Losslessly – safe way to optimize without any quality loss but file-size difference won’t be much either. Probably only useful if you want to clean out info and stuff. Really large images do get some benefit, though.
  • Preserve EXIF data – OFF, unless you need that info or want to display it on frontend via plugin.
  • Create WebP Versions – I don’t personally use WebP but it is indeed better compression and smaller file-sizes than JPEG/PNG. Turn it ON if you want. If there’s any drawback…it’s maybe that your site will now generate so much more images and take up more space….or that your site images aren’t as easily downloaded and viewed from other devices.
  • Image WebP Replacement – OFF is default. I assume you should turn it ON if you’re creating WebP images as well.
  • WebP Attribute To Replace – nice way to control which images will be replaced with WebP format. This is another way to tackle the server storage issue if you want to benefit from WebP only for some images. (Like maybe only really large images, and maybe if they’re using transparency?)
  • WebP For Extra srcset – nice way to enable WebP image replacements for images not managed through WordPress media library.
  • WordPress Image Quality Control – use the default 82, or test higher or lower as you like.

Page Optimization > CSS Settings:

Lots of fun options here that many of you will recognize from other caching/optimization plugins. My advice is to be careful! Most of your caching issues will result from choices made on this page here.

Most of you should really not be minifying or combining for a few reasons. Minifying creates extra work for the server and slows the initial visit. It’s great if you have tons of visitors. But otherwise, don’t minify from this plugin…it’s better to do it from Cloudflare or other CDN which already handles it on their servers at the DNS level. If your site is lean already, minify won’t have much effect anyway. Combining CSS or JS really shouldn’t be done because it often causes problems and doesn’t noticeably speed up the site anyway! (You can read why not to combine CSS/JS.)

  • CSS Minify – OFF. Use Cloudflare or from your CDN if you want it.
  • CSS Combine – OFF is safest. If you want to enable, test carefully!
  • Generate UCSS – it either works amazing, or it breaks your site. Test carefully. I prefer off as my sites don’t have unused CSS bloat.
  • UCSS Inline – I don’t use UCSS so I prefer off. You may have to test. I imagine, it’s better/safer for smaller sites than big ones.
  • CSS Combine External and Inline – can put to ON if you’re doing CSS Combine (which I never do). Sounds like a good idea.
  • Load CSS Asynchronously – leave this OFF or else you’ll get ugly FOUC issue. Sure, it helps your Pingdom/GTmetrix score but hurts UX.
  • CCSS Per URL – ON is safer but eats up a ton of server. Clean-coded sites can just have this OFF. Test carefully either way.
  • Generate Critical CSS – OFF! I don’t recommend critical CSS.
  • Generate Critical CSS In Background – leave ON, it’s dependent on previous setting.
  • Inline CSS Async Lib – OFF! True CSS should be render-blocking or else you’ll get FOUC issues.
  • Font Display Optimization – in my UI point of view, you should only use Default or Block. Never ever do Swap or Fallback, as they cause FOUT issues!

Page Optimization > JS Settings:

  • JS Minify – OFF. Use Cloudflare or from your CDN if you want it.
  • JS Combine – OFF is safest. If you want to enable, test carefully!
  • JS Combine External and Inline – ON seems like a great idea if you’re using JS Combine feature.
  • Load JS Deferred – OFF is safest. Some JS is used for critical items above the fold and should not be deferred.
  • Load Inline JS – DEFAULT is safest. Deferred or delaying until after DOM load may improve page scores or help other JS optimizations work properly….but it can also alter site design or function.
  • Exclude JQuery – ON is safest. You can turn OFF (allowing JS optimizations on jQuery library) if you’ve tested it carefully.

Page Optimization > HTML Settings:

  • HTML Minify – OFF. Do it from Cloudflare or CDN if you want it.
  • DNS Prefetch – clever tactic of preloading DNS for external domains, so they load faster when you click on URLs to them or when your site loads external assets coming from them. Don’t know what to put? Simply open your site in Chrome Incognito > Inspect > Sources…now type all the external domain sources that you see. All the google analytics and font calls, social media stuff, chat service, CDN, etc.
  • DNS Prefetch – specify external domains from which your site calls external assets and this feature prefetches the DNS so these external assets load faster. For example, my site has MailerLite and Google Analytics domains specified in here.
  • HTML Lazy Load Selectors – clever option to lazy load entire sections of your web page. This helps page scores and possibly also your page load. I really like this tactic for bloated sites. Can start with common sections and then work your way to page-specific elements on your busier pages (like home page).
  • Remove Comments – OFF is safer/faster for me. Doesn’t make much speed difference either way. It’s there mainly to help you improve Pingdom/GTmetrix vanity score.
  • Remove Query Strings – no speed improvement when enabled IMO (most caching can handle query strings now). Most people enable it to get better test scores. I recommend to leave it OFF if you’re still adjusting your design, otherwise you’ll run into stale CSS/JS issue.
  • Load Google Fonts Asynchronously – test carefully. I haven’t noticed much difference either way as I suspect the most common Google Fonts are already cached on your browser from other sites you visit.
  • Remove Google Fonts – I’m a little confused why this option exists. From the way LS documentation explains it, it’s for those already locally-loading fonts and want to make sure to avoid any external Google font calls. But then again, I think anybody skilled enough to load fonts locally would be easily able to dequeue the Google font calls.
  • Remove WordPress Emoji – safe to turn ON. It removes one tiny emoji JS call, which isn’t needed nowadays as modern browsers can render emojis natively.
  • Remove Noscript Tags – safe to turn ON unless your site is often loaded by older browsers or ones without JS support (like maybe on a device?).

Page Optimization > Media Settings:

  • Lazy Load Images – loads images only when browser scrolls to them. I prefer this OFF as I hate lazyload.
  • Basic Image Placeholder – what users see before images load.
  • Responsive Placeholder – I recommend ON if you’re lazy loading images. It reserves the space for images so that the layout doesn’t jump around when users scroll down. Then again, you might like this off if your website relies on mis-clicked ads to make money. 😉
  • Responsive Placeholder SVG – the SVG used as your responsive placeholder.
  • Responsive Placeholder Color – probably grey or something not noisy. Just enough to let users know something will appear.
  • LQIP Cloud Generator – advanced placeholder technology showing a very low quality version of your image which is soon replaced by the high quality version. It’s great for helping image-heavy sites appear to load quick and decreasing the distraction of lazy-loaded images.
  • LQIP Quality – use default setting of 4 or test other settings.
  • LQUIP Minimum Dimensions – clever feature to avoid generating LQUIP for super small images that aren’t noticeable.
  • Generate LQIP In Background – you’ll have to test it with it ON vs OFF on uncached pages to see it feels. ON is the safer option, probably.
  • Lazy Load Iframes – great idea if you have iframes or video embeds that aren’t used above the fold.
  • Add Missing Sizes – ON is a smart idea if you’re using lazy load features.
  • Inline Lazy Load Images Library – I leave it OFF (better performance this way, I feel). Can turn ON if you want to remove another HTTP request for page score purposes or if your site design is super lean.

Page Optimization > Media Excludes:

  • Lazy Load Image Excludes – exclude any images from lazy-load. Probably a good idea for any ATF-images or ones on pages that are constantly skimmed or quick-scrolled by users.
  • Lazy Load Image Class Name Excludes – another clever way to exclude images from lazy-load by listing their CSS class.
  • Lazy Load Image Parent Class Name Excludes – clever way to exclude images that don’t have a CSS class assigned. Instead, you exclude by their parent class.
  • Lazy Load Iframe Class Name Excludes – really awesome way to exclude certain videos from lazy load (such as the ones used near the top of your site). Or ones that take longer to load and you don’t want to delay when it starts loading.
  • Lazy Load Iframe Parent Class Name Excludes – convenient way to exclude iframes that don’t have a CSS class assigned.
  • Lazy Load URI Excludes – awesome way to disable lazy load functions on certain pages. For example like a landing page where you want images and videos to load ASAP.
  • LQIP Excludes – don’t generate LQIP for these images, ensuring they always appear in high quality.

Page Optimization > Discussion Settings:

  • Gravatar Cache – great feature for sites with tons of comments. But not necessary (and not recommended IMO) if most of your posts don’t have many comments and/or don’t have much traffic.
  • Gravatar Cache Cron – I imagine this should be ON if you’re caching Gravatar.
  • Gravatar Cache TTL – default of 1 week is fine but I’d probably set something like 3 months. I feel people almost never update their Gravatar.

Page Optimization > Tuning Settings:

  • CSS Excludes – list all CSS files you don’t want to be minified or combined. You can list their full string name (e.g. “elementor-builder.css”) or partial string name (e.g. “elementor”).
  • JS Excludes – list all JS files you don’t want minified or combined. You can list their full string name (e.g. “elementor-builder.js”) or partial string name (e.g. “elementor”).
  • UCSS Whitelist – makes sure these CSS selectors are always included in UCSS. (As that feature sometimes removes necessary CSS.)
  • UCSS URI Excludes – always exclude these CSS selectors from UCSS.
  • Separate CCSS Cache Post Types – if using critical CSS, you should list every post type that has its own page design and CSS! (Good examples would be WooCommerce category/product pages, pages with pricing table, etc.)
  • Separate CCSS Cache URIs – used in similar manner as previous option but for single URLs. Probably used for any specific page that uses different CSS from other pages.
  • Critical CSS Rules – if using “Load CSS asynchronously” feature, copy paste any critical CSS rules here to make sure they load first.
  • JS Deferred Excludes – if using “Load JS Deferred” feature, you can exclude any specific JS here to keep them loading as they normally would. (Good idea for any JS needed to render critical content.)
  • Guest Most JS Excludes – exclude certain JS from optimization for guest mode. Useful in case guest mode optimizations are affecting appearance or functionality.
  • URI Excludes – list any page URL’s here that you want excluded from any page optimizations. Good idea to list pages that have broken design or functions caused by those optimizations.
  • Optimize for Guests Only – ON looks like the proper default option. You would only set to OFF if you had guest users that logged-in? (Which seems unlikely.)
  • Role Excludes – can exclude page optimizations for these logged-in users. You’ll probably never use this except for certain testing purposes.
  • Combined CSS Priority – generally OFF and doesn’t apply unless you have both COMBINED CSS and UNCOMBINED CSS (created by excluding some CSS from combining). This feature loads the combined CSS before the uncombined CSS instead of the default setting (which is opposite). It’s up to you to know which scenario best fits your needs. Generally, we want critical CSS to load first and other CSS to load last. But other times, we have overlapping layers of CSS and want to make sure the correct final layer loads last to avoid any unwanted styles. It all depends on your strategy of deciding whether to have both combined and uncombined CSS, then deciding which CSS should be combined or not, and then finally whether combined CSS or uncombined CSS should load first.
  • Combined JS Priority – same idea as the function up above but now for JS.
  • Max Combined File Size – I’m sure there’s probably a nuance to what this should be set at. Personally, I don’t like combining CSS or JS at all. But if you had to, it’s safest to combine it all to one file. But if you want to take a step further, you could decrease the max size and chop it into smaller chunks to see if your browser can chew through it faster. I imagine it might help for slower devices or slower internet speeds.

Database > Manage:

Really incredible database cleaning and optimization tools in here. Some that are even sold as separate plugins by other developers. I love that LiteSpeed implemented my requests. <3

  • Clean All – does all optimizations listed.
  • Post Revisions – deletes all post revisions.
  • Auto Drafts – some people check before deleting.
  • Trashed Posts – some people check before deleting.
  • Spam Comments – some people check before deleting.
  • Trashed Comments – self-explanatory.
  • Trackbacks/Pingbacks – self-explanatory.
  • Expired Transients – safe to delete.
  • All Transients – safe to delete.
  • Optimize Tables – safe to do.
  • Clean CSS/JS Optimizer – safe to do.
  • Database Table Engine Converter > Convert to InnoDB – yes, do it for all tables! InnoDB is better MySQL table format than the older MyISAM.
  • Database Summary – I love this for seeing what autoloads I have on the site. You should try to keep the total autoloads below 1mb, best is below 500kb.

Database > DB Optimization Settings:

  • Revisions Max Number – set a limit if your database is too big and you have many posts. I leave this at 0 as my sites are lean. But other sites can do something like 10-50 to be conservative.
  • Revisions Max Age – can set it to auto-delete revisions after a certain time. I personally think this is scary as sometimes one of your posts has an issue and you don’t notice until a long time after.

Crawler > Summary:

This section doesn’t have much effect unless you have your own server, as most LiteSpeed webhosts won’t enable the crawler option (since it can hog resources). You usually don’t have to mess with anything here except for if you want the crawler to pre-cache more aggressively. And wow, so many aggressive options! You can increase crawl intervals or thread-use, even precrawl for logged-in users and cookies, etc.

  • Summary > Reset position – reset it if you want it to start over from the beginning, like maybe after a cache purge.
  • Summary > Manually run – manually restarts the crawler instead of waiting till the next cron job run.
  • Summary > Show crawler status – check and see if it’s running/enabled on your server.
  • Map > Clean Crawler Map – a crawler map is like a sitemap for your crawler. You can clean it whenever you want to generate a new one (like after new pages are added).
  • Map > Refresh Crawler Map – probably a good idea to refresh this after site changes or after you reset “cleaned” the crawler map. Then you can see which pages are crawled or not, also add to the blacklist to prevent pages from being auto-crawled.
  • Blacklist > Empty blacklist – clear out your blacklist if needed.

Crawler > General Settings:

  • Crawler – enable it for auto cache build. Uses resources so maybe not a good idea if this is a busy server with many sites that aren’t yours. Of course, if it’s your server and running your sites then you should enable it to use as many resources as you can!
  • Delay – the default is fine. This only needs adjusting if you’ve got over 30k pages throughout the entire server.
  • Run Duration – default value is fine but you can increase it for priority sites.
  • Interval Between Runs – default value is fine but you can decrease it for priority sites and/or server is often idle.
  • Crawl Interval – recommended value of 302400 (3.5 days) is totally fine but you can push it up to 86400 (1 day) if your site is small (less than 3k pages) or you have your own server.
  • Threads – default value of 3 is fine. Setting higher crawls it faster but doesn’t matter much unless you have at least a couple hundred pages. It also uses more CPU so don’t set it high if you have a busy server with many sites.
  • Timeout – 30 seconds is a safe default. Fast sites can go with less (10 seconds?). Bloated sites would need more, maybe 60 seconds tops.
  • Server Load Limit – recommended value of 1 is a nice safe limit. But I much prefer 2 or 3 if have your own server.

Crawler > Simulation Settings:

This area is only needed if you want to precrawl pages for logged-in users. (The regular crawl function already covers public non-logged-in users.)

  • Role Simulation – precache pages for specific users. Talk about aggressive!
  • Cookie Simulation – pre-crawl for specific cookies.

Crawler > Sitemap Settings:

  • Custom Sitemap – LSC can precrawl your site automatically but I like entering a sitemap for large sites or ones with many post types, to make sure it doesn’t waste time on non-important urls. You can use your own sitemap like one generated from XML sitemap plugin. Or maybe if you want to use a separate crawler sitemap (such as to exclude certain items from pre-crawl).
  • Drop Domain from Sitemap – leave it ON unless you have multiple domains in the sitemap (such as for multisite, multi-lingual).
  • Include Posts/Pages/Cats/Tags – usually all should be on, unless you want to exclude certain low-traffic items from pre-crawling.
  • Exclude Custom Post Types – copy over the items in the “Available Custom Post Type” box that you don’t want included in your sitemap. You should be excluding all CPT’s that aren’t normally browsed through their own frontend URL. For example, if you have “faqs” but they’re usually browsed through pages, then you can exclude them here. The idea is to exclude as many CPT’s from your sitemap as possible so crawlers (like LSC or Google) can focus on your higher-traffic content.
  • Order links by – “Date, descending” makes the most sense to me unless you live in some alternate reality where your older content is worth more, or that your content is placed in alphabetical hierarchy.

Toolbox > Purge:

I love this area dedicated to granular purge options; it’s great for selectively purging things so you don’t overwhelm the server for high-traffic sites (since thousands of users will hit uncached pages). But I never use it for most sites. I just purge everything all at once.

  • All options are self-explanatory – I don’t really have to explain them, do I?
  • Notable ones are probably the pages, CSS/JS, and Opcode cache. These are most common in day-to-day purging for giant sites.
  • Extra note: if you plan to configure your site for only manual purging, don’t forget to disable the auto-purge rules in the cache section!

Toolbox > Import/Export:

This area is good for testing and saving different configurations you had. Do I use it? No because I’ve configured LSC on so many hundreds of sites that I can do it in my sleep.

One question I’m asked a lot is if you can save one global config and import it across all your sites? You can but only if those configured settings don’t have site-specific configurations. I never use it as I prefer to set each site manually just to be sure.

  • Export – saves all settings to a convenient LSC settings file.
  • Import – imports settings from a LSC settings file. Here’s my default LSC configs if you want.
  • Reset Settings – resets all LSC settings to default.

Toolbox > Edit .htaccess:

Love this feature. So handy to quickly view/edit htaccess without having to get server access or FTP. Really useful for troubleshooting things or when you just want to clean up or edit htaccess.

  • .htaccess Path Settings – the auto detect should work fine. Specifying the path is usually not necessary unless you have your site in some non-standard directory or using non-standard htaccess file name.
  • Current .htaccess Contents – use it safely!

Toolbox > Heartbeat Control:

Before you go around messing with WordPress heartbeat controls, please understand what it’s used for. The WordPress heartbeat is the AJAX call that uses the “/wp-admin/admin-ajax.php” file. Most sites shouldn’t ever have to optimize this unless it causes high CPU usage (seen from slow admin-ajax.php calls in your speed test waterfalls).

In the event that you need to optimize this, be careful how you do it. You shouldn’t completely disable unless it was unnecessarily called from some bloated plugin. Usually, we optimize by raising the interval in places where it’s used and disabling it from the pages where it’s not used.

The 2 most common uses cases for heartbeat are A) auto-saving posts in your editor and B) updating WooCommerce cart count as people add/remove products from your cart in WooCommerce. There are many other uses cases as well but will vary from site-to-site depending on the plugins used. Just be careful before disabling!

  • Frontend Heartbeat Control – turn it ON if you want to change the interval.
  • Frontend Heartbeat TTL – can double to 120 seconds if it’s still used on frontend or set to 0 to disable.
  • Backend Heart Control – turn it ON if you want to change the interval.
  • Backend Heartbeat TTL – usually the backend is a safe place to completely disable the heartbeat as most functions don’t rely on it there.
  • Editor Heartbeat – I highly recommend leaving this OFF as WordPress uses it to auto-save your work. Should your internet ever cut out or you accidentally close the page, etc…your work will be saved.
  • Editor Heartbeat TTL – you can increase the interval if you have so many writers on the site at the same time, but don’t ever disable this!

Toolbox > Report:

  • Install DoLogin Security – useful plugin that gives other people instant WP-admin access using a temporary link (instead of login user/pass).
  • LiteSpeed Report – useful for sending to official LS support.
  • Passwordless Link – generates auto-login link to WP-admin. Requires the DoLogin Security plugin mentioned above.
  • Notes – put whatever extra useful info. Like what you did, what you changed, where you noticed the issue and how to recreate it.
  • Send to LiteSpeed – sends the report to LiteSpeed. Then you reference the report number in the support forum or anywhere that you’re making a support request.

Toolbox > Debug:

You shouldn’t be changing anything in here unless you’re debugging issues with your site. Honestly, I’ve never had to use it as most issues related to caching have been easy to fix for me.

  • Disable All Features – turn ON only if you’re debugging issues.
  • Debug Log – turn ON only when debugging. Use the Admin IP option if you have so much traffic that your debug logs get too big.
  • Admin IPs – enter your external IP to run debug actions from your browser.
  • Debug Level – choose Basic or Advanced depending on your needs.
  • Log File Size Limit – increase only if you need it.
  • Log Cookies – turn ON if needed.
  • Collapse Query Strings – turn ON if needed.
  • Debug URI Includes – logs on the pages listed. Useful if you’re only having issues on a certain page.
  • Debug URI Excludes – exclude pages from your debug log.

Toolbox > Log View:

  • [D] Clear Log – clears the log.
  • Clear Log – clears the log

Toolbox > Beta Test:

This is a really useful option if you want to test different versions of LSC (preferably on a staging site) and switch back and forth between BETA and STABLE versions. I imagine it could also be useful for rolling back to a previous version if the new ones are giving problems.

  • Use latest GitHub commit – click this to try the latest GitHub version.
  • Use latest WordPress release version – click this to use the latest STABLE version of LSC.

STEP #3 – Check if LiteSpeed Cache is working

  1. Open up your site on a browser (not logged in).
  2. Load and reload a few pages.
  3. Then view source, scroll to the bottom and see if the LiteSpeed Cache comments show at the bottom.

Naturally, the page may be a little slower on initial visit but should be blazing fast on all subsequent visits.

STEP #4 – Resolving Issues

  • LiteSpeed cache comment not showing – either LSC isn’t working or maybe you enabled Cloudflare’s feature which strips out HTML comments.
  • Delayed CSS issues (FOUC or FOUT) – don’t use critical CSS. Don’t combine CSS!
  • Broken visuals or functions – try not combining CSS or JS. Or you can use my diagnostic steps for excluding problematic CSS/JS below.
  • Contact forms not working – if you can’t get the contact forms to work, the easiest fix is to exclude the page entirely. Another idea is to make sure you exclude the contact form CSS/JS from combining. (I also recommend not to use Contact Form 7.)
  • WSOD or error 500 – it’s unfortunate but not every plugin is compatible with others. You can restore your site by deleting the LScache section in htaccess, delete the “advanced-cache.php” and “object-cache.php” files in the “wp-content” directory. You can also increase your WP memory limits.
  • Admin area showing incorrectly – this can be due to caching logged-in users, caching private content, or object-caching. Try disabling all and slowly re-enable one by one until you find the issue.

How to find and exclude problematic CSS/JS from combining:

  1. Isolation Method #1 – leave COMBINE CSS or JS enabled, open up the site in Chrome > Developer Tools > Network (tab), and reload the page. Click the little red error circle to see which CSS/JS are missing. Exclude them from merging and see if things work.
  2. Isolation Method #2 – disable COMBINE CSS or JS (or even caching altogether), and scan your site in Pingdom. Scroll down to the waterfall and sort the loaded items by file-type (neatly displaying all CSS/JS). Now go back to Swift settings and merge scripts/styles again but manually exclude whichever CSS/JS you think is causing the issue. (Hint: whatever’s breaking is probably related to the problem. Did a certain plugin or theme function stop working? Try disabling those CSS/JS.) Yes, it will take a lot of trial and error. It could be anywhere; maybe a plugin, maybe a theme.

There’s a lot I’m not spelling out because this is very technical and should be handled by advanced users. If you’re having this much issue with merging CSS/JS, you shouldn’t be doing it. It’s nobody’s fault…not yours, not the cache plugin, not your other plugins/themes. (Sure you can try another CSS/JS merge plugin like Autoptimize and it might work for your current setup but then break another day.) I really really don’t recommend merging CSS/JS!

STEP #5 – Playing with Aggressive optimizations

CSS/JS Combine strategy

Again, I hate combining CSS/JS but if you really wanted to do it…I think that should be messing with CSS/JS combining are those with really small or really big sites. If your site is somewhat average-ish, you’ll probably get far better performance and hassle-free operation by not messing with combining CSS/JS at all. If your site is really small (imagine 5 CSS files but only 7KB total), combining them into a single request is not much hassle (less likelihood of conflict) and also speeds up the site because of having fewer HTTP requests. If your site is really big (imagine 20 CSS files and 800KB total), it might benefit you slightly to combine some but not all.

Now, why is it that I don’t recommend to combine all CSS/JS or large sites? It’s because they have so much CSS/JS that it all can’t be loaded at once. And to delay the page rendering by waiting for all of them to load is silly. This is why we should combine some but not all. And more importantly, we have to decide which ones to load first.

There are 2 tactics that come to mind:

  • Combine all, exclude a few – this makes the most sense and is most aligned with how cache plugins function. I suggest you combine all CSS/JS and exclude all the ones most necessary for rendering the top of the page.
  • Combine a few, exclude the rest – this is even safer since only fewer CSS/JS files would be combined, causing less conflicts, but would require a bit of extra work for you to manually specify which files to exclude.

Notice how I didn’t mention critical CSS anywhere in here. This is because I hate how finicky critical CSS can be. Don’t use it unless you absolutely know what you’re doing. And if you already do, then I don’t have to explain how to use it here.

Object-Caching strategy

I only recommend this for large sites with lots of database-querying and short-term cacheable dynamic content. Anything with a lot of numbers and relatively “live” or “dynamic” info is a good candidate for object caching. Enable it and use redis. Then feel free to mess with the object cache expiry time that works for you and doesn’t serve outdated content. I’ve also heard it’s more performant to use redis in a Unix socket (although I’ve never done it). Here’s the guide for the admin-guys.

NOTE: if it seems most of your content is static and numbers never change, then you don’t need object caching!

Enabling the crawler (or alternative cache-warming function)

Ever notice those other cache plugins that allow pre-caching, preloading, or cache-warming? I absolutely love that feature as it prevents the slow first load for visitors. Unfortunately, LiteSpeed Cache was built to compliment LiteSpeed server which is typically used for high traffic sites which don’t have to worry about cache-warming (since the first visitor pre-warms the cache for everyone else)…but for sites with low traffic, the cache is often cold since nobody has visited for a while.

So you got 2 choices:

  • You can enable LS cache crawler from the server – but this requires access to the server and some Linux skill to install/configure it. Once installed, you can then set the crawler settings as aggressive or as conservative as you want.
  • Use an alternate cache-warming function –  it’s possible that you might not have server access and your webhost doesn’t want to enable the crawler. They’re afraid of you hogging server resources. So your alternate option is to use a plugin like Warm Cache which pre-crawls your pages defined in XML sitemaps (from your SEO plugin like YOAST, or sitemap plugin like Google XML Sitemaps) using cron jobs set at your chosen interval.

Caching private content

Lots of information to read through. I’ll leave it up to you (and/or your developer).

Need Expert Help?

I’ve tried my best to offer detailed advice for everyone. But there will always be sites that need special configuration. Still have problems? Visit one of the LiteSpeed support channels mentioned below.

  • Free help is available on the LiteSpeed WordPress Community Facebook group (convenient, official support team and myself are on there), Slack group (more active and more skilled-users than FB group), LiteSpeed Cache WordPress repo (slower response), or official LiteSpeed support page (great option and more privacy for paid users).
  • More explanations about features can be found on official LiteSpeed documentation, wiki, and forums.
  • Official LiteSpeed cache plugin page.
  • Official LiteSpeed cache beginner’s guide.
  • If you need help but still insist on doing things on your own, please respect your level and avoid messing with settings that you don’t understand. Litespeed has features for newbies as well as developers and server experts.

If you would like paid help or even just a free look at your site, don’t hesitate to contact me. (I configure LiteSpeed on dozens of sites/servers every month.)

Take care and hope to see your site at LITESPEED! 😀

]]>
https://wpjohnny.com/litespeed-cache-wordpress-plugin-unofficial-guide/feed/ 179
NitroPack cloud-caching service review – UPDATED 2022 https://wpjohnny.com/nitropack-cloud-caching-service-review-updated-2022/ https://wpjohnny.com/nitropack-cloud-caching-service-review-updated-2022/#comments Fri, 26 Nov 2021 00:25:30 +0000 https://wpjohnny.com/?p=11548 My updated review of the NitroPack service.

  • What’s changed?
  • Do I still feel the same way I did before?
  • Who do I recommend it for?

So that you understand the context, please read my original: NitroPack – cloud caching and CDN service review

What is NitroPack?

A caching plugin that integrates with their cloud-caching service. What is cloud-caching (aka “edge-caching”)? For those who don’t know…traditional cache plugins store the cache on the web server. Cloud-caching takes it a step further by storing your cache pages at the edge. There’s a few reasons why this might be considered “better”.

  • Because the cached pages are now mirrored across multiple CDN servers and can be delivered more quickly to users from a local mirror. (This is especially helpful when the origin web server is far away.)
  • Because the cache plugin developer can now charge more money for a “service” instead of just a “plugin”. Also charge money based on usage tier….whereas traditional cache plugins weren’t able to do that.
  • Because the cache plugin developer can more easily integrate with other cloud-based optimization features….such as static CDN for images, CSS, JS, etc.

So is cloud-caching really better than traditional page-caching?

As with everything, it really depends. Depends on the caching configuration…how well it’s matched to the site, its needs and its traffic. Not all caching is created equal. And even with the same caching, not all configurations produce equal results. Even though tools are getting easier to use and almost becoming “automated”…it still requires skill.

Last but not least…COST FUCKEN MATTERS. And this part alone is why I always felt NitroPack was silly. The cost of NitroPack could easily get you a better server where you wouldn’t even need it.

So why is NitroPack so popular?

To be honest…it’s because it does a good job. It very easily speeds up sites with very minimal effort (or technical skill required), and produces better page scores on GTmetrix, Core Web Vitals, etc.

It’s really one-click touch and go. You don’t have to read instructions or Google search for guides online for “best cache configurations” and read dozens of arguing comments back and forth about which optimizations methods are necessary or not.

You could be a bonehead monkey, click one button, and immediately show off to your client how much faster you made their site.

Things NitroPack has changed/updated:

This is really the whole point of this quick update review anyway:

  • New dashboard – I’m not a fan. Maybe I’m forgetting but I feel like the old one was better. Cleaner, clearer, easier to understand and find things. This new one feels more modern and flashy but I hate the ambiguous icon menu at the top-middle.
  • Revamped optimization algorithm – maybe they changed something. Before…I felt like you had to choose the highest optimization option to get the best scores. Now I feel the middle optimization setting gets you better page scores.
  • Manual mode – this is cool. I don’t remember seeing this before. You can granularly decide which optimizations to enable or not. I’m definitely liking this. Although I feel anybody who knows what options to pick would probably be better off saving their money and just using a server-based cache plugin.
  • Fixed FOUC – I felt they used to have more FOUC issues before and that part seems much smoother now. Cheers to them improving this. This was one of my big complaints before.
  • Preload pricing – I felt like they didn’t use to charge for this before. Like before, the preload was more aggressive and free. And then their preload got much less aggressive and slow (like the service got a little worse). But now it seems their preload is back to being aggressive BUT they charge for it.

Overall, I do feel NitroPack has improved.

So does WPJohnny like NitroPack now?

NO! I still don’t like it for the same reasons listed in my (original) Nitropack review:

  • too expensive (better server/hosting costs less than NitroPack)
  • too automated (doesn’t fit all sites)
  • too much focus on page scores (which I never care for…but admittedly many clients do)
  • still really ugly FOUC, and my god is it horrible on mobile

What about my clients? How do they like NitroPack? I’d say only my most unskilled and busy clients love NitroPack. Everyone else complains it’s too expensive and unrealistically-priced once they want/need to optimize more sites. And I’d say that’s about fair. NitroPack is for busy newbies. They’re not for the guys/gals that like to learn DIY and tinker under the hood.

Which users is NitroPack best for?

  • Anyone on a crap server, only a few bloated sites (instead of many), with zero knowledge of speed optimization, care (too much) about page scores, and don’t mind paying the premium.

Obviously, none of those attributes reflect me. I prefer to build a site with clean-code from the start, placed on a well-configured server, finely tuned with customized cache settings, and value human user experience over page scores. Knowing how to tune sites makes me 100 times more effective across many sites…saving lots of money.

So basically…you’re either learning how speed-optimize your WordPress site and replicating those efforts cost-efficiently across many sites…or you’re better off with something like NitroPack which can save you a ton of time and let you focus on other tasks (that hopefully make more money than what you would save on not using NitroPack).

Curious to try NitroPack?

]]>
https://wpjohnny.com/nitropack-cloud-caching-service-review-updated-2022/feed/ 4
Builderius – initial thoughts and respect https://wpjohnny.com/builderius-initial-thoughts/ https://wpjohnny.com/builderius-initial-thoughts/#comments Tue, 02 Nov 2021 03:06:25 +0000 https://wpjohnny.com/?p=11453 Quick review after watching the 60min tutorial and playing with it for 15mins.

  • How “good” is Builderius?
  • What things can it build?
  • What features does it have?
  • How easy is it to use?
  • What users or user cases are recommended for Builderius?

All your surface questions will be answered in this short (and shallow) article.

Builderius is a developer tool

Really cool sitebuilder/templatebuilder, extremely detailed and built specifically for devs!

It’s not a “pagebuilder” that helps you design content. It’s more of a “site builder” or “template-builder”, that designs all the non-content stuff that your theme usually handles. It’s to help devs visually-code their site to every specific detail…rather than wrestling with their theme code, hooking and filtering, reading endless documentation to do basic things they already know how to code from scratch!

And by “devs”, I mean people with a coding background and understanding of programming terminology. I don’t mean “the guy who charges $2k to install Elementor”. Because if you ain’t a dev, trust me…you are not gonna know where to even begin. Not even with the tutorial videos.

I thought this tool was a potential challenger to Oxygen Builder (as it was marketed to be by the founder). But it’s not quite. It’s easily a step even more technical than Oxygen. More coding-related features, and less visual-design features. Read the Builderius manifesto.

Builderius is more technical than Oxygen?!!!

Yeah, I’m serious. Like if you’ve never worked in IDE’s before…this thing will feel like jumping into an airplane cockpit in Russian (and not knowing Russian).

Hahaha, if you thought this was a free alternative to Oxygen or pagebuilders…and that you could just fire it up and drag some boxes and push Lego pieces around…trust me, this ain’t it! You’ll have to get used to lots of terminology and text-based labels, rather than cute kid-friendly images. (Oh and please don’t use this thinking it’s easier than Gutenberg. It’s not.)

And really, the GUI is meant to help you speed through developer-tasks….picking modules, datasets, media queries, etc. Builderius is not a “design-by-drawing” tool. At least Oxygen is still quite understandable even if you don’t know how to code. Its user interface is way more polished and user-friendly and arguably still easy enough for non-coders. Builderius really is a coders-only clubhouse.

Top strengths of Builderius

1. Super fast interface. Like yes….rapid fast. Doesn’t feel like you’re trying to load Photoshop in your WordPress editor (hahaha). Making changes feels fun because you’re in and out quickly.

2. Outputs clean code. About as close as you can get to raw hard-coding but with a convenient graphical interface. It definitely outputs cleaner than OxygenBuilder (not so many divs, ID’s, CSS). Does that cleanliness actually result in faster load time? No, probably not. But the code is cleaner to look at and work with…which is worth a million dollars if you like to work in code!

3. Lots of coder goodies. All the data variables and CSS variables stuff. Easy import/export of templates and objects. Versioning. Soon to have UI for creating CPT’s and meta fields. Ooooooh!

4. Selective theme hijack. LMAO, what a terrible way to describe this. Anyway…this builder doesn’t become your theme (like Oxygen does). So you can decide which pages to still use your theme and which ones to use this builder. Making it perfect to deploy this builder alongside any theme for very specific custom pages.

5. Extremely modern. The founder (Vitaly Kiiko) has clearly used enough tools to know how he likes to build as well as how others like to build. I like his neutral yet still opinionated approach to developing this powerful tool and keeping things streamlined and essential. Not every feature and button needs to exist everywhere. Thank you, man!

Areas of opportunity for Builderius

My biggest (and only) complaint is the UI color scheme! Argh… there are 5-6 colors in there that are supposed to contrast each other but actually all look kinda same-ish and kinda different at the same time. (Green, blue-green, light blue, grey, purple, red.) It makes the panel really hard to differentiate things…and that much harder to work with when your icons are really small and ambiguous.

Navigating through the different builder panels was slightly unclear. You should make an icon to get back to that main panel that shows “module tree” (instead of making us look for the ambiguous “Save/Close” circle button). We need better visual separation between the top and bottom parts of the panel. The hover effects also not clear. Anyway…these are all things I’m sure they know and will clean up some day. All the important stuff is there and if you take time to get familiar with the UI, I think any coder can really enjoy this!

The only other thing I think about…is how handing off a Builderius-site to clients will be. Could we possibly make things any easier for them? Maybe an easier way for them to know which pages are using the theme, and which ones are using Builderius (and which templates). Looking up template-use by clicking through template rules is not so friendly to me. Can’t we have a Builderius-template column in the posts/pages list?

Best use-cases for Builderius

Use cases for non-coders

Sorry, but coders only! (I’m serious.) Builderius is really not at all useable for non-coders. Not even if you take time to get the hang of it. You can’t overcome the learning curve unless you learn how to code and how to work in a coding environment (IDE). This alone even makes it less useable for handing off client sites. Especially the ones that are going to try making changes to things.

Another distinction to make is that Builderius is more of a SITE BUILDER (or TEMPLATE BUILDER), than a PAGEBUILDER. It is basically to design any part of your website that isn’t the content. Whereas many of you use pagebuilders because you don’t know how to design your content.

Use cases for developers

Even if you are a coder, there are still use-case limitations. I can’t imagine using this for everything. Sometimes a quick GeneratePress theme install, and quick CSS customizations along with custom ACF blocks is all I need. Because design customizations really isn’t all that hard. A flexible WordPress theme can do more than plenty for you if all you’re really customizing is DESIGN.

Where Builderius really shines IMO, is when you’re starting to customize away from typical WordPress page architecture and data organization. Suppose you’re showing content from more than one post type per page (like spitting bits of CPT’s on the bottom of every blog post)…or just doing unconventional shit like having menus and widgets in unexpected/irregular places. Or doing anything that you typically had to write your own plugin for. Builderius is great for visually-coding things and doing things that recently could only be done by code.

I imagine it ultimately comes down to the 2 all-or-nothing use cases:

  • OPTION #1 – use Builderius everywhere and go crazy hardcoding your entire WordPress site as if it were your own hacky CMS.
  • OPTION #2 – use Builderius very selectively on pages where you want something custom but didn’t want to install Oxygen or a whole pagebuilder just for one page.

Ready to try Builderius? Get (free) Builderius now…

While I won’t be using it, I think Builderius is truly awesome and worth a look for any diehard coder. You get to work right from your site and skip all that “push from local” mess. Building in WordPress backend can get even more fun for devs now!

]]>
https://wpjohnny.com/builderius-initial-thoughts/feed/ 4
CloudPages managed WordPress hosting – INITIAL REVIEW https://wpjohnny.com/cloudpages-wordpress-hosting-initial-review/ https://wpjohnny.com/cloudpages-wordpress-hosting-initial-review/#comments Mon, 18 Oct 2021 13:45:57 +0000 https://wpjohnny.com/?p=11400 My very first review of the CloudPages.cloud managed control panel service.

  • What do I think of them at first glance?
  • What makes them same or different from existing managed panels? (RunCloud, Cloudways, GridPane)
  • How are their prices?

And of course…the mother of all curiosity, I’ll tell you whether you try them.

What is CloudPages?

Just another cloud-based managed hosting control panel?

More or less…YES. It’s quite similar to RunCloud, Cloudways, GridPane. It does similar things, at a similar price, and competes for the exact same user market.

Their service allows you to use their software to fire up servers, then manage WordPress sites off those services. All the typical website and webhosting management functions are just a click away!

  • Create, delete, resize servers.
  • Create, delete, manage WordPress sites.
  • Manage databases.
  • FTP access.
  • Security
  • Teams
  • SSL certificates.
  • Blah blah blah…they all more or less do the same things and have the same features.

Thoughts on CloudPages at first glance…

I know the team behind CloudPages.

The team behind CloudPages were closely related to CyberPanel. So I know it’s not their first time building a cloud panel. This is massively huge because there’s so much experience and bugs you don’t have to deal with.

Frontend site looks like Cloudways

Similar logo. Similar website design (look at hero layout with graphical wireframe illustration). Similar wide-font. Lots of similar things.

Backend area looks like RunCloud

Similar UI layout RunCloud but spacing more like Digital Ocean (kinda big and child-like). So if you like RunCloud and Digital Ocean, then you’ll love CloudPanel UI.

Performance is good

On par with other top-speed cloud panels. If you’re coming from crappy shared hosting, you’ll think CloudPages is a warp-speed spaceship! If you’re coming from say, RunCloud, you’ll think CloudPages is right on par.

Very similar feature-set to other managed cloud panels.

Features are more or less the same. Prices are more or less the same as other managed cloud panels out there.

But of course…there ARE things that set CloudPages aside from the rest…so let’s talk about that next. (No more wasting time listing features everybody has!)

CloudPages (differences) vs other managed panels

1. LiteSpeed server

CloudPages offers LiteSpeed server! My favorite freaken web-server. High performance and compatible with LiteSpeed Cache plugin. Which is my favorite cache plugin for WordPress….ANNNNNDDD IT’S FREEEEEE!

Why is this special? Because many managed panels out there (98%) don’t offer LiteSpeed yet. Only like 3 of them do. The rest offer only NGINX or Apache-NGINX hybrid stack. Which I don’t like anywhere near as much as I like LiteSpeed.

2. Panel backend speed

This is something I really wasn’t expecting and so delighted to see. The Cloudpages backend is razor fast. Clicking around on anything loads immediately. This is way more fun than the mega-slow Cloudways backend, where any click feels like it takes 5 seconds to load (sometimes even more). If ya know, ya know…hahahah.

This load time really makes things fun to do. And you have fun managing many sites instead of feeling like every task is a chore.

3. Comprehensive but clean UI design

The UI is really nicely organized. You understand where servers, billing, and teams are. Server section has only server-related stuff. Site section has only site-related stuff. It sounds so simple but many panels out there miss the basic things.

Of course, all this isn’t so hard to accomplish when these guys are clearly using their competitors for inspiration. If you’re gonna copy, copy my favorites. And they copied RunCloud’s interface a lot. Just FYI (RunCloud was my favorite of managed cloud panels in my recent comparisons).

The hardest part about UI design is that it looks and feels simple, yet has everything you need. CloudPages does this well. Pros and newbies can find their areas easily. You don’t have pros being annoyed by newbie stuff taking over the screen. Or newbies being overwhelmed by pro settings they don’t understand.

4. WordPress manager (feature)

This feature is an absolute beast! It is absolute magic. And for those who don’t know…this feature is an inspired lighter copy of the WordPress Toolkit feature…which IMO is the only thing keeping the old-school cPanel/Plesk relevant in this modern era of WordPress hosting panels.

The WordPress Toolkit (from cPanel) feature is one of those features that you have to use yourself to appreciate what it can do. My text descriptions are not gonna paint the picture well enough for you.

  • Quite simply, it can manage sites right from the hosting panel. Making all tasks faster, easier, and more fun.
  • You can install, delete, activate, disable plugins.
  • Install, delete, activate, disable themes.
  • Manage WordPress core/theme/plugin updates.
  • Security, database, and a billion other functions.
  • And you’re able to do all this right from your hosting control panel. So you don’t need to log into each site. You also don’t need to have ManageWP services. You can manage all hosting and websites right from your hosting panel! (It’s magical!)

(Hahaha, omg…now I just realized I need to finish my raving WordPress Toolkit review. It was 85% finished and I wrote thousands of words but never released.)

However…the CloudPages version is not assss full-featured but I suspect they have it in mind.

5. File Manager (feature)

It’s so simple but I make a big deal out of this because I care.

  • When you’re a noob, you love File Manager because it’s so much more convenient than logging into FTP.
  • When you’re a pro (and managing hundreds of sites across different servers), it’s still so much more convenient than logging into FTP.

Plain and simple, CloudPages got it and most other control panels (98% of them) do not!

CloudPages areas of opportunity

NOTE: These are not all critiques. They are simply my ideas on how to improve an already-nice product. And keep in mind they may have already been fixed or updated by the time you read this!

1. Clearer distinction of PROJECTS vs SERVERS vs SITES.

This was slightly confusing for me to understand when navigating through the panel backend. With most other services, you have a very clear distinction between SERVER vs SITE management. But with CloudPages, I assume they got the “projects” idea from Digital Ocean.

I’m not a fan of it because it’s not clear how I would use this in my organization. Are “projects” supposed to be used to group/separate servers, or for sites? And then there’s the constant click-confusion where I’m not sure if the screen I’m in is related to projects, or servers, or sites.

2. Build out WordPress Manager features to be as good as WordPress Toolkit (by cPanel)

Oh man, if they actually manage to do this, that would be so freaken amazing! Nothing else to be said here.

3. REMOVE choosing “Public Path” during app creation.

This part was no big deal, didn’t hurt me in any way. But it was slightly confusing for me and I imagine even more confusing for non-savvy users. The confusion is that it makes you wonder if there’s a correct answer or not. As people are afraid to put in the wrong thing.

This should be removed or at least automated to use the web application name. Or at the very least, put some placeholder text saying “arbitrary label, put anything you want”.

4. Git Manager page doesn’t show sidebar options

Click on Git Manager makes all other sidebar options disappear. Of course, if I click on Summary page they come right back. Just a minor thing but slightly jarring user experience. I’d prefer the sidebar options stay the whole time like they do for all other side bar options.

5. Finding phpMyAdmin is confusing.

I don’t even remember how I did it or found it. It was by accident after clicking around randomly. When I check the CloudPages documentation, I see a whole list of instructions for installing it manually. Ewwww…not sexy. That’s DEFINITELY gotta be improved upon. (If it’s gotta be installed, give us a 1-click option or something. And at least put a menu option for it so we know where to go to begin setting it up.)

6. Deleting the server from CloudPages doesn’t delete from the provider.

This should definitely be automated to make the experience as seamless as possible. It would also be tragic for users to be unknowingly paying for a server they thought they already deleted.

7. How do I delete a PROJECT?

I have no idea. Somebody tell me, please.

Should you try CloudPages?

(Soft) yes. I think so. Good features and fair pricing.

They’re a very new service that looks promising. The whole experience…features, UI, overall service look good. The pricing is very fair. HECK…SUPER FAIR. They still have lifetime plans right now. Last I checked, the unlimited everything forever plan is only like $600. That’s a huge mega deal when you consider GridPane is was selling for $3000?

Now is CloudPages as mature and proven like GridPane or RunCloud? Of course not. There are a few tiny bugs, and they don’t support all VPS providers (only Digital Ocean right now), but this will quickly change with time. (NOTE: I’ve been corrected and someone said they do support other providers but not automated through API. You have to do a few more manual steps.) And their starting position is way further along then where GridPane and RunCloud started.

There’s also the issue of support. How good is their support? I have no idea and almost never use those things. I’m also starting to think I’m a bad judge for this because many companies bend over backwards when they see “Johnny from WPJohnny” in the support queue. I don’t wait in line like everybody else. I’m the Kim Kardashian of WordPress club lines. LOL.

So if you’re ready to take the leap of faith. And contribute towards my cocaine addiction…there’s my affiliate link below…

Be crazy adventurous now and try a whole new cloud hosting panel when mature ones already exist!

PS: just kidding about the cocaine joke. I don’t pay for my cocaine.

PPS: ok…just kidding about the whole cocaine thing. (WordPress is my drug. That’s plenty addicting already!)

]]>
https://wpjohnny.com/cloudpages-wordpress-hosting-initial-review/feed/ 12
NGINX vs OpenLiteSpeed (OLS) honest speed comparison 2022 https://wpjohnny.com/nginx-vs-openlitespeed-speed-comparison/ https://wpjohnny.com/nginx-vs-openlitespeed-speed-comparison/#comments Sat, 16 Oct 2021 13:45:30 +0000 https://wpjohnny.com/?p=11360 The web-server fight of the century continues through the pandemic into 2022.

  • Who’s faster?
  • Is speed all that matters?
  • What are the experts choosing?

Find out as they go head-to-head in another of my lazy ass write-ups. Just a couple photos, biased opinions, and hasty conclusions from my 30-minute testing of these two server giants.

Who are NGINX and LiteSpeed?

The biggest and most popular high performance web servers in use today.

If you seriously haven’t heard of them, you’re probably living under a rock and should get an internet subscription.

Not even kidding, these 2 names are mentioned everywhere today. Back in the days…it was only Apache and NGINX…and not much of a battle (speedwise) because NGINX was way newer and built specifically for speed. But Apache hung on because it could do a dozen things NGINX couldn’t.

LiteSpeed (2003) actually released a year before NGINX (2004) and was fast like NGINX but could also do all the things Apache did. You’d think LiteSpeed would be mega-popular but it wasn’t because you had to pay for it…whereas Apache and NGINX were free and open-source. After some years, LiteSpeed decided to release a free open-source version called OpenLiteSpeed (2013).

Which takes us to today’s webhosting landscape:

  • Many traditional hosts still offering Apache.
  • Newer modern hosts offering NGINX.
  • Boutique hosts (both traditional & modern) offering LiteSpeed.
  • Ultra-modern trendy hosts offering NGINX & OpenLiteSpeed (OLS).

NGINX vs OpenLiteSpeed (OLS)

So now we realize where the battle is really at. It’s free open-source OpenLiteSpeed taking on the powerhouse free open-source NGINX.

Questions the noobs asks:

  • Is OLS really faster than NGINX? – that’s what my post will answer.
  • Is OLS newer/cooler than NGINX? – yes, it is.
  • Is OLS easier to use than NGINX? – yes, it is. In terms of htaccess compatibility and graphical UI configuration console.
  • Main advantage OLS has over NGINX? – OLS allows you to use LiteSpeed Cache plugin (which is my favorite cache plugin for WordPress).

Questions the pros ask:

  • Is OLS really faster than NGINX? – diehard NGINX devs/admins say no. Diehard LS devs/admins say yes.
  • Is OLS newer/cooler than NGINX? – some pros think it’s gimmicky and not as proven, not as stable.
  • Is OLS easier to use than NGINX? – not if they prefer NGINX config.
  • Advantages NGINX has over OLS? – admins today are more familiar with NGINX config, and find it less hassle to config/manage.
  • Advantages OLS has over NGINX? – easy learning curve for pros, easy interface for non-pros, htaccess compatible, also the super powerful native WordPress cache plugin (LiteSpeed Cache) whereas NGINX doesn’t have one.

NGINX vs OLS speed benchmark charts

Some notes about my testing:

  • I fired up a bunch of cheap $5 VPS (1-core, 1gb ram). One with NGINX, another with OLS. (Using mostly default configs, I didn’t fine-tune them.)
  • NGINX server had fresh WP site with only Cache Enabler plugin.
  • OLS server had fresh WP site with only LiteSpeed Cache plugin.
  • Then used free loader.io account to throw 10,000 clients/min at HTTPS domain using GET method.

NGINX (un-cached) vs OLS (un-cached)

NGINX (un-cached)
OLS (un-cached)

What this means:

  • NGINX served 150 requests and averaged 1-sec for each, before failing in 6 seconds.
  • OLS served 383 requests but averaged 9-sec for each, before failing in 16 seconds.
  • Raw OLS is simpler weaker to me. I much prefer raw NGINX handling fewer requests at reasonable response (1sec) before crashing early, than OLS with slower initial response before trying to unsuccessfully handle more concurrent hits.
  • But realistically, this comparison doesn’t matter. Because nobody in their right mind would be serving 10k requests/min without caching.

NGINX (cached) vs OLS (cached)

NGINX (cached)
OLS (cached)

What this means:

  • Don’t bother looking at average response times. Both servers run virtually at the same speed once the cache kicks in after 2 seconds (~66ms per request). The average is mostly affected by the slow initial response being averaged out.
  • But indeed, OLS is faster by a tiny tiny margin. Initial slow response was quicker (OLS 106ms vs NGINX 137ms) and then the stable response was a tiny bit faster (OLS 65ms vs NGINX 67ms).

So is OpenLiteSpeed truly faster/better than NGINX?

Is OpenLiteSpeed faster than NGINX?

  • Without caching, I’d say NO.
  • But with caching, I’d say YES but only by a freaken hair. Difference so small you wouldn’t even notice.

Any other benchmarks showing LiteSpeed being 20-300% faster than NGINX are silly to me. I’m a diehard LiteSpeed fan myself but don’t believe it’s that much faster. OpenLiteSpeed (free version) is like 1-2% faster at most. LiteSpeed Enterprise (paid version) is maybe 3-5% faster at most. If even that. And sometimes, I swear NGINX is faster.

However…

LiteSpeed can do many things that produce faster end result in real-world use. Caching dynamic requests, security features (that decrease resource drain from DDOS attacks), and more.

What’s the real benefit of LiteSpeed/OpenLiteSpeed over NGINX?

The #1 reason for me is the free LiteSpeed Cache plugin (compatible with only LS/OLS servers). It’s a freaken amazing plugin with dozens of performance features to speed up your site in so many ways. This plugin alone is what separates LS/OLS from NGINX. NGINX doesn’t have any native cache plugin for WordPress. Sure, you can use other cache plugins on NGINX but they aren’t as powerful as the LiteSpeed Cache plugin.

Of course, NGINX diehards will argue that NGINX can do this too. They’ll claim “NGINX also has micro-caching capabilities to rival LiteSpeed’s ESI dynamic cache”. Which is yeah, it’s true, but it’s not as easy to configure for the everyday person. With LiteSpeed cache plugin, you just make a few clicks. With NGINX, you gotta learn how to make NGINX configs and manually write out exactly what you need. Yeah…no thanks. Just not realistic unless you’re an NGINX expert managing only a few sites.

Let’s not forget about LiteSpeed’s QUIC.cloud service (which easily integrates with LiteSpeed Cache plugin) and caches your site at the edge…rivaling cloud-cache services like NitroPack for a fraction of the price. NGINX doesn’t have anything like that.

How urgently should you switch to OpenLiteSpeed?

Well, the majority of high-performance web servers out there are still happily running on NGINX. It works well, it’s proven, can still be cached, and many admins are familiar with it. You’ll still get great performance out of it.

But if you’re curious to try something new…OpenLiteSpeed is worth looking at. For that reason, you may have noticed many new hosts adopting it.

  • If you’re happily on NGINX, don’t sweat it.
  • If you’re shopping for a new server, LiteSpeed/OpenLiteSpeed are worth a look.
  • If your name is WPJohnny, you’ve only used LiteSpeed for the past 10+ years. 😉
]]>
https://wpjohnny.com/nginx-vs-openlitespeed-speed-comparison/feed/ 44
Are plugin acquisitions bad for WordPress users? https://wpjohnny.com/are-plugin-acquisitions-bad-for-wordpress/ https://wpjohnny.com/are-plugin-acquisitions-bad-for-wordpress/#comments Tue, 12 Oct 2021 17:36:38 +0000 https://wpjohnny.com/?p=11342 At what point do plugin acquisitions become evil?

Because that’s kinda the sentiment going around lately. All kinds of big “evil” companies are buying off the soul and spirit of smaller benevolent “goodwill” companies. Themes and plugins that were once open-source stances against greedy corporatism have now been seized and subjected to serve the more profitable alignments of larger eco-systems.

What are users supposed to make of all this?

  • Do pick up our torches and fling them at our once-beloved plugins?
  • Do we spray-paint “f**k Syed” on gas station bathrooms?
  • Or do we just bend over and fork out the extra money to keep our essential plugins?

There’s no easy way to look at it.

Why plugins get sold off

You have to understand why plugins get sold, before you get mad at why plugins get bought.

They’re sold because the original dev…

  • Is no longer excited by the plugin.
  • It doesn’t make much money.
  • It’s not fun to maintain anymore.
  • No more new ideas.
  • More time spent on support than developing new features. Almost to the point that you’d rather not develop new features because of the hassles of supporting it.
  • Wants to retire.
  • Found much bigger money elsewhere.
  • Or just wants to do something else entirely.

What most common users don’t know…was that the plugin was already on track to die. Its founder (heart & soul), had already left it long ago. Knowing that…it’s in their best interest to sell off at its peak so it can be maintained and taken to the next level by someone else. Trust me…no dev wants to sell off their baby unless they absolutely had to.

So what would you prefer?

  • A. Your plugin slowly decays under neglect, allowing other competitors to establish market share…leaving you with an unsupported plugin nobody uses?
  • B. Your plugin is bought out by a bigger company with much more profitable visions…but will build it out to justify those massive price increases?

Some of you may have came up with C. pay the original developer more money to keep it going. Nope! Sorry, buddy. That ship has sailed. Maybe he wasn’t at the level to keep it going. Or maybe he gave too much of himself bending to the whims of every user, neglecting price increases for too long. But it’s no longer realistic. His passion isn’t there anymore.

Realistically…your only choice is the plugin being bought out.

What can users & plugin developers do moving forward?

If you don’t ever want your favorite plugin to get acquired and lose its soul to money-driven investors…here are my ideas.

For developers:

  • Don’t get sucked into a popularity contest. It’s great to help the community but don’t build something just because everybody else is doing it…or because the demand is high. Being too popular can be a (scaling) curse. Stick with solutions to problems that truly resonate with you.
  • Name your price. And raise it. And keep raising it to keep yourself happy. Loyal users will stay (if the quality justifies it). Price-shoppers will jump ship…as they always do!

For users:

  • Be supportive. Say nice things. Give positive reviews (on WP repo), or at least constructive feedback. Donate to the dev’s tipjar. Support price increases. Help promote the dev’s work.
  • Don’t be a PITA. Don’t drag down the dev’s time with silly support requests or feature demands.
  • If you’re a dev yourself, help contribute to the project…yes, for free!

Ideas for once a plugin gets sold:

  • FORK – if you’re a dev (and the plugin is simple enough), fork it.
  • SUPPORT COMPETITORS – even if the plugin is absolutely essential to you, switch over to a smaller competitor and beg them to implement your most critical features. Once they do, work your ass off to promote them. It’s the only way to prevent plugin monopolies.

Who else got ideas? Cuz we sure need them in a time like this. (Drop them in the comments below.)

]]>
https://wpjohnny.com/are-plugin-acquisitions-bad-for-wordpress/feed/ 2
Hosts website preview https://wpjohnny.com/hosts-website-preview/ https://wpjohnny.com/hosts-website-preview/#comments Wed, 06 Oct 2021 00:44:09 +0000 https://wpjohnny.com/?p=11337 Simple list of ways to test a website from different servers.

  • Sick of editing your hosts file?
  • Need to compare 2 versions of your website on different servers?
  • Want to see a website function live from a domain of your choice?

Well here are some ways to get the job done.

1. Hosts preview site

There are many sites offering this server:

  • skipdns.link
  • hosts.cx (no longer working)
  • In case you ever forget these sites, search “website hosts preview” on Google.

2. GasMask

Install an app on your OS X desktop computer, and manage your hosts file with many more options. (Thanks Sridhar for this recommendation!)

  • GasMask GitHub link
  • Download link above doesn’t work so you’ll have to find another one elsewhere.
  • When using this, don’t forget to edit preferences and shorten the update interval time.

3. Edit your local computer hosts file

Simply add a line to it, with the IP and then the domain. (Basically tells your computer to look for the domain at exactly that IP instead of doing a DNS-lookup over the web.) I highly don’t recommend this method as it’s annoying. But it’s the old school way people used to do manually.

  • MAC – /etc/hosts
  • WINDOWS – c:\windows\system32\drivers\etc\hosts
]]>
https://wpjohnny.com/hosts-website-preview/feed/ 14
Mobile menu design RANT https://wpjohnny.com/mobile-menu-design-rant/ https://wpjohnny.com/mobile-menu-design-rant/#comments Tue, 14 Sep 2021 15:22:30 +0000 https://wpjohnny.com/?p=11086 My tips for designing restaurant menus, for mobile devices.

Somebody’s gotta say it. I’ve been eating like a king for many years and didn’t realize how poorly designed restaurant menus are until now (that every restaurant is doing the QR code to web menu).

I hope designers out there are listening and taking this advice to heart. Cuz I wholeheartedly mean everything that I say here.

  1. Make your site load fast. Cut out stupid videos, music, animation, giant images.
  2. Allow web version and PDF version (cuz some people like 2D-scrolling across PDF menus, or our returning customers who remember the physical menu).
  3. Make text small and with minimal line-height to fit as many things possible on the screen. This reduces unnecessary scroll and helps people remember more choices (to compare mentally).
  4. Don’t bother having pictures of every item, unless your food really looks that unique.
  5. Don’t do sticky header. C’mon!
  6. Don’t make the QR code load images off your Google Drive. COME ON!!!

In all honesty, all designers have to do is actually look at their work in mobile and see how it repaints. One look alone would be able to tell you what needs to be changed. Look at this abomination below:

  • Giant waste of vertical space.
  • Horrible sticky header.
  • Where is the logo contrast?!
  • Those vegetarian “VG” initials could have easily been little tags next to the item name. Or in parenthesis at the end of the item description.
Example of poor mobile menu design. Giant waste of space. EWWW!
]]>
https://wpjohnny.com/mobile-menu-design-rant/feed/ 1
Stock & Crypto Investing Advice from a NOOB https://wpjohnny.com/stock-crypto-investing-advice-from-noob/ https://wpjohnny.com/stock-crypto-investing-advice-from-noob/#respond Mon, 06 Sep 2021 14:45:00 +0000 https://wpjohnny.com/?p=10681 Curious to try your hand at the volatile stock market? Learn from my mistakes before you do!

Why should you take stock market investing from me?

Honestly, you shouldn’t. I know so little (started Jan 2021) and none of my investing success is attributed to any real knowledge. I kinda really just got lucky (so-to-speak). So you can just close this tab now and do something more productive with your time.

But for you crazy clowns who love reading all my bullshit pseudo-advice…continue on at your own risk.

DISCLAIMER: this is not real financial advice and I am not a registered financial advisor.

DISCLAIMER:

I really am a noob. Not a savvy intermediate investor calling himself a “beginner” to appear humble. I’m a dumbshit noob. Maybe I tried stocks 20 years ago. And then again 10 years ago. But I never committed seriously to it. This time, I did. I threw 5-digits worth of money and actually made even more money and learned some things. After hating stocks for years, I now bitterly admit that it’s an easy and fun way to make money.

But how much of what I learned will help you…nobody knows. I still don’t know proper terminology. I confuse facts with opinions. And sure as hell probably not referring or understanding how many aspects of the market actually works.

Like I said…continue at your own risk!

TIP #1 – how much money to start?

How much money do you need to start investing?

This is a sticking point for many people. They think they don’t have enough to make any real financial impact. And this is only somewhat true. Sure…a safe stock portfolio will net you only 10% returns annually and that’s literally nothing. Whatever you put in will take 7-8 years to double. (Barely beating the rate of inflation.)

And for me…f**k that. I don’t want to die rich. I want to live rich.

Most of us aren’t wealthy. We’re average folks with anywhere from $5-50k of free cash. And trust me, that’s plenty to get started. The idea is to bet risky. Some will lose, some will win so big and cover all losses. You can easily multiply your starting investment by 3-5x. Then take that and gamble again…except now since you have more money, you can diversify even more…and some are bound to win.

It looks like this:

  • Start with only $1k.
  • Put it in 5 different stocks. 1-2 solid ones, 2-3 risky ones.
  • Solid ones grow slow. Risky ones can blow up.
  • You’ll have double or tripled your initial investment in a couple months.
  • Put it back in again and pick more stocks…on the next run you make 3-10x.
  • Having more money allows you to double down on the solid ones and leaving lots of extra change for the volatile penny stocks.

$1k becomes $3k, which becomes $15k, then $50k, $200k, etc.

  • Is it really that easy? For some people yes.
  • For the losers, no. They might lose anywhere from 20-70% of their investment.
  • Of course…I do my best to help you not lose.

ALWAYS RESERVE CASH!

Aghhhhh, this is such a huge tip. I lament missing out on many easy opportunities because of this.

Most people when starting to invest will throw down all their money into one or two stocks. They just buy right into one stock without knowing what part of the cycle the stock is in (up-cycle or down-cycle).

In a situation like this, you’ve blown all your money into one stock and now only capable of benefitting from one outcome, which is the stock goes up! But you miss out if the stock goes down (you’re unable to buy more while it’s cheap). You also miss out if another stock becomes available or dips during this time. Basically…you can’t buy anything else when all your money is held up.

So how would I do it differently?

  • Buy using only 50% of your available investment fund. (If you have $1k to invest, buy with only $500 of it.)
  • Then buy more stock when it dips. Again don’t blow all your cash. Reserve some in case it goes lower or some other new stock comes out!
  • The more you invest, the more people you talk to, and the more “new opportunities” you will have to invest.

The lower you buy, the more you have to gain. Duh!

TIP #2 – sign up for brokerage

This is the second biggest friction point for people. They don’t even know where to get started. It sounds like something super complicated and technical. Which it is, but web services have made it so easy now.

Exchanges are marketplaces where you can buy different stocks (or crypto coins). You can think of it as department stores. Some stores sell certain brands, other stores sell other brands. You sign up for multiple brokerages and exchanges so you’re able to buy all the stocks you want. (Keep in mind different countries may have to use different brokerages/exchanges.)

Traditional stock brokering services (e.g. Robinhood, Fidelity, Ameritrade) are to buy traditional stocks…like Apple, Amazon, etc. Although they do sometimes offer crypto coins on there…but it’s better to buy crypto from actual crypto exchanges.

  • Pick Robinhood as it’s the easiest. It’s like opening a PayPal account.
  • Then you connect your bank account.
  • Then transfer funds from your bank account to your brokerage account.
  • Then start investing from your brokerage account. Look up company ticker symbols you want to invest in (For example Apple’s symbol is AAPL). Buy and sell whenever you want. Transfer money back out to your banking account anytime.

Usually beginners will start with Robinhood. Intermediate traders go to Webull. The serious day-traders/swing-traders will go with Ameritrade or Fidelity.

What’s the difference? Their ease of use and options. Newbie services with very little options, easier terminology, and cuter easy-to-understand charts. More advanced tools let you set automated limits of when to buy and sell. Also they allow you to trade for longer hours of the day (useful for taking advantage of quick spikes or dips during after hours). There’s more differences too but I don’t know how to explain. Robinhood is really fine for my use…even though “it’s the devil” (you can read up on it later).

You really don’t need to study any investing terminology/books anymore like you did back in the old days. In the old days, making a simple buy required like 20 things to fill out and you paid a transaction fee on each buy/sell. Now, you simply open up your app and decide which stock and how much to buy or sell. Takes 2 seconds. Also, super easy to follow your charts to know if you’re up or down.

Anybody can invest! You can start with $1k.

TIP #3 – what the f**k is crypto-currency?

Crypto currencies are digital economies.

I know some basic idea what crypto is…but not so much everything that it does. Because it keeps being redefined and used to do more and more complicated things. But will do my best to explain what little I know.

Long time ago (2009), some dude created a decentralized digital currency as an alternative to the corrupted fiat money we have today. (“Decentralized” meaning that the currency wasn’t controlled by any one individual or organization.) He was tired of crooked financial systems (banks/governments) inflating money and causing market crashes whenever they felt like. Because every time they do, people lose their assets like houses/businesses…resetting everyone into debt and poverty so they can work their way up again for the scraps given out by the elite.

So at first…crypto currency was intended just to be another form of fake money, that wasn’t owned and couldn’t be manipulated by anyone. But then people started noticing many other benefits of the technology (blockchain technology) used to build cryptocurrency. I’ll list some benefits below…

  • Can buy and sell things (like “real money”).
  • Lower cost of transaction…during sales or money transfers.
  • Privacy…can send money and nobody knows who the sender or receiver is.
  • Not exactly tax-free in every country…but how would your government know? 🙂
  • Can be reinvested/redelated into mining, staking, farming to make more free money off the existing money. Think of it like traditional bank CD’s…but with much better returns. (I watched my friend make 60% in one week practically risk-free.)
  • Can lend it out. Basically become your own bank.
  • Control – you have full control of it. Since the crypto isn’t controlled by any one organization.
  • FYI, there’s so much more to it than this…you can read up on it for yourself.

The long story short is that I compare cryptocurrency to the economies of different countries around the world.

Take the USA for example. It’s a whole country with its own economy (goods, imports, exports, services, etc) and has its own currency (the US dollar). And the value of the US dollar is greatly reflected by how well the US economy is doing.

Ok, cryptocurrency is somewhat similar. Except they’re location-agnostic and separated by their projects/platform rather than by geographical boundaries. Take Ethereum for example. It’s a whole platform that can do many things and many sub-things related to sending, receiving, and processing money. Its platform also has its own coin (“ETH”). Cardano project has its own coin “ADA”. Even Binance exchange has its own coin stock “BNB”. All these different companies have their own crypto coin (currency). Kinda like how every public US company has their own stock.

What determines the value of a crypto coin?

  1. Success – by how well its project is doing. If it’s used massively.
  2. Speculation – by how well the public thinks the project is doing. There’s also many blind investors who buy ETH without knowing what it does or how it works.
  3. There are literally “meme coins” (like DOGE or SHIB) that aren’t built on any platform or do anything useful. They are empty fake paper coins that got big in value because people bought it as a joke but then because it made real money, more people bought in.

So you need to know what coins have real projects behind them, which ones are only jokes, and which ones are only promises. I know…it’s hard to tell. Because every cryptocurrency website makes promises like they’re gonna change the world with their technology, etc. It’s not unlike new EV (electric vehicle) companies popping up saying they’re gonna beat Tesla while not haven’t built even a prototype yet.

Crypto exchanges are different. They sell only crypto currency & NFT’s.

  • There are many and some are limited to only certain countries.
  • I highly recommend you sign up on all of these: Coinbase, Binance, Gemini, Crypto.com, KuCoin.
  • Why not just one of them? Because many of the coins I buy are only available on some. Also too…their interface can differ greatly from one platform to another and it’s good for you to get acquainted with all. Coinbase/Gemini are easiest. Binance, Crypto.com, KuCoin look hard.
  • When you become a pro, you’ll probably use decentralized exchanges like UniSwap. They’re more complicated to use (have to connect a wallet) but have many more currencies and allow you to swap from any currency to another…whereas other exchanges maybe only allow you to buy from US dollar.

What is a crypto wallet?

It’s a digital wallet that you store your crypto currency in. Starting investors won’t have to deal with this but I recommend you get one once you have over $10k. Storing your crypto in a “wallet” is safer than just leaving it in your exchange because it’s less chances of someone hacking into your exchange account and sending all your crypto to their accounts.

Only drawbacks with wallets is that it’s annoying to send things back and forth. There’s also fees for sending. They also don’t have fancy charts to show your gains and losses. Although you can get around that with wallet trackers like Delta.

For newbies, I recommend you get MetaMask. Just have it for now and then start using it later when you need to do complicated swap-trades. I would also recommend a “cold wallet” (fancy Ledger Nano X, cheap one Ellipal) once you have more money than you’re willing to risk losing.

Other ways to make money with crypto – mining, farming, staking.

There are so many ways to make money with crypto and I keep learning of more and more methods. It’s not just buying and selling stock (coins).

  • Mining – is when computer resources are dedicated to solving algorithms to be rewarded in free coins. You can build your own mining farm (set up custom rigs to process 24/7), I probably wouldn’t do this. Or you can invest in mining stocks or mining pools (basically paying others to mine for you and split profits). I never tried. I think their profit isn’t worth it anymore.
  • Farming – get rewarded for providing liquidity to the market. Basically you convert your tokens to rarer ones and get rewarded in a percentage split of fees charged to people who paid to convert through those coins. You can easily make 10-60% returns per week but there risks. You could lose out on market gains on more stable coins. For this reason, farming is more recommended during bear seasons.
  • Staking – everyone should do this. Safe 2-8% returns for delegating your coins into its network. Think of it like a traditional bank CD except only you can pull out (almost) anytime. You also get lots of freebies, airdops and other free coins. Depending on how you do it, you can also get much more. I don’t always stake because I’m a lazy ass, but the big ones I definitely do. Staking can be automated on some exchanges, require a few clicks on others, or a total PITA (wallet transfer and 5-8 clicks to delegate). Once you got over 30-40 different coins, you gonna get lazy.

Traditional stocks or crypto?

I would do both. Lots of money to be made everywhere. For me crypto is way more volatile and therefore, lots more opportunity to be made. It skyrockets higher (for profits), and crashes lower (for buy-ins). Regular stock is less volatile and less work to be done if you want to day-trade. Crypto is a bit wild and you find yourself with more opportunities to game the system. All depends on how active you want to be.

TIP #4 – don’t listen to anybody you don’t know (personally)

Oh if only I knew this 20 years ago!!!

There are so many gurus/experts/world-renown so-called stock analysts out there. All of them being touted as prophetic with “1371% average annual gains”, and such and such incredibleness. I say you ignore these motherf**kers.

Because at BEST, you will break even. And most likely, you’ll end up at a loss because you’d only be doing what most sheep investors are doing…just “following the trend”. You’ll end up buying too late (when prices are high) and selling too late (when prices have fallen).

Use your common sense. If these guys had such great advice, why would they sell it to you for $59 a month? Shouldn’t they be keeping that info on the down-low and keep all their millions to themselves?!!

So I say you do what I do. Find a friend who you trust. Buy what he/she buys. End of story. Your middle class friend who’s investing $100k of their hard-earned money…THAT’s the person to trust! Because you know damn well they did their homework and already spent lots of personal trial-and-error to know what they know. Your friend is hoping to have financial success and would probably be glad to help out a fellow friend.

The only hard part is that many people (unless they’re scammy) are afraid to advise close family/friends. They don’t want to be responsible for someone close to them losing money. Just so I make this clear…my youngest brother with six figures in investments refuses to give me any advice at all. My cousin who made 7-figures before age 25 is absolutely hush-hush as well. Many successful people simply don’t brag.

Why NEVER to listen to the big name celebrity analysts/advisors…

Because they’re lying sacks of crap. Many of them work for or with big funds that directly invest in the same stocks. Often using their friendly loudmouth guy to manipulate the market in 2 ways:

  • Pump the stock – they buy the stock at a low price, then tell everyone else it’s a great buy. Their stock goes up when you buy.
  • Dump the stock – then after they’ve already sold at its high point, they’ll tell everyone the stock is a bad buy. Causing people to panic sell and dropping the price. (So they can buy right in again.)

And thus you understand the “pump and dump” saying. I’m sure there’s way more detail to it but you can read up on that later from people who know much more than I do.

I like the Palm Beach Research Group.

They deserve a special mention. They have free email newsletter tips and what not. But they also have a premium report service. Costs like $15k and totally worth it. My friend bought LUNA at $0.27 thanks to them (it’s $34 now).

There’s just so many new stocks coming out there that there’s no way in hell you can search and research all of them. So having a professional group run these things for you is so invaluable. You can easily 100x things just because you were 2 months earlier than everyone else.

Whatever stock picks this group mentions, I throw $100-$1k at each one and you easily make 3-100x times back within 3-12 months. (Of course, not all of them hit it big but all it takes is one winner to send your portfolio to the moon.)

Who does WPJohnny listen to?

  • Raj (friend) – a writer I knew from my old PR firm job back in 2010.
  • Gareth (friend) – a British retired guy. Also ex-fighter and tech guy like myself.
  • Random finance professor I met in a hostel.
  • PalmBeachGroup (reports).

And then I also listen to random people I meet around the world. People who are holding coins and invested in projects I never heard of. You can always tell the casual one-hit-wonder “stock-bro” showing off his Bitcoin asset screen at the club…vs the pro silently trading in the hotel/coworking back corner every morning.

Anytime somebody mentions something I never heard of, I buy it immediately just to see: 1) if I’ll make any more money, and 2) if they know what they’re talking about. I’m not even kidding…I’ve made tons of money off of obscure stock calls from random strangers in passing. I bought blindly and holy shit. WOW! (The best one was the guy who told me to buy DOGE when it was only $0.04.)

TIP #5 – what industries to invest

Don’t invest in industries you don’t know.

I’ve heard this before but never appreciated it until recently. They say you should never invest in companies or sectors that you don’t understand. Like if you don’t understand how they make their money, their business model, where they stand among competitors, and other recent market changes (new products, new players).

You could also add to that to say “you should only invest in companies you’re actually a consumer of”. For many people this means investing in Netflix, Amazon, their car manufacturer, etc. Since if you’re a consumer of a brand, you’re more likely to know whether their product is any good and where they stand against competitors.

How to research companies?

This is a tough one. Because every company is going to do aggressive marketing and PR. Promising you all kinds of things so you’ll invest. They’ll say they’re coming out with the best new electric car. Or that their crypto-projects are gonna release a new game-changing technology soon.

…and then they don’t. Maybe they’re late. Or it’s just empty promises. Or they do release the promise but it wasn’t impactful or a competitor did it better. And people panic and sell off because they don’t believe in the companies anymore.

I’ve watched my friends research things in such clever ways and I won’t even get into that. I’ll just say make it your own art. Figure out how to tell when companies are: 1) telling the truth, and 2) actually on the verge or something substantially exciting.

How SMALL investors diversify.

This is that cliche “don’t put all eggs in one basket” saying you hear everywhere. And it’s true BUT…

It doesn’t apply to everyone. If you’re a beginner investor with only $1k to put in. Are you really gonna spread it across 100 different stocks which you have no research knowledge of? Of course not. That’s stupid. You’re better off with a mutual fund or something.

So what should a small-time investor do with $1k?

  • Pick 1 or 2 stocks moderate-risk stocks and put the bulk of the money there.
  • Pick another 2-3 risky stocks bet 10-15% of your budget on it.
  • Pick another 20-30 stocks and put $1 on each (or favorite them) just so you can have a pulse on them.

Again. $1K isn’t much. Even if you make 100% gain on it in one year (which is huge gains), it’s still only $2K the next year. My point is…if you’re going to bet with a small amount, you might as well bet risky to have a chance of blowing up to money that actually makes an impact in your life. Cuz 10% gains every year off a $1K initial investment isn’t gonna change your life.

I’d say it’s damn near impossible for a small investor to diversify. They don’t even have enough money to make a single impactful investment, let alone spread it into multiple impactful investments.

How BIG investors diversify.

They put a lot of money into safe stocks. Longterm brands showing consistent growth over the years. (Because even 10% gains on their portfolio is enough of to live off of.) Then a couple emerging market leaders. And then they still have cash left over to throw at risky penny stocks.

IMO…it’s these risky penny stocks that allow them to diversify so quickly. Because when you’re able to throw $1-3K here and there in every direction. Many will hover at even point or you’ll lose a bit. But if one hits it big, it easily makes 100x. And like that, they not only have made a giant gain from that one stock and their portfolio looks that much more diversified. The more risk you can afford to take, the more explosive gains you are likely to have.

TIP #6 – long game vs short game

Are these even real terms? (Oh well, I hope you know what I mean.) I think you should invest in all three styles. Best chance of solid gains, and keeps you well-informed on market movements over time. Once you have a good pulse of how things are moving…you’ll be that much more intuitive of how to sense things and decide which investment strategy you want to take for each stock.

Long game (3-5 years):

  • Buy a solid stock (Apple, Amazon, etc) and hold it for 3-5 years.
  • Guaranteed gains.
  • Don’t even look at it. Go about your life knowing these stocks will go up because they belong to companies that reaalllllly care about their profitability.
  • You’ll probably get around 100-300% gains in 3-5 years.
  • You also pay the lowest tax rate on long term stock gains (holding stock lower than 1 year).

Generally, all solid companies will rise in stock value. Even if you’re buying them during the down cycle, they will eventually come back up (especially with inflation) if you hold onto them long enough.

Long game doesn’t work so well with many cryptocurrencies because a lot of them get overtaken by newer/better projects and may lose all value one day.

Short game (1 day to 1 year):

  • There are a wide range of terms for short-term investors. Day-trader, swing-trader, scalper and on and on. You don’t have to learn what they mean. They simply buy and sell on much shorter intervals.
  • Short game trading is much more fun. More work and also more rewards. You have to watch the market much more closely…instead of checking in once a month, you’re now watching everyday and sometimes even every hour. I used to hate the idea of this but honestly, it’s no different from you checking your social media apps.
  • Throw money at pre-IPO, new-IPO and SPAC launches, and sell off after the immediate surge (1-3 months), or hang on for 6 months or longer if you want to ride the rocket.
  • Load up during massive downspikes. It’s common to see stocks plunge 10-30% in one day and quickly recover the next week. As I’ve learned…many fortunes are made during those moments if you have free cash on hand to seize advantage.

My two favorite things about short-term trading is that: 1) It’s more fun. Feels like a game you’re actively playing and with big risks and rewards. 2) You’re more likely to have cash on hand and able to take advantage of other hot stocks. This is actually what “investing” is for me.

Long-term trading just feels like a CD savings account with higher gains. It’s ok if you’ve got a lot of money and want it to make it work for you instead of sitting idle in the bank. But if you’re an average person wanting to LIVE RICH rather than die rich, short term investing is where the action is at. With a bit of due diligence and luck, you can multiply 10x annually. Compound that for 2 years and a $1k “throwaway investment” easily becomes $100K.

FOMO game (zero plans whatsoever):

  • This is the new investor who just buys everything people mention without any idea of what’s good or not.
  • Also totally me. 🙂
  • Also likely to be you if you’re not a professional trader.

Fine…buy stuff randomly, but try to sell intelligently. Some stuff you hang on to for a while. Others you let go. I will say this…try to take profits when things are especially volatile. Whatever goes up quickly can also come down quickly. (Especially with meme coins or other rabid speculation that isn’t built off of real value.)

TIP #7 – when to buy & sell

Buy LOW and sell HIGH.

This old saying is so true and yet so stupidly rhetorical and cliché that it annoys me. If I could rewrite it…it would be “average out to low buys, load up during plunges, and sell before the next crash”.

Averaging out to lower buys basically means to not buy all at once. Establish a foothold in the market with only some of your cash. Then buy more as prices drop. Reserving cash guarantees you’ll always have money to buy down your losses. Hahaha.

Load up during plunges means to buy a ton of stock when you see its price fall so sharply. A downspike could last a day, a week, or even a whole month. It’s like that Black Friday shoe sale. Buy’em all as their value is surely to recover soon after.

Sell before the next crash is obvious. It’s scary as you may hold on for too long thinking the stop might jump higher when in actuality, it’s overdue for a drop. Easier said than done and only experience and intuition can tell you when to sell.

Nobody knows when it’s the right time to buy and sell.

All the so-called experts can’t predict the market. They simply don’t know. At best, reading the past will only teach you about what can happen but it won’t tell you what will happen. Businesses change, speculations changes, things change. Nobody knows what to expect.

You don’t really know when a stock is at its LOW or HIGH until after it’s already happened. So how have I been making my decisions?

  • Traditional stocks make more sense. They are pretty stable in how high they rocket or how low they dip.
  • Crypto is almost batshit crazy. You can have record crashes 1 month after record highs.

You should ALWAYS buy.

  • I try to buy every stock because it allows me to have a pulse on what’s good or not. And as I said earlier, also lets me know who has their stuff or not.
  • The only thing is I don’t buy a lot if the price doesn’t look good (stock already blew or has a dipping pattern lately).

It’s also important to know that many crypto stocks tend to move with each other. When the markets up, it seems all of them are up. And likewise when they’re down, all are down. So you shouldn’t freak out if the stock you have is falling along with the market. That means it (should) rebound back together with the market. This is very different from traditional stock markets where many industries and companies can move independently of each other.

Typical SELL STRATEGIES.

The general saying is to “always take profit”. Usually after a massive upsurge, you should take profit before the market dips again. And then just buy in more if you want.

Most common tactic – 50% selloff:

  • After a big rise, sell off 50% of your stock.
  • Leave the rest as a moon bag, in case it goes “to the moon”.
  • If it dips massively after the selloff, you can always buy back in.
  • If this stock seems like a one-and-done deal or you KNOW it will crash, then sell off everything.

I’ve also gone the opportunity cost route sometimes. Instead of sitting around biting my nails wondering if my stock is going to drop or jump any further, I simply compare my current stock expectations with other stock available. If one stock is stagnant for too long…I’ll just sell it off and diverge to another one that is about to blow. (Good tactic if you don’t have cash around to take advantage of potential rockets.)

I’m over-simplifying it, as some stock are much more steady (valuable) than others, but you get the idea. It’s easier to buy and sell when you’re comparing options. Either way don’t FOMO yourself from one loss to another. I don’t do this often, ok?

PREDICTIVE SPECULATION – Investing is also a game of reading what other people are gonna do.

I mean…DUH! That’s what it’s always been. Stock value (especially in the short term game) is definitely more dependent on speculation than actual value. You have to get a sense of what people are going to do, then have cash on hand and make the right trades at the right time. One solid trade alone can retire you.

And of course, you have to understand that other people are doing the same thing. Which is trying to guess what other people will do. So then you have to take guesses when markets might change intervals, jump or fall.

Yeah, it’s a lot of volatility. And you do stand to lose a lot of money. I’ve “lost” $10k in one day before. But if you’ve put money into different stocks (hopefully in industries you know) and watched them for some time without emotion, you’ll develop a good sense. If not for how to invest, then at least for how to know who to listen to. 😉

Don’t be emotional (impulsive).

Don’t do that stupid FOMO thing, where you jump into the game because of supposed wannabe internet superstars bragging how much money they made. Most people are lying or full-of-sh*t. People bragging about stock market success are no different from the assholes selling you financial freedom, pyramid schemes, or other make-money-fast bullcrap.

Being emotional about your money will always lead to stupid decisions. Fear of missing out makes you buy expensive, and fear of losing money makes you sell low.

There will always be more opportunities today, tomorrow, or even a month away. You never “missed out” on anything. For every BitCoin and Tesla explosion, there are many less popular stocks that are just as lucrative!

So calm yourself down. And just buy during the right part of the cycle. There are always dips where you can buy in. And also jumps where you can sell off stock you don’t want to hold any longer. If you missed the cycle, just hold your money for the next opportunity. There are always so many around the corner! Do not be FOMO’ed into making bad buys or bad sells! No panic selling. Just hold it!

Learn to embrace volatility. Volatility is your friend.

  • “If you don’t get a heart attack a day, it ain’t crypto!”

I used to hate and be so afraid of stocks because the markets were so unpredicting. Rocketing high one day, crashed super low the next. And you hear frustration and sadness everywhere.

But then if you realize it. This volatility means you can make so much more money. You’ll have many more periods when stocks/cryptos are massively undervalued. Giving you more opportunities to buy in and take advantage of dips. Because otherwise….a super stable market gives you zero opportunity. Once you’ve missed the low, you missed it forever.

Expect crashes.

Sell when you’re up. And be patient. Buy-ins are just around the corner.

TIP #8 – why should you invest?

Because many of us do things for money.

We work for money. Build websites for money. Manage servers. And on and on. And sometimes doing things for money prevents us from enjoying our job. Because we’re forced to take on projects and clients we don’t enjoy that much.

But what happens when you’re all set financially? New doors open…

  • You get to be super picky with which clients and projects you take on.
  • You get to tell the truth on your blog. 😉
  • You get to retire early. Live every day of your life like it’s Saturday.
  • Buy or rent a nicer place. Or travel and live all over the world.
  • Build and fund new businesses anytime you want. Literally putting every idea/dream to fruition.
  • Give it away to family, friends, and other people in need.

Asset perspective.

Because holding money in USD or any other fiat is probably worthless. Leave that $100k sitting in your bank and what’s it gonna be worth 10 years from now? So much less!

Inflation keeps getting worse and worse until the market crashes. So why not hold your resources in an appreciating asset? Real estate, stocks, gold, basically anything other than the US dollar. And if you’re in one of those countries with super unstable economy (say Argentina), you definitely should be holding your assets in another currency.

Crypto is indeed volatile as heck but it’s still going up relatively and lots of room to create new millionaires overnight.

Meeting a whole new circle of people.

I don’t like talking too much about investing or crypto or making money, but I do like talking to the people who know much about it. Many of them are successful, happy, living the good life. Eating fancy everyday, talking big dreams, goals, fun ideas. And being around that positive energy is infectious.

Ironically though, only half of them made their money in stocks. The other half were already financially successful from something else. Regardless, you’ll be in good company either way. Money doesn’t buy happiness. But not having to worry about money makes lots of room for happiness.

TIP #9 – reducing tax liability

Hahaha, the moment you start making real money, first thing that happens is “FAWKKKKK….I don’t wanna pay taxes on any of this.” I think the government takes way too much. And also that people don’t know how many resources there are for minimizing their tax liability. (Besides, the system is literally built to help reduce tax liability for rich people.)

  • Get an IRA account and max it out. These are tax-sheltered accounts.
  • Compare the math between longterm vs short-term stocks. Stocks held for at least one year are taxed 10% on gains. Those held for shorter are taxed at 20-25%.

My friends are giving me a ton more specifics on this as the months go by. I’ll update this guide later sometime when I’m not being lazy.

In the meanwhile, you can check out the Nomad Capitalist (Youtube). He’s definitely the voice of a silent minority of people living across the world off-the-radar under different citizenships. You can easily get another passport by buying property in other countries. Buy a $30k house somewhere and you’ll get a passport within a couple months. Then errrr yeahhhh…skirt your way around tax loopholes all you want. Play the game!

TIP #10 – literally getting started

The easiest way is to find one friend who invests.

We’ve all got one or even many. Ask them how long they’ve been doing it and what exchanges they use. It might be good to find one newbie friend and one pro friend so you can see/hear all the different things they do differently.

Then pay for their lunch or something and have them sit down with you. Show you what to sign up for, what to click. You should probably have your bank info, identification card and passport nearby. If you don’t have a friend, fine you can still follow my guide but it’s nice if you have a friend.

Quick recap…

  • Get $1k or more.
  • Sign up for all the exchanges I mentioned.
  • Put 60-75% of your money in 2-3 medium risk stocks.
  • Put the other 10-15% in risky stocks.
  • Save the rest to buy even more in the coming months as you see dips and crashes or take advantage of new opportunities.
  • Start following more and more stocks. Star/favorite them in your exchanges. Make notes of what you hear people talk about.
  • Don’t worry so much what the experts say, talk to real people in real life and see what they put their money on. See who they follow.
  • Figure out what to do about your tax liabilities when you hit big.

What stocks should you start buying? Ha…oh boy, I don’t want to be responsible for you. There are plenty of groups out there for you to follow. The problem is by the time people recommend it, you might be late for the explosion. And what I’m holding today is not necessarily what I recommend buying today. By the time you read this guide, my positions have already changed.

Where to begin reading? I don’t even bother. I just trust my friends who know more than I do. There’s too much information and I don’t recommend you reading either. You learn so much more info from doing real world trading, farming, staking. Start talking and trying things.

  • The best education for beginners IMO is from the exchanges. They all have helpful blogs and super easy tutorials. There you can easily learn about margin trading, futures, limits, etc. Keep in mind different exchanges may also have different lingo for things.
  • Don’t worry about “knowing everything. You can start trading right away and learn as you go. It’s really the best way.
  • I might rewrite this guide as I learn more accurate ways to explain things. But please keep in mind I’m still a noob and also that my explanations here are not as detailed as I know them.
]]>
https://wpjohnny.com/stock-crypto-investing-advice-from-noob/feed/ 0
Stop word-stuffing your blogs for SEO https://wpjohnny.com/stop-word-stuffing-for-seo/ https://wpjohnny.com/stop-word-stuffing-for-seo/#comments Sun, 05 Sep 2021 06:20:46 +0000 https://wpjohnny.com/?p=7700 I get it. I know why you’re doing it. Somebody told you more words = higher SEO rankings.

And ughhh…it’s true. Having more words really does establish you more as the “authority” on search engines. And to some degree by visitors as well. They see a giant post and automatically assume “Ooooh, this is super long, must be comprehensive…let’s save it!”

But for me, it’s freaken annoying. And makes for poor UX. So what do we do about it?

If you care about SEO

Then just keep what you’re doing. Google’s algorithms are still vulnerable to methods of gaming the system like this. If you’re a small time business and rely on Google traffic from absolute strangers to grow your business…then by all means, don’t listen to me and don’t change anything about your site.

If you care about UX

Then cut that crap out right now. People need fast answers. So get straight to the point, please! Be organized. Be brief. Time is money and I aim to save you as much of it as possible!

]]>
https://wpjohnny.com/stop-word-stuffing-for-seo/feed/ 10
DISRUPTING a WordPress plugin market https://wpjohnny.com/disrupt-wordpress-plugin-market/ https://wpjohnny.com/disrupt-wordpress-plugin-market/#comments Wed, 01 Sep 2021 18:05:00 +0000 https://wpjohnny.com/?p=6335 Step-by-step guide to overthrowing long-entrenched plugins with unhappy users.

It’s time for a WordPress citizens revolt against bad plugins and my [theoretical] guide shows you how to do it.

STEP #1 – Select a plugin market.

Start with plugins you know and functions you actually use. Then find the big bloated plugins in that category that you know you can do better than.

I suggest sticking to a plugin category that you actually know. I don’t recommend chasing the money…but sure, do whatever you want.

Some ideas:

  • Plugins proven markets with tons of (preferably paid) users.
  • Plugins that with tons of utility and features.
  • Plugins with emerging niches that show trending growth.

STEP #2 – Build a free plugin with essential features.

It’s simple as that. Pick the most essential features that everybody wants…even better if you can put the features that other plugins charge for…and make it for free!

Your plugin will now have only essential features, built from scratch for the purpose of the current era. Whereas other plugins are bloated and full of features from a previous era that aren’t as valuable today. Your plugin will theoretically be lighter both in code and also in UI design because it’s made perfectly for the market now.

That’s the real strength newer/smaller plugins for me. Written from scratch and don’t have to cater to current user base and pricing model. As those big plugins can’t just chop things out unless they decrease their price as well.

STEP #3 – Add “premium” features.

Now it’s time to start adding the extras. Many free users will wish you had XYZ feature just like the bigger premium plugins, and will be willing to pay for such extras. The more premium features you add, the more you can justify charging money for it.

I think what’s most important is NOT to look like you’re eventually building your brand to be just like your competitor. It has to be clear that you’re building towards something different. So you better strategize correctly. Deciding which features to build first and which are most important as THAT will determine how your overall product and branding is different.

Take GeneratePress and Astra themes for example. Both are very similar and do more or less the same things. But GeneratePress when it was originally being built was targeted for developers…things like hooks and filters, sections and elements, then later had customizer settings and such. Astra however started right off the bat branding itself for speed and pagebuilder-compatibility. That pagebuilder aspect alone really set it apart from GeneratePress even though it’s very similar in many ways.

STEP #4 – Declare your brand position.

Now that you’ve got a big user market and a clearly differentiated plugin, it’s time to stake your place in the market. Say it loud and proud.

  • “WE ARE XYZ PLUGIN and we are the best at ________.”

Good marketing isn’t just telling lies, right? You should have a diehard loyal following by now, willing to re-chant your slogan to the rest of the world.

The brand is there. The success is there. There shouldn’t be any doubt what kind of users your plugin is best for.

STEP #5 – Refactor or reinvent.

Here comes the hardest part of running a business. Very few companies get it right and for that reason, it’s why many of them will die off during this phase.

Now matter how successful or how much market share you have…the market always changes.

This has always rung true time and time again.

  • One day people want to buy pre-made themes.
  • Then people want a theme to custom code (Genesis).
  • Then they want custom theme that doesn’t require code (pagebuilders, GeneratePress).
  • They they want fast themes with customizable design (Gutenberg, Blocksy).

And when the market changes…you either have 2 choices.

  1. Refactor – rebuild your product completely from scratch to be lean and best fitting the current market. Almost no company does this as it’s tons of work and damn near impossible to be compatible with existing users. So they just ride their product off into the sunset.
  2. Reinvent – start creating a new product to supplement your existing one. It’s a good way to add revenue while starting over with a new brand/product. But can alienate existing customers who feel abandoned.

Actually, there’s a 3rd choice. It’s to cover your eyes and double down on your product despite signs of the market shifting away from it. Look at pagebuilders today in a Gutenberg world and you’ll see what I mean.

]]>
https://wpjohnny.com/disrupt-wordpress-plugin-market/feed/ 1
FINDING SUPPORT for any theme or plugin https://wpjohnny.com/find-support-for-theme-plugin/ https://wpjohnny.com/find-support-for-theme-plugin/#respond Tue, 31 Aug 2021 17:36:27 +0000 https://wpjohnny.com/?p=7930 Tips to getting help for all WordPress theme or plugin issues.

I’ll show you a few handy ways to make your issues heard and hopefully get replies back from the theme/plugin developer.

1. Get the PAID version

Do you absolutely want and need prioritized support? Then pay for it! Get the paid version of the theme or plugin and you can ask for help directly from the developer site.

2. Go to WordPress.org repository

If you’re using a free theme or plugin, you can go to the WP repo…then find the page for the theme/plugin, and click the Support Forum button on the right. From there, search existing requests to see if other users had the same problems or make a new one.

It helps to have a good attitude. Don’t be one of those annoying customers putting a 1-star review and “THIS PLUGIN SUCKS. FIX IT NOW!” Try a kinder approach. How about a forum request like:

  • TITLE – “Love this plugin but it breaks my site.”
  • DESCRIPTION – “Thanks for this awesome plugin. I used it without problems for many months but now there’s this [small issue] and I can’t use it anymore. Please don’t make me go back to [insert competitor name].”

3. Find the Facebook group

Maybe the theme/plugin has a community Facebook group. Join it and ask for help. Sometimes they may not have one for their smaller plugins…so you have to join their overall brand community.

I suppose you could also join broader Facebook groups that cover or have many users of your theme/plugin.

4. Pay someone else

Sometimes on support forums and Facebook groups, you still won’t get support….BUT, you can see replies of other users and it’s easy to tell which ones are more experienced and might be able to help you. Contact them and offer to pay for their help.

Stop being a cheapass, and hire a pro. Even if you insist “doing it myself so I can learn”…some things are learned faster by hiring a pro rather than by digging through 100 wrong methods.

5. Self-diagnose

While you may not have the skills to fix things, ANYBODY can figure out most problems just with a few steps.

  • check error logs – go to your website directory and read the error log
  • enable and check debug log – you can Google how to do this
  • switch to another theme – see if problem is resolved
  • disable plugins one by one – until problem is resolved

Almost all issues are due to plugins conflicting with each other or with the theme. The good news is that figuring out the issue is pretty 80% of the problem itself (and the most time-consuming aspect of it). Once you know where the problem is, you can easily fix it yourself or have someone else do it for you.

6. Blame your webhost

Being a webhost myself, I will 100% will put a hex on your entire family if you write into support blaming my server for your theme/plugin problems. But alas, the tactic works.

Write into your webhost saying you don’t know why your site won’t work properly. And maybe they will (or won’t) help you. But if they choose not to…you better not be a jerk and blame them for your site issues.

]]>
https://wpjohnny.com/find-support-for-theme-plugin/feed/ 0
RunCloud BEATS Cloudways & GridPane – 2022 review https://wpjohnny.com/runcloud-cloudways-gridpane-2022-review/ https://wpjohnny.com/runcloud-cloudways-gridpane-2022-review/#comments Mon, 30 Aug 2021 17:38:43 +0000 https://wpjohnny.com/?p=11224 These companies used to be kinda the same…but now they’re not.

3 years ago, they were all similarish stack, performance, and pricing. Some differences in UI, business model, vibe and service level…but still mostly targeting the same customer base. Now they’re vastly different companies with totally different product positioning.

Here are some old reviews for comparison (if you’re curious).

Let’s see what’s changed…

1. RunCloud (is the winner)

RunCloud is the winner. There I said it. If you got more important shit to do, you can stop reading now and just go sign up with RunCloud.

  • BEST UI – most mature and cleanest professional-looking panel of all three. Tons of tools and widget-ey things for devs while still usable for noobs. You’re not lost clicking back and forth between the same screens like with Cloudways.
  • BEST PRICE – easily the best and most non-obnoxious pricing of all cloud panels. RC is actually cheaper than even many new up-and-coming cloud panel services while despite still being better and with a longer-standing brand name. You can manage 1 server for only $6/month, and unlimited servers for $12/month.
  • FAST – RC stack performance is on par with all the fastest cloud panels out there. Of course they all advertise that they’re faster than each other but really the best ones are all the same speed. Maybe 2% difference, tops.
  • LITESPEED SERVER – it’s widely known that I’m the biggest fan of LiteSpeed servers, great performance and comes with my favorite cache plugin (LiteSpeed Cache). So obviously, I love that RC has OpenLiteSpeed (and being one of the few to have it).
  • FILE MANAGER – hahaha, go look around and see how many cloud panels have a file manager feature. And you’ll see almost nobody’s got it.
  • OK SUPPORT – many people say RC support is limited or bad or slow. I’m not sure about all that since it’s always worked for me. But maybe that’s because I’m not having noob issues.

I really love where RunCloud’s future is. Non-gimmicky hype marketing. No overblown promises. Public-facing figures (in FB groups) are professional and helpful. Features are added over time to a mature stack and the product works well. If I was to run my own cloud panel, it’d be like RunCloud.

It’s clean, it’s mature, it works, it’s cheap. A great little service at a great little price. Way more dev-friendly IMO than Cloudways or GridPane. Absolutely no-brainer best option of the 3 for me. And it’s the cheapest one!

2. Cloudways (is ok)

Cloudways is somewhat useable. The pricing is more fair than when they first started and the support is responsive. I used to recommend Cloudways as a safe bet, and while it still works for most people, I find it too buggy for me.

  • ANNOYING UI – I’ve been using CW for 3-4 years now? And still find myself clicking back and forth between the same screens. I’m always looking for shit in the wrong places and the screens take forever to load. Things feel slow!
  • BUGGY – really shocked how a company this big still has many bugs from time to time. Things like backup don’t work. Or files don’t have the right permissions. What’s the point of having SSH if I still have to bother your support team to do simple tasks? I’m not gonna bother listing the dozen other bugs.
  • SLOW – this is really unacceptable. Many things are slow. The UI is slow. The stack is slow. Servers seem to be forever DDOS’ed or bot-ed to death. I won’t blame a cloud provider for dirty IP’s but it just feels like CW servers are always slow and support’s answer is always the predictable “you must upgrade”. Well guess what? I did just that and the speed still sucks.
  • FAIR PRICING – the price is alright when the stack works. And I’m sure it works for many people as CW is quite popular. Maybe you’ll have better luck than the 50 times I’ve tried CW over the years.
  • GOOD SUPPORT – support does indeed try to be helpful and solve problems. Of the 3 managed cloud panels listed here, CW support is easily the most noob-friendly. You can ask all kinds of dumb questions and their team will be patient enough to answer you.

Let’s face it. Cloudways is only the most popular because their affiliate program is the best-paying of the 3. RunCloud doesn’t give you much, and GridPane didn’t have one for a long time (I think they still don’t?). The pricing was never the cheapest and the stack was never the fastest. I think Cloudways stack and company are both too big (bloated) to evolve with the times. I don’t expect any improvement from them over the years and see myself recommending them less and less, if even at all.

The only reason why I ever recommended Cloudways was because their stack was “good enough” and they offered noob support. If not for the noob support, I wouldn’t recommend them at all.

3. GridPane (is overpriced)

GridPane is too expensive for what you get. The starter plan is $200/month (compared to $6/month for RunCloud). Do you really think you’re getting 30 times the value? Of course not. But GridPane does have customers…so let’s fairly cover what they do right (along with the things I don’t like).

  • SIMPLE UI – easy interface with fewer places to click, focusing on what matters most. Makes running servers look easy. I think newbies may prefer GP’s simpler interface. Whereas hardened devs (like myself) may prefer a fuller cockpit UI like with RC.
  • FAST – no doubt about it, GP has always focused on speed. GP was the fastest cloud panel stack for a while…but (almost) everybody else caught up now. I like that the panel UI feels fast as well, unlike CW’s bloated ass.
  • BACKUPS – this has never been my differentiator in picking a cloud panel but I believe GP has the best backup system? Maybe it allows the most frequent backup intervals or more backup options and locations? Not even sure, honestly. But if you have a very particular need regarding backups, GridPane is for you.
  • US SUPPORT – GP support has been reported as hit or miss by many. but personally, I’ve only had fast responses by American devs/engineers so that’s a great thing for me. I much prefer that vibe over the overly-courteous “sir this, sir that” you get from Asian support devs. American support is more like “np, buddy!”.
  • HIGH PRICING – GP has clearly marked their territory with a play like this. They only want serious clients with serious server needs. So basically, anyone running less than 10 servers is probably not a good fit for GridPane. Is the price set that high for brand prestige? Cover the higher costs of American support? Pay for affiliates? Avoid bottom-level clients that clog support lines with basic questions? I don’t know. All I know is I literally can’t recommend them to 99.99% of people out there.
  • MISSED FEATURES – when you’re priced that high, you definitely need more features to justify the cost. And I’d say GridPane doesn’t have them. The most important features in GridPane can also be found in their competitors. And I often hear the unique promised stuff by their roadmap is missed or delayed.
  • UNPROFESSIONAL FOUNDER – GP’s founder (Patrick Gallagher) is widely known as a mean person or at the very least a “speaks his mind” type of guy. God forbid you ever say anything unsavory about his service, you’re not only going to be personally (and publicly) attacked by him but he also likes to incite mob-shaming. Not a big deal if you silently use the service. But definitely a problem if you like to post honest opinions in public, or want your criticisms heard. Patrick is quick-tempered and easily ego-defensive about his business…so beware!

GridPane appears to me like a company without a rooted identity. In the 4 years they’ve been operating…I’ve watched them jump back and forth from one business model to another. Constant price changes, website redesigns, LTD sales, customer re-targeting, hosting masterminds, and decision switching on many things. (With the product being mostly the same the entire time.)

One could see this as a company being extremely agile and rapidly adapting to the market. Or you could see it as a company re-releasing its product repeatedly because it didn’t make its expected market impact. After all…why would any successful business/product switch its marketing so many times? (Nobody dares to change what works, right?)

All this tells me GridPane is more focused on profits than actually being the best cloud panel. Which isn’t a crime by any means (they are a business after all), but I’d worry about customers getting alienated in the future because they don’t fit GridPane’s profit-strategy.

4. What about the other stacks?

Every time I write one of these pieces, I get annoying comments asking about other services I didn’t list here. They’re not listed because they haven’t made enough impact to be compared. Could they be just as good, or even better? Absolutely. But I don’t cover them in this guide because they’re not at this level yet. Not fast enough, not enough features, not enough proven customers, or not enough differentiation in some other way.

But I already know some of you will insist on asking anyway.

  • “But what about _____? Is _______ better than RunCloud?” *whiny ass voice*

NO. RunCloud is the best cloud panel right now for me. And if one day I change my mind…I’ll let you know right here on my site. And until I change my mind, this is my answer.

]]>
https://wpjohnny.com/runcloud-cloudways-gridpane-2022-review/feed/ 53
Betrayed feelings about Frost theme https://wpjohnny.com/betrayed-feelings-about-frost-theme/ https://wpjohnny.com/betrayed-feelings-about-frost-theme/#comments Fri, 13 Aug 2021 17:14:08 +0000 https://wpjohnny.com/?p=11203 Here we go again with another WP theme threatening to “change the world”…

*massive eye roll*

Like with crypto, I once again make predictions without knowing anything about the project.

What do we know about Frost and Brian Gardner?

Frost is Brian Gardner’s latest premium WordPress theme project/business.

It’s fucken sexy. The design work is A-level. Maybe some of y’all like those garbage pagebuilder demos but I don’t. They look cheap (and over-designed) to me.

Brian Gardner is also the founder/co-founder of Genesis…which was my favorite premium WordPress theme for a lonnnnnnnnggggg freaken time. It wasn’t only my favorite but for many other developers as well. And I’m not talking about “experts admins”…I’m talking about a time when the word “developer” was synonymous with “coder”.

Then Brian got busy in life and didn’t do much with Genesis. He used it more as an entry point to upsell other products/services and his how-to-make-money podcast. The theme’s growth was due instead to the contributions of 3rd-party development. For a period of 2 years, StudioPress was constantly offering lifetime deals for Genesis and its child themes. We should have known this was the end (of his contribution to it).

Because Brian then sold Genesis to WPEngine, where it’s now used to upsell WPEngine’s mediocre overly-priced overly-hyped hosting services.

Now Brian Gardner decides to jump back into the WordPress theme market with (what he hopes to be) a recurring-revenue premium theme. And I imagine he’s learned a lot about how much money he left out when Genesis sold as a one-time purchase. And hopes to replicate his past success but with greater payout.

Do I think Frost will be successful?

No.

It feels like a cold faceless betrayal to all the loyal Genesis users. He literally walked out on the success of GenesisWP. So while Frost might look to be revamped and reinvented, it’s soulless to me.

The design quality is still top notch. The developers are top notch (WP core contributors). I also suspect the Gutenberg integrations in there will be awesome. But are they gonna out-hustle all the other themes currently grinding their way to what Genesis once was? Hell no. They’re gonna quit as soon as it doesn’t make the money they expect.

This project was never about passion and for that reason…I’m out.

PS: You can find me on GeneratePress (lead by Tom Usborne) who still keeps in the spirit of what Genesis once was.

Updates and replying to Brian Gardner:

  • FrostWP renamed to Frost.
  • Brian says Frost is actually a Genesis child theme, not a new theme. I think that’s good news. I do wish this was made more clear on the Frost website. It would certainly help with the mis-confusion.
  • Brian says he never had a make-money-online podcast. I remembered RainMaker but he says he was never a part of that. He listed instead No Sidebar, StudioPress FM, and Agent Engine. I do remember StudioPress FM (which is not a paid podcast or money-coaching scheme). Long story short…he’s not about the money and very reasonable for him to defend this.
  • Ultimately, my qualm is with him abandoning his loyal Genesis followers to pursue bigger money elsewhere. It doesn’t mean I don’t trust the quality of work, it means I don’t believe he’ll stick around for the long haul…especially if it doesn’t make the money he wants.
  • DEC 24, 2021 update – Frost is acquired (I assume sold) by WPEngine (just like Genesis). WP Engine Acquires Brian Gardner’s Frost, Opens It to the Public -WPTavern. So we’ll never know what the heck Brian was really planning with it but hey, it’s now another free option…so you can’t complain. Let’s play. I always felt Frost wasn’t gonna last long but I didn’t think he’d exit this fast.

]]>
https://wpjohnny.com/betrayed-feelings-about-frost-theme/feed/ 20
WPCloudDeploy unofficial setup guide https://wpjohnny.com/wpclouddeploy-unofficial-setup-guide/ https://wpjohnny.com/wpclouddeploy-unofficial-setup-guide/#respond Fri, 06 Aug 2021 19:45:22 +0000 https://wpjohnny.com/?p=11191 Because I had basic issues setting it up myself.

But follow this guide and you’ll be having fun with WPCD in no time! More tips to come. 🙂

Steps to install WPCD:

  1. Install plugins – core, provider, whatever else you need (like WooCommerce subscriptions).
  2. Add encryption in wp-config.php – the line looks like this define('WPCD_ENCRYPTION_KEY', 'your very long encryption key goes here');
  3. Paste SSH private key – choose your SSH key from dropdown in your cloud provider settings, then paste the SSH private key in the text field below it.
  4. Increase SSH timeouts to 300 – done from WPCD general settings page.

These steps alone should be enough to get up you up and running, and ready to setup servers.

Other suggested settings:

  • Cloudflare DNS – to automatically configure your subdomains or staging sites.
  • Hide DigitalOcean from provider list – useful if you don’t use DO. Do this from the “Misc” settings page.

Troubleshooting (random issues I had):

Because sometimes things don’t work and you start randomly flipping things all over the place.

  • Incorrect SSH paste – cuz I pasted badly from terminal with extra spaces.
  • Misc settings – increase timeout from 15 to 25mins (maybe needed for data centers far from your WPCD origin server).
]]>
https://wpjohnny.com/wpclouddeploy-unofficial-setup-guide/feed/ 0
Removing WordPress user registration spam https://wpjohnny.com/removing-wordpress-user-registration-spam/ https://wpjohnny.com/removing-wordpress-user-registration-spam/#respond Sun, 04 Jul 2021 01:00:11 +0000 https://wpjohnny.com/?p=11170 An appreciation plugin for the User Spam Remover plugin.

This isn’t a post on stopping user registration spam. It’s about what to do once you already have it. I can show you how in (about) 3 simple steps.

1. Install User Spam Remover

2. Run the “remove spam users” now.

  • Go to Users > User Spam Remover, and check the box for “Enable”, then adjust the number in the “Age threshold (in days)”. Ideally, this number should be 1 day less than the most recent spam user registration.
  • Then click the [Remove spam/unused accounts now] button. You may have to repeat this several times, as it only deletes 1K accounts on each run.

I found this plugin easiest to use if you have many spam users and only very few legitimate ones. If you have many legitimate ones, you’ll need to whitelist a full list of usernames (say, only WooCommerce customers) in “clever developer manner”.

3. Restore legitimate users (if needed).

If all important users are still there, then you’re done. If many legitimate users are missing:

  • Download the restore file from the plugin directory /wp-content/plugins/user-spam-remover/userspamremover.restore.sql to your computer. And open it with any text editor. (Code editor is probably better and less likely to crash your computer.)
  • Search for the user name or email, you should see in 2 places of the restore file.
  • Now open up your webhosting phpMyAdmin, and click on the [SQL] tab.
  • Now you’ll copy off the instances of the user records into the SQL tab. The first instance is a full line, paste it and hit ENTER to drop to the next line. The second instance should be a whole bunch of rows with the same user ID, paste them all into the SQL tab beneath the first line you pasted.
  • Then click [GO] at the bottom and your user should be restored.

Final notes:

  • Easy way to stop user registration spam? – Go to Settings > General, and uncheck “Anyone can register”. Don’t worry, WooCommerce customers can still sign up.
  • Or you can use any of the many user spam blocker plugins out there. Simply search “user spam” in the WordPress repo. They all have different mechanisms for blocking user spam.
  • Yes, I’m aware the User Spam Remover plugin hasn’t been updated in a while. It still works fine for me.
  • For extra help or FAQ, see the User Spam Remover page.
]]>
https://wpjohnny.com/removing-wordpress-user-registration-spam/feed/ 0
Always use a CHILD THEME https://wpjohnny.com/always-use-a-child-theme/ https://wpjohnny.com/always-use-a-child-theme/#comments Fri, 02 Jul 2021 01:22:31 +0000 https://wpjohnny.com/?p=11093 Why and how to always use a child theme.

Long story short, it saves all your theme customizations. So you can update your theme freely without ever losing your theme customizations:

  • Customizer (settings)
  • Style.css (modifications)
  • Functions.php (modifications)

Most people customize their theme and website appearance in either of the three places above. They either choose or enter settings in the Appearance > Customizer, paste CSS code into the style.css, or paste code snippets into the functions.php file.

And while those are the proper ways to customize your theme, they have one big risk. The risk is if your theme has an update…it might overwrite your settings, style.css modifications, and functions.php hacks. So THIS is why everyone tells you use a child theme.

How to activate a child theme

Thankfully, it ain’t that hard.

  1. Go to your theme website and download their sample child theme. (For example, here’s the GeneratePress blank child theme).
  2. Go to your theme settings and “Export settings” to a file. If your theme doesn’t have an option to export settings, skip this part.
  3. Install and activate your child theme.
  4. Then re-import your theme settings into the child theme…or if you couldn’t export the settings previously, then you’ll have to re-do all your settings and customizations.
  5. OPTIONAL – go to the child theme folder and put your name and url into the top of the style.css (replacing the existing stock theme name). You can also put your own screenshot.png image (880px by 660px) so it looks like your site.

Does your theme not allow for child themes? Ouch, it’s probably an outdated one and should be replaced by a newer better WordPress theme.

What is a child theme anyway?

  • You can think of “parent theme” as a complete theme, complete with all the coding and styling files needed.
  • And a “child theme” as an addon to the parent theme, that has only the extra styling and functions that apply specifically to that child theme.

Child themes are useful because you can put all your customizations into the child theme, and then the parent theme is free to update often and you never lose your modifications. Child themes are also useful for developers to sell their own pre-made theme designs without having to code a brand new theme from scratch. You can think of it as like an iPhone case. The parent theme is the actual phone, and a child theme is just the design cover that goes over it. (Honestly not sure this is even a good analogy. But I hope you get the point.)

]]>
https://wpjohnny.com/always-use-a-child-theme/feed/ 11
How to NOT get destroyed by Google algorithm updates https://wpjohnny.com/how-to-not-get-destroyed-by-google-algorithm-updates/ https://wpjohnny.com/how-to-not-get-destroyed-by-google-algorithm-updates/#comments Sun, 27 Jun 2021 15:48:00 +0000 https://wpjohnny.com/?p=9401 My completely unscientific guess on to dodge Google’s seasonal algorithm “purge”.

It’s the same story I’ve seen every year now.

  • Google makes new algorithm adjustment.
  • Clients cry of lost traffic.
  • Clients do more or less of the same shit.
  • …repeat!

Here are a few tips to beat the vicious cycle:

Why you should listen to me

Although I don’t work for Google, don’t follow their algorithm updates, don’t even care about optimizing for them…my sites still have retained their ranking for over a decade. They do quite well and I’m never worried about algorithm updates. If anything, I almost welcome them.

Not only that but I also manage many clients, across many niches. I can see the same parallels in the ones that lose traffic and the ones that don’t. I bet if you could see my clients sites and their traffic numbers, it wouldn’t be hard to draw correlations either.

1. Stop spamming Amazon links

I think this right here is the most obvious way for Google to judge the quality of your site. What’s your ratio of pages with Amazon links to pages without? If virtually 100% of your pages have Amazon links…then yeah, you’re just asking for the ban-hammer!

  • Let’s try 50/50?
  • How about some philosophical pieces or anything other than the same old review and aff links template?

2. Stop writing ME-TOO content

Write some original shit off the top of your head, using an original title. Don’t do the keyword research thing. Or at least don’t do it for all your content.

  • Don’t worry. Google is smart enough to read “human speak” and still show your site in related searches.
  • I understand this is damn near impossible for some of you using contract writers to “research” and copy other sites. Tsk tsk…how do you ever hope to outrank the sites you copy?!

3. Make your site load fast in mobile

Let’s be clear…I don’t care about page scores, I care about how long your eyeballs wait before the content shows. 1 to 2 seconds is good. (Ideally, it really should be 1 second.) And if you have any stupid gimmicky effects that lag your site, get rid of that shit.

  • Get a good webhost.
  • Get rid of pagebuilders.
  • Get rid of annoying page-lagging asset requests.

4. Write for social media

I hate how I said that. Maybe a better way was “write for a human audience”. My point is this…write your content for humans. Forget about the focus on SEO crawlers, word count and keyword density, blah blah.

  • Write your shit to be entertaining and actually speaking from your heart…and YOUR personal point of view.
  • Don’t do it like a 10th-grade essay assignment, where it’s comprehensive but lacks soul.
  • And yes…I understand this requirement is hard if your writers are paid by the word, rather than by shares or engagement time.

5. Be unique, stop following the formula.

  • Some pieces long. Some pieces short.
  • Some are for information. Some are just for fun.
  • Write something even if it don’t make you any money.

6. Stop worrying about Google algorithm updates.

This seems so against-the-grain, but it’s true. Every year, Google comes out with new supposed requirements for webmasters. And as always, they don’t take it as seriously as they claim to.

  • One year they said no more link farms, yet link farms still got away with backlinking themselves.
  • Another year they said they would penalize duplicate content, yet competitors that stole content sometimes ranked higher than the original.
  • And now they say they care about website speed…yet MANY sites with horrible page scores are still dominating Google.

So what do the experts know now? Same thing they’ve always known. Google simply gives guidelines, but doesn’t adhere to them over other “hidden” metrics they consider to be of higher importance.

]]>
https://wpjohnny.com/how-to-not-get-destroyed-by-google-algorithm-updates/feed/ 6
Why WordPress SUCKS (and how it could be better) https://wpjohnny.com/why-wordpress-sucks-and-how-it-could-be-better/ https://wpjohnny.com/why-wordpress-sucks-and-how-it-could-be-better/#comments Thu, 24 Jun 2021 17:38:00 +0000 https://wpjohnny.com/?p=10897 The oh-so-many laughably true limitations of WordPress.

…and my humble ideas on how they might be improved. This post was inspired by Wix’s advertising campaigns taking funny jabs at WordPress (and its common faults). Let’s be clear, I don’t think WordPress sucks, ok? 😉

So I thought of some ideas to improve WordPress usability overall. And to be clear…these are improvements I think could help other CMS as well (e.g. Shopify).

1. Better description of WordPress

Now that our beloved CMS is being used by more and more non-tech-savvy users than ever, it’s important that they understand what it is.

The old-school “open source CMS” doesn’t cut it anymore. Maybe we need a techy and non-techy version. I would suggest the non-techy one to be something like:

WordPress is a website platform, that can be used from any webhost, that allows you to build websites with custom design and functionality. It’s popular for being easy to use, secure, and also used by many other large websites.

While WordPress and many of it’s 3rd-party themes and plugins are free, you can also find many premium applications to extend your limitless possibilities. Through a careful mix of plugins, you can transform your WordPress site into anything you want…a blog, store, gallery, community site, and more.

Working with WordPress is easy enough for anyone to learn, but you can also find support from a large network of community developers. Most programmers around the world today can easily assist your WordPress needs.

– Johnny Nguyen, WPJohnny

2. Admin side-menu (re-organization)

I hate how the left side-panel looks different with each site depending on what plugins you have installed. It’s harder for me (an experienced user) to find stuff, and harder for beginners to understand how WordPress things are organized.

I suggest re-organizing things in this manner…and also having them in sections:

  • Posts (and other post types, CPT’s)
  • Pages
  • Comments
  • Then WordPress settings stuff
  • …and thennnn 3rd party theme/plugins settings stuff

It’s not simply a matter of organization, but also to help users understand how WordPress works.

3. Stricter requirements for repository themes & plugins

Raise the standards for repository themes & plugins.

I wouldn’t even know where to begin. Some thoughts below:

  • Don’t allow themes/plugins to (visually) spam users.
  • Don’t allow themes/plugins to make such excessive database queries or hog memory with autoloads.
  • This alone would cut down on so much bloat and memory issues.

I hate the idea of policing 3rd-party themes and plugins but many WordPress users need to be saved from themselves. They don’t know any better. So it’s our job to do the thinking ahead of time for them.

4. Better review system for WordPress repository

I propose giving more weight to expert/developer users.

Perhaps we can color part of the bars BLACK or RED color to represent reviews given by expert users. And these expert users can be determined by those with many reviews (over 100?) or those who have released plugins on their own account.

This way it’s much easier to see what other developers are liking/hating. Or how about allowing a “Review” tab on WordPress repo profiles so people can see how their favorite developers are reviewing themes/plugins.

5. Break-proof updates

No, I don’t have any answers here.

Sure, we could go around demanding native built-in rollback system. But that doesn’t fix the root problem. Which is always code conflicts in CSS, JS, or PHP…or customization overrides.

The problem is things need to keep moving forward.

  • Except they aren’t all moving forward at the same time.
  • They aren’t all maintained by the same developer and with the same mindset.
  • Issues can be caused by evolving code too early or too late.

Or maybe there’s a rule that new code simply can’t always be compatible with old code. Especially when it’s code between different parts (theme and plugin, or plugin and another plugin).

Should we have a new rule that themes can’t have plugin functionality and plugins can’t have styling functionality? (Ouch…that’s too big of a call for me.)

6. Error screens should reference the error_log

All error screens (white screen or critical message) should tell users to check the error_log.

This is such a no-brainer, I don’t know why it hasn’t happened sooner. I seriously doubt it as a security issue since all hackers know about it anyway. This little bit alone would help users to easily understand what theme/plugin might be causing their issues.

Since we’re at it, how about a few other helpful notes on error screens:

  • Can’t find your error_log? Look inside your public_html or www directory.
  • Want to disable a plugin? Simply rename its directory inside wp-content.
  • Did you recently add code to your functions.php? You can comment it out by putting “//” in front of the line.

7. “Safe mode”

How about a “safe mode” so users can still enter their site when it’s not working?

The safe mode would automatically have all themes and plugins disabled. It simply allows you in there to make changes to live settings, change user permissions, and other essential/critical tasks. Everything looks barebones and straight to the point. No fancy stuff.

At least this way, users have an actionable middle-ground to visit instead of waiting anxiously for their devs to respond.

8. Custom plugin sets

I’m tired of having to install the same themes and plugins over and over when I work with sites.

It would be great if the WordPress repo could somehow save custom sets of your favorite themes/plugins. And if you log into a WordPress site with an admin email matching your WordPress repository email, it somehow shows your favorites at the top of the list.

9. UI tweaks

Minor UI tweaks that I think would add a ton of utility.

  • Add a “make inactive” link to the bottom of widgets (next to “Delete” & “Done”.

Any other improvements?

Leave your comments below.

I really tried to think of others but couldn’t at the moment. Ultimately, I don’t want to change WordPress from its ways of the wild-wild-west. I love the crazy freedom you have with it. Nobody wants a sterile CMS platform. Even with its drawbacks, I’d still easily choose it over Shopify, Wix, Weebly, etc. And so would many others.

]]>
https://wpjohnny.com/why-wordpress-sucks-and-how-it-could-be-better/feed/ 14
Bricks WordPress theme and pagebuilder review https://wpjohnny.com/bricks-wordpress-theme-pagebuilder-review/ https://wpjohnny.com/bricks-wordpress-theme-pagebuilder-review/#comments Wed, 23 Jun 2021 17:11:59 +0000 https://wpjohnny.com/?p=10796 Godddamnit. Another supposedly life-changing product. Is Bricks the real deal or not?

Lets start off first with….wtf is it?

  • It’s a theme!
  • It’s a pagebuilder!
  • It’s a theme for pagebuilders!

Nope! It’s a theme with a built-in pagebuilder. Why would anybody need this? Do we really need another theme? And haha—if you know me—do we really need another pagebuilder? And again—if you really know me—do we really need a franken-monster combo of theme AND pagebuilder?!!!!

If this was built by anybody else, I woulda just scrolled right past and finished my beer. But fuck…it’s Thomas Ehrig. So let’s take a look…

The (genius) guy behind Bricksbuilder…Thomas Ehrig

I really ain’t got time for any of this. I’m enjoying (digital nomad) life in Mexico and focusing my time only on critical clients. But then I heard Thomas Ehrig launched something new and exciting in the community and of course, I had to take a look.

Thomas Ehrig created Happy Files, along with other awesome work I probably don’t remember right now. As a fellow developer, his work is absolutely distinct for me. Coded well, sure. But more importantly, he truly is a pioneer in the WordPress. Creating unique solutions that actually solve real world problems in simple ways. He’s not one of those annoying me-too businesses simply doing spinoffs of existing products. He’s actually unique! (And God Bless us all for having him.)

What is the Bricks theme-pagebuilder?

“Bricks” is a WordPress theme with built-in pagebuilder.

If you’re skeptical right now, you should be. Because before now, I haven’t seen any themes with built-in pagebuilders that I liked. AVADA, DIVI, etc, etc. They were all horrible. Feels like you’re trapped in an eco-system of awful with nowhere to escape. Try to change away any part of it and your site breaks or the design looks neutered. Their stupid theme-and-pagebuilder combo never quite worked together, but also never worked apart. *face palm*

What are the advantages of a theme/pagebuilder combo?

Theoretically…having a 2-in-1 theme and pagebuilder combo is great because they’re closely related with many overlapping functions and will have less conflict than if you were to have a separate theme and pagebuilder plugin. If you’ve used Elementor before with different themes, you might remember having to wrestle back and forth figuring out which one controlled the styling such as fonts, colors, content widths, and more.

What can the Bricks built-in pagebuilder do?

Almost everything your regular pagebuilders can do. Build custom content layouts, style, reshape, resize things. Build custom theme sections (header, footer, sidebar). Reuse templates.

The Bricks builder interface even looks a pagebuilder editor. You see a panel on the left with different elements and blocks to choose from, and then a big visual canvas on the right that looks exactly how your frontend would appear. Hovering over different design elements makes little toolbars appear that look similar to how traditional pagebuilders look.

There’s like a couple dozen other useful features too.

  • Can edit content in Bricks or default Gutenberg editor
  • Can convert existing content from Gutenberg to Bricks, and also the opposite (no lock-in!)
  • Edit other pages without leaving the builder
  • Image editing
  • Stock photos
  • Dynamic content
  • Create your own elements and styles
  • Create your own templates to reuse
  • Can also share your templates on the cloud for public use, or only privately with your other sites
  • Developer stuff like hooks & filters
  • I forgot what else… go look it up yourself.

What makes Bricks special?

Bricks allows you to build custom content and theme elements, with a visual editing interface (like traditional pagebuilders), using native WordPress Gutenberg blocks.

I honestly should have just wrote that as my intro because that’s really what Bricks is. It’s a clever pagebuilder using only default Gutenberg blocks to deliver 98% of the things users like in pagebuilders.

Essentially…Bricks gives you that fancy, fun visual editing experience AND super fast speeds and pages cores cuz Gutenberg is so much less bloated than all the giant CSS/JS libraries that come in your traditional pagebuilder. There’s also the added benefit of the theme being easier to build custom page templates for, and a more harmonious full-site-editing (FSE) experience.

What’s the problem with current theme and pagebuilder solutions?

  • Themes – don’t integrate so seamlessly with pagebuilders. Awkward or overly technical way of building custom page templates.
  • Pagebuilders – slow, bloated, horrible speeds and page scores. Built for newbies.
  • Gutenberg – not such a rich visual-editing experience. Hard for people who are accustomed to traditional pagebuilders.
  • Gutenberg 3rd party blocks – they improve Gutenberg a lot but still not as rich as a full-page pagebuilder.

How does Bricks compare against existing themes?

What I liked most about the Bricks theme and pagebuilder.

I love many things about it. It stands out by solving a very unique problem….the many people who want to convert to Gutenberg for faster loads and pages scores, but don’t want to move away from the visual-editing experience of their pagebuilders.

But Bricks is really more than that simple description. The onboarding is very easy and not overwhelming. Despite the hundreds of things you can do with it, you feel like you can learn Bricks within 10 minutes. Things like the page navigator within the builder will save so much time. The settings areas are laid out so intuitively. I figured out where everything was within seconds.

There are also tons of incredible features that make life easier for regular users and developers alike. Quite simply, Bricks makes building custom content, custom pages, and custom themes super fun!

Comparing Bricks workflow against existing solutions.

Really important to cover this as Bricks covers a wide range of solutions and even many holes in the industry where no other solution exists.

  • VS Genesis – if you had to ask, Bricks is better for you. With that said, I can see diehard Genesis developers appreciating the time-savings that Bricks provides.
  • VS GeneratePress – GeneratePress is awesome and my 2nd favorite theme behind Genesis. I love the new GP with its simpler custom theming experience. Bricks would be a totally different workflow, perhaps faster whereas GP is probably more modular.
  • VS Blocksy/Kadence/Astra – these guys are standard minimalist themes that come with their own header/footer builder and minimal Gutenberg block libraries. Great choice if you like their built-in templates.
  • VS traditional pagebuilders – Bricks is going to give much faster page loads and page scores. If you’re
  • VS Oxygen – Oxygen is far more powerful and polished but can feel like too much overkill or only meant for devs. Bricks might also feel safer in case you have to do custom templates and don’t want something so far from a default WordPress theming system.

Where Bricks is “short” right now…

  • Not so many polished starter designs. (Honestly, this doesn’t bother me at all but can be a problem for those not wanting to start from scratch.)
  • I wish there was pre-designed themes. Currently, I see only pre-designed block layouts. Not hard at all to manage but would be nice to have everything pre-import all at once.
  • Not a big developer community. Not a problem for others but definitely a problem for me. I like being part of a theme community with tons of A-level devs.
  • I wasn’t sure how to customize WordPress page templates (I’m not talking about Gutenberg pattern templates). Maybe it could be figured out by asking support or spending more than an hour playing with things….or is this not possible? I don’t know.
  • I can’t think of anything else….if you see something, let me know.

Should you buy Bricks?

The million dollar question right there. For the current price of $149 for lifetime use on 1000 sites….I think the answer is yes. You’re getting a very fun and powerful unique sitebuilder tool that’s never existed before. It pays for itself within one client site.

Get Bricks if…

  • You love pagebuilders, but want faster page loads and scores.
  • You’re converting from pagebuilders (want to use Gutenberg), but hate the default Gutenberg editor.
  • You’re already using Gutenberg pagebuilders (Qubely, Stackable) but want more of a true “pagebuilder experience” and not just a template builder shoved into Gutenberg.
  • You like the visual editing experience (of Oxygen), but feel Oxygen is overkill for your needs.
  • You want to avoid FOMO after the price goes up.

Ok I said it…you should get it. Get Bricks. (40% off right now until I don’t know when.)

]]>
https://wpjohnny.com/bricks-wordpress-theme-pagebuilder-review/feed/ 21