• Sort out your headers and tags: Setting up preload / preconnect / defer, and navigation hints are a low and one-time time cost to making your site feel snappier without having to really change anything about your content.

    Few blogging sites should benefit from these things. Preconnect? You should only be loading first-party resources, and if you’re doing something like analytics on another origin, you don’t want to prioritise that. Preload? Simplifying very slightly and with the possible exception of web fonts, if inserting such things manually makes a difference, you were doing the wrong thing. (The sorts of sites with piles of chunked JavaScript that may benefit from it use build systems that generate that.) Defer? Honestly it’s almost never what you actually want, you typically want <script> or <script async>.

    Setting the lang attribute on your top level is also a cheap win for better hyphenation

    I don’t believe any user agent stylesheets hyphenate by default, and I don’t think your stylesheet should enable it either. My vague feeling is that consensus has steadily been creeping up that hyphenation is just a bad idea in general, along with justifying prose on any but very narrow columns like newsprint.

    But do still make sure lang is correct.


    score 1 · canonical

    • My vague feeling is that consensus has steadily been creeping up that hyphenation is just a bad idea in general, along with justifying prose on any but very narrow columns like newsprint.

      Hyphenation is necessary for full justification, and full justification is indispensable for any long-form body text. It’s actually hardest to do well in narrow columns. If it has fallen out of favor worth web designers, it’s more probably a matter of form following function – designers first abandoning it because web browsers never implemented it well, then deciding they must not have wanted it all along.


      score 1 · canonical

    • There’s an obvious reason to want <script defer>… you want to give the browser the hint to nonblockingly download/parse the script(s, in order,) in the background from the document <head> but defer until the document is actually ready (thus avoiding an eager download/parse just to set up a "DOMContentLoaded" event handler) or not getting any control on how/when the script will be executed like <script async>. If avoiding build tool complexity, it’s perfectly reasonable to build a few individual scripts & place them in the <head> with <script defer>.

      But I agree that justified text + hyphenation is generally pretty awful on the web. The text layout engine is good enough & you don’t have enough reasonable control since screen sizes vary, unlike print. This always looks horrible on my phone in portrait—not to mention behaves worse since it costs quite a lot to calculate on the fly.


      score 1 · canonical