[HN Gopher] Interaction to Next Paint (INP)
       ___________________________________________________________________
        
       Interaction to Next Paint (INP)
        
       Author : 42droids
       Score  : 121 points
       Date   : 2023-07-11 15:35 UTC (7 hours ago)
        
 (HTM) web link (web.dev)
 (TXT) w3m dump (web.dev)
        
       | jgrahamc wrote:
       | See also: https://blog.cloudflare.com/inp-get-ready-for-the-new-
       | core-w...
        
       | troupo wrote:
       | Meanwhile "Engineering Leader" at Chrome argues that 2.4s to
       | First Contentful Paint is fast:
       | https://twitter.com/addyosmani/status/1678117107597471745?s=...
       | 
       | Google's one (of many) heads has no idea what another (of many)
       | heads says or does.
        
         | iamakulov wrote:
         | Isn't that tweet talking about 2.4s for _Largest_ Contentful
         | Paint? It mentions 0.9 for FCP being fast, which I agree is
         | pretty reasonable.
        
       | benmccann wrote:
       | INP feels like a pretty problematic way to compare sites because
       | INP is going to be way lower on a site that doesn't do client-
       | side rendering eventhough client-side rendering makes interaction
       | with a site faster!
        
         | bob1029 wrote:
         | > client-side rendering makes interaction with a site faster!
         | 
         | I am going to have to disagree. Final HTML from the server is
         | just that. Its final. The client displays it and its done. No
         | XHR, no web sockets, no JS eval. It's done. You can immediately
         | use the webpage and the webserver doesn't care who you are
         | anymore. With SPA, this is the best case. You maybe even start
         | with SSR from the server and try to incrementally move from
         | there. Regardless, the added complexity of SSR->SPA and other
         | various hybrid schemes can quickly eat into your technical
         | bullshit budget and before you know it that ancient forms app
         | feels like lightning compared to the mess you proposed.
         | 
         | Reaching for SPA because you think this will make the site
         | "faster" is pretty hilarious to me. I've never once seen a non-
         | trivial (i.e. requires server-side state throughout) SPA that
         | felt better to me than SSR.
        
           | diroussel wrote:
           | > I've never once seen a non-trivial (i.e. requires server-
           | side state throughout) SPA that felt better to me than SSR.
           | 
           | What about gmail? That has all the state server side. How
           | impressive would it be if all rendering was done server side?
        
         | withinboredom wrote:
         | I completely disagree. Client side has the potential to be very
         | fast, even faster. However, most people are more interested in
         | writing a complex, Turing complete, type system under their
         | client than making fast, easy to use applications.
        
       | agilob wrote:
       | Will Firefox support it?
        
       | doctorpangloss wrote:
       | The real metric: INP with ad blocking enabled.
       | 
       | Example: NYTimes.com on Mobile Safari with AdGuard. 18 seconds.
       | 
       | Google is being really disingenuous with its so called metrics. A
       | stroke of the pen could make INP 200ms across the top 500 sites.
        
         | taosx wrote:
         | NYTimes feels like a SSG when browsing (chrome) from Europe
         | after initial payload but that's as an unauthenticated user
         | with ublock. The sad part is that I can't read most of the
         | articles due to the paywall.
        
         | WorldMaker wrote:
         | Google is an ad company. Why would they make metrics that
         | penalize ads?
        
           | mdhb wrote:
           | And yet... this is a real thing they do.
           | https://www.searchenginejournal.com/google-on-how-it-
           | handles...
        
         | speedgoose wrote:
         | The NY times website on mobile Safari with AdGuard feels
         | perfectly normal on my iPhone 13.
         | 
         | Do you observe the same behaviour in private mode? Something
         | goes wrong on your device.
        
         | whateverman23 wrote:
         | > Example: NYTimes.com on Mobile Safari with AdGuard. 18
         | seconds.
         | 
         | Dear lord, I can't imagine that's the fault of NYTimes.
         | Something is off with your setup.
         | 
         | NYTimes.com is super quick and responsive on my devices.
        
           | coldtea wrote:
           | What "setup"? Parent said Mobile Safari. The setup come off
           | of the factory as a given.
        
             | whateverman23 wrote:
             | Maybe AdGuard? Maybe they have 2G internet?
             | 
             | Something isn't right, and I have a hard time believing
             | it's NYTimes given my experiences with their website.
        
               | withinboredom wrote:
               | Don't even get me started with 2G (or even flaky wifi
               | networks) internet and JS-heavy pages.
        
               | [deleted]
        
         | we_never_see_it wrote:
         | That's all Google cares about. How to invade our privacy and
         | force us to see more ads?
        
       | haburka wrote:
       | This may be controversial but I think this has the potential to
       | be a brilliant metric because it measures some part of web UX
       | that's often neglected. It's time consuming to make every single
       | interaction display some sort of loading message but it really
       | helps make the site feel responsive.
       | 
       | As long as they avoid the pattern of adding a global loading
       | spinner that covers the whole screen. That's just the worst
       | possible loading screen. I suppose it would still pass this
       | metric.
       | 
       | Also I'm not sure if I totally understand the metric - I think
       | it's simply when the next frame is rendered post interaction,
       | which should easily be under 200ms unless you're
       | 
       | 1. doing some insane amount of client side computation
       | 
       | 2. talking over the network far away from your service or your
       | API call is slow / massive
       | 
       | and both of these are mitigated by having any loading indication
       | so I don't understand how this metric will be difficult to fix.
        
         | modeless wrote:
         | > when the next frame is rendered post interaction, which
         | should easily be under 200ms unless
         | 
         | Have you used doordash.com? I don't know how they do it, but
         | they manage to exceed 200ms on every single click, easily. And
         | they're not alone.
        
         | wielebny wrote:
         | > This may be controversial but I think this has the potential
         | to be a brilliant metric because it measures some part of web
         | UX that's often neglected.
         | 
         | It also seems to be a metric that is very easily gamed.
         | 
         | If all that matters is instant feedback, then just draw that
         | loader as soon as user clicks add to cart, do not wait for the
         | request to start. It does not matter that it will take X or Y
         | seconds.
        
           | minorninth wrote:
           | Honestly, displaying a loader as soon as I click add to cart
           | would be an improvement on many sites. I'd welcome it.
           | 
           | A site that genuinely responds quickly is best. But for a
           | slow site, I'd always prefer one that at least gives me
           | instant feedback that I clicked something over one that
           | doesn't.
        
           | crazygringo wrote:
           | But what you're describing as "gaming" is precisely the
           | behavior this is supposed to incentivize.
           | 
           | Of course you should be setting a visual "in progress" state
           | before you send out a request. And yes that's supposed to be
           | instantaneous, not measured in "X or Y seconds". That's the
           | entire point, to acknowledge that the user did something so
           | they know they clicked in the right place, that another app
           | hadn't stolen keyboard focus, etc.
        
           | iamakulov wrote:
           | > It also seems to be a metric that is very easily gamed.
           | 
           | Fun fact: the current JS-specific metric (which is being
           | fazed out) is First Input Delay, and it was explicitly
           | designed to avoid this gaming:
           | 
           | > FID only measures the "delay" in event processing. It does
           | not measure the event processing time itself nor the time it
           | takes the browser to update the UI after running event
           | handlers. While this time does affect the user experience,
           | including it as part of FID would incentivize developers to
           | respond to events asynchronously--which would improve the
           | metric but likely make the experience worse. > -
           | https://web.dev/fid/
           | 
           | I wonder why they decided to reconsider this trade-off when
           | designing INP.
        
           | mdhb wrote:
           | You will be pleased to know that isn't actually the case and
           | it's instead an example of a single metric taken from a
           | larger suite of metrics known collectively as core web vitals
           | which is what is actually used https://web.dev/vitals/
        
           | [deleted]
        
           | comex wrote:
           | You'd need some pretty inefficient code for there to be a
           | delay between the user clicking a button and even _starting_
           | a request...
           | 
           | But even in that case, instant feedback is probably better
           | for the user. It lets them know the website isn't broken and
           | they don't need to click again, and it also makes the
           | experience feel snappier.
        
         | [deleted]
        
       | wfhBrian wrote:
       | Starts strong:
       | 
       | > Chrome usage data shows that 90% of a user's time on a page is
       | spent after it loads
       | 
       | Clearly impressive, breakthrough, research going on at Google.
        
         | Spivak wrote:
         | Less obvious than you think. How long do you spend on the HN
         | front page? When you open say Gitlab how often do you stay
         | there and not immediately click to something else?
        
           | chrsig wrote:
           | > How long do you spend on the HN front page?
           | 
           | ...more time than it takes to load. much, much more time.
        
           | christophilus wrote:
           | If it takes 300ms to load and takes me a few seconds to find
           | a link, I've spent 90% of my time on the page after it loads.
        
         | troupo wrote:
         | This just shows that they don't even understand what they are
         | measuring.
         | 
         | With their engineering leader [1] arguing that 2.4s to display
         | text and images is fast, no wonder they present "people still
         | spend time on websites after they have spent an eternity
         | loading" as a surprising find.
         | 
         | [1]
         | https://twitter.com/addyosmani/status/1678117107597471745?s=...
        
         | quazar wrote:
         | It's much less than I expected.
        
         | fevangelou wrote:
         | Truly epic comment.
        
       | marcosdumay wrote:
       | So... Chrome is going to officially spy on their users and report
       | that data to Google?
        
         | Xarodon wrote:
         | Just like it's already been doing for decades
        
       | CSSer wrote:
       | I've generally had no gripes about this or web vitals in general
       | except for one thing: group population[0]. It's unfair to create
       | a blast radius on a small or medium-sized business's website
       | simply because enough data doesn't exist to determine the true
       | extent of the user experience impact.
       | 
       | The most recent example I've observed this on was a website with
       | a heavy interactive location finder experience that lived on a
       | single page. Fine, penalize that page. There's a chance users
       | won't initially navigate there anyway. However, because a (very
       | minimal, practically irrelevant amount of) similar content on the
       | rest of the page was present on 18 other pages, the impact was
       | huge.
       | 
       | The reality of the web today makes this pretty dire in my mind.
       | Many businesses choose to run websites that are generally fast,
       | but they have to engage with third-party services because they
       | don't have the means to build their own map, event scheduler, or
       | form experience. The punishment doesn't fit the crime.
       | 
       | [0]: https://www.searchenginejournal.com/grouped-core-web-
       | vitals-...
        
       | danielvaughn wrote:
       | At first glance, 200ms INP is a pretty high latency for a "good"
       | rating. As a comparison, I believe 200ms is an average https
       | roundtrip. I'd expect most interactions to be much lower than
       | that.
        
         | photonerd wrote:
         | That was my first impression too but then I thought about what
         | it's actually measuring: page responsiveness, not animation
         | jank.
         | 
         | I'm not going to expect a 16ms response or anything for every
         | animation but much slower & you see jank.
         | 
         | For page interactivity though? 0.2s is pretty damn fast. Human
         | response time is 0.15-0.25s
         | 
         | So it's pretty reasonable
        
           | 8n4vidtmkvmk wrote:
           | .2s is slow for a redraw. Just because it might take you
           | 200ms to click after something happens doesn't mean you can't
           | see/notice when things take that long.
        
             | photonerd wrote:
             | I'm not saying it's fast. I'm saying that _based on the
             | goal of what it is measuring_ (user input responsiveness)
             | it's _fast enough_. For the purposes of the metric anyhow.
             | 
             | Plus, speaking from far too long of a career dealing with
             | user testing, respond too _fast_ and users thing you didn't
             | actually do anything.
             | 
             | So you're kind of boned either way. This is just measuring
             | programmatic delay.
        
         | klysm wrote:
         | I guess it depends on how your interactions are implemented. If
         | it's an SPA then 200ms is absurdly slow. But if it's a more
         | traditional form submit or something then it would take a lot
         | longer for your next set of pixels to comes through.
        
           | danielvaughn wrote:
           | Based on the fact that they're hooking into events like
           | onclick, I'd say that they are not looking at traditional
           | form submits, because then the metric would just effectively
           | be First Contentful Paint or something. My interpretation is
           | that they are indeed looking at first paint after an event
           | handler has been fired on the same page.
        
             | iamakulov wrote:
             | This is correct (source: working in web perf for 5 years).
             | 
             | INP is the time between you click/press a key/etc and the
             | moment the next paint happens. It's only measured for on-
             | page interactions, not for navigations.
             | 
             | It's basically like http://danluu.com/input-lag/ but as a
             | web metric.
        
               | danielvaughn wrote:
               | Thanks for confirming, yeah that makes sense. Side note,
               | that input-lag thing is a very cool resource.
        
       | romanovcode wrote:
       | Absolutely love how one company dictates how you should build
       | your websites. Love it!
        
         | mertd wrote:
         | You can build your website any way you like.
        
       | barbazoo wrote:
       | I'm lacking lots of context obviously but: What good is a
       | sophisticated metric when the pages they index are mostly
       | blogspam SO clones etc? I'm not interested in the "most
       | responsive" SO clone. Seems out of touch with what Google search
       | is struggling with these days.
        
         | mdhb wrote:
         | I don't know what made you think this was somehow the only
         | factor in their ranking algorithm or even a particularly
         | heavily weighted one.
        
           | barbazoo wrote:
           | > I don't know what made you think this was somehow the only
           | factor in their ranking algorithm or even a particularly
           | heavily weighted one
           | 
           | I don't think I implied this at all actually.
        
       | DueDilligence wrote:
       | [dead]
        
       | benatkin wrote:
       | To me it sounds like this will help pattern of showing a skeleton
       | screen when loading data.
       | https://www.smashingmagazine.com/2020/04/skeleton-screens-re...
        
       | axlee wrote:
       | We started seeing reports about it in GSC early July, when over a
       | single day all our scores turned to crap with no explanation.
       | 
       | We are in the yellow, but the biggest culprits for blocking time
       | are...Google Tag Manager, GAds (and Ganalytics where we still
       | have it). So yeah, thanks Google, can't wait to lose on SEO due
       | to your own products. And also, thanks for releasing this without
       | the proper analysis tooling. (https://web.dev/debug-performance-
       | in-the-field/#inp : this is not tooling, this is undue burden on
       | developers. Making people bundle an extra ["light"
       | library](https://www.npmjs.com/package/web-vitals) with their
       | clients, forcing them to build their own analytics servers to
       | understand what web-vitals complains about...or is often wrong
       | about)
        
         | falcor84 wrote:
         | I for one commend Google's efforts to improve the web's chances
         | of long-term survival by eliminating themselves and hopefully
         | tracking in general.
        
           | kevin_thibedeau wrote:
           | It's hilarious how AMP pages have become a cesspool of JS
           | dark patterns trying to bombard with you with as many ads as
           | possible and keep you from escaping their site.
        
         | deafpiano wrote:
         | Easy solution, remove all that adware crap.
        
         | devmor wrote:
         | >We are in the yellow, but and biggest culprits for blocking
         | time are...Google Tag Manager, GAds and GAnalytics.
         | 
         | This has been the case for over a decade with Google's
         | "Lighthouse" analysis tool as well. I used to use it as part of
         | a site analysis suite for my clients - a good portion of the
         | time, my smaller clients would end up deciding to replace
         | Google Analytics entirely with a different product because of
         | it.
        
           | askura wrote:
           | With SEO it's entirely the case of Google being Google and
           | just doing whatever they fancy. Core changes aren't often to
           | the benefit of the scene these days. The little space that
           | isn't paid ads is often useless these days.
           | 
           | I don't think the generative AI results they're going to do
           | will be much better either.
        
           | boredumb wrote:
           | Yes a lot of analytics use cases for smaller clients boil
           | down to a server report of page requests. Obviously with
           | google ads you're using it to monetize so that's a different
           | story, but the client side analytics that google provide are
           | bloated and usually overkill for most sites.
        
           | magicalist wrote:
           | > > _We are in the yellow, but and biggest culprits for
           | blocking time are...Google Tag Manager, GAds and GAnalytics._
           | 
           | > _...a good portion of the time, my smaller clients would
           | end up deciding to replace Google Analytics entirely with a
           | different product because of it._
           | 
           | This seems like a good outcome, then? Market pressure may be
           | the only way to get Google analytics to finally cut their
           | footprint.
        
           | greatNespresso wrote:
           | If they can't give up Google Analytics or Google Ads, but
           | still want the perf, give Cloudflare Zaraz a try. I am
           | Product Specialist there, if you need an intro in person,
           | happy to do it. Just reach out to me on Linkedin / twitter.
        
       ___________________________________________________________________
       (page generated 2023-07-11 23:00 UTC)