Website Optimization Measures, Part XXIII

Published on May 29, 2024, filed under and (RSS feed for all categories).

There’s always something to tweak and improve and optimize on our websites (which is included in continuous maintenance, of course). And also as always, as it relates to this series of blog posts, here are a few things that I have tweaked and improved and optimized over the last few months, to serve as inspiration, or warning, or perhaps in other ways.

  1. Revisiting affiliate handling. Last year I’ve removed all ads (acknowledging general challenges with them, not bowing to suspected entitlement). This year I’m reviewing how to handle affiliate marketing. I’ve removed affiliate links on a part of, and slightly adjusted privacy policy wording to clarify my use of affiliate links. But, they’re still there—as a website owner and content creator, they’re important to me, and as a web user, I don’t mind them myself (why not grant people the small extra income).

  2. Checking on kbd element use. Pending, yet also done.

  3. Checking German spellings. A bit of a filler step, after I refactored my sites but missed to note down everything I did: Working through the Duden to check on rules pertaining to pro bono work for the W3C, I double-checked that I applied the respective rules myself.

    Spoiler: 2024 is the year of 13, when I overhaul the system powering, its code, as well as its design (probably to be based on a 2009 prototype…!). Why I’m mentioning this here? I’m thinking about not producing any more German content afterwards—which will mean that I won’t need to bother you about the hygiene of German copy anymore, either.

  4. Improving Git configuration (and performance). After watching Scott Chacon’s talk, So You Think You Know Git, I’ve tried a few Git-related changes. One was to “start maintenance” in larger repositories. I’ve observed near-50% performance improvements in Eleventy projects—but am still investigating whether that was all due to git maintenance start.

  5. Using (book) editor feedback to also improve other content. My editor’s feedback for Upgrade Your HTML V, like other such feedback, wasn’t only applicable to the book, it also surfaced problems I could fix in other writings. For example, I got used to using a comma in dates, when I had just a month and a year, as in “May, 2024.” She noted that, and I took the feedback to update such occurrences to the comma-less format, like “May 2024.”

  6. Tweaking designs. This is a bit of a lazy entry, too, when after my move to Spain I was optimizing my sites, but didn’t keep track of what I did (and now didn’t want to go through any Git history). One thing that stood out was design work: Not only did I “facelift” and improve (and even redesign) a number of book covers, I also took that opportunity to do further design tweaking. A great example of the level of detail at play is the kerning of imagery, as with the updated “social” graphic.

  7. Opting out of Brave Rewards. I had tested Brave Rewards for a couple of years, both on and on, and the test turned out unsuccessful—implementing it wasn’t worth the effort. I’ve removed the respective setup.

  8. Testing Ethical Ads. You probably noticed how I called out removing ads—in a post that may show an ad? And indeed, I’m currently reviewing whether to add ads back to Why, and what’s different? The brief answer as to why is that I’m working towards making a living off all my work. There’s nothing inherently wrong with ads not to consider them relevant for this goal. As for what’s different, Ethical Ads seems to be an improvement for both you, dear friends and guests, and me, as a publisher. And, due to Ethical Ads’ tech focus, ads are shown on fewer, namely only English engineering and design posts.

  9. Replacing dotenv in favor of native Node.js support. Since version 20.6.0, Node supports .env files. Previously using dotenv in my Eleventy projects (thanks to an article by Andy Bell that helped me set everything up), I found time to simplify these projects. The change itself was pretty straightforward; for the approach I had taken, the key was to import the respective .env file via something like process.loadEnvFile('./.env').

This is a part of an open article series. Check out some of the other posts!

Was this useful or interesting? Share (toot) this post, or maybe treat me to a coffee. Thanks!

About Me

Jens Oliver Meiert, on September 30, 2021.

I’m Jens (long: Jens Oliver Meiert), and I’m a frontend engineering leader and tech author/publisher. I’ve worked as a technical lead for companies like Google and as an engineering manager for companies like Miro, I’m close to W3C and WHATWG, and I write and review books for O’Reilly and Frontend Dogma.

I love trying things, not only in web development (and engineering management), but also in other areas like philosophy. Here on I share some of my views and experiences.

If you want to do me a favor, interpret charitably (I speak three languages, and they can collide), yet be critical and give feedback for me to learn and improve. Thank you!