WEBVTT

1
00:00:06.240 --> 00:00:10.000
<v Speaker 1>Hey everybody, and welcome back to another episode of JavaScript Jabber.

2
00:00:10.320 --> 00:00:12.960
<v Speaker 1>This week, on our panel, we have a j O'Neill.

3
00:00:12.800 --> 00:00:15.679
<v Speaker 2>Yo, yeah yo, coming at you live from Pleasant, Pleasant Grove.

4
00:00:16.079 --> 00:00:19.320
<v Speaker 1>Amy Knight he hey from Nashville. Dan Shapier Hi from

5
00:00:19.320 --> 00:00:22.079
<v Speaker 1>Tel Aviv. I'm Charles max Wood from dev chat dot TV.

6
00:00:22.440 --> 00:00:25.320
<v Speaker 1>And Dan, you were kind of filling us in a

7
00:00:25.359 --> 00:00:28.480
<v Speaker 1>little bit before the show talking about core web vitals.

8
00:00:28.760 --> 00:00:32.079
<v Speaker 3>Is that what that's called? Yeah, that's that's what I

9
00:00:32.320 --> 00:00:35.039
<v Speaker 3>thought that it'll be interesting to speak about. It's not

10
00:00:35.119 --> 00:00:38.799
<v Speaker 3>like we haven't exactly spoken about it before. I actually

11
00:00:39.000 --> 00:00:42.079
<v Speaker 3>was a guest on a previous show that was all

12
00:00:42.079 --> 00:00:45.359
<v Speaker 3>about the alphabet soup of performance metrics. I called the

13
00:00:45.399 --> 00:00:49.560
<v Speaker 3>ad different acronyms, And later on we had Rick Viscomi

14
00:00:49.600 --> 00:00:53.799
<v Speaker 3>from Google talking about how they collect this information, and

15
00:00:53.840 --> 00:00:57.200
<v Speaker 3>then we had Martin Split from Google talking about how

16
00:00:57.200 --> 00:00:59.799
<v Speaker 3>they use this information at least to an extent. But

17
00:01:00.119 --> 00:01:03.200
<v Speaker 3>I still think that there's a lot to discuss here

18
00:01:03.240 --> 00:01:06.719
<v Speaker 3>and to take apart, and especially given that I'm going

19
00:01:06.799 --> 00:01:09.159
<v Speaker 3>to take this kind of an opinionated view of this

20
00:01:09.200 --> 00:01:13.840
<v Speaker 3>whole thing, very non corporate. So everything that I'm saying

21
00:01:13.920 --> 00:01:16.799
<v Speaker 3>is my own opinions and nothing to do with my

22
00:01:16.879 --> 00:01:20.400
<v Speaker 3>employers or anything like that. Hopefully I won't get into

23
00:01:20.439 --> 00:01:21.040
<v Speaker 3>any trouble.

24
00:01:21.480 --> 00:01:24.799
<v Speaker 1>Yeah. So yeah, what what are core web vitals? I

25
00:01:24.840 --> 00:01:26.120
<v Speaker 1>think that's a good place to start.

26
00:01:26.400 --> 00:01:29.400
<v Speaker 3>Well, that's yeah, that's a good place to start. So

27
00:01:29.560 --> 00:01:33.840
<v Speaker 3>it turns out that Google thinks that the web should

28
00:01:33.879 --> 00:01:38.640
<v Speaker 3>be faster. That that is that when people visit websites,

29
00:01:39.239 --> 00:01:44.000
<v Speaker 3>the websites should should load faster, should respond faster, and

30
00:01:44.200 --> 00:01:49.799
<v Speaker 3>overall provide a better experience to those visitors. I like

31
00:01:49.879 --> 00:01:53.200
<v Speaker 3>to say that, you know, we're kind of lucky that

32
00:01:53.760 --> 00:01:56.719
<v Speaker 3>the good of the web, not always, but in many

33
00:01:56.760 --> 00:02:01.079
<v Speaker 3>cases kind of aligns with the Google's bots online. They

34
00:02:01.200 --> 00:02:04.560
<v Speaker 3>make most of of their money, most of their revenue

35
00:02:04.760 --> 00:02:07.159
<v Speaker 3>from ads. I think Google is like the biggest ad

36
00:02:07.200 --> 00:02:09.919
<v Speaker 3>company in the world or something like that. Maybe Facebook

37
00:02:10.000 --> 00:02:12.479
<v Speaker 3>might be giving them a run for that position, but

38
00:02:12.719 --> 00:02:14.879
<v Speaker 3>other than that, I think they're the biggest by far.

39
00:02:15.280 --> 00:02:17.680
<v Speaker 3>And most of that, not all of it, but most

40
00:02:17.680 --> 00:02:21.719
<v Speaker 3>of it I think is coming from ads on websites.

41
00:02:22.159 --> 00:02:26.599
<v Speaker 3>So Google has this incentive that more people browse the web,

42
00:02:27.639 --> 00:02:31.439
<v Speaker 3>because then more people will be exposed to their ads,

43
00:02:31.479 --> 00:02:34.599
<v Speaker 3>and Google makes more money, and that means that they

44
00:02:34.599 --> 00:02:37.319
<v Speaker 3>want a better web, a web that people spend more

45
00:02:37.360 --> 00:02:39.759
<v Speaker 3>time on, and for me, as a proponent of the

46
00:02:39.800 --> 00:02:43.680
<v Speaker 3>open web, that's really a good thing. So I'm really

47
00:02:43.719 --> 00:02:48.199
<v Speaker 3>happy that this alignment has happened. And whatever their motivation,

48
00:02:48.319 --> 00:02:51.360
<v Speaker 3>as long as is they're doing good things, well, I'm

49
00:02:51.360 --> 00:02:54.680
<v Speaker 3>happy about it. And when Google tries to push the

50
00:02:54.759 --> 00:02:58.159
<v Speaker 3>industry in what they consider to be the right direction,

51
00:02:58.719 --> 00:03:01.919
<v Speaker 3>they have like these two whips that they can use

52
00:03:02.000 --> 00:03:05.840
<v Speaker 3>to prod us along, to get us going. And one

53
00:03:06.280 --> 00:03:10.159
<v Speaker 3>huge whip is the Google Search. All of us want

54
00:03:10.280 --> 00:03:14.039
<v Speaker 3>our websites to rank, because if you don't rank, then

55
00:03:14.039 --> 00:03:18.120
<v Speaker 3>you don't exist. And if they make something a ranking

56
00:03:18.199 --> 00:03:22.199
<v Speaker 3>factor or ranking signal then and then go public about

57
00:03:22.240 --> 00:03:26.120
<v Speaker 3>it telling everybody that that's the case, well, people have

58
00:03:26.199 --> 00:03:31.360
<v Speaker 3>this huge incentive to invest in that aspect of their website.

59
00:03:31.479 --> 00:03:34.039
<v Speaker 3>And that's one thing that they can do and they

60
00:03:34.120 --> 00:03:36.400
<v Speaker 3>have done in the past. And the other thing that

61
00:03:36.560 --> 00:03:39.680
<v Speaker 3>the other whip that they hold is the Chrome web browser,

62
00:03:40.000 --> 00:03:42.639
<v Speaker 3>which I think is the most popular web browser at

63
00:03:42.719 --> 00:03:44.879
<v Speaker 3>least that's what I see when I look at the

64
00:03:44.879 --> 00:03:49.319
<v Speaker 3>WIG statistics about the browsers that our visitors are mostly using.

65
00:03:49.879 --> 00:03:55.800
<v Speaker 3>And that's also whip because they can adjust the Chrome

66
00:03:55.960 --> 00:04:01.280
<v Speaker 3>UI to encourage certain things in websites. And I'll give

67
00:04:01.319 --> 00:04:05.360
<v Speaker 3>an example. A few years ago, Google decided that the

68
00:04:05.400 --> 00:04:09.400
<v Speaker 3>web needs to be h GDPs everywhere, that if we

69
00:04:09.479 --> 00:04:13.759
<v Speaker 3>want the web to be good, it needs to respect privacy,

70
00:04:13.879 --> 00:04:17.839
<v Speaker 3>it needs to respect security, and for that it needs

71
00:04:17.839 --> 00:04:20.279
<v Speaker 3>to be a GTPs. Now, you know, I still remember

72
00:04:20.399 --> 00:04:23.000
<v Speaker 3>not so long ago, if you would go to some

73
00:04:23.279 --> 00:04:27.160
<v Speaker 3>online store or whatever, and it would be just h GDP,

74
00:04:27.519 --> 00:04:31.800
<v Speaker 3>and it wouldn't turn to HDPS until you were actually

75
00:04:31.839 --> 00:04:34.240
<v Speaker 3>at the checkout. And then let's say it might redirect

76
00:04:34.240 --> 00:04:37.120
<v Speaker 3>to PayPal or something like that, and only then would

77
00:04:37.120 --> 00:04:41.000
<v Speaker 3>it actually become AGTPS. But all the rest of the thing,

78
00:04:41.040 --> 00:04:44.120
<v Speaker 3>the entire process was over at GDP, which from my

79
00:04:44.240 --> 00:04:47.199
<v Speaker 3>perspective is also problematic because I don't want people to

80
00:04:47.240 --> 00:04:50.800
<v Speaker 3>know what I'm shopping for. And Google rightfully, you know,

81
00:04:50.920 --> 00:04:53.680
<v Speaker 3>concluded that that's a bad thing and that everybody should

82
00:04:53.720 --> 00:04:57.120
<v Speaker 3>be AHGTPS all the time. I hope everybody agrees with

83
00:04:57.240 --> 00:05:00.959
<v Speaker 3>me here. And what they did is they exactly use

84
00:05:01.120 --> 00:05:03.519
<v Speaker 3>these two whips that they had so in the in

85
00:05:03.560 --> 00:05:07.879
<v Speaker 3>the search, they basically told people that h GTPs is

86
00:05:07.920 --> 00:05:11.560
<v Speaker 3>going to be a ranking factor that all other things

87
00:05:11.600 --> 00:05:14.079
<v Speaker 3>being equal, if there are like two sites that have

88
00:05:14.519 --> 00:05:19.879
<v Speaker 3>equivalent that content and authority, one is a GTPs and

89
00:05:19.959 --> 00:05:23.639
<v Speaker 3>the other is h GDP, the one that uses HDPS

90
00:05:23.680 --> 00:05:26.920
<v Speaker 3>will rank over the one that just uses HTP. Now,

91
00:05:27.160 --> 00:05:29.920
<v Speaker 3>to be fair, it doesn't even need to be true.

92
00:05:30.560 --> 00:05:33.959
<v Speaker 3>It's just sufficient that they say that that's what they're

93
00:05:33.959 --> 00:05:36.439
<v Speaker 3>going to do, and that really gets a lot of

94
00:05:36.439 --> 00:05:39.879
<v Speaker 3>people going. And the other thing that they did is

95
00:05:39.920 --> 00:05:43.759
<v Speaker 3>that they modified the chrome UI initially to put this

96
00:05:43.879 --> 00:05:47.959
<v Speaker 3>kind of a greenish background behind htps r LS and

97
00:05:48.000 --> 00:05:52.399
<v Speaker 3>then put a reddish background behind h GDP or LS. I

98
00:05:52.439 --> 00:05:55.680
<v Speaker 3>think that now there are that's done. They have this

99
00:05:56.240 --> 00:05:58.680
<v Speaker 3>lock icon. I don't think they put the colors anymore.

100
00:05:59.000 --> 00:06:02.519
<v Speaker 3>But they got it into people's heads that h GDP

101
00:06:03.560 --> 00:06:06.519
<v Speaker 3>was dangerous, that it's not a good thing, and then

102
00:06:06.519 --> 00:06:09.439
<v Speaker 3>that you should prefer h GDPs, and they use chrome

103
00:06:09.800 --> 00:06:13.519
<v Speaker 3>for that purpose. So by using these two things, these

104
00:06:13.519 --> 00:06:17.240
<v Speaker 3>two whips, like I said, or prags, they got us

105
00:06:17.279 --> 00:06:21.199
<v Speaker 3>all moving in the right direction. And now they are

106
00:06:21.240 --> 00:06:25.879
<v Speaker 3>effectively doing or trying to do the exact same thing

107
00:06:26.360 --> 00:06:30.120
<v Speaker 3>with regard to performance. And that's where core web vitals

108
00:06:30.600 --> 00:06:31.519
<v Speaker 3>come into the picture.

109
00:06:31.759 --> 00:06:34.040
<v Speaker 1>Now, yeah, that makes sense. It's funny too, because I

110
00:06:34.079 --> 00:06:36.319
<v Speaker 1>remember when they made some of those changes, people were

111
00:06:36.439 --> 00:06:41.160
<v Speaker 1>especially your HTTPS example, a lot of folks were frustrated

112
00:06:41.199 --> 00:06:43.720
<v Speaker 1>because they were just content sites and things like that

113
00:06:43.800 --> 00:06:46.439
<v Speaker 1>and they didn't want to have to go to HTTPS.

114
00:06:46.480 --> 00:06:49.680
<v Speaker 1>But yeah, I agree with you that that makes sense.

115
00:06:49.759 --> 00:06:53.439
<v Speaker 1>It's interesting that Google has put themselves in a position

116
00:06:53.519 --> 00:06:57.839
<v Speaker 1>to sort of push some of these ideas or push

117
00:06:57.879 --> 00:07:02.240
<v Speaker 1>some of these technological choices right where I think a

118
00:07:02.279 --> 00:07:04.720
<v Speaker 1>lot of other companies would have just let things coast, right.

119
00:07:04.759 --> 00:07:06.959
<v Speaker 1>It would have been like, well, whatever people want to do, right,

120
00:07:07.279 --> 00:07:08.720
<v Speaker 1>and so it would have been up to the public

121
00:07:08.800 --> 00:07:12.480
<v Speaker 1>instead of up to folks like Google to push some

122
00:07:12.560 --> 00:07:13.120
<v Speaker 1>of this stuff.

123
00:07:13.240 --> 00:07:14.759
<v Speaker 2>I don't want to get a soft track, so just

124
00:07:14.800 --> 00:07:17.759
<v Speaker 2>don't answer if it does. But what is the incentive

125
00:07:17.839 --> 00:07:20.560
<v Speaker 2>for Google wanting people to have HTTPS? I get why

126
00:07:20.600 --> 00:07:22.560
<v Speaker 2>it's good for me, but I don't get why it's

127
00:07:22.560 --> 00:07:26.120
<v Speaker 2>good for them. Well, AD revenue, ad revenue, they not

128
00:07:26.160 --> 00:07:29.160
<v Speaker 2>getting those malicious ad jacker things.

129
00:07:29.199 --> 00:07:32.160
<v Speaker 3>Maybe is that it's a sad look. I haven't tried

130
00:07:32.160 --> 00:07:34.759
<v Speaker 3>to do a deeper specific analysis of that, but I

131
00:07:34.879 --> 00:07:37.199
<v Speaker 3>tend to agree. But like I said at the beginning,

132
00:07:37.879 --> 00:07:41.680
<v Speaker 3>Google wants the web to be a pleasant and and

133
00:07:41.759 --> 00:07:45.600
<v Speaker 3>a safe place that people want to use. Like you

134
00:07:45.639 --> 00:07:48.879
<v Speaker 3>wouldn't go to buy at the store that where there

135
00:07:48.920 --> 00:07:52.560
<v Speaker 3>are a lot of pickpockets hanging around and maybe stealing

136
00:07:52.560 --> 00:07:55.399
<v Speaker 3>your stuff or whatever. You want to go somewhere where

137
00:07:55.480 --> 00:07:58.959
<v Speaker 3>you feel safe while doing the shopping, and they wanted

138
00:07:59.000 --> 00:08:02.639
<v Speaker 3>to be the experience when you're online. So that would

139
00:08:02.639 --> 00:08:07.040
<v Speaker 3>be my guess. But like I said, I think that

140
00:08:07.279 --> 00:08:10.399
<v Speaker 3>we're kind of lucky in that the overall the good

141
00:08:10.399 --> 00:08:12.680
<v Speaker 3>of the web in most cases, not all cases, and

142
00:08:12.879 --> 00:08:15.480
<v Speaker 3>we shouldn't always count on it to be true, but

143
00:08:15.639 --> 00:08:17.839
<v Speaker 3>in a lot of cases, the good of the web

144
00:08:17.879 --> 00:08:22.079
<v Speaker 3>and the good of financial benefit of Google currently align,

145
00:08:22.560 --> 00:08:26.160
<v Speaker 3>which is lucky for us. Is don't aligned that much

146
00:08:26.240 --> 00:08:29.360
<v Speaker 3>with Apple, for example, which is not really unfortunate for us.

147
00:08:29.560 --> 00:08:32.000
<v Speaker 1>So I guess the point, you know, coming back to

148
00:08:32.039 --> 00:08:35.720
<v Speaker 1>the web vitals and performance is again they want it

149
00:08:35.720 --> 00:08:37.759
<v Speaker 1>to be a good experience where people are happy to

150
00:08:37.759 --> 00:08:40.600
<v Speaker 1>come to the web, and so they're encouraging people now

151
00:08:40.639 --> 00:08:44.320
<v Speaker 1>on performance in the same way they did for HTTPS,

152
00:08:45.120 --> 00:08:48.080
<v Speaker 1>in the sense that yeah, it's good for the web,

153
00:08:48.600 --> 00:08:50.919
<v Speaker 1>it's good for the consumers of the web, and so

154
00:08:51.120 --> 00:08:53.559
<v Speaker 1>Google is going to push it forward because more people

155
00:08:53.559 --> 00:08:54.639
<v Speaker 1>on the web is good for them.

156
00:08:55.200 --> 00:08:57.639
<v Speaker 3>Yes, at least that's how I see it. And again

157
00:08:57.720 --> 00:09:00.519
<v Speaker 3>this is my opinion. Like I said, is going to

158
00:09:00.519 --> 00:09:07.000
<v Speaker 3>be an opinionated episode, and that's my understanding of the situation.

159
00:09:07.559 --> 00:09:11.080
<v Speaker 3>But it also raises the problem that they were facing

160
00:09:11.320 --> 00:09:16.240
<v Speaker 3>because with HGDPS, it's really clear cut either the site

161
00:09:16.440 --> 00:09:20.159
<v Speaker 3>uses HGTPS or or it doesn't, and it's very easy

162
00:09:20.159 --> 00:09:23.159
<v Speaker 3>for them to see that that's the case. In the

163
00:09:23.159 --> 00:09:27.759
<v Speaker 3>case of performance, how do you actually determine if a

164
00:09:27.799 --> 00:09:32.039
<v Speaker 3>website has good performance or not? And what does good

165
00:09:32.080 --> 00:09:35.919
<v Speaker 3>performance actually constitute, how do you measure it, and what

166
00:09:35.960 --> 00:09:38.960
<v Speaker 3>do you actually measure What might be good performance for

167
00:09:39.080 --> 00:09:41.960
<v Speaker 3>one type of a website might be bad for a

168
00:09:42.000 --> 00:09:46.000
<v Speaker 3>different type of website. Or it's also dependent on geographic

169
00:09:46.120 --> 00:09:49.639
<v Speaker 3>locations because the web, let's say, in Canada, is much

170
00:09:49.679 --> 00:09:52.600
<v Speaker 3>faster than the web, let's say, in India. So it

171
00:09:52.720 --> 00:09:56.440
<v Speaker 3>gets much more complicated when when you look at that

172
00:09:56.600 --> 00:10:01.360
<v Speaker 3>factor of performance, and that that's kind of the reason

173
00:10:01.440 --> 00:10:05.600
<v Speaker 3>that we had that big episode a while back on

174
00:10:06.440 --> 00:10:10.720
<v Speaker 3>where are literally listed for an entire hour and in

175
00:10:10.759 --> 00:10:14.879
<v Speaker 3>a bit of that entire recording, a whole bunch of

176
00:10:15.480 --> 00:10:20.080
<v Speaker 3>performance metrics, because there are a lot of different measurements

177
00:10:20.080 --> 00:10:23.159
<v Speaker 3>that you can take in when you're trying to gauge

178
00:10:23.200 --> 00:10:26.840
<v Speaker 3>the performance of a particular website, so it really becomes

179
00:10:26.840 --> 00:10:32.279
<v Speaker 3>tricky and in order to kind of address so oh,

180
00:10:32.360 --> 00:10:36.000
<v Speaker 3>let me put it differently. When Google decided that they're

181
00:10:36.000 --> 00:10:40.679
<v Speaker 3>going to be focusing on performance, they concluded, and again

182
00:10:40.840 --> 00:10:44.000
<v Speaker 3>rightfully so in my opinion, that it has to be

183
00:10:44.120 --> 00:10:49.000
<v Speaker 3>metrics that are valid that actually indicate something real about

184
00:10:49.000 --> 00:10:51.840
<v Speaker 3>the performance of a website, but it also can't be

185
00:10:52.039 --> 00:10:55.080
<v Speaker 3>something It can't they can't have too many metrics. So

186
00:10:55.159 --> 00:10:57.039
<v Speaker 3>you know, there are a lot of aspects of web

187
00:10:57.039 --> 00:11:00.000
<v Speaker 3>performance that you can measure, but they're not going to

188
00:11:00.279 --> 00:11:04.200
<v Speaker 3>focus on everything all at once. Instead, they're going to

189
00:11:04.279 --> 00:11:07.639
<v Speaker 3>focus on a particular subset of things what they would

190
00:11:07.720 --> 00:11:11.360
<v Speaker 3>consider to be the most important things. Because the vast

191
00:11:11.399 --> 00:11:16.159
<v Speaker 3>majority of web developers and designers and SEO people, et

192
00:11:16.240 --> 00:11:20.480
<v Speaker 3>cetera that are out there are not performance experts, don't

193
00:11:20.519 --> 00:11:24.000
<v Speaker 3>want to be, and shouldn't be, And if you came

194
00:11:24.120 --> 00:11:27.039
<v Speaker 3>at them with something like twenty different metrics that they

195
00:11:27.120 --> 00:11:31.519
<v Speaker 3>need to now analyze and measure and analyze and optimize,

196
00:11:31.960 --> 00:11:34.840
<v Speaker 3>it's just not going to happen. So what Google did

197
00:11:34.960 --> 00:11:38.600
<v Speaker 3>essentially is like they did this two step process. First

198
00:11:38.639 --> 00:11:40.840
<v Speaker 3>of all, they came up with something that which they

199
00:11:40.879 --> 00:11:48.080
<v Speaker 3>called web vitals, which were a larger set of performance metrics.

200
00:11:48.600 --> 00:11:52.840
<v Speaker 3>And then out of these they distilled three metrics which

201
00:11:52.879 --> 00:11:57.120
<v Speaker 3>they refer to as core web vitals, which are the

202
00:11:57.159 --> 00:12:00.519
<v Speaker 3>ones that they're going to focus on or now are

203
00:12:00.519 --> 00:12:04.200
<v Speaker 3>at present. And what they also said is that every

204
00:12:04.360 --> 00:12:07.759
<v Speaker 3>year they're going to look at these three core web

205
00:12:07.840 --> 00:12:11.120
<v Speaker 3>vitals see if they're still the ones that you need

206
00:12:11.200 --> 00:12:16.080
<v Speaker 3>to focus on and potentially modify them, evaluate them, maybe

207
00:12:16.080 --> 00:12:19.960
<v Speaker 3>even replace them with other metrics if they see a need.

208
00:12:20.639 --> 00:12:24.639
<v Speaker 3>So so far, they've announced the set of three metrics

209
00:12:24.679 --> 00:12:27.679
<v Speaker 3>back in twenty in the beginning of twenty twenty, I think,

210
00:12:28.240 --> 00:12:30.639
<v Speaker 3>and so far they haven't changed them, so for now

211
00:12:30.679 --> 00:12:33.879
<v Speaker 3>at least, they're sticking with it. And these three core

212
00:12:34.519 --> 00:12:38.799
<v Speaker 3>web vital metrics are LCP or largest Content for paint,

213
00:12:39.279 --> 00:12:43.440
<v Speaker 3>FID which stands for first input delay, and CLS which

214
00:12:43.480 --> 00:12:47.399
<v Speaker 3>stands for commulative layout shift. And these are the ones

215
00:12:47.879 --> 00:12:51.200
<v Speaker 3>that they're focusing on, and these are the ones that

216
00:12:51.240 --> 00:12:56.200
<v Speaker 3>they're now starting to use as a ranking signal into

217
00:12:56.279 --> 00:13:01.320
<v Speaker 3>Google Search. Which means that the the values that get

218
00:13:01.440 --> 00:13:07.000
<v Speaker 3>measured for your website for these metrics can impact the

219
00:13:07.120 --> 00:13:10.519
<v Speaker 3>ranking of your site, at least in mobile searches.

220
00:13:10.879 --> 00:13:14.000
<v Speaker 1>So you kind of made this point before, Dan, and

221
00:13:14.039 --> 00:13:16.159
<v Speaker 1>I'm a little curious to see how this goes. But

222
00:13:16.639 --> 00:13:20.039
<v Speaker 1>you basically said, not all Internet connections are created equal,

223
00:13:20.399 --> 00:13:23.200
<v Speaker 1>and not all devices are created equal either, And so

224
00:13:23.279 --> 00:13:27.759
<v Speaker 1>I'm wondering exactly how do you measure these numbers? Right,

225
00:13:28.200 --> 00:13:31.600
<v Speaker 1>because it looks like it's I pulled up one website

226
00:13:31.639 --> 00:13:33.840
<v Speaker 1>where they kind of explained what these three measures are

227
00:13:34.759 --> 00:13:37.240
<v Speaker 1>and it's, hey, ask to be two point five seconds

228
00:13:37.320 --> 00:13:39.600
<v Speaker 1>or four seconds or you know, one hundred milliseconds, three

229
00:13:39.639 --> 00:13:43.279
<v Speaker 1>hundred milliseconds kind of thing. They've got these benchmarks. So

230
00:13:43.519 --> 00:13:45.240
<v Speaker 1>is it just when the bot hits it?

231
00:13:45.519 --> 00:13:49.320
<v Speaker 3>Or that's an excellent question. A lot of people initially

232
00:13:49.360 --> 00:13:51.799
<v Speaker 3>assume that it's going to be the Google bot or

233
00:13:51.840 --> 00:13:56.559
<v Speaker 3>something that Google is going to hit your website measure

234
00:13:56.720 --> 00:13:59.360
<v Speaker 3>how long it takes for the bot to do whatever,

235
00:13:59.840 --> 00:14:02.120
<v Speaker 3>and those are the numbers that they're going to use,

236
00:14:02.360 --> 00:14:06.399
<v Speaker 3>and that's totally not the case. People were also looking

237
00:14:06.639 --> 00:14:10.039
<v Speaker 3>at measurement tools that Google put out there, like a

238
00:14:10.080 --> 00:14:13.879
<v Speaker 3>Google Lighthouse and Google based with Insights and thought, hey,

239
00:14:14.440 --> 00:14:17.320
<v Speaker 3>they're probably going to be using Lighthouse to measure your

240
00:14:17.360 --> 00:14:21.200
<v Speaker 3>website and use that number. Well, again, that's totally not

241
00:14:21.240 --> 00:14:24.799
<v Speaker 3>the case. So I mentioned we had Rick VISCOMI on

242
00:14:24.840 --> 00:14:30.039
<v Speaker 3>a previous episode, and Rick is the person at Google

243
00:14:30.159 --> 00:14:36.120
<v Speaker 3>who manages a project called CRUX, which stands for Chrome

244
00:14:36.200 --> 00:14:40.320
<v Speaker 3>User Experience and this and there is a reminder of

245
00:14:40.320 --> 00:14:43.720
<v Speaker 3>what this thing is. It turns out that when you

246
00:14:43.879 --> 00:14:47.000
<v Speaker 3>install Chrome on your device, or if it comes pre

247
00:14:47.080 --> 00:14:53.519
<v Speaker 3>installed unless you opt out, then Chrome gathers data about

248
00:14:53.559 --> 00:14:56.559
<v Speaker 3>all the websurfing that you're doing. To do people still

249
00:14:56.679 --> 00:14:59.279
<v Speaker 3>use the term websurfing. I don't know all the websites

250
00:14:59.320 --> 00:15:03.240
<v Speaker 3>if you visit all your web sessions, Google collects information

251
00:15:03.320 --> 00:15:07.840
<v Speaker 3>about that anonymous of course, and it gets sent up

252
00:15:07.919 --> 00:15:12.200
<v Speaker 3>to the mothership. So it gets collected in this huge

253
00:15:12.279 --> 00:15:18.440
<v Speaker 3>Google database, and that includes performance information. So they measure

254
00:15:19.000 --> 00:15:23.519
<v Speaker 3>your Chrome measures the time that it takes for your

255
00:15:23.559 --> 00:15:27.879
<v Speaker 3>website to load effectively, and that measurement or those measurements

256
00:15:27.879 --> 00:15:30.919
<v Speaker 3>actually because it's more than one number, gets sent back

257
00:15:30.960 --> 00:15:35.399
<v Speaker 3>to Google and gets put into this database called CRUX. Now,

258
00:15:35.639 --> 00:15:42.080
<v Speaker 3>Google then uses this information as the input as an

259
00:15:42.240 --> 00:15:47.759
<v Speaker 3>input more accurately to their Google ranking algorithm. So the

260
00:15:47.799 --> 00:15:51.399
<v Speaker 3>Google ranking algorithm receives a ton of signals from a

261
00:15:51.399 --> 00:15:54.480
<v Speaker 3>lot of different sources, and the various analysis that they

262
00:15:54.519 --> 00:15:57.399
<v Speaker 3>perform on a website they like look at things like

263
00:15:57.639 --> 00:16:02.639
<v Speaker 3>the quality of the content, the BACKLNK, the authority, et cetera. Well,

264
00:16:02.759 --> 00:16:08.080
<v Speaker 3>now they have another ranking signal which incorporates the performance

265
00:16:08.240 --> 00:16:12.360
<v Speaker 3>data that they get from this Crux database, which means

266
00:16:12.639 --> 00:16:17.120
<v Speaker 3>ultimately that the number that they use or the numbers

267
00:16:17.200 --> 00:16:20.000
<v Speaker 3>that they use in order to determine whether your website

268
00:16:20.080 --> 00:16:24.240
<v Speaker 3>has good performance or not is based on actually the

269
00:16:24.279 --> 00:16:28.600
<v Speaker 3>actual experience of real users who are using Google Chrome

270
00:16:28.759 --> 00:16:32.679
<v Speaker 3>as their browser. Unfortunately, they're not looking at people who

271
00:16:32.679 --> 00:16:36.879
<v Speaker 3>are using other browsers, so Safari users, for example, have

272
00:16:37.320 --> 00:16:43.120
<v Speaker 3>zero impact on this ranking signal. Likewise, Firefox users or

273
00:16:43.159 --> 00:16:46.799
<v Speaker 3>even Edge users, even though Edge is using the same

274
00:16:47.080 --> 00:16:52.080
<v Speaker 3>chromium engine as Chrome, because it's a Chrome thing, it's

275
00:16:52.120 --> 00:16:53.320
<v Speaker 3>not a Chromium thing.

276
00:16:53.440 --> 00:16:54.279
<v Speaker 2>You forgot Brave.

277
00:16:54.600 --> 00:16:59.879
<v Speaker 3>Brave certainly does not send data to the Google servers.

278
00:17:01.679 --> 00:17:04.599
<v Speaker 3>I think Brad and I would like become apoplectic if

279
00:17:04.640 --> 00:17:08.519
<v Speaker 3>it happened. I know right now, I think they're introducing

280
00:17:08.559 --> 00:17:10.359
<v Speaker 3>their own search engine even so.

281
00:17:10.839 --> 00:17:15.440
<v Speaker 2>And it works remarkably well. Actually, like I have not

282
00:17:15.599 --> 00:17:19.720
<v Speaker 2>even I think that the Brave search is getting me

283
00:17:19.880 --> 00:17:22.119
<v Speaker 2>really good results for the type of searches that I do,

284
00:17:22.440 --> 00:17:23.440
<v Speaker 2>which I'm surprised by.

285
00:17:23.559 --> 00:17:26.400
<v Speaker 3>I think that is it something that they developed or

286
00:17:26.440 --> 00:17:29.480
<v Speaker 3>I think they bought some company or merged with some company.

287
00:17:29.519 --> 00:17:32.680
<v Speaker 3>I think. I'm not sure. Anyway, it's kind of off topic.

288
00:17:33.000 --> 00:17:35.799
<v Speaker 3>I don't know. Yeah, probably we should probably bring somebody

289
00:17:35.880 --> 00:17:38.759
<v Speaker 3>from Brave just to talk about that. It does sound

290
00:17:38.799 --> 00:17:42.640
<v Speaker 3>like an interesting topic. But anyway, I digress. So, as

291
00:17:42.680 --> 00:17:47.000
<v Speaker 3>I mentioned, there are these three main metrics which are

292
00:17:47.039 --> 00:17:51.279
<v Speaker 3>the core web vitals. The first one I mentioned is LCP,

293
00:17:51.599 --> 00:17:55.519
<v Speaker 3>which is largest content for paint. It measures the time

294
00:17:55.920 --> 00:18:00.720
<v Speaker 3>from the start of the session until when that the

295
00:18:00.839 --> 00:18:07.240
<v Speaker 3>biggest content element within the initial viewport was rendered. Usually

296
00:18:07.279 --> 00:18:11.519
<v Speaker 3>that would be an image, but it might also be text. Interestingly,

297
00:18:11.759 --> 00:18:18.119
<v Speaker 3>svgs don't count, so what why? My guess is that

298
00:18:18.319 --> 00:18:21.279
<v Speaker 3>svgs would be too easy to fake. Here's the thing

299
00:18:21.519 --> 00:18:24.720
<v Speaker 3>about co web vitals that Google needs to take into account.

300
00:18:25.240 --> 00:18:27.960
<v Speaker 3>On the one hand, there are supposed to be these

301
00:18:28.039 --> 00:18:31.920
<v Speaker 3>metrics that putting Google aside, there are supposed to be

302
00:18:31.960 --> 00:18:35.759
<v Speaker 3>these metrics that if you optimize, if you improve, you

303
00:18:35.839 --> 00:18:39.960
<v Speaker 3>will get a better website. I mean, getting good performance

304
00:18:40.079 --> 00:18:42.279
<v Speaker 3>is not just about the rank. Like I said, the

305
00:18:42.359 --> 00:18:45.400
<v Speaker 3>rank is kind of the whip. Getting good performance is

306
00:18:45.440 --> 00:18:48.960
<v Speaker 3>also about the user experience. If you have good performance,

307
00:18:49.000 --> 00:18:52.240
<v Speaker 3>you'll have better engagements, you'll have a lower bounce rate.

308
00:18:52.839 --> 00:18:56.079
<v Speaker 3>Those are the things that should really be of interest

309
00:18:56.160 --> 00:18:58.960
<v Speaker 3>to a site owner if people If you have an

310
00:18:58.960 --> 00:19:01.839
<v Speaker 3>online store, even if people find it but then it

311
00:19:01.960 --> 00:19:05.240
<v Speaker 3>loads so slowly that they just leave without buying everything,

312
00:19:05.279 --> 00:19:08.200
<v Speaker 3>that what have you gained? You want people to engage

313
00:19:08.240 --> 00:19:13.400
<v Speaker 3>with your content, and that, amongst other things, requires good performance.

314
00:19:13.880 --> 00:19:18.240
<v Speaker 3>So in an ideal world, the co web vitals what

315
00:19:18.359 --> 00:19:21.319
<v Speaker 3>you would just think about, the youth, the visitor experience.

316
00:19:21.559 --> 00:19:25.720
<v Speaker 3>But once Google may has made them a ranking signal,

317
00:19:26.200 --> 00:19:30.000
<v Speaker 3>they also need to take into account that people will

318
00:19:30.079 --> 00:19:34.799
<v Speaker 3>do bad things in order to improve their rank. It's

319
00:19:34.880 --> 00:19:38.599
<v Speaker 3>it's unfortunate, but it's well known that it happens. So

320
00:19:39.119 --> 00:19:43.039
<v Speaker 3>think about me like putting this I don't know, an

321
00:19:43.160 --> 00:19:47.839
<v Speaker 3>SBG box around my entire viewport just to create this

322
00:19:47.920 --> 00:19:51.279
<v Speaker 3>big visual element, because it's as big as the entire viewport,

323
00:19:51.480 --> 00:19:55.319
<v Speaker 3>but it's effectively empty. It's like this one line SVG

324
00:19:55.920 --> 00:19:58.440
<v Speaker 3>and it's embedded into the HTML, so it will be

325
00:19:58.519 --> 00:20:01.640
<v Speaker 3>like the first thing to render, and I would get

326
00:20:01.680 --> 00:20:05.519
<v Speaker 3>a really great LCP score even though I've literally done

327
00:20:05.640 --> 00:20:10.960
<v Speaker 3>nothing to actually improve the actual user experience. Now I'm

328
00:20:10.960 --> 00:20:15.359
<v Speaker 3>not saying that this is the reason why Google has

329
00:20:15.359 --> 00:20:18.079
<v Speaker 3>done it, but that's my guess. Or let's put it

330
00:20:18.119 --> 00:20:21.519
<v Speaker 3>this way. They have another metric that's a web vital,

331
00:20:21.599 --> 00:20:24.960
<v Speaker 3>but not a core web vital, which is first content

332
00:20:25.000 --> 00:20:29.119
<v Speaker 3>for paint, which measures when the first element of content

333
00:20:29.240 --> 00:20:33.200
<v Speaker 3>is rendered on the page, and that one does take

334
00:20:33.319 --> 00:20:36.559
<v Speaker 3>SVG into account. So it's interesting that for the first

335
00:20:36.559 --> 00:20:39.440
<v Speaker 3>contentful paint they do take svgs into account, but for

336
00:20:39.480 --> 00:20:42.799
<v Speaker 3>the largest content for paint they actually don't take svgs

337
00:20:42.839 --> 00:20:45.640
<v Speaker 3>into account. Okay, it is what it is. So an

338
00:20:45.799 --> 00:20:50.799
<v Speaker 3>LCP would be either the biggest image or the biggest

339
00:20:51.119 --> 00:20:54.039
<v Speaker 3>piece of text, whichever is the bigger one between them.

340
00:20:54.039 --> 00:20:57.079
<v Speaker 3>In the case of text, it's the rounding is the

341
00:20:57.079 --> 00:20:59.480
<v Speaker 3>box that contains the text, So it would be let's say,

342
00:20:59.440 --> 00:21:02.880
<v Speaker 3>if the text, let's say is inside of div, it

343
00:21:02.920 --> 00:21:07.440
<v Speaker 3>would be the rectangle of that div, the closing rectangle

344
00:21:07.440 --> 00:21:07.960
<v Speaker 3>of that div.

345
00:21:08.160 --> 00:21:10.440
<v Speaker 1>All right, So when you say largest, you're saying by

346
00:21:10.480 --> 00:21:12.400
<v Speaker 1>real estate on my page.

347
00:21:12.599 --> 00:21:16.119
<v Speaker 3>Yes, although in the case of images, they also like

348
00:21:16.359 --> 00:21:21.240
<v Speaker 3>factor in the image quality. So if you've got a

349
00:21:21.319 --> 00:21:25.440
<v Speaker 3>low res image that you then stretch to cover a

350
00:21:25.519 --> 00:21:30.720
<v Speaker 3>large area, they will kind of factor it down to

351
00:21:30.839 --> 00:21:34.759
<v Speaker 3>account for the fact that it's low res. Right. Interesting anyway,

352
00:21:35.359 --> 00:21:38.640
<v Speaker 3>they're also playing with these metrics. They're trying to make

353
00:21:38.680 --> 00:21:42.200
<v Speaker 3>them more useful. Some people are kind of annoyed by

354
00:21:42.240 --> 00:21:46.279
<v Speaker 3>it because people are working hard on optimizing these metrics,

355
00:21:46.599 --> 00:21:49.599
<v Speaker 3>and then Google comes along and modifies how they actually

356
00:21:49.640 --> 00:21:54.920
<v Speaker 3>measure one of the metrics that can be annoying or confusing. So,

357
00:21:55.039 --> 00:21:59.000
<v Speaker 3>for example, in Chrome eighty eight, they modified the LCP

358
00:21:59.200 --> 00:22:04.160
<v Speaker 3>metric to ignore full full viewpoint images, so if an

359
00:22:04.200 --> 00:22:08.039
<v Speaker 3>image covered the entire viewport, they would actually ignore it.

360
00:22:08.640 --> 00:22:12.160
<v Speaker 3>And the motivation was that such an image is probably

361
00:22:12.200 --> 00:22:17.680
<v Speaker 3>a background image and consequently it's not like the main

362
00:22:18.319 --> 00:22:22.480
<v Speaker 3>content of the page, and therefore they decided to ignore it.

363
00:22:22.839 --> 00:22:26.680
<v Speaker 3>By the way, the whole reason for picking largest contentful

364
00:22:26.720 --> 00:22:31.720
<v Speaker 3>paint is that they kind of ran tests. They sat people,

365
00:22:31.759 --> 00:22:33.839
<v Speaker 3>at least that's what they told me. They sat people

366
00:22:33.880 --> 00:22:37.799
<v Speaker 3>in front of computers, had them load website and like

367
00:22:37.920 --> 00:22:41.240
<v Speaker 3>click a button when they thought the PA the site

368
00:22:41.319 --> 00:22:46.119
<v Speaker 3>load was loaded and finished loaded, And what they found

369
00:22:46.599 --> 00:22:49.240
<v Speaker 3>is that in most cases, the time, the point in

370
00:22:49.279 --> 00:22:53.160
<v Speaker 3>time where the people clicked the button correlated to when

371
00:22:53.200 --> 00:22:57.880
<v Speaker 3>the largest piece of content was rendered in the browser window.

372
00:22:58.240 --> 00:23:01.400
<v Speaker 3>So that's where this metric came from. Now, a big

373
00:23:01.519 --> 00:23:06.720
<v Speaker 3>problem with LCP, though, is that you never know unless

374
00:23:07.039 --> 00:23:10.160
<v Speaker 3>the content covers the entire viewport, in which case, like

375
00:23:10.200 --> 00:23:13.519
<v Speaker 3>I said, for images, it's actually ignored. You never know

376
00:23:13.880 --> 00:23:17.240
<v Speaker 3>if a bigger piece of content is not going to

377
00:23:17.559 --> 00:23:21.079
<v Speaker 3>occur like a little bit later. So think about it.

378
00:23:21.240 --> 00:23:25.880
<v Speaker 3>Let's say the page is loading, it draws something, it's

379
00:23:26.039 --> 00:23:29.200
<v Speaker 3>that's the largest contentful paint until this point in time,

380
00:23:29.759 --> 00:23:33.319
<v Speaker 3>but then something bigger might be drawn a second later,

381
00:23:33.680 --> 00:23:37.160
<v Speaker 3>which which it then becomes the largest contentful paine. So

382
00:23:37.200 --> 00:23:40.680
<v Speaker 3>the question is kind of when do you stop? And

383
00:23:40.680 --> 00:23:45.519
<v Speaker 3>and that's one of the problematic measure things about this measurement.

384
00:23:46.200 --> 00:23:50.759
<v Speaker 3>So they stop when the user interacts with the page.

385
00:23:51.200 --> 00:23:54.279
<v Speaker 3>So if the user scrolls or clicks, they say, okay,

386
00:23:54.680 --> 00:23:56.920
<v Speaker 3>if the user does something with the page, it means

387
00:23:56.920 --> 00:23:59.759
<v Speaker 3>that from the users with the visitor's perspective, the page

388
00:23:59.759 --> 00:24:03.680
<v Speaker 3>is not so you know, no, no point in waiting

389
00:24:03.720 --> 00:24:05.920
<v Speaker 3>for more stuff. But that's kind of one of the

390
00:24:06.000 --> 00:24:09.160
<v Speaker 3>problems with with LCP, and and that's one of the

391
00:24:09.200 --> 00:24:12.920
<v Speaker 3>reasons why when it's measured in lap conditions, like by

392
00:24:12.960 --> 00:24:16.640
<v Speaker 3>a tool like Lighthouse, you might get really different results

393
00:24:16.920 --> 00:24:20.039
<v Speaker 3>and what you might get in the field because it

394
00:24:20.160 --> 00:24:23.119
<v Speaker 3>might be stopping at a different point, And that's a

395
00:24:23.160 --> 00:24:25.640
<v Speaker 3>problem with it. There are other issues with it as well,

396
00:24:25.680 --> 00:24:27.000
<v Speaker 3>but those are like the main ones.

397
00:24:27.359 --> 00:24:30.200
<v Speaker 1>I guess My question here is is, let's say that

398
00:24:30.279 --> 00:24:32.400
<v Speaker 1>I have a content website I don't know that has

399
00:24:32.480 --> 00:24:36.519
<v Speaker 1>podcasts on it maybe, and I care about my Google ranking,

400
00:24:36.599 --> 00:24:38.920
<v Speaker 1>and so I want to improve this. How do I

401
00:24:39.119 --> 00:24:42.920
<v Speaker 1>know what the large what the thing is that they're measuring, right,

402
00:24:43.480 --> 00:24:45.799
<v Speaker 1>Because I mean ideally, what I'd like to do is

403
00:24:45.799 --> 00:24:48.319
<v Speaker 1>I'd like to say, oh, they're measuring when I load

404
00:24:48.440 --> 00:24:52.039
<v Speaker 1>this image or you know this, well whatever, right when

405
00:24:52.079 --> 00:24:55.640
<v Speaker 1>I load in this piece, and so do I optim

406
00:24:55.720 --> 00:24:58.039
<v Speaker 1>I'd like to be able to optimize that and then

407
00:24:58.079 --> 00:25:02.400
<v Speaker 1>maybe something else take takes that on or I don't know,

408
00:25:03.240 --> 00:25:05.359
<v Speaker 1>I'd like to know which piece to optimize. Is there

409
00:25:05.359 --> 00:25:06.279
<v Speaker 1>a good way to know that?

410
00:25:06.839 --> 00:25:09.480
<v Speaker 3>Yeah, So there are actually two ways to go about it.

411
00:25:09.720 --> 00:25:14.319
<v Speaker 3>So one way is the lab way or the synthetic way.

412
00:25:14.440 --> 00:25:17.079
<v Speaker 3>So you're working on your website or a new version

413
00:25:17.079 --> 00:25:20.359
<v Speaker 3>of your website. You still don't have actual visitors or

414
00:25:20.640 --> 00:25:24.440
<v Speaker 3>people coming to this new version, but you want to

415
00:25:24.440 --> 00:25:26.720
<v Speaker 3>compare it to the older version to see or to

416
00:25:26.799 --> 00:25:30.599
<v Speaker 3>the current version to see whether you're improving or regressing

417
00:25:30.680 --> 00:25:34.440
<v Speaker 3>or whatever. So you can use a lab tool like

418
00:25:34.640 --> 00:25:37.519
<v Speaker 3>Google Paid speed Insight. You put in the URL for

419
00:25:37.680 --> 00:25:41.279
<v Speaker 3>the existing site, you put in the r L for

420
00:25:41.480 --> 00:25:45.119
<v Speaker 3>the new site, and it essentially just simulates a session

421
00:25:45.720 --> 00:25:50.480
<v Speaker 3>in a certain configuration. For example, Paid speed Insight actually

422
00:25:50.519 --> 00:25:54.240
<v Speaker 3>simulates the mobile device, the Moto G four on a

423
00:25:54.279 --> 00:25:57.279
<v Speaker 3>three G network, and then it runs a test for

424
00:25:57.319 --> 00:26:01.359
<v Speaker 3>a couple of seconds, loads the site, sees what's the

425
00:26:01.559 --> 00:26:05.720
<v Speaker 3>largest piece of content within the initial viewport and basically

426
00:26:05.799 --> 00:26:09.000
<v Speaker 3>measures how long until that got rendered, and you can

427
00:26:09.599 --> 00:26:13.119
<v Speaker 3>compare the value that it gets for the existing site

428
00:26:13.200 --> 00:26:16.640
<v Speaker 3>with the value that you're getting for the new version

429
00:26:16.640 --> 00:26:19.559
<v Speaker 3>that you're currently building. And not only that, it will

430
00:26:19.599 --> 00:26:23.240
<v Speaker 3>actually show you which of the elements on the page

431
00:26:23.759 --> 00:26:27.000
<v Speaker 3>is that is the one that it picked as the

432
00:26:27.079 --> 00:26:29.920
<v Speaker 3>largest content for paint so it might be an image,

433
00:26:29.960 --> 00:26:31.559
<v Speaker 3>and then you can go and check and say Hey,

434
00:26:32.079 --> 00:26:37.599
<v Speaker 3>I'm actually loading this huge PNG. If I use converted

435
00:26:37.680 --> 00:26:40.640
<v Speaker 3>to a JPEG instead, it would be tenths It would

436
00:26:40.680 --> 00:26:42.920
<v Speaker 3>be a tenth of the size and it will download

437
00:26:43.039 --> 00:26:46.000
<v Speaker 3>so much faster. Or maybe I can even use one

438
00:26:46.000 --> 00:26:49.759
<v Speaker 3>of the newer formats like web or aviif and make

439
00:26:49.839 --> 00:26:54.079
<v Speaker 3>it even smaller than that. Or maybe I'll change the

440
00:26:54.119 --> 00:26:56.519
<v Speaker 3>design of my page a little bit on mobiles so

441
00:26:56.599 --> 00:27:00.160
<v Speaker 3>that instead of an image being my largest content and

442
00:27:00.160 --> 00:27:04.640
<v Speaker 3>for paint, I'll make my headline text be slightly bigger,

443
00:27:04.880 --> 00:27:07.079
<v Speaker 3>and then it will be my largest content for paint.

444
00:27:07.440 --> 00:27:10.000
<v Speaker 3>And maybe instead of a web font, I'll use one

445
00:27:10.039 --> 00:27:14.039
<v Speaker 3>of the quote unquote system fonts like Aril or even

446
00:27:14.079 --> 00:27:16.839
<v Speaker 3>times in Roment or whatever, so it doesn't even need

447
00:27:16.880 --> 00:27:19.640
<v Speaker 3>to download the font, and then I would get really

448
00:27:19.720 --> 00:27:23.759
<v Speaker 3>really good RCP value because it's just text. So yeah,

449
00:27:24.160 --> 00:27:28.240
<v Speaker 3>so one way to go about it is a lab

450
00:27:28.279 --> 00:27:32.359
<v Speaker 3>tool or synthetic tool like paid speed in sits like Lighthouse.

451
00:27:33.079 --> 00:27:35.240
<v Speaker 3>The other way that you can go about it is

452
00:27:35.240 --> 00:27:40.400
<v Speaker 3>that you can actually look if your site gets sufficient traffic,

453
00:27:41.000 --> 00:27:45.880
<v Speaker 3>you can actually get data from that same Crux database

454
00:27:46.279 --> 00:27:50.720
<v Speaker 3>that Google uses for ranking. So and Rick actually touched

455
00:27:50.759 --> 00:27:54.039
<v Speaker 3>on that. So it's interesting. First of all, they don't

456
00:27:54.440 --> 00:27:58.440
<v Speaker 3>put every website into the Crux database. You need to

457
00:27:58.480 --> 00:28:02.480
<v Speaker 3>get a certain amount of traffic before they even conder

458
00:28:02.559 --> 00:28:06.200
<v Speaker 3>put you in that database. So, just so you know,

459
00:28:06.440 --> 00:28:09.440
<v Speaker 3>if you create a new website that doesn't yet have

460
00:28:09.519 --> 00:28:14.880
<v Speaker 3>any traffic, you're not going to get this boost for performance,

461
00:28:15.240 --> 00:28:19.000
<v Speaker 3>even if your website is really fast, until you get

462
00:28:19.039 --> 00:28:24.559
<v Speaker 3>sufficient traffic to actually get into that database. And sufficient

463
00:28:24.599 --> 00:28:27.440
<v Speaker 3>traffic I think is like a couple of one hundred

464
00:28:27.519 --> 00:28:30.440
<v Speaker 3>visitors or thousands of visitors a day or something like that.

465
00:28:31.000 --> 00:28:33.880
<v Speaker 3>So you do need to get a certain amount, minimal

466
00:28:33.920 --> 00:28:36.880
<v Speaker 3>amount of traffic before you they even consider you. So

467
00:28:37.200 --> 00:28:39.880
<v Speaker 3>you won't get penalized, but you won't get the boost

468
00:28:40.039 --> 00:28:43.599
<v Speaker 3>for that, not because you're not fast enough, but because

469
00:28:43.640 --> 00:28:46.400
<v Speaker 3>you just don't have you don't yet have enough traffic

470
00:28:46.759 --> 00:28:50.559
<v Speaker 3>to even be in that database. But suppose you are

471
00:28:50.680 --> 00:28:53.319
<v Speaker 3>in that database, well, there are two ways for you

472
00:28:53.359 --> 00:28:56.440
<v Speaker 3>to look at the values that Google is calculating for you.

473
00:28:57.240 --> 00:29:00.640
<v Speaker 3>One way is using Google pay Speed Insights. In the

474
00:29:00.680 --> 00:29:04.079
<v Speaker 3>middle of the page, they have a section called field data,

475
00:29:04.640 --> 00:29:07.759
<v Speaker 3>and they will actually show you the values that you

476
00:29:07.960 --> 00:29:11.279
<v Speaker 3>got over the past twenty eight days. So the sort

477
00:29:11.279 --> 00:29:14.480
<v Speaker 3>of an aggregate value, and what they're looking at is

478
00:29:14.519 --> 00:29:18.680
<v Speaker 3>the seventy fifth percent time. So for example, for LCP,

479
00:29:19.359 --> 00:29:24.440
<v Speaker 3>a good value is hundred two and a half seconds

480
00:29:24.519 --> 00:29:27.839
<v Speaker 3>or less. So they look at the seventy fifth percent time,

481
00:29:27.960 --> 00:29:32.440
<v Speaker 3>that is the value that is slower than seventy five

482
00:29:32.480 --> 00:29:36.519
<v Speaker 3>percent of your users and faster than your slowest twenty

483
00:29:36.559 --> 00:29:39.960
<v Speaker 3>five percent of users, and see if that falls in

484
00:29:40.000 --> 00:29:44.000
<v Speaker 3>the good range, which is two point five seconds or less,

485
00:29:44.640 --> 00:29:48.480
<v Speaker 3>or in the quote unquote needs improvement range, which is

486
00:29:48.559 --> 00:29:51.519
<v Speaker 3>between four seconds and two and a half seconds, or

487
00:29:51.559 --> 00:29:55.680
<v Speaker 3>in the poor range, which is slower than four seconds.

488
00:29:55.759 --> 00:30:00.359
<v Speaker 3>If it falls within that poor range, you won't get

489
00:30:00.839 --> 00:30:05.000
<v Speaker 3>a boost for that metric. If you fall within the

490
00:30:05.559 --> 00:30:09.839
<v Speaker 3>needs improvement range, you will get a certain boost that's

491
00:30:09.960 --> 00:30:12.720
<v Speaker 3>relative to how good you are. So it's like a

492
00:30:12.759 --> 00:30:15.440
<v Speaker 3>it's a linear growth sort of a thing. They're not

493
00:30:15.559 --> 00:30:18.880
<v Speaker 3>giving the exact formula, but let's assume that it's some

494
00:30:18.920 --> 00:30:22.240
<v Speaker 3>sort of a linear growth. So the closer you are

495
00:30:22.359 --> 00:30:26.440
<v Speaker 3>to the good section, the more boost you will get,

496
00:30:27.000 --> 00:30:29.960
<v Speaker 3>and once you get to the good section, it plateaus.

497
00:30:30.680 --> 00:30:33.880
<v Speaker 3>So once you get to that two point five seconds,

498
00:30:34.240 --> 00:30:37.920
<v Speaker 3>that's you get the maximum boost, and if you manage

499
00:30:37.920 --> 00:30:40.880
<v Speaker 3>to improve it from two point five to one point five,

500
00:30:41.279 --> 00:30:44.680
<v Speaker 3>you won't get any higher boost for your ranking. You

501
00:30:44.839 --> 00:30:48.640
<v Speaker 3>might get happier users on your page, but in terms

502
00:30:48.640 --> 00:30:50.799
<v Speaker 3>of the ranking, that's the maximum boost that you will

503
00:30:50.799 --> 00:30:55.680
<v Speaker 3>get for that particular metric, So that that's LCP.

504
00:30:56.079 --> 00:30:59.319
<v Speaker 1>So I guess I have another question related to this,

505
00:30:59.440 --> 00:31:02.319
<v Speaker 1>and that is, for a long time, I've kind of

506
00:31:02.319 --> 00:31:08.440
<v Speaker 1>focused my concerns over performance into say the back end, right,

507
00:31:08.480 --> 00:31:12.079
<v Speaker 1>and so however long it takes to render HTML blah

508
00:31:12.160 --> 00:31:15.519
<v Speaker 1>blah blah. And this comes primarily because my background's mostly

509
00:31:15.559 --> 00:31:17.680
<v Speaker 1>we're beyond rails, right, and so it's all almost all

510
00:31:17.720 --> 00:31:18.319
<v Speaker 1>server rendered.

511
00:31:18.400 --> 00:31:18.559
<v Speaker 3>Right.

512
00:31:19.160 --> 00:31:22.000
<v Speaker 1>But now I'm thinking, okay, well, what if I put

513
00:31:22.039 --> 00:31:25.359
<v Speaker 1>in say a stimulus JS or a react or an

514
00:31:25.480 --> 00:31:29.160
<v Speaker 1>Angular or something, right, how does that affect this? Right?

515
00:31:29.279 --> 00:31:32.759
<v Speaker 1>Does it kind of add up the time it takes

516
00:31:33.279 --> 00:31:38.359
<v Speaker 1>including loading in whatever components I've put into my website

517
00:31:38.559 --> 00:31:41.920
<v Speaker 1>so that this thing shows up or doesn't, and including

518
00:31:41.960 --> 00:31:46.799
<v Speaker 1>all the CSS, And does it also include the time

519
00:31:46.839 --> 00:31:49.160
<v Speaker 1>it takes to go back to the server and say okay,

520
00:31:49.160 --> 00:31:51.960
<v Speaker 1>now I need this spreadsheet, now I need this JavaScript

521
00:31:52.039 --> 00:31:54.160
<v Speaker 1>and stuff like that, or is it just the paint time?

522
00:31:54.559 --> 00:31:59.440
<v Speaker 3>So the answer to that is yes. But before I

523
00:31:59.519 --> 00:32:02.799
<v Speaker 3>go there, I just wanted to finish one point. So

524
00:32:02.920 --> 00:32:05.960
<v Speaker 3>I mentioned that you can get the field data through

525
00:32:06.000 --> 00:32:08.440
<v Speaker 3>Google Page with Insights. I just want to mention that

526
00:32:08.519 --> 00:32:13.119
<v Speaker 3>there's another source that's really useful for getting the field data,

527
00:32:13.200 --> 00:32:16.839
<v Speaker 3>and that's the Chrome Search console. So most people who

528
00:32:17.000 --> 00:32:20.960
<v Speaker 3>run who have a website for professional reasons usually use

529
00:32:21.039 --> 00:32:24.519
<v Speaker 3>the search console to make sure that Google properly sees

530
00:32:24.559 --> 00:32:29.240
<v Speaker 3>their website. And you now have a co web vitals

531
00:32:29.279 --> 00:32:33.359
<v Speaker 3>section or panel or tab call it whatever within your

532
00:32:33.440 --> 00:32:38.079
<v Speaker 3>search console, and they will actually show you the current

533
00:32:38.200 --> 00:32:42.960
<v Speaker 3>situation broken down by pages. So they will say pages

534
00:32:43.079 --> 00:32:49.440
<v Speaker 3>of this type have let's say poor LCP or they

535
00:32:49.519 --> 00:32:53.759
<v Speaker 3>need improvement for CLS. And again, this data is coming

536
00:32:53.839 --> 00:32:58.599
<v Speaker 3>in from the Crux database. I think it doesn't really matter.

537
00:32:58.640 --> 00:33:00.240
<v Speaker 3>It's the end of the day, it's the same source

538
00:33:00.279 --> 00:33:03.519
<v Speaker 3>of data. Is that data that they collect from actual

539
00:33:03.640 --> 00:33:07.359
<v Speaker 3>Chrome sessions? They actually in this case, I think they

540
00:33:07.400 --> 00:33:11.400
<v Speaker 3>actually do have like this daily moving average, but it's

541
00:33:11.400 --> 00:33:14.920
<v Speaker 3>still averaged over a twenty eight day period. So even

542
00:33:14.960 --> 00:33:18.640
<v Speaker 3>if you made a significant improvement, take into account that

543
00:33:18.759 --> 00:33:22.519
<v Speaker 3>it will take some time for Google to actually notice it.

544
00:33:22.720 --> 00:33:25.640
<v Speaker 3>But now going back to your question, and the answer

545
00:33:25.880 --> 00:33:29.920
<v Speaker 3>is that yes, you know, modern web pages are complicated beasts.

546
00:33:30.640 --> 00:33:33.279
<v Speaker 3>That's one of the reasons for this podcast, I think.

547
00:33:33.640 --> 00:33:36.440
<v Speaker 3>And there are a lot of moving parts. There's the

548
00:33:36.480 --> 00:33:40.319
<v Speaker 3>back end, there's the network, whether or not you use CPNS.

549
00:33:40.880 --> 00:33:46.359
<v Speaker 3>That's the media that you're downloading to the browser for

550
00:33:46.559 --> 00:33:50.279
<v Speaker 3>its format. Are you downloading it via CDN or you know,

551
00:33:50.440 --> 00:33:52.799
<v Speaker 3>using something like a cloud flare or something like that.

552
00:33:53.440 --> 00:33:57.559
<v Speaker 3>How much JavaScript are you running on your browser? All

553
00:33:57.599 --> 00:34:02.920
<v Speaker 3>these things impact performance and sense co ed vitals try

554
00:34:03.000 --> 00:34:07.119
<v Speaker 3>to measure performance. All these things impact co ed vitals.

555
00:34:07.319 --> 00:34:11.039
<v Speaker 3>The bottom line in terms of LCP is that you

556
00:34:11.159 --> 00:34:16.360
<v Speaker 3>want to get your primary content down, you know, in

557
00:34:16.440 --> 00:34:20.880
<v Speaker 3>front of the visitor as quickly as possible. So, for example,

558
00:34:20.960 --> 00:34:25.639
<v Speaker 3>if it's an image, you it's better if the HTML

559
00:34:26.320 --> 00:34:30.639
<v Speaker 3>that is downloaded from the server already has that image

560
00:34:30.760 --> 00:34:35.639
<v Speaker 3>SRC inside of it, rather than you first having to

561
00:34:36.039 --> 00:34:40.079
<v Speaker 3>download let's say React and run React on the client side.

562
00:34:40.440 --> 00:34:44.199
<v Speaker 3>Because all you're actually serving is just blank HTML, you

563
00:34:44.280 --> 00:34:49.519
<v Speaker 3>know what the emptydive, and you're totally constructing your entire

564
00:34:49.639 --> 00:34:53.280
<v Speaker 3>user experience on the client side, you're probably going to

565
00:34:53.320 --> 00:34:57.079
<v Speaker 3>get poorer performance. And that's that's just a reflection of

566
00:34:57.119 --> 00:35:01.960
<v Speaker 3>reality because your visitors are gett a poor performance. You know,

567
00:35:02.000 --> 00:35:04.719
<v Speaker 3>it might be easier for you to build your website

568
00:35:04.760 --> 00:35:08.119
<v Speaker 3>this way, but the end of the day, I think

569
00:35:08.119 --> 00:35:11.639
<v Speaker 3>what matters most should be the experience of our visitors

570
00:35:11.639 --> 00:35:14.199
<v Speaker 3>and customers and whatnot. So, yes, you do need to

571
00:35:14.239 --> 00:35:18.559
<v Speaker 3>take into account your server time. If you're serving a

572
00:35:18.639 --> 00:35:23.079
<v Speaker 3>really dynamic, dynamic content, then you need to think about

573
00:35:23.199 --> 00:35:26.840
<v Speaker 3>your database queries. Or maybe alternatively, you can use something

574
00:35:26.920 --> 00:35:29.960
<v Speaker 3>like a static side generator, you know, like a gem

575
00:35:29.960 --> 00:35:33.719
<v Speaker 3>stack sort of thing, and you're still doing all these

576
00:35:33.800 --> 00:35:37.280
<v Speaker 3>database queries, but you're doing them at build time rather

577
00:35:37.360 --> 00:35:40.320
<v Speaker 3>than in run time, and then the page just gets

578
00:35:40.360 --> 00:35:43.679
<v Speaker 3>generated and pushed into a CDN and then it's delivered

579
00:35:43.719 --> 00:35:46.840
<v Speaker 3>really really quickly. So yes, there are a lot of

580
00:35:46.880 --> 00:35:49.880
<v Speaker 3>moving parts in modern websites and you need to think

581
00:35:49.920 --> 00:35:53.679
<v Speaker 3>about them. What can I say? Yeah, So moving on

582
00:35:53.760 --> 00:35:57.159
<v Speaker 3>to the second core web vital, which is FID or

583
00:35:57.199 --> 00:36:02.519
<v Speaker 3>first input delay. That one measure the time from the

584
00:36:02.559 --> 00:36:07.239
<v Speaker 3>first interaction that the visitor has with a web page.

585
00:36:07.320 --> 00:36:09.920
<v Speaker 3>Let's say it could be a mouse click or button

586
00:36:10.000 --> 00:36:15.880
<v Speaker 3>press whatever, until the browser can process that request, Which

587
00:36:15.880 --> 00:36:19.960
<v Speaker 3>means that if there's let's say some client side JavaScript

588
00:36:20.000 --> 00:36:24.920
<v Speaker 3>associated with with that mouse click, then until the browser

589
00:36:25.000 --> 00:36:28.079
<v Speaker 3>can run that JavaScript, or if it's some sort of

590
00:36:28.079 --> 00:36:32.440
<v Speaker 3>a default action, then until the browser can instigate that

591
00:36:32.519 --> 00:36:36.440
<v Speaker 3>default action. So that's what gets measured by first input delay.

592
00:36:36.719 --> 00:36:40.800
<v Speaker 3>And the things that can cause a lengthy first input

593
00:36:40.800 --> 00:36:44.840
<v Speaker 3>delay are, for example, if you're running a whole bunch

594
00:36:44.920 --> 00:36:50.119
<v Speaker 3>of JavaScript on inside the browser, and the browsers well,

595
00:36:50.159 --> 00:36:53.360
<v Speaker 3>they're much there. They're not single as single threaded as

596
00:36:53.360 --> 00:36:56.679
<v Speaker 3>they used to be, but they're still pretty single threaded.

597
00:36:57.239 --> 00:37:01.920
<v Speaker 3>So if your main thread is busy because it's running

598
00:37:01.920 --> 00:37:05.039
<v Speaker 3>a lot of JavaScript, and because of that, if the

599
00:37:05.159 --> 00:37:09.760
<v Speaker 3>user clicks on something then nothing happens, then you'll get

600
00:37:09.760 --> 00:37:13.840
<v Speaker 3>a poor ID And it only measures first the first one.

601
00:37:13.880 --> 00:37:16.199
<v Speaker 3>That's the first input delay, I guess, because you don't

602
00:37:16.199 --> 00:37:18.760
<v Speaker 3>get a second chance to make a first impression. And yeah,

603
00:37:18.760 --> 00:37:22.719
<v Speaker 3>that's what it measures. And the thing here is is

604
00:37:22.760 --> 00:37:27.719
<v Speaker 3>that it really annoys people when they try to interact

605
00:37:27.800 --> 00:37:31.559
<v Speaker 3>with the user interface and that user interface does not

606
00:37:31.760 --> 00:37:35.719
<v Speaker 3>respond to their interactions. The example that I like to

607
00:37:35.760 --> 00:37:39.320
<v Speaker 3>give is when standing in front of an elevator and

608
00:37:39.360 --> 00:37:42.719
<v Speaker 3>you press the button, you don't expect the door to

609
00:37:42.760 --> 00:37:46.559
<v Speaker 3>open immediately, so you don't actually expect that operation that

610
00:37:46.599 --> 00:37:49.880
<v Speaker 3>you requested to instantly finish. You're happy if it happens,

611
00:37:49.880 --> 00:37:53.440
<v Speaker 3>but usually it doesn't happen. But you do expect the

612
00:37:53.480 --> 00:37:56.880
<v Speaker 3>button to instantly turn on, and you do expect the

613
00:37:57.000 --> 00:38:01.199
<v Speaker 3>numbers to start counting towards your floor. And if you

614
00:38:01.239 --> 00:38:03.840
<v Speaker 3>click the button, then nothing happened. Where people do this

615
00:38:03.920 --> 00:38:06.400
<v Speaker 3>sort of thing, it's called rage clicks. They start going

616
00:38:06.440 --> 00:38:09.880
<v Speaker 3>to tap tap, tap, tap tap, and it's the same

617
00:38:10.000 --> 00:38:14.920
<v Speaker 3>thing with web interface or app interface. You know, especially

618
00:38:14.920 --> 00:38:18.480
<v Speaker 3>on mobile devices, people have become really used to this

619
00:38:18.639 --> 00:38:22.039
<v Speaker 3>kind of an instantaneous response that when you tap something,

620
00:38:22.159 --> 00:38:25.119
<v Speaker 3>it responds to your tap, and if it doesn't, well,

621
00:38:25.159 --> 00:38:28.559
<v Speaker 3>it can drive you nuts. And that that is the

622
00:38:28.599 --> 00:38:32.079
<v Speaker 3>thing that first input delay tries to measure now Here.

623
00:38:32.320 --> 00:38:35.760
<v Speaker 2>Yeah, well, in the case of flat design and things

624
00:38:35.800 --> 00:38:39.159
<v Speaker 2>really annoying about this, it's pretty much all visual cues

625
00:38:39.840 --> 00:38:42.840
<v Speaker 2>are eliminated. When I say flat design, I mean most

626
00:38:42.880 --> 00:38:46.119
<v Speaker 2>flat design, not the theoretical best flat design that could occur.

627
00:38:46.199 --> 00:38:47.639
<v Speaker 2>But you know, they get rid of the shadows, they

628
00:38:47.639 --> 00:38:50.960
<v Speaker 2>get rid of the colors. Yeah, super frustrating.

629
00:38:51.039 --> 00:38:54.159
<v Speaker 3>Oh, I totally agree, And I'll give an example from

630
00:38:54.199 --> 00:38:56.719
<v Speaker 3>a Wix tool. We have the Wix editor where you

631
00:38:56.719 --> 00:39:00.000
<v Speaker 3>build your website and when you click the save button,

632
00:39:00.039 --> 00:39:04.119
<v Speaker 3>and the save operation is a lengthy operation can't be

633
00:39:04.239 --> 00:39:08.000
<v Speaker 3>made instantaneous. But like I said, people don't expect the

634
00:39:08.039 --> 00:39:11.840
<v Speaker 3>elevator door to open immediately, so we do need to

635
00:39:12.440 --> 00:39:15.440
<v Speaker 3>when we start the save operation, we do need to

636
00:39:15.519 --> 00:39:20.000
<v Speaker 3>provide immediate feedback to the user that their save request

637
00:39:20.280 --> 00:39:22.280
<v Speaker 3>is being processed. So it could be some sort of

638
00:39:22.320 --> 00:39:27.079
<v Speaker 3>a spinner color something, And you're totally correct that if

639
00:39:27.079 --> 00:39:31.239
<v Speaker 3>I build a user interface where the visual cues or

640
00:39:31.239 --> 00:39:35.639
<v Speaker 3>the visual feedback is so minimal that many users might

641
00:39:35.679 --> 00:39:40.800
<v Speaker 3>not even notice it, you're doing damage. It's frustrating. So

642
00:39:40.840 --> 00:39:43.719
<v Speaker 3>that's totally true. So just to finish that point on FID,

643
00:39:44.280 --> 00:39:49.119
<v Speaker 3>as with LCP, it's kind of this green yellow red

644
00:39:49.320 --> 00:39:52.559
<v Speaker 3>like street light, where the green part the good part,

645
00:39:52.760 --> 00:39:56.480
<v Speaker 3>is from zero to one hundred million seconds. So anything fast,

646
00:39:56.480 --> 00:39:59.639
<v Speaker 3>if that's one hundred million seconds or faster, counts as good.

647
00:39:59.679 --> 00:40:03.440
<v Speaker 3>If I d up to three hundred milliseconds counts as

648
00:40:02.920 --> 00:40:07.760
<v Speaker 3>needs improvement, and anything above three hundred milliseconds count as poor.

649
00:40:08.159 --> 00:40:11.159
<v Speaker 3>And that's based on a lot of user interface research

650
00:40:11.480 --> 00:40:13.960
<v Speaker 3>that has been done over the years that shows that

651
00:40:14.079 --> 00:40:18.000
<v Speaker 3>people consider anything better than one hundred milliseconds to be

652
00:40:18.119 --> 00:40:20.559
<v Speaker 3>in effectively instantaneous.

653
00:40:20.000 --> 00:40:23.119
<v Speaker 2>And I missed for that. You want it to be

654
00:40:23.159 --> 00:40:24.320
<v Speaker 2>at least one hundred.

655
00:40:24.079 --> 00:40:27.639
<v Speaker 3>Milliseconds at most, at mostred, No, at least No, you

656
00:40:27.719 --> 00:40:30.119
<v Speaker 3>want it to be one hundred and threty seconds or less.

657
00:40:30.639 --> 00:40:34.760
<v Speaker 2>No, But if that happens, no, nobody wants it to

658
00:40:34.760 --> 00:40:36.400
<v Speaker 2>be less because then.

659
00:40:36.320 --> 00:40:38.800
<v Speaker 1>When you click, when it responds, it needs to respond

660
00:40:38.840 --> 00:40:40.239
<v Speaker 1>within one hundred milliseconds.

661
00:40:40.639 --> 00:40:48.119
<v Speaker 2>Okay, So are we saying respond as in some much Okay, yes, yes, agreed, agreed, agreed,

662
00:40:48.119 --> 00:40:50.159
<v Speaker 2>But like like, if a transition is less than one

663
00:40:50.199 --> 00:40:52.199
<v Speaker 2>hundred milliseconds, it looks really jarring.

664
00:40:52.559 --> 00:40:54.400
<v Speaker 3>Yeah, but the transition needs to start.

665
00:40:54.679 --> 00:40:57.920
<v Speaker 2>Yes, agreed, agreed, Okay, okay, one hundred percent agreed.

666
00:40:58.119 --> 00:41:00.960
<v Speaker 3>And they and again they do the same sort of

667
00:41:01.000 --> 00:41:03.960
<v Speaker 3>a calculation on the ranking signal, So each one of

668
00:41:03.960 --> 00:41:08.320
<v Speaker 3>these Cobb vitals is now calculated independently. Initially, when Google

669
00:41:08.360 --> 00:41:12.480
<v Speaker 3>presented this model, there was the assumption that you're only

670
00:41:12.519 --> 00:41:15.559
<v Speaker 3>going to get the boost if you're green that is good,

671
00:41:16.079 --> 00:41:18.079
<v Speaker 3>and that you're only going to get the boost if

672
00:41:18.119 --> 00:41:22.000
<v Speaker 3>you're good or green for all the three and recently

673
00:41:22.079 --> 00:41:24.599
<v Speaker 3>they came out and said, no, each one of these

674
00:41:24.639 --> 00:41:28.119
<v Speaker 3>metrics is going to be measured independently, and you're going

675
00:41:28.159 --> 00:41:30.320
<v Speaker 3>to start getting a boost even in if you're in

676
00:41:30.360 --> 00:41:33.719
<v Speaker 3>the needs improvement range. You're going to achieve the maximum

677
00:41:33.719 --> 00:41:36.760
<v Speaker 3>boost once you reach that good range. And then, like

678
00:41:36.800 --> 00:41:39.679
<v Speaker 3>I said, it plateaus. I guess the reason that they've

679
00:41:39.719 --> 00:41:42.639
<v Speaker 3>said that that they haven't been clear that. So it's

680
00:41:42.639 --> 00:41:45.000
<v Speaker 3>not like they said, we change our minds, because they

681
00:41:45.039 --> 00:41:48.440
<v Speaker 3>were never really explicit about it before. But that's what

682
00:41:48.519 --> 00:41:51.079
<v Speaker 3>most people understood. And I'm guessing that Google just looked

683
00:41:51.079 --> 00:41:54.280
<v Speaker 3>at the results out there and said, hey, if we

684
00:41:54.360 --> 00:41:56.920
<v Speaker 3>do it that way, then too many people won't get

685
00:41:56.960 --> 00:41:59.599
<v Speaker 3>any boost and people would be just totally discouraged and

686
00:41:59.639 --> 00:42:02.920
<v Speaker 3>not try to improve anything. So at least give them,

687
00:42:02.920 --> 00:42:05.599
<v Speaker 3>then say, if they're like really bad on one of

688
00:42:05.639 --> 00:42:08.360
<v Speaker 3>the metrics but might be good in the others, at

689
00:42:08.440 --> 00:42:10.760
<v Speaker 3>least get give them an incentive to improve what they

690
00:42:10.760 --> 00:42:13.360
<v Speaker 3>can improve, at least for now. So they're going to

691
00:42:13.400 --> 00:42:16.119
<v Speaker 3>measure each one of these metrics independently.

692
00:42:15.800 --> 00:42:19.480
<v Speaker 1>So I can imagine people here. We kind of talked

693
00:42:19.480 --> 00:42:22.840
<v Speaker 1>about managing what that largest thing is on your page

694
00:42:22.920 --> 00:42:25.599
<v Speaker 1>so that it's something that will load fast, and I

695
00:42:25.639 --> 00:42:29.880
<v Speaker 1>can imagine something here where you create or kind of

696
00:42:29.920 --> 00:42:32.239
<v Speaker 1>steer people towards something that you know you can get

697
00:42:32.239 --> 00:42:34.400
<v Speaker 1>them to click on that will start to interact quickly.

698
00:42:34.480 --> 00:42:37.360
<v Speaker 3>Right, Yeah, So there are good ways to improve the fight,

699
00:42:37.719 --> 00:42:40.719
<v Speaker 3>and then there are I don't know less good ways

700
00:42:40.760 --> 00:42:44.119
<v Speaker 3>to improve the fight. So let's say I'm.

701
00:42:44.519 --> 00:42:46.920
<v Speaker 1>My loading spinner is going to come in so day fast.

702
00:42:47.280 --> 00:42:51.320
<v Speaker 3>Yeah. So let's say that I'm building an online store,

703
00:42:51.840 --> 00:42:54.840
<v Speaker 3>and obviously the thing that I want people to click

704
00:42:54.880 --> 00:42:57.719
<v Speaker 3>on is the buy button, and I want the buy

705
00:42:57.800 --> 00:43:02.679
<v Speaker 3>button to be really quickly respond because if people get

706
00:43:02.760 --> 00:43:06.760
<v Speaker 3>frustrated while pressing that button, it's really bad experience for

707
00:43:06.800 --> 00:43:10.360
<v Speaker 3>your store. So and let's say I do have poor FID.

708
00:43:10.639 --> 00:43:14.960
<v Speaker 3>So the good way to fix it is to make

709
00:43:14.960 --> 00:43:18.599
<v Speaker 3>my code better. Instead of downloading I don't know a

710
00:43:18.679 --> 00:43:21.159
<v Speaker 3>meg of JavaScript in order to get my page up

711
00:43:21.199 --> 00:43:24.199
<v Speaker 3>and running, maybe I can download one hundred k of

712
00:43:24.320 --> 00:43:27.639
<v Speaker 3>JavaScript to get my page up and running. Maybe I

713
00:43:27.679 --> 00:43:31.559
<v Speaker 3>can download my JavaScript in parts so that in order

714
00:43:31.639 --> 00:43:34.559
<v Speaker 3>to get that button up and running, I only need

715
00:43:34.679 --> 00:43:38.519
<v Speaker 3>twenty k of JavaScript to be downloaded, parsed, and run,

716
00:43:38.880 --> 00:43:42.599
<v Speaker 3>and I can download the rest. Even when somebody actually

717
00:43:42.639 --> 00:43:44.519
<v Speaker 3>needs it, and so on and so forth, So that

718
00:43:44.559 --> 00:43:48.199
<v Speaker 3>would be the good way of improving my FID. So

719
00:43:48.599 --> 00:43:51.199
<v Speaker 3>the nuts A good way would be to hide the

720
00:43:51.239 --> 00:43:55.039
<v Speaker 3>button until I finished downloading all my JavaScript, and then

721
00:43:55.039 --> 00:43:58.159
<v Speaker 3>there'll be nothing to press until I'm ready for you.

722
00:43:58.440 --> 00:44:01.519
<v Speaker 3>I could do that, but and then people might just

723
00:44:01.760 --> 00:44:04.599
<v Speaker 3>bounce off of the page. But if they do click,

724
00:44:04.679 --> 00:44:08.360
<v Speaker 3>they will get a good FID value, so they're Like

725
00:44:08.400 --> 00:44:10.800
<v Speaker 3>I said, there are good ways to improve things, and

726
00:44:10.840 --> 00:44:13.079
<v Speaker 3>there are not so good ways to improve things. But

727
00:44:13.480 --> 00:44:15.800
<v Speaker 3>the best way to improve FID is, like I said,

728
00:44:15.840 --> 00:44:21.159
<v Speaker 3>by reducing the JavaScript payload that is needed to support

729
00:44:21.199 --> 00:44:26.800
<v Speaker 3>the initial interactions and also to avoid let's say, really

730
00:44:27.239 --> 00:44:32.599
<v Speaker 3>complicated CSS. Maybe that could really create a bottleneck in

731
00:44:32.679 --> 00:44:35.239
<v Speaker 3>terms of the rendering of the page and stuff like that.

732
00:44:35.440 --> 00:44:37.880
<v Speaker 3>But the only thing that I can say here is

733
00:44:37.920 --> 00:44:41.760
<v Speaker 3>that in most cases that I've seen, unless people do

734
00:44:41.880 --> 00:44:46.199
<v Speaker 3>really bad things, FID is usually pretty good. If I

735
00:44:46.199 --> 00:44:48.559
<v Speaker 3>look at the other metrics, people are having a lot

736
00:44:48.559 --> 00:44:51.360
<v Speaker 3>of problems with CLS, and people are having a lot

737
00:44:51.360 --> 00:44:55.480
<v Speaker 3>of problems with LCP. Most websites that I've seen that

738
00:44:55.599 --> 00:44:59.760
<v Speaker 3>actually make it into the Crux database usually have pretty

739
00:44:59.760 --> 00:45:04.960
<v Speaker 3>good fight unless you're doing really bad stuff with JavaScript.

740
00:45:05.000 --> 00:45:08.679
<v Speaker 3>Like I said, downloading a full mag of JavaScript jezip

741
00:45:09.079 --> 00:45:11.320
<v Speaker 3>just to get things, just to get the ball rolling,

742
00:45:12.000 --> 00:45:14.559
<v Speaker 3>then then you've got a problem. But if that's not

743
00:45:14.679 --> 00:45:17.679
<v Speaker 3>the case, then you should be okay for FID, which

744
00:45:17.760 --> 00:45:21.519
<v Speaker 3>brings us to the last metric, which is CLS. And

745
00:45:21.559 --> 00:45:24.559
<v Speaker 3>this is an interesting one that one actually tries to

746
00:45:24.639 --> 00:45:28.440
<v Speaker 3>measure what is called visual stability. I'm sure you've all

747
00:45:28.519 --> 00:45:31.480
<v Speaker 3>encountered this situation where you've been reading some sort let's

748
00:45:31.480 --> 00:45:35.239
<v Speaker 3>say an online article or blog post or whatever, and

749
00:45:35.320 --> 00:45:38.320
<v Speaker 3>you're in the middle of reading a paragraph and then

750
00:45:38.360 --> 00:45:43.880
<v Speaker 3>the page jumps because it just finished loading an image

751
00:45:44.400 --> 00:45:48.199
<v Speaker 3>and that image pushed everything down, or maybe it replaced

752
00:45:48.239 --> 00:45:51.199
<v Speaker 3>an AD and the new ad there's a different size

753
00:45:51.239 --> 00:45:54.840
<v Speaker 3>from the previous ad, so things get either pulled up

754
00:45:54.960 --> 00:45:57.960
<v Speaker 3>or pushed down, and you've lost your position in the page.

755
00:45:58.679 --> 00:46:03.360
<v Speaker 3>And that's obviously a very poor user experience. I hate

756
00:46:03.360 --> 00:46:05.920
<v Speaker 3>it when it happens, and it definitely happens in a

757
00:46:06.000 --> 00:46:10.960
<v Speaker 3>lot of new sites. So what CLS measures is how

758
00:46:11.039 --> 00:46:15.840
<v Speaker 3>much things on the page jump around, not in response

759
00:46:15.960 --> 00:46:20.920
<v Speaker 3>to direct user interactions. So they look whenever something on

760
00:46:20.960 --> 00:46:24.000
<v Speaker 3>the page moves, They first of all they check to

761
00:46:24.079 --> 00:46:26.519
<v Speaker 3>see if it's you know, if there was a user

762
00:46:26.559 --> 00:46:29.760
<v Speaker 3>interaction in the past half second or so, and if

763
00:46:29.760 --> 00:46:32.519
<v Speaker 3>there has, then they ignore it because they say, well,

764
00:46:32.679 --> 00:46:35.719
<v Speaker 3>there's a chance that it's in response to that user interaction,

765
00:46:36.239 --> 00:46:41.199
<v Speaker 3>will let it slide. But if it's not that, if nothing,

766
00:46:41.679 --> 00:46:46.079
<v Speaker 3>like the user is just reading, then they look at

767
00:46:46.199 --> 00:46:49.199
<v Speaker 3>the size of the thing that moved and at how

768
00:46:49.400 --> 00:46:54.039
<v Speaker 3>far it moved, and they calculate a number based on that,

769
00:46:54.239 --> 00:46:57.239
<v Speaker 3>like a sort of a ratio number, how much of

770
00:46:57.239 --> 00:47:00.719
<v Speaker 3>the viewport has moved and how far has it. And

771
00:47:01.320 --> 00:47:05.199
<v Speaker 3>it's cummulative in the sense that it's not like the

772
00:47:05.639 --> 00:47:10.000
<v Speaker 3>LCP which is looking for the largest paint and ignoring

773
00:47:10.039 --> 00:47:13.920
<v Speaker 3>the others, or FID, which looks at the first interaction

774
00:47:14.360 --> 00:47:18.800
<v Speaker 3>and then ignores subsequent interactions. It continues to measure to

775
00:47:18.920 --> 00:47:23.039
<v Speaker 3>measure these movements. So the such movements that you have

776
00:47:23.119 --> 00:47:26.199
<v Speaker 3>on the page, the bigger the value that you will get.

777
00:47:26.320 --> 00:47:28.880
<v Speaker 3>And it just keeps on running and running and running

778
00:47:29.280 --> 00:47:33.000
<v Speaker 3>throughout the entire session. And now they changed it now,

779
00:47:33.360 --> 00:47:35.599
<v Speaker 3>and I'll explain how they change it in a second,

780
00:47:35.679 --> 00:47:38.159
<v Speaker 3>but I just wanted to verify that that's clear, because

781
00:47:38.159 --> 00:47:40.719
<v Speaker 3>it's a kind of a complicated metric. And it's also

782
00:47:40.800 --> 00:47:45.000
<v Speaker 3>complicated because unlike the other metrics, it doesn't measure time.

783
00:47:45.559 --> 00:47:48.360
<v Speaker 3>In fact, it doesn't have really any sort of a units.

784
00:47:48.360 --> 00:47:49.440
<v Speaker 3>It's just a number.

785
00:47:49.599 --> 00:47:51.599
<v Speaker 2>So remind me again, how are you getting all of

786
00:47:51.599 --> 00:47:53.360
<v Speaker 2>this deep, dark secret knowledge.

787
00:47:53.719 --> 00:47:58.440
<v Speaker 3>Actually, Google have been fairly forthcoming about these metrics. So,

788
00:47:58.679 --> 00:48:01.880
<v Speaker 3>for example, there's a site web dot dev which is

789
00:48:01.960 --> 00:48:07.719
<v Speaker 3>run by Google, and it has articles explaining these three metrics,

790
00:48:07.880 --> 00:48:11.320
<v Speaker 3>and Google have been fairly forthcoming about that. There's still

791
00:48:11.360 --> 00:48:14.000
<v Speaker 3>a lot of confusion out there, because you know, whenever

792
00:48:14.079 --> 00:48:17.400
<v Speaker 3>there's a technical topic, there's bound to be confusion about it.

793
00:48:17.920 --> 00:48:20.880
<v Speaker 3>And Google have been making changes as they go along

794
00:48:21.239 --> 00:48:24.960
<v Speaker 3>and as they receive feedback from the field, from partners

795
00:48:25.000 --> 00:48:28.719
<v Speaker 3>and whatnot, but they have been as forthcoming as they

796
00:48:28.719 --> 00:48:31.159
<v Speaker 3>could be about the stuff that they're actually measuring.

797
00:48:31.280 --> 00:48:33.719
<v Speaker 1>Yeah, I have a question. Yeah, that's actually what I've

798
00:48:33.760 --> 00:48:35.519
<v Speaker 1>been looking at it. I just posted the links we

799
00:48:35.559 --> 00:48:37.719
<v Speaker 1>put in the show notes, So I'm looking at the

800
00:48:37.800 --> 00:48:41.840
<v Speaker 1>cumulative layout shift that you're talking about, Dan, And I've

801
00:48:41.880 --> 00:48:43.559
<v Speaker 1>been to some pages and I've had some of my

802
00:48:43.599 --> 00:48:46.480
<v Speaker 1>pages do this too. Right, whereas things kind of get

803
00:48:46.480 --> 00:48:50.159
<v Speaker 1>loaded in some images or things like that on the

804
00:48:50.159 --> 00:48:54.000
<v Speaker 1>initial load, a lot of stuff will shift right, but

805
00:48:54.119 --> 00:48:58.679
<v Speaker 1>then after that then it's pretty stable. So how much

806
00:48:58.840 --> 00:49:01.000
<v Speaker 1>room do you get on this right? Do they give

807
00:49:01.000 --> 00:49:05.599
<v Speaker 1>you any grace to the beginning or is it just hey, no, okay,

808
00:49:06.960 --> 00:49:09.960
<v Speaker 1>so it's got to come in pretty solid then.

809
00:49:10.159 --> 00:49:12.840
<v Speaker 3>So for example, you were you were mentioning images, and

810
00:49:12.880 --> 00:49:16.199
<v Speaker 3>that's a great example. A lot of people have issues

811
00:49:16.239 --> 00:49:20.360
<v Speaker 3>around images because you're put in an image tag and

812
00:49:20.480 --> 00:49:25.119
<v Speaker 3>then initially there's no space reserved for that image, and

813
00:49:25.159 --> 00:49:28.519
<v Speaker 3>then the image downloads, and only when the image finishes

814
00:49:28.599 --> 00:49:31.760
<v Speaker 3>downloading and the bar and the browser can actually parse

815
00:49:31.800 --> 00:49:34.920
<v Speaker 3>that image, it actually sees that the size of that

816
00:49:35.039 --> 00:49:39.360
<v Speaker 3>image and shifts everything in order to make room for

817
00:49:39.440 --> 00:49:41.960
<v Speaker 3>that image. And it has to do with the fact

818
00:49:42.039 --> 00:49:45.679
<v Speaker 3>that in the browsers with HTML, everything kind of flows,

819
00:49:45.840 --> 00:49:48.719
<v Speaker 3>so if you push something in the middle, it kind

820
00:49:48.719 --> 00:49:52.440
<v Speaker 3>of pushes everything aside in order to make or down

821
00:49:52.800 --> 00:49:56.079
<v Speaker 3>in order to make room for that thing. And so

822
00:49:56.599 --> 00:49:59.440
<v Speaker 3>what you should be doing is that you should be

823
00:50:00.000 --> 00:50:04.880
<v Speaker 3>putting the dimensions of the expected dimensions of that image

824
00:50:05.159 --> 00:50:08.039
<v Speaker 3>in the image HTML tag, so you can actually put

825
00:50:08.079 --> 00:50:12.599
<v Speaker 3>with equals and high equals and then it will reserve

826
00:50:12.639 --> 00:50:17.079
<v Speaker 3>that blank space for that image and then won't need

827
00:50:17.119 --> 00:50:20.360
<v Speaker 3>to shift things around in order to make room for it.

828
00:50:20.440 --> 00:50:22.760
<v Speaker 3>Or you could use CSS for that as well. But

829
00:50:23.000 --> 00:50:27.079
<v Speaker 3>the point is that you want to reserve space for

830
00:50:27.440 --> 00:50:31.239
<v Speaker 3>things so that you don't need to shift things around. Now,

831
00:50:31.239 --> 00:50:35.440
<v Speaker 3>it can get really complicated in some scenarios, like for example,

832
00:50:35.480 --> 00:50:38.519
<v Speaker 3>with ads, because a lot of times you have very

833
00:50:38.559 --> 00:50:43.079
<v Speaker 3>little control over AD sizes. But maybe that'll force the

834
00:50:43.119 --> 00:50:46.760
<v Speaker 3>industry to kind of standardize on AD sizes. I don't

835
00:50:46.800 --> 00:50:49.760
<v Speaker 3>know now. What Google have done is they've made a

836
00:50:49.800 --> 00:50:54.480
<v Speaker 3>recent change that they've made this measurement window, which means

837
00:50:54.920 --> 00:51:00.039
<v Speaker 3>that they kind of divide your session into five second segments,

838
00:51:00.079 --> 00:51:04.079
<v Speaker 3>and they measured the CLS within eah five second segment

839
00:51:04.719 --> 00:51:09.119
<v Speaker 3>and report the CLS the biggest CLS that they've found.

840
00:51:09.880 --> 00:51:12.480
<v Speaker 3>And the reason that they've done that is that they

841
00:51:12.519 --> 00:51:18.159
<v Speaker 3>were getting pushedback that long lived sessions were getting really

842
00:51:18.199 --> 00:51:22.599
<v Speaker 3>bad CLS scores simply because they were running for a

843
00:51:22.639 --> 00:51:25.559
<v Speaker 3>really long time. So for example, people would open I

844
00:51:25.559 --> 00:51:28.440
<v Speaker 3>don't know, let's say a Facebook web page, have it

845
00:51:28.480 --> 00:51:31.199
<v Speaker 3>opened for an entire day, and it would get this

846
00:51:31.440 --> 00:51:34.760
<v Speaker 3>huge CLS value at the end of the day because

847
00:51:34.800 --> 00:51:38.519
<v Speaker 3>of a million of tiny shifts that nobody ever actually noticed,

848
00:51:38.559 --> 00:51:41.320
<v Speaker 3>which accumulated over the entire day. So in order to

849
00:51:41.440 --> 00:51:44.960
<v Speaker 3>remedy that, they've recently modified it, as I explained, to

850
00:51:45.039 --> 00:51:47.960
<v Speaker 3>kind of work in the sort of a windowed kind

851
00:51:47.960 --> 00:51:48.480
<v Speaker 3>of a manner.

852
00:51:48.800 --> 00:51:52.480
<v Speaker 2>But it seems like I'm not too concerned with valueless

853
00:51:52.519 --> 00:51:55.800
<v Speaker 2>applications that just scroll things all day. I would be

854
00:51:55.920 --> 00:51:59.239
<v Speaker 2>happy if those got penalized. That seems like the right

855
00:51:59.280 --> 00:52:02.960
<v Speaker 2>thing to do. Do we really want TikTok and Facebook

856
00:52:03.000 --> 00:52:07.559
<v Speaker 2>to be ranking higher because they're programming people to be.

857
00:52:08.719 --> 00:52:11.559
<v Speaker 3>No To be fair, I don't think Facebook has a

858
00:52:11.679 --> 00:52:14.400
<v Speaker 3>ranking issue. I don't think they care that much how

859
00:52:14.440 --> 00:52:15.679
<v Speaker 3>high they rank on Google.

860
00:52:16.079 --> 00:52:17.719
<v Speaker 2>I don't think they need Google at this point. I

861
00:52:17.719 --> 00:52:20.679
<v Speaker 2>think if Facebook did not come up in a Google search,

862
00:52:21.159 --> 00:52:23.360
<v Speaker 2>they probably would have zero change.

863
00:52:23.880 --> 00:52:26.800
<v Speaker 3>I think they intentionally don't come up in Google searches.

864
00:52:26.800 --> 00:52:29.880
<v Speaker 3>Can you actually search for things in Facebook?

865
00:52:30.079 --> 00:52:31.079
<v Speaker 2>I guess not anymore.

866
00:52:31.199 --> 00:52:32.159
<v Speaker 3>You used to think so.

867
00:52:33.320 --> 00:52:35.559
<v Speaker 2>They're kind of competitors in terms of they're both on

868
00:52:35.679 --> 00:52:39.039
<v Speaker 2>ads and face. Facebook's goal is to keep everything off

869
00:52:39.079 --> 00:52:42.119
<v Speaker 2>of Google because Google's been, you know, to be fair,

870
00:52:42.159 --> 00:52:45.760
<v Speaker 2>Google has been playing dirty and ripping people off of

871
00:52:45.840 --> 00:52:49.519
<v Speaker 2>their ad revenue. By putting snippets and the search results

872
00:52:49.559 --> 00:52:50.239
<v Speaker 2>and stuff like that.

873
00:52:50.519 --> 00:52:55.119
<v Speaker 3>It's an interesting discussion and I won't go there, no,

874
00:52:55.320 --> 00:52:58.679
<v Speaker 3>but it's a really interesting discussion, but I think it's

875
00:52:58.760 --> 00:53:02.320
<v Speaker 3>beyond the scope. But just to finish on that CLS topic,

876
00:53:02.639 --> 00:53:07.159
<v Speaker 3>so I gave one example, which is reserving space. Another

877
00:53:07.199 --> 00:53:09.960
<v Speaker 3>one that I want to mention, which just might help

878
00:53:10.000 --> 00:53:13.639
<v Speaker 3>people out improving their CLS values, is when you use

879
00:53:13.719 --> 00:53:19.199
<v Speaker 3>CSS animation, it's really important what you animate. So let's say,

880
00:53:19.239 --> 00:53:22.039
<v Speaker 3>for example, you want to move something around on your

881
00:53:22.079 --> 00:53:26.000
<v Speaker 3>page and you're using CSS animation for that. If you're

882
00:53:26.079 --> 00:53:30.679
<v Speaker 3>animating the actual X and Y of that element, you

883
00:53:30.760 --> 00:53:34.760
<v Speaker 3>will get a really big CLS value. What you want

884
00:53:34.800 --> 00:53:40.039
<v Speaker 3>to animate instead is that transform X and Y of

885
00:53:40.079 --> 00:53:45.559
<v Speaker 3>that element. And the reason is that when you use transformations,

886
00:53:45.599 --> 00:53:49.559
<v Speaker 3>you're not causing reflows, so the pay the stuff on

887
00:53:49.599 --> 00:53:54.559
<v Speaker 3>the page doesn't actually move and therefore there's no layout shift,

888
00:53:55.039 --> 00:53:57.800
<v Speaker 3>and that's what you want to animate. So let's say

889
00:53:57.840 --> 00:54:00.599
<v Speaker 3>you have a cookie banner and actually something that we

890
00:54:00.679 --> 00:54:04.400
<v Speaker 3>had at Wix, so we added you know, GDPR and everything.

891
00:54:04.760 --> 00:54:08.519
<v Speaker 3>We added the cookie banner, and we suddenly saw and

892
00:54:08.559 --> 00:54:12.320
<v Speaker 3>we also measure obviously the corbet vitals for all our sessions,

893
00:54:12.840 --> 00:54:16.400
<v Speaker 3>and we notice a jump in the CLS And it

894
00:54:16.480 --> 00:54:20.960
<v Speaker 3>turns out that the developer created this cookie banner just

895
00:54:21.079 --> 00:54:25.320
<v Speaker 3>animated on the X and Y, and we just modified

896
00:54:25.320 --> 00:54:29.679
<v Speaker 3>it to animate on the transfer on the transform X

897
00:54:29.679 --> 00:54:33.559
<v Speaker 3>and Y, and visually there was absolutely no difference. If anything,

898
00:54:33.559 --> 00:54:37.119
<v Speaker 3>it was slightly smoother and the CLS issue was fixed.

899
00:54:37.840 --> 00:54:41.679
<v Speaker 3>So it's really so if you're using animations, it's really

900
00:54:41.679 --> 00:54:45.679
<v Speaker 3>important that you animate on transformations rather than, for example,

901
00:54:45.760 --> 00:54:49.559
<v Speaker 3>on the position or the size of the element. I

902
00:54:49.559 --> 00:54:50.320
<v Speaker 3>hope that was clear.

903
00:54:50.719 --> 00:54:51.360
<v Speaker 2>There's money.

904
00:54:52.719 --> 00:54:55.000
<v Speaker 1>It makes sense to me, And I think the reason

905
00:54:55.280 --> 00:54:57.519
<v Speaker 1>that we're kind of going through this is because, yeah,

906
00:54:58.360 --> 00:55:02.840
<v Speaker 1>my tendency is, yeah, you know, it's just like, okay,

907
00:55:03.000 --> 00:55:05.920
<v Speaker 1>I need this to move or slide in or slide

908
00:55:05.920 --> 00:55:08.400
<v Speaker 1>out or whatever, so just move it or slide in

909
00:55:08.480 --> 00:55:11.320
<v Speaker 1>or slide out, right, And I would manage some of

910
00:55:11.360 --> 00:55:16.119
<v Speaker 1>that by, yeah, by just managing X and Y or

911
00:55:16.320 --> 00:55:19.559
<v Speaker 1>managing the height right, just changing the height, and so

912
00:55:20.320 --> 00:55:22.880
<v Speaker 1>thinking through this and going okay, yeah, by managing the

913
00:55:22.920 --> 00:55:26.880
<v Speaker 1>transform CSS or the transformed options like you're talking about.

914
00:55:27.559 --> 00:55:29.519
<v Speaker 1>If I don't get penalized for that, then that's definitely

915
00:55:29.559 --> 00:55:31.639
<v Speaker 1>the way I want to go so that I can

916
00:55:31.679 --> 00:55:34.559
<v Speaker 1>maintain the user experience that I'm building, but at the

917
00:55:34.559 --> 00:55:37.639
<v Speaker 1>same time not get penalized for it by Google.

918
00:55:37.960 --> 00:55:41.079
<v Speaker 3>And it results in better in actual better user experience

919
00:55:41.320 --> 00:55:44.360
<v Speaker 3>because the transform, like I said, doesn't force the browser

920
00:55:44.400 --> 00:55:46.719
<v Speaker 3>to do a reflow, so it's it's better, it's smoother,

921
00:55:46.800 --> 00:55:51.599
<v Speaker 3>it's it's GPU accelerated, it uses less battery on mobile devices,

922
00:55:51.760 --> 00:55:55.119
<v Speaker 3>so it's it's better all around. So it's it's Google

923
00:55:55.239 --> 00:55:58.000
<v Speaker 3>pushing the and and you know what, most cases, if

924
00:55:58.000 --> 00:56:01.519
<v Speaker 3>you're using like a CSS library or some animation library,

925
00:56:01.840 --> 00:56:04.360
<v Speaker 3>it's a good bet that that's what they're doing anyway.

926
00:56:04.760 --> 00:56:08.679
<v Speaker 3>So unless you're creating your your stuff by hand, in

927
00:56:08.719 --> 00:56:11.239
<v Speaker 3>which case watch out for it. If you're using some

928
00:56:11.280 --> 00:56:15.800
<v Speaker 3>sort of a library, there's a you're probably getting the

929
00:56:15.880 --> 00:56:18.320
<v Speaker 3>correct behavior out of the box. But you can always

930
00:56:18.400 --> 00:56:21.639
<v Speaker 3>use a tool like Lighthouse which I mentioned before, page

931
00:56:21.639 --> 00:56:25.719
<v Speaker 3>speed Insights, and you know, add this component, throw it

932
00:56:25.800 --> 00:56:28.280
<v Speaker 3>in there, measure it and if you suddenly see that

933
00:56:28.320 --> 00:56:31.360
<v Speaker 3>your CLS is jumped, and it actually shows you as

934
00:56:31.360 --> 00:56:35.000
<v Speaker 3>with LCP it actually pagemen Insight will actually show you

935
00:56:35.480 --> 00:56:39.400
<v Speaker 3>which elements on the page cause the shift, and you

936
00:56:39.440 --> 00:56:43.079
<v Speaker 3>can say Okay, I see that this animated thingy is

937
00:56:43.119 --> 00:56:45.440
<v Speaker 3>causing a shift. Let me check my animation.

938
00:56:45.559 --> 00:56:48.920
<v Speaker 1>Maybe I'm doing it wrong, makes sense, Amy Steve, you

939
00:56:48.920 --> 00:56:51.400
<v Speaker 1>guys have been pretty quiet. Anything you want to add

940
00:56:51.480 --> 00:56:52.039
<v Speaker 1>or Chinese?

941
00:56:52.320 --> 00:56:54.840
<v Speaker 4>Yeah? Yeah, I was trying to debate when the best

942
00:56:54.840 --> 00:56:57.119
<v Speaker 4>time to add this. So a couple of things that

943
00:56:57.239 --> 00:57:00.039
<v Speaker 4>I wanted to add. The first thing is Dan. I

944
00:57:00.119 --> 00:57:01.559
<v Speaker 4>kind of talked to him a good bit about this

945
00:57:01.639 --> 00:57:02.760
<v Speaker 4>at my prior job.

946
00:57:02.800 --> 00:57:04.239
<v Speaker 1>But this is a really.

947
00:57:04.039 --> 00:57:06.800
<v Speaker 4>Good thing for people to work on if you're in

948
00:57:06.880 --> 00:57:10.800
<v Speaker 4>like a very product heavy environment, because it is a

949
00:57:10.840 --> 00:57:14.679
<v Speaker 4>good argument to product type people, especially like if you

950
00:57:14.760 --> 00:57:18.519
<v Speaker 4>have a consumer application, to get the bandwidth to work

951
00:57:18.519 --> 00:57:20.599
<v Speaker 4>on this kind of stuff is pretty fun too, So

952
00:57:20.639 --> 00:57:22.679
<v Speaker 4>that was just like a little tingential thing I was

953
00:57:22.719 --> 00:57:24.760
<v Speaker 4>going to add. But then the I feel like the

954
00:57:24.760 --> 00:57:27.199
<v Speaker 4>more important thing I was going to add is at

955
00:57:27.199 --> 00:57:29.000
<v Speaker 4>my last job, one thing that we did which was

956
00:57:29.039 --> 00:57:32.400
<v Speaker 4>pretty fun and also like very beneficial. You can get

957
00:57:32.480 --> 00:57:35.760
<v Speaker 4>really really really fine grained, as Dan was mentioning with

958
00:57:35.800 --> 00:57:39.440
<v Speaker 4>your lighthouse scores and automating the regressions against those, so

959
00:57:39.800 --> 00:57:42.320
<v Speaker 4>you can get super fine grained on every single one

960
00:57:42.400 --> 00:57:45.480
<v Speaker 4>of these measurements. You can set what you're We were

961
00:57:45.559 --> 00:57:48.320
<v Speaker 4>using get have Actions that I set up, but based

962
00:57:48.360 --> 00:57:50.360
<v Speaker 4>on like you know, if you merge a pull request

963
00:57:50.480 --> 00:57:52.559
<v Speaker 4>or put up a PR or something like that, probably

964
00:57:52.719 --> 00:57:54.639
<v Speaker 4>for this you'd want to do it like when you

965
00:57:54.639 --> 00:57:57.519
<v Speaker 4>put up a PR. But there are some plugins I

966
00:57:57.559 --> 00:58:00.760
<v Speaker 4>think sponsored by the Google team for get have Action

967
00:58:00.880 --> 00:58:03.760
<v Speaker 4>where you can automate this stuff, and I highly recommend

968
00:58:03.760 --> 00:58:04.199
<v Speaker 4>doing that.

969
00:58:04.599 --> 00:58:07.519
<v Speaker 3>Oh, I totally agree. And the various tools out there.

970
00:58:07.519 --> 00:58:09.639
<v Speaker 3>So get up Actions is one option. There are other

971
00:58:09.679 --> 00:58:13.760
<v Speaker 3>tools out there. It's essentially called performance budgets. You want

972
00:58:13.880 --> 00:58:18.920
<v Speaker 3>to have this as a part of your CICD process. So,

973
00:58:19.000 --> 00:58:23.480
<v Speaker 3>for example, at Wix, we measure whenever we build a

974
00:58:23.559 --> 00:58:26.480
<v Speaker 3>new version of a component. We have let's say a

975
00:58:26.559 --> 00:58:29.480
<v Speaker 3>test site or a test page, and we look at

976
00:58:29.519 --> 00:58:32.599
<v Speaker 3>the JavaScript download size, so we see we check to

977
00:58:32.639 --> 00:58:36.320
<v Speaker 3>see that the size of the JavaScript download doesn't it

978
00:58:36.360 --> 00:58:40.119
<v Speaker 3>doesn't increase or doesn't increase too much. And we also

979
00:58:40.320 --> 00:58:45.400
<v Speaker 3>check the Lighthouse score and potentially other metrics and see

980
00:58:45.400 --> 00:58:48.280
<v Speaker 3>if there's a regression in the score. And if there's

981
00:58:48.320 --> 00:58:51.199
<v Speaker 3>a regression in the score, then the build is broken

982
00:58:51.480 --> 00:58:54.440
<v Speaker 3>and it needs to get fixed before you can actually deploy.

983
00:58:55.000 --> 00:58:57.840
<v Speaker 3>And so yeah, and it's a totally automated process.

984
00:58:57.960 --> 00:59:01.039
<v Speaker 1>So what tool are you using for that your sees such.

985
00:59:01.239 --> 00:59:04.400
<v Speaker 3>In our case, we're using in house developed tools, but

986
00:59:04.440 --> 00:59:09.599
<v Speaker 3>there are plenty of other tools out there. Like Amy said, yeah,

987
00:59:09.679 --> 00:59:10.079
<v Speaker 3>go for it.

988
00:59:10.199 --> 00:59:11.880
<v Speaker 4>Yeah, I'm going to say, so where you're using a

989
00:59:11.920 --> 00:59:15.039
<v Speaker 4>GitHub action, I can try to find it before picks

990
00:59:15.079 --> 00:59:16.360
<v Speaker 4>and drop it in the show notes.

991
00:59:16.800 --> 00:59:19.519
<v Speaker 3>Yeah. So so Google had something called light wallet, but

992
00:59:19.599 --> 00:59:23.039
<v Speaker 3>I think they might have renamed it. So basically, there

993
00:59:23.119 --> 00:59:25.840
<v Speaker 3>are plenty of solutions out there, a lot of them

994
00:59:25.840 --> 00:59:29.280
<v Speaker 3>built over on top of Lighthouse that just turn it

995
00:59:29.360 --> 00:59:33.719
<v Speaker 3>into something that's that you can incorporate into your CICP process.

996
00:59:33.760 --> 00:59:38.199
<v Speaker 3>So just search for performance budget or automate lighthouse or

997
00:59:38.239 --> 00:59:40.480
<v Speaker 3>stuff like that, and you should be able to find something.

998
00:59:40.800 --> 00:59:42.599
<v Speaker 3>And the other thing that I wanted to mention in

999
00:59:42.639 --> 00:59:46.239
<v Speaker 3>this context is it's it's a good idea if you

1000
00:59:46.320 --> 00:59:49.719
<v Speaker 3>have enough traffic, if you're big enough to also look

1001
00:59:49.800 --> 00:59:54.599
<v Speaker 3>at actual field data. Now Google is is the CrOx

1002
00:59:54.719 --> 00:59:58.559
<v Speaker 3>is a good place to start, built into your search console,

1003
00:59:59.079 --> 01:00:01.679
<v Speaker 3>and you can get it in the paid speed Insights

1004
01:00:01.760 --> 01:00:04.400
<v Speaker 3>and it's free and you can even look at how

1005
01:00:04.440 --> 01:00:07.920
<v Speaker 3>well you're doing compared to your competitors, but if you

1006
01:00:08.239 --> 01:00:13.119
<v Speaker 3>want to try to improve your current situation, then that

1007
01:00:13.199 --> 01:00:17.320
<v Speaker 3>twenty eight day cycle might be just too long, and

1008
01:00:17.360 --> 01:00:21.039
<v Speaker 3>then you might want to integrate some sort of a

1009
01:00:21.079 --> 01:00:24.760
<v Speaker 3>third party solution. I think you mentioned that we might

1010
01:00:24.800 --> 01:00:28.119
<v Speaker 3>have people from ray Gun in an upcoming episode. I

1011
01:00:28.159 --> 01:00:30.559
<v Speaker 3>think there are also other tools out there. Speed curve

1012
01:00:30.679 --> 01:00:33.880
<v Speaker 3>comes to mind. They're very neuralic, I think have something.

1013
01:00:34.039 --> 01:00:37.079
<v Speaker 3>So there are plenty of tools out there that obviously

1014
01:00:37.119 --> 01:00:40.480
<v Speaker 3>they're not free, but that you can incorporate into your

1015
01:00:40.719 --> 01:00:43.800
<v Speaker 3>or at least maybe there are also free solutions out there,

1016
01:00:44.000 --> 01:00:47.840
<v Speaker 3>but you can incorporate them into your website and start

1017
01:00:47.880 --> 01:00:52.920
<v Speaker 3>getting collecting real time data including cod vitals, and then

1018
01:00:52.960 --> 01:00:56.719
<v Speaker 3>you can do all sorts of sophisticated segmentations perhaps and

1019
01:00:56.880 --> 01:01:00.079
<v Speaker 3>get much faster feedback and also be able to do

1020
01:01:00.159 --> 01:01:03.000
<v Speaker 3>stuff like ap tests in the field and see how

1021
01:01:03.079 --> 01:01:06.519
<v Speaker 3>that impacts your CO or vital score. Yeah.

1022
01:01:06.519 --> 01:01:11.760
<v Speaker 1>I was gonna ask, because both raygun and Sentry are sponsors,

1023
01:01:11.800 --> 01:01:13.960
<v Speaker 1>and so I was gonna I was gonna say, I

1024
01:01:13.960 --> 01:01:16.679
<v Speaker 1>haven't looked to see if they incorporate these numbers, but

1025
01:01:16.760 --> 01:01:19.239
<v Speaker 1>I would imagine that if they don't have them in

1026
01:01:19.280 --> 01:01:21.880
<v Speaker 1>there now, they will soon, because this is something that

1027
01:01:21.920 --> 01:01:23.280
<v Speaker 1>people are going to care about.

1028
01:01:23.559 --> 01:01:26.480
<v Speaker 3>I think they both do. Actually, yeah, so I think

1029
01:01:26.559 --> 01:01:29.480
<v Speaker 3>I've more or less covered the things I wanted to cover.

1030
01:01:29.559 --> 01:01:32.000
<v Speaker 3>Unless there are any other questions, I guess we can move

1031
01:01:32.039 --> 01:01:32.480
<v Speaker 3>to picks.

1032
01:01:33.000 --> 01:01:36.719
<v Speaker 1>Yeah. I think I think we've covered pretty much everything

1033
01:01:36.760 --> 01:01:40.360
<v Speaker 1>there is. Right, Well, let's go ahead and do some

1034
01:01:40.400 --> 01:01:42.880
<v Speaker 1>picks then, AJ, why don't you start us out?

1035
01:01:42.960 --> 01:01:46.239
<v Speaker 2>All right, I'll start us out with a great technical pick,

1036
01:01:46.679 --> 01:01:49.880
<v Speaker 2>classless CSS. I picked this before, but I'm picking it

1037
01:01:49.920 --> 01:01:54.880
<v Speaker 2>again because it's just really really good. Basically, it's CSS.

1038
01:01:55.079 --> 01:01:58.519
<v Speaker 2>It's a buzzword that's not as buzzy as other buzzwords.

1039
01:01:58.559 --> 01:02:02.320
<v Speaker 2>But classless CSS means that just works CSS that you

1040
01:02:02.320 --> 01:02:04.760
<v Speaker 2>could use for a blog, or for markdown or for

1041
01:02:04.800 --> 01:02:08.000
<v Speaker 2>other things. Where As it says you don't have to

1042
01:02:08.119 --> 01:02:10.960
<v Speaker 2>use classes to get the effect. You just include the

1043
01:02:10.960 --> 01:02:13.880
<v Speaker 2>thing on your page and your page looks better instantly,

1044
01:02:14.360 --> 01:02:18.039
<v Speaker 2>without learning anything, without having to know about grids, without

1045
01:02:18.079 --> 01:02:21.280
<v Speaker 2>you know, it's just classless CSS. So there's a repository

1046
01:02:21.280 --> 01:02:24.119
<v Speaker 2>where there's a bunch of them mentioned, and then I'm

1047
01:02:24.159 --> 01:02:26.559
<v Speaker 2>going to link to that, and I will try to

1048
01:02:26.599 --> 01:02:28.920
<v Speaker 2>link to there's a couple ones specifically that I like

1049
01:02:28.960 --> 01:02:30.599
<v Speaker 2>because a lot of the ones that are pository is

1050
01:02:30.639 --> 01:02:34.480
<v Speaker 2>just it's just literally thirty different classless CSS styles and

1051
01:02:34.519 --> 01:02:36.960
<v Speaker 2>most of them suck, but there's two or three of

1052
01:02:36.960 --> 01:02:39.440
<v Speaker 2>them that are just on point. I am also going

1053
01:02:39.480 --> 01:02:43.039
<v Speaker 2>to pick one Finance. I used to use Simple, and

1054
01:02:43.519 --> 01:02:47.559
<v Speaker 2>as all Simple users know, it's now gone and because

1055
01:02:47.599 --> 01:02:49.599
<v Speaker 2>it was acquired by a company that got by acquired

1056
01:02:49.639 --> 01:02:52.559
<v Speaker 2>by a company that got well that that then was

1057
01:02:52.639 --> 01:02:56.159
<v Speaker 2>later acquired by a company, and so they are they

1058
01:02:56.159 --> 01:02:58.320
<v Speaker 2>are gone, and I've switched over to one Finance. And

1059
01:02:58.519 --> 01:03:00.599
<v Speaker 2>the key difference about it is that it allows you

1060
01:03:00.639 --> 01:03:03.719
<v Speaker 2>to have basically as many accounts as you want without

1061
01:03:03.719 --> 01:03:06.679
<v Speaker 2>any overdraft fees or anything, or monthly fees or any

1062
01:03:06.719 --> 01:03:09.000
<v Speaker 2>of that. It's to help you organize stuff so you

1063
01:03:09.039 --> 01:03:12.119
<v Speaker 2>can have, you know, the cable company, you can instead

1064
01:03:12.119 --> 01:03:15.199
<v Speaker 2>of giving them your main bank account, you can create

1065
01:03:15.239 --> 01:03:17.920
<v Speaker 2>an account that you give only to the cable company,

1066
01:03:17.920 --> 01:03:21.000
<v Speaker 2>and when something gets screwed up like it just makes

1067
01:03:21.039 --> 01:03:23.400
<v Speaker 2>it easier to budget and makes it easier to not

1068
01:03:23.599 --> 01:03:26.960
<v Speaker 2>have to worry about giving away an account number. That

1069
01:03:27.280 --> 01:03:29.960
<v Speaker 2>I mean, anybody that's had a bank long enough bites

1070
01:03:29.960 --> 01:03:31.800
<v Speaker 2>you in the butt when you give away your account number,

1071
01:03:31.800 --> 01:03:35.639
<v Speaker 2>because eventually somebody starts doing something shady, like your internet

1072
01:03:35.760 --> 01:03:40.079
<v Speaker 2>or phone company starts giving you extra charges or anyway.

1073
01:03:40.239 --> 01:03:43.719
<v Speaker 2>So it's just it's cool. And I'm including a link

1074
01:03:43.760 --> 01:03:47.519
<v Speaker 2>that's one of those refer friend links, so I think

1075
01:03:47.519 --> 01:03:50.440
<v Speaker 2>it's I get fifty bucks, you get fifty bucks kind

1076
01:03:50.440 --> 01:03:53.159
<v Speaker 2>of thing. So if that sounds useful to you, definitely

1077
01:03:53.199 --> 01:03:53.679
<v Speaker 2>check it out.

1078
01:03:53.800 --> 01:03:54.119
<v Speaker 3>Also.

1079
01:03:54.519 --> 01:03:59.159
<v Speaker 2>JCS Criminology is a YouTube channel that I've been following lately.

1080
01:03:59.639 --> 01:04:03.599
<v Speaker 2>It's it's kind of like a criminology podcast. It's kind

1081
01:04:03.599 --> 01:04:08.000
<v Speaker 2>of PG thirteen maybe MA because it is about real

1082
01:04:08.039 --> 01:04:11.840
<v Speaker 2>criminals and real crime, and it's a dude analyzing kind

1083
01:04:11.840 --> 01:04:14.599
<v Speaker 2>of the psychology of people and pointing out like, oh,

1084
01:04:14.679 --> 01:04:17.519
<v Speaker 2>you notice in this video when they're doing this, notice

1085
01:04:17.519 --> 01:04:20.159
<v Speaker 2>how their eyes shift. This is generally an indication of

1086
01:04:20.199 --> 01:04:22.400
<v Speaker 2>such and such. It actually goes over a couple people

1087
01:04:22.400 --> 01:04:25.559
<v Speaker 2>that are innocent as well, but just I love those

1088
01:04:25.559 --> 01:04:29.760
<v Speaker 2>psychology things. And then after that, just I'm still doing

1089
01:04:30.199 --> 01:04:33.760
<v Speaker 2>my Beyond Code thing. I'm not the course is not

1090
01:04:33.920 --> 01:04:35.840
<v Speaker 2>developed yet, but I've been doing a lot of live

1091
01:04:35.840 --> 01:04:39.679
<v Speaker 2>streams and little videos. There's an off library that I've

1092
01:04:39.719 --> 01:04:43.039
<v Speaker 2>been working on. It's basically forty hours plus of live

1093
01:04:43.079 --> 01:04:45.639
<v Speaker 2>streaming now, so if you want to watch me code,

1094
01:04:45.800 --> 01:04:47.679
<v Speaker 2>you can, and I am going to get back to

1095
01:04:47.719 --> 01:04:51.159
<v Speaker 2>the little short videos of teaching programming concepts as well.

1096
01:04:51.199 --> 01:04:53.760
<v Speaker 2>I just kind of been overburdened with other things that

1097
01:04:53.800 --> 01:04:58.119
<v Speaker 2>I need to do anyway, So that's all my picks.

1098
01:04:58.159 --> 01:04:59.880
<v Speaker 1>All right, Amy, what are your picks?

1099
01:05:00.159 --> 01:05:02.000
<v Speaker 4>Okay? So I was able to find these, and the

1100
01:05:02.039 --> 01:05:04.880
<v Speaker 4>first one is they do different things. So the first

1101
01:05:04.920 --> 01:05:09.840
<v Speaker 4>one is by the Lighthouse team, and this is this

1102
01:05:10.119 --> 01:05:14.480
<v Speaker 4>just runs based on you know, whatever actions use or whatever,

1103
01:05:14.679 --> 01:05:16.360
<v Speaker 4>you don't know what they typically call them and get,

1104
01:05:16.400 --> 01:05:19.280
<v Speaker 4>but like whatever hooks or events that are happening in

1105
01:05:19.360 --> 01:05:23.840
<v Speaker 4>a repo, it'll run a Lighthouse test against that branch.

1106
01:05:24.360 --> 01:05:26.880
<v Speaker 4>And then the one that I was thinking of, So

1107
01:05:26.880 --> 01:05:29.079
<v Speaker 4>that's the first link. I'll drop the one that I

1108
01:05:29.159 --> 01:05:31.360
<v Speaker 4>specifically was thinking. Oh that you can set up these

1109
01:05:31.360 --> 01:05:34.199
<v Speaker 4>budgets and just like you would, a test basically fail

1110
01:05:34.280 --> 01:05:38.199
<v Speaker 4>to build if when it runs that test on your

1111
01:05:38.199 --> 01:05:41.360
<v Speaker 4>branch or you know, that's assuming that you have your

1112
01:05:41.400 --> 01:05:43.800
<v Speaker 4>PR set up where there's some sort of like working

1113
01:05:44.039 --> 01:05:46.000
<v Speaker 4>URL that you can go to when you put up

1114
01:05:46.000 --> 01:05:48.519
<v Speaker 4>a PR. But getting into the weeds, but yeah, you

1115
01:05:48.519 --> 01:05:51.239
<v Speaker 4>can set up a budget to run your tests and

1116
01:05:51.239 --> 01:05:54.760
<v Speaker 4>fail to build if your branch drops below the budget

1117
01:05:54.760 --> 01:05:57.519
<v Speaker 4>that you specified. So I'll drop the lake to both

1118
01:05:57.519 --> 01:05:58.960
<v Speaker 4>sloms and that's it for me.

1119
01:05:59.360 --> 01:06:00.760
<v Speaker 1>Right, Dan, your picks?

1120
01:06:00.920 --> 01:06:04.079
<v Speaker 3>Okay, So my first pick is something that I actually

1121
01:06:04.159 --> 01:06:06.880
<v Speaker 3>should have mentioned while we were talking about it. So

1122
01:06:08.119 --> 01:06:11.360
<v Speaker 3>Google actually also recently, like a couple of days ago

1123
01:06:11.480 --> 01:06:15.719
<v Speaker 3>is the time of this recording, built a data studio

1124
01:06:15.920 --> 01:06:19.920
<v Speaker 3>on top of the CrOx API which enables you to

1125
01:06:20.280 --> 01:06:27.719
<v Speaker 3>graph coweb vitals related stuff for various technologies. So, for example,

1126
01:06:27.840 --> 01:06:31.400
<v Speaker 3>you want to compare the performance of all the sites

1127
01:06:31.400 --> 01:06:34.320
<v Speaker 3>that are out there that use React compared to all

1128
01:06:34.320 --> 01:06:37.440
<v Speaker 3>the sites that are out there that can that use Angular,

1129
01:06:37.960 --> 01:06:39.920
<v Speaker 3>well you can. Now you can do it based on

1130
01:06:39.960 --> 01:06:42.840
<v Speaker 3>the data in their CRUC database. So obviously their CRUC

1131
01:06:42.960 --> 01:06:46.679
<v Speaker 3>database doesn't contain every website if it contains something like

1132
01:06:46.719 --> 01:06:50.760
<v Speaker 3>the top ten million website according to the traffic that

1133
01:06:50.800 --> 01:06:54.679
<v Speaker 3>the chrome sees, but it's still fairly interesting. You can

1134
01:06:55.039 --> 01:06:58.639
<v Speaker 3>do all these all sorts of comparisons between different technologies

1135
01:06:58.960 --> 01:07:03.000
<v Speaker 3>and different products and different CMSs for example, and and

1136
01:07:03.039 --> 01:07:06.920
<v Speaker 3>stuff like that. So I'm posting the link here. It's

1137
01:07:06.960 --> 01:07:10.599
<v Speaker 3>a it's an interesting tool. So that's one thing that

1138
01:07:10.639 --> 01:07:13.440
<v Speaker 3>I wanted to post. The other another thing that I

1139
01:07:13.480 --> 01:07:17.079
<v Speaker 3>wanted to post. I recently watched this excellent video called

1140
01:07:17.599 --> 01:07:21.760
<v Speaker 3>Math has a Fatal Flaw and it's it's amazing. He

1141
01:07:21.960 --> 01:07:28.440
<v Speaker 3>talks about go to the self referential paradox in in

1142
01:07:28.559 --> 01:07:33.719
<v Speaker 3>set theory and about the completion problem, and it's all

1143
01:07:33.880 --> 01:07:37.199
<v Speaker 3>of This entire video is like half an hour, and

1144
01:07:37.280 --> 01:07:42.199
<v Speaker 3>the amount of information that it covers in such an

1145
01:07:42.280 --> 01:07:47.480
<v Speaker 3>understandable fashion an accessible way is astounding. Somebody on there

1146
01:07:47.519 --> 01:07:50.800
<v Speaker 3>literally said, I'm a professor in the university and this

1147
01:07:50.920 --> 01:07:54.559
<v Speaker 3>is like an entire course, this half an hour of video.

1148
01:07:55.039 --> 01:07:58.239
<v Speaker 3>So it's an amazing video and I highly recommend it.

1149
01:07:58.480 --> 01:08:01.519
<v Speaker 3>So I'm going to put a postal into that here

1150
01:08:01.559 --> 01:08:04.559
<v Speaker 3>as well. And the last thing is something that I'm

1151
01:08:04.599 --> 01:08:08.360
<v Speaker 3>actually kind of asking for help. As it were, I'm

1152
01:08:08.480 --> 01:08:13.280
<v Speaker 3>running out of stuff to watch. I'm unable to find

1153
01:08:13.440 --> 01:08:17.199
<v Speaker 3>good stuff on TV anymore, like then the Netflix and stuff.

1154
01:08:17.239 --> 01:08:19.880
<v Speaker 3>I don't know, that's just the quality is not it's

1155
01:08:19.920 --> 01:08:23.880
<v Speaker 3>not there. So we watched Mayor of Eastern or East Town,

1156
01:08:24.079 --> 01:08:27.600
<v Speaker 3>which was really good with Kate Winslet, and I recommend it.

1157
01:08:27.680 --> 01:08:30.000
<v Speaker 3>But now that it's done. I don't know what to watch.

1158
01:08:30.319 --> 01:08:33.840
<v Speaker 3>So if anybody has a suggestion, you know, hit me

1159
01:08:33.920 --> 01:08:36.319
<v Speaker 3>up on Twitter or something and let me know what

1160
01:08:36.399 --> 01:08:37.880
<v Speaker 3>you recommend for for us to.

1161
01:08:37.840 --> 01:08:40.119
<v Speaker 2>Watch anime and always anime?

1162
01:08:40.439 --> 01:08:50.239
<v Speaker 3>Which anime? Most animes are stupid? Well, I didn't say

1163
01:08:50.279 --> 01:08:53.399
<v Speaker 3>all anime. I said most anime. There are a couple

1164
01:08:53.399 --> 01:08:56.520
<v Speaker 3>of good ones, but most of them I lose interest

1165
01:08:56.720 --> 01:08:58.439
<v Speaker 3>within like the first episode.

1166
01:08:58.760 --> 01:08:59.800
<v Speaker 2>We'll talk. Then we'll talk.

1167
01:09:00.640 --> 01:09:02.920
<v Speaker 4>You better be careful and lock your doors at night.

1168
01:09:02.960 --> 01:09:08.279
<v Speaker 3>Now again, I didn't say all anime. I said most anime. Well,

1169
01:09:08.319 --> 01:09:12.079
<v Speaker 3>most content is crap exactly. Most anime falls within most

1170
01:09:12.119 --> 01:09:15.359
<v Speaker 3>content we just talked about. I totally agree.

1171
01:09:15.439 --> 01:09:17.119
<v Speaker 1>All right, I'm going to throw somebody can.

1172
01:09:17.000 --> 01:09:19.079
<v Speaker 3>Point me sorry, if somebody can point me at the

1173
01:09:19.119 --> 01:09:21.239
<v Speaker 3>good anime, i'd appreciate it.

1174
01:09:21.359 --> 01:09:23.319
<v Speaker 1>All right, I've got another call I need to get to,

1175
01:09:23.359 --> 01:09:25.479
<v Speaker 1>so I'm gonna do this real fast. But I started

1176
01:09:25.479 --> 01:09:27.800
<v Speaker 1>reading another book and some of you may or may

1177
01:09:27.800 --> 01:09:30.520
<v Speaker 1>not have heard of it. It's Atlas Shrugged, and I

1178
01:09:30.560 --> 01:09:32.560
<v Speaker 1>have to say I'm about a quarter of the way

1179
01:09:32.600 --> 01:09:34.760
<v Speaker 1>through it, and by reading, I mean listening to on audible.

1180
01:09:35.039 --> 01:09:37.319
<v Speaker 1>I love this book. It is so far. It is

1181
01:09:37.359 --> 01:09:38.079
<v Speaker 1>just amazing.

1182
01:09:38.680 --> 01:09:40.960
<v Speaker 3>Isn't Ian run something that as someone who's we are

1183
01:09:41.000 --> 01:09:42.880
<v Speaker 3>supposed to read in our teens or something.

1184
01:09:43.319 --> 01:09:46.479
<v Speaker 1>I don't know that it was ever something that, yeah,

1185
01:09:46.880 --> 01:09:48.520
<v Speaker 1>in any of the classes that I took we had

1186
01:09:48.520 --> 01:09:51.520
<v Speaker 1>to read. But I'll tell you, I really identify with

1187
01:09:51.600 --> 01:09:53.760
<v Speaker 1>the characters that are in there and with some of

1188
01:09:53.840 --> 01:09:55.439
<v Speaker 1>the things that are I feel like some of the

1189
01:09:55.479 --> 01:09:57.159
<v Speaker 1>stuff that she talks about. I just look at the

1190
01:09:57.199 --> 01:10:01.840
<v Speaker 1>world today and go, oh, yeah, this is applicable. So anyway,

1191
01:10:02.199 --> 01:10:04.159
<v Speaker 1>it's making me think, which is always a positive thing.

1192
01:10:04.199 --> 01:10:06.319
<v Speaker 1>So I'm gonna pick that and then go check out

1193
01:10:06.319 --> 01:10:11.680
<v Speaker 1>dev Influencers podcast, Definite Influencers dot com, slash podcast, and yeah,

1194
01:10:11.840 --> 01:10:14.000
<v Speaker 1>that's what I got. So we'll go ahead and wrap

1195
01:10:14.079 --> 01:10:17.319
<v Speaker 1>up here. Thanks Dan, this was really interesting my pleasure.

1196
01:10:17.600 --> 01:10:21.760
<v Speaker 3>And as usual for anybody who's interested in performance related

1197
01:10:21.800 --> 01:10:25.359
<v Speaker 3>stuff or JavaScript stuff, you know, hit me up on Twitter.

1198
01:10:25.399 --> 01:10:28.479
<v Speaker 3>I'm Dan Ship here on Twitter. I usually follow back

1199
01:10:28.760 --> 01:10:29.800
<v Speaker 3>and go for it.

1200
01:10:29.880 --> 01:10:32.159
<v Speaker 1>All right, folks, We're going to wrap up here until

1201
01:10:32.159 --> 01:10:33.439
<v Speaker 1>next time, folks, max out.

1202
01:10:33.600 --> 01:10:34.079
<v Speaker 3>Bye.
