• Resolved travisburch

    (@travisburch)


    This variable font makes my site almost 3X slower, by itself.

    If I delete all lines of code that pertain to ‘inter var’ — my site loads in under 1 second. With the variable font, however, it’s consistently 3.5 seconds.

    This is insane. Nothing is worth that kind of speed difference — not for a serious site that actually anticipates serving users.

    Please give us an option to “turn off” the variable font. It’s for the good of the people.

    I LOVE Anders design. Let’s stop dragging it (and the user experience) through the mud. Let us turn off the variable font — at least until it’s accepted tech.

    • This topic was modified 4 years, 3 months ago by travisburch.
    • This topic was modified 4 years, 3 months ago by travisburch.

    The page I need help with: [log in to see the link]

Viewing 15 replies - 1 through 15 (of 31 total)
  • Moderator James Huff

    (@macmanx)

    Volunteer Moderator

    Loading web fonts does take time, they need to be downloaded by the browser.

    But, I want to encourage you to take a moment and think holistically about 3.5 seconds. πŸ™‚

    It’s not that long. Generally the industry recommends that sites load under 8 seconds, and 3.5 is well below that.

    Personally, I’ve been through this journey myself. I ripped all of the web fonts out of my site 3 years ago, and switched the theme over to just https://www.cssfontstack.com/Arial which is the font stack pre-installed in the most devices.

    I saw the same speed increase, around 4 seconds dropped to around 2 seconds. Later, I realized that I liked the web fonts, and if I can wait 12 seconds for Amazon to load and 10 seconds for Youtube, folks can wait 4 second for my site. πŸ˜‰

    Anyway, that’s my story. πŸ™‚

    In short, web fonts will _always_ add load time, because the font needs to be downloaded by the browser, but 3.5 seconds isn’t all that bad.

    @travisburch How do you plan on handling this? Use a child theme or copy and mod 2020 itself?

    Those clauses in the css files like
    @font-face {...}
    seem hard to override. Would a useless background download affect rendering?

    Does the site still slow down if you override this stuff
    @supports ( font-variation-settings: normal ) {}
    with the normal font?

    Anonymous User 14254218

    (@anonymized-14254218)

    @macmanx I totally agree on the point about 3.5s not being that bad. On the other hand it would be “better” to enqueue the font using the wp_enqueue_style function to allow users to overwrite this and avoid loading the font with a simple functions.php hook.

    @kitchin @travisburch I created a child theme enqueueing e.g. a google web font.
    code within the functions.php

    
    function biws_add_google_fonts()
    {
       wp_enqueue_style('biws-google-fonts', 'https://fonts.googleapis.com/css?family=Roboto&display=swap', false);
    }
    add_action('wp_enqueue_scripts', 'biws_add_google_fonts');
    

    and the corresponding style.css contains the following code

    
    * {
    	font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif !important;
    	word-wrap: normal;
    	word-break: normal;
    	line-height: 1.6!important;
    }
    

    Even though I hate the !important definitions and I did not remove the @font-face definition form the twentytwenty style.css my loading times improved quite a lot. I cannot really explain why this happens but I can verify it worked for me.

    I do not think loading a web font should have such a big impact on the website, not even if it is a google web font. so I guess there might be something off maybe with the rendering of the Inter font itself which might be slowing down page speeds. Loading basically almost every other font helps with page speed (at least on my end) while loading the Inter font seems to slow the page down.

    • This reply was modified 4 years, 3 months ago by Anonymous User 14254218.

    Here is a solution, it will not download the fonts (tested). Based on the previous comment, the only downside in the above solution is that using * will also target assets like FontAwesome and will break them.

    
    add_action( 'wp_head', function() {
    	?>
    	<style>
    	body,
    	input,
    	textarea,
    	button,
    	.button,
    	.faux-button,
    	.wp-block-button__link,
    	.wp-block-file__button,
    	.has-drop-cap:not(:focus)::first-letter,
    	.entry-content .wp-block-archives,
    	.entry-content .wp-block-categories,
    	.entry-content .wp-block-cover-image,
    	.entry-content .wp-block-latest-comments,
    	.entry-content .wp-block-latest-posts,
    	.entry-content .wp-block-pullquote,
    	.entry-content .wp-block-quote.is-large,
    	.entry-content .wp-block-quote.is-style-large,
    	.entry-content cite,
    	.entry-content figcaption,
    	.entry-content .wp-caption-text {
    		font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif !important;
    	}
    
    	.widget_text p,
    	.widget_text ol,
    	.widget_text ul,
    	.widget_text dl,
    	.widget_text dt,
    	.widget-content .rssSummary,
    	.entry-content p,
    	.entry-content ol,
    	.entry-content ul,
    	.entry-content dl,
    	.entry-content dt {
    		font-family: "Hoefler Text", Garamond, "Times New Roman", serif !important;
    	}
    	</style>
    	<?php
    }, 5 );
    
    • This reply was modified 4 years, 3 months ago by acosmin.
    Anonymous User 14254218

    (@anonymized-14254218)

    @acosmin tyvm, I just could not bother adding all the selectors πŸ™‚ thanks for the work though! like your style

    No problem πŸ™‚ they are mostly grouped, so it wasn’t that hard… there’s a missing </style> at the end I forgot to add.

    I tried to edit the comment πŸ™‚ but it looks like it went into moderation…

    Thread Starter travisburch

    (@travisburch)

    Thanks for everyone’s input!

    Thoughts Re: speed.

    I agree that 3.5s isn’t horrendous and unusable. On the other hand, I don’t have the content/draw/market/buzz that Amazon and CNN have. I need to give people zero reasons to leave the page, if possible, and the user experience needs to be above average. It’s a membership site with lots of health content, so repeat users are very important. And yeah — the font seems to slow down the entire site even after everything is cached, somehow.

    It’s really amazing how much the font slows down the entire functions of the site!

    Additionally, around the world, load times are much longer. I don’t want people in India waiting 9 seconds only because of a font, when it might otherwise be 5.

    It’s just a matter of this: It seems like an absolutely silly reason to be ONLY “not that bad.” Especially when excellent is an option with a simple, simple fix — fonts.

    Thread Starter travisburch

    (@travisburch)

    @raqai @acosmin — Thanks so much for your work here.

    Is this the code needed? And it’s added to functions.php in child theme?

    add_action( 'wp_head', function() {
            ?>
            <style>
            body,
            input,
            textarea,
            button,
            .button,
            .faux-button,
            .wp-block-button__link,
            .wp-block-file__button,
            .has-drop-cap:not(:focus)::first-letter,
            .entry-content .wp-block-archives,
            .entry-content .wp-block-categories,
            .entry-content .wp-block-cover-image,
            .entry-content .wp-block-latest-comments,
            .entry-content .wp-block-latest-posts,
            .entry-content .wp-block-pullquote,
            .entry-content .wp-block-quote.is-large,
            .entry-content .wp-block-quote.is-style-large,
            .entry-content cite,
            .entry-content figcaption,
            .entry-content .wp-caption-text {
                    font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif !important;
            }
    
            .widget_text p,
            .widget_text ol,
            .widget_text ul,
            .widget_text dl,
            .widget_text dt,
            .widget-content .rssSummary,
            .entry-content p,
            .entry-content ol,
            .entry-content ul,
            .entry-content dl,
            .entry-content dt {
                    font-family: "Hoefler Text", Garamond, "Times New Roman", serif !important;
            }
            <?php
    }, 5 );

    @travisburch You can try it and see if it works for you, it should be added in your child theme’s functions.php file.

    Don’t forget the </style> before <?php, I updated my previous comment: https://wordpress.org/support/topic/inter-var-variable-font-is-slow/#post-12273421

    Thread Starter travisburch

    (@travisburch)

    @acosmin

    Okay, going to give this a try right now…

    Thread Starter travisburch

    (@travisburch)

    @acosmin

    Hmm, seemed to break my site. Had to use recovery mode.

    It seemed like it affected the parent theme, somehow. The site said the problem was the parent theme, even though I only edited the child theme functions.php file (while the child theme was activated). Hmmm.

    • This reply was modified 4 years, 3 months ago by travisburch.

    @travisburch The code mentioned here shouldn’t cause any issues. Just add the code at the bottom of functions.php (child theme).

    Did you by any chance see the error notice, could you copy paste it here?

    I wonder the !important is only needed because of the @supports in the parent theme.

    Not tested:

    @supports ( font-variation-settings: normal ) {
    	body,
    	.entry-content cite,
    	.entry-content figcaption,
    	.entry-content .wp-caption-text {
    		font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
    	}
    }

    Why not just put those styles in the child style.css instead of creating an action? Or in Additional CSS if not using a child?

Viewing 15 replies - 1 through 15 (of 31 total)
  • The topic ‘Inter Var variable font is SLOW’ is closed to new replies.