Sustainability + WordPress = SustyWP

Jack Lenox, a Software Engineer at Automattic, has launched a new site called SustyWP that focuses on web sustainability using WordPress.

By removing the parts of Underscores he didn’t need, using one inline SVG image, no sidebars, limited CSS, and no webfonts, Lenox was able to launch a WordPress site that only has 7 Kilobytes of data transfer.

As you might expect, the site crushes page speed and performance benchmarks. The site is also hosted in a data center that uses 100% renewable energy.  To learn how and why he built the site, check out his detailed blog post.

While only transferring seven kilobytes of data is commendable, these days, websites are feature-rich. I wonder how practical his methods are for large and complex sites.

37

37 responses to “Sustainability + WordPress = SustyWP”

    • A bit harsh. Some of the techniques I’ve used are taken straight from how the UK’s GDS team have approached things. And they’ve rebuilt pretty much the entire digital presence of the British Government – largely to applause from the web industry. The US Digital Service is based on the example set by GDS.

      Also, consider the profusion of AMP and Facebook Instant Articles.

      I’m not suggesting all websites should be 7KB, more that they don’t need to be 3MB.

      • Less harsh and more sarcasm than anything else but I challenge any web pro to sell their client on such a stripped down version of a site as the primary browser experience and not a mobile-first presence such as AMP. I appreciate the point you’re making and we could all do with a lot less cruft in WP.

        Would this work for blogs or technical documentation-based stuff? Sure. Brand presence or business focused? Unlikely. Do sites need to be 3mb on each page load? No, but neither should they be 7kb. One suspects there is an acceptable middle ground here. FWIW, my “heaviest” site is about 960kb per page…

      • Ok fair enough. To be clear, it’s not that I think this approach on its own would simply “just work” for brand presence/business focused websites. More that a lot of those websites could take a leaf out of the book of my demo. I make this exact point at the end of my blog post.

        FWIW, my “heaviest” site is about 960kb per page…

        That’s great, and with that being the case, you’re basically already on board with the point I’m trying to make. :)

      • Actual an Reply to Jason: And how big is the HOME page of that “biggest” site?

        I’ve just had “fun” with a (one page) site of a client which loads a lot of BIG images, a full screen (100% width AND height) slideshow plus a really nasty panorama view thingy which tends to start to turn in circles when the mouse cursor is out of focus.

        At the current time, I managed to get the size of the panorama view from 7 MB down to 4,1 MB, implement lazy loading so it doesnt load instantly (and block the whole site loading cycle), plus reduce the overal image file size by approx 40 – 50%. Still, this thing takes at least 15 – 20 seconds to load .. which is also thanks to its theme, which is of corpse a premium one, where folks do not need to follow the very strict rules of the WP.org theme directory. Thus more intense optimization is being canceled out by the “not being able to update it properly afterward” elephant. or pink rhino, pot wale or $insert_favorite_big_animal. Eg. it does not behave well together with caching plugins, eg. Hyper Cache or W3 Total Cache (I tried quite a few ones), Lazyloading options are reduced to a minimum, and so on.

        With a theme that was sticking to at least a few rules and techniques shown on Jack Lenox’ site, the amount of work I’d have to put into the optimization would have been considerably less. Maybe there wouldnt have been even any concern to act ..

        cu, w0lf.

        • Let me see if I can summarize:

          “I have a giant, unfriendly to anything type of site that’s huge no matter what but someone stuck me with a bad premium theme so it’s a little worse than it could have been?”

          Therefore what?

    • That’s a bit self-defeating, don’t you think? Now instead of keeping this conversation focused on the tech, you have brought the political angle over to this thread. You could have left it where it was and let people have their own reaction.

      Just food for thought. I’m getting a bit tired of the online outrage machine.

      I really am trying to speak out of kindness, since you seem to share my desire for everyone to calm down a bit on the internet.

    • I would have not brought it up if author published the theme on his personal website, but in this case he created new website centered on the Sustainability of WP – very specific subject.

      The fact that he works at Automattic gives to this even more weight.

      I understand that there is a debate going on on the issue of climate change, and if he wants do go into that debate, he could, but in a constructive manner, not going ad hominem route…

      If you want to do something good for the community, act by showing good example, especially if you’re officially involved in the company that oversees the WP development.

      • If you could, I want you to take a moment and think hard about whether you would have brought this up if he had said something just as passionately that you _agreed_ with, on this “WP sustainability” blog.

        If you are reserving your outrage about ad hominem attacks or the (in)appropriateness of political speech JUST for people you disagree with, then that takes something away from your criticism.

        I feel like it would actually be more appropriate to say “I like this plugin, I don’t agree with his opinions about Trump” than to try to police his right to express a political opinion in the first place, since you can’t reasonably represent yourself as a referee and a player at the same time.

        This actually raises an interesting issue though: How DO we raise the level of debate in a decentralised way, without adopting rules with unforseen side-effects, or delegating the moderation of speech to some AI or a warehouse full of moderators in some far-flung country? I feel like if WordPress can solve this problem in a distributed fashion, this could be an awesome moment in history to release such a thing.

  1. This is just silly.

    No client in their right mind would pay one cent for anything like that.

    WP is for much more than just a bare bones site like this. This simply isn’t practical for anything more than a hobby site.

    • > No client in their right mind would pay one cent for anything like that.
      > This simply isn’t practical for anything more than a hobby site.

      I beg to differ. If you are delivering a site to people with slow and spotty reception then you want the smallest, simplest site possible. I have done work in the past for companies that pay big money to cram their online documentation into the smallest possible bundle so that servicepeople in the field can get to it quickly and reliably. A PWA is actually a good fit for this, too.

  2. I 100% love and appreciate this effort.

    I do think it’s a legitimate concern to ask how this applies to larger web sites, however it’s undeniable that mobile web users have been left in the dust as developers create ever-richer web experiences full of autoplay videos, crowded home pages, tracking pixels and more.

    What is needed on the web is a comprehensive approach to performance, with contributions at the WP Core level, theme level, plugin level, JS framework level, browser level, hosting and more. You can have a perfectly performing site and add one plugin that slows it to a crawl, and 99.9% of site authors lack the skills to figure out what’s going on – if they even notice, since perhaps they primarily use a desktop computer to manage their site.

    So yes, perhaps by itself this theme can’t do _everything_ you need to ensure the best possible performance for your site – but imagine a world in which theme authors, plugin authors and others ALSO made optimisations like this.

    All those new web denizens on Android Go devices with 3G connections would thank you, since the web would go from totally unusable to delightful.

    • What is needed on the web is a comprehensive approach to performance, with contributions at the WP Core level, theme level, plugin level, JS framework level, browser level, hosting and more.

      Frankly, in the hands of a competent web dev and with a well architected server setup, performance isn’t usually a technical issue. It’s a business issue. People want excellent design, not just plain text and design imposes some minimum of cost (the use of web fonts, images etc). A site that needs to make money has 2 ways to do so, either the users of the site pay or advertisers pay and if it’s the latter, you end up with ad server JS all over (because the ad tech world is insane).

      It’s nice to talk about a world where this doesn’t exist and we should of course strive to minimize overhead, but it’s not primarily a dev issue for anyone competent. Some of this are the demands of a real world site that has to satisfy the legit needs of the organization behind that site and some of it is out of control adware that some sites use because they have to make money somehow and ad tech blows at the moment.

      PS: then you have bad actors like Youtube who, for a single video embed, shove 1m of JS down the wire and you can’t even set it to defer or async.

      • I agree that with enough developer horsepower all performance issues are solvable, however the number of site owners that can afford that level of time and expertise is fairly small compared to the total number of WordPress sites.

        Furthermore, even for expert site admins, forking or patching plugins in order to tweak performance leaves you with a high maintenance burden and exposure to esoteric bugs. It would be nice to somehow minimise the performance overhead of all plugins so we can reduce that burden.

        Ultimately, it would be best if WordPress could provide great performance out of the box, and good tools to see the impact of settings and plugins and content on performance. Rejecting all solutions that are necessary-but-not-sufficient is self-defeating, since poor performance comes from many areas. Cutting, say, 50kb from every site by using SustyWP as the base theme is not huge in percentage terms, but the web is so big that even a 1% performance improvement across the board is actually a gigantic amount of time, money and energy.

      • You’re talking about multiple different things as if they were the same. No one is going to worry about cutting 50kb from t heir site because, if everyone did it, it’s a lot of data. That’s just fantasy.

        I don’t know what plugins you’re using but I rarely run into plugins that hurt performance in any measurable way and as far as I can tell WP does have decent out of the box performance when compared to other database drive CMSes (it’s unfair and illogical to compare those to flat file generators).

        As for site owners who can’t afford to optimize things… that’s a matter of poorly designed, bloated themes. You’re not going to get people to abandon, say, Avada for a minimalist theme because the latter does not serve their purpose. Frankly, you’re missing the entire point here and focusing on a world that does not and never will exist – one where we all only care about performance and not design or economics.

    • You make some sweeping assumptions Daniel that are clearly not accurate.

      99.9% of site authors lack the skills to figure out what’s going on

      Even if this number were true, do you honestly believe that every site owner (let’s just cut out the sites that aren’t ever designed to make money – let’s stay with real businesses for this) is trying to run their site themselves?

      Thankfully they’re not. We have 1000s of clients that pay us to do that for them. I assure you not one of them has any interest in doing it themselves. I always promise that I won’t try to do what they do if they will stay the hell away from anything technical to do with their site. We rarely even allow them to have admin access.

      You can have a perfectly performing site and add one plugin that slows it to a crawl

      Performance is not all about core. If you’re thinking about deploying a site without a boatload of RAM, Nginx, Memcached, PHP FPM, Redis & Varnish (as well as a kick-ass caching plugin) then you’re not very serious about your business.

      Every site we create for a client (as well as our own) is blazing fast and they are far from minimalist. Yes our clients pay a chunk of change for hosting but they are all serious about their businesses so it’s no big deal for them.

      Furthermore, even for expert site admins, forking or patching plugins in order to tweak performance leaves you with a high maintenance burden and exposure to esoteric bugs.

      None of that is necessary if you you the proper plugins. My company became a LOT better when we realized that the vast majority of free plugins are garbage. We use paid plugins almost exclusively now by reputable companies.

      I can assure you that we will NEVER even once think about caring how “green” our hosting or our services are. Never.

  3. I love it. I think it’s great as-is for a blog. It’s also a great exercise in showing that WordPress sites don’t need to be so bloated.

    To the comments about how “no client would pay for this!” — maybe not, but WordPress is for more than just building websites for paying clients. It’s open source software, and personal projects like this help push and pull it in different directions.

  4. Good thoughts, facts, and ideas that have been TOTALLY voided by this gratuitous comment: “The US pulled out after electing as president a racist, sexist, misogynistic climate change denier.”

    WHY would you inject your political beliefs into a discussion on reducing web bloat? Can you NOT see the world ONLY through your own agenda?

    That’s a shame. As Laura Ingraham’s book said so eloquently, if a bit coarsely, “Shut up and sing.”

  5. More proof that we don’t need monopolistic companies to force us to deliver performant web pages, coughs…AMP. Even just removing tracking and optimising assets cuts the bloat enormously. The European version of USATODAY drives down the total payload from 5.5mb to 297kb and it still contains Google&FB related bloat.

    • This is stupid. Almost anywhere in the western world you are going to have high speed connection which will easily deliver 5.5Mb in reasonable time, and modern smartphone do not choke on it. By itself the reduction is not an indication of sustainability if you need to put in more effort to generate it, and it is against what users want if you degrade the user experience to get it.

      If it is a matter of reducing bloat than it has very little to do with sustainability and more to do with following good software development practice and obviously reducing the cost of the bandwidth.

      • Almost anywhere in the western world you are going to have high speed connection which will easily deliver 5.5Mb in reasonable time, and modern smartphone do not choke on it

        Well, that’s just not true. It’s also wrong to discard the user experience of all those people without the latest iphones & galaxies who may or may not have access to high speed connections. We can only design for them properly if we keep the payload down and don’t stuff it with unnecessary clientside logic.

        The USAToday example proves though that most bloat does not service user experience though, the EU version of the site is vastly superior.

  6. Fixing this WordPress bug I filed almost three years ago would also help reduce WordPress’ memory and bandwidth needs:
    “High memory usage ( and possible server error) editing post with many/large revisions”
    https://core.trac.wordpress.org/ticket/34560
    “The file edit-form-advanced.php has the following section of code which retrieves all revisions for a post using wp_get_post_revisions and then counts the result (twice) to display a count of revisions on the page. While the current approach has a certain elegant simplicity and is easy to understand, the approach is unfortunately computationally inefficient because retrieving all the revisions of a post just to count them potentially consumes a lot of memory, a lot of CPU time, and a lot of database bandwidth when there are many revisions of a post if some are of significant size.”

    I can speculate that this WordPress issue alone may be consuming the output of a mid-sized power plant given the huge number of WordPress sites out there?

  7. This is a demonstration of simplicity. I think many of you critiquing above should view it for what it is, not what you feel it should be. It is a demonstration of how to build a lean functional website with maximum performance and resource footprint.

    • Ryan,

      Anyone with sufficient skill can strip a site down to the point where it loads super fast.  As a demonstration of simplicity, great.  As a *practical* demonstration, it leaves something to be desired, hence some of the pushback.

Newsletter

Subscribe Via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.