#28: Martin Splitt

Listen to Audio Only

Episode Summary

In today’s episode, we have an amazing reat for you. Our guest is none other than Martin Splitt, Webmaster Trends Analyst at Google

We also have JR Oakes, Senior Director of Technical SEO Research at Adapt Partners, joining as a special guest host. (Listen to JR’s episode)

We discuss:

  • Martin’s background
  • How he got to Google
  • What working at the big “G” is actually like
  • Discuss the challenges he runs into day-to-day
  • What it’s like being a public-facing Google employee
  • His amazing hair!

We also:

  • Javascript deep-dive
  • Tackle some Google Search Console questions.

Episode Transcript

00:00:01.079 –> 00:00:23.760
Hey everybody this is Jacob stoops and we are back with another episode of the Page 2 Podcast and today we have an extra special edition. We’ve got obviously myself and Jeff, but we’ve got also featured co host former former interviewee JR Oakes joining us.

00:00:25.230 –> 00:00:25.860
Hey guys.

00:00:27.060 –> 00:00:31.170
And then we’ve got none other than Mr Martin Splitt of

00:00:31.230 –> 00:00:33.810
Google also joining us

00:00:34.440 –> 00:00:42.300
Hello, very excited. And this is the first time that we’ve ever had for for people to

00:00:43.620 –> 00:00:45.690
roundtable discussion. So it’s going to be

00:00:46.590 –> 00:00:59.040
I think it’s going to be very interesting. And what what we’re the hallmark of this show. In case you haven’t listened in case you don’t know, is kind of the origin story of upgrade SEOs the trials. The tribulations.

00:00:59.700 –> 00:01:07.920
It’s certainly knowledge sharing, but the the core of the show is what SEOs go through kind of on a day to day basis and

00:01:08.820 –> 00:01:19.380
This episode, I think, is going to be kind of turning it that on its head because Martin’s not Martin talks about SEO a lot but Martin’s not necessarily an SEO, but I think what we

00:01:20.280 –> 00:01:32.190
What we often don’t think about, especially in the SEO. SEO community is people like Martin people like Gary and John – very public facing

00:01:32.970 –> 00:01:40.470
Sometimes I always ask. I wonder where they came from. I wonder how they got to Google. I wonder what it’s what it’s like

00:01:41.280 –> 00:01:54.330
So those are the questions we’re gonna we’re going to ask today. So without kind of burying the lead Martin if you wouldn’t mind just like telling us where, where did you come from, how did you get to Google, what do you, what do you like to do, who are you

00:01:55.470 –> 00:02:02.910
Right. So, as you said, I’m Martin Splitt and I’m in John’s team and I am not a classical

00:02:04.020 –> 00:02:06.540
Classical SEO. I’m a web developer actually and

00:02:08.130 –> 00:02:12.720
Where do I come from. That’s a fantastic question. I keep asking myself that is like

00:02:13.050 –> 00:02:24.450
One of the most most frequently asked questions that I asked myself, like who am I and why is like the only the top top two questions. And it’s like, where do I come from, I’m from Germany origin, Egypt, nothing Germany.

00:02:26.490 –> 00:02:38.940
Yeah, I was like programming as a fun little hobby and eventually turn that into a job and then studied and then continue working as a developer

00:02:39.510 –> 00:02:50.670
Burnout. Yay, did a bunch of other stuff as well and then came back to life as a developer, I’ve worked for smaller startups. I’ve run my own agency.

00:02:51.330 –> 00:03:01.980
Which is where I burned out fantastic. It’s great. It’s a fantastic idea to run your own business with other people together when you have no leadership experience as a young, young guy smart plan not

00:03:04.230 –> 00:03:05.610
Yeah, then

00:03:06.960 –> 00:03:10.050
Have done SEO as part of the job as in like

00:03:11.340 –> 00:03:17.940
Working for an agency in projects, you should at least like know some bits and pieces to be able to make like reasonable

00:03:18.600 –> 00:03:34.830
Recommendations. I worked with SEOs I worked with good SEOs I were better CEOs. I worked with good developers, I will put that developers. I’ve seen how different people can with like basically give you very different results and very, very different.

00:03:36.210 –> 00:03:39.600
Atmosphere in the team and culture in the team and

00:03:41.520 –> 00:03:50.460
Yeah, so I was usually the oddball because I was the one was like, wow, we are not built for developers. I’m sometimes a little tricky.

00:03:51.060 –> 00:03:56.670
Because I’m like, yeah, that all the, all of this stuff that we’re building is cool and I appreciate engineering effort, but

00:03:57.630 –> 00:04:07.500
We’re not building because we like the engineering effort and the challenge we’re not like doing a puzzle here, what we’re trying to accomplish is deliver value to a user to a customer and

00:04:08.370 –> 00:04:14.730
On the same side. That’s also what I’m trying to like over that way was trying to bring back to the to the SEOs on the team.

00:04:15.540 –> 00:04:21.360
Especially as usually they were heated discussions on prioritization and where we should spend our time.

00:04:21.780 –> 00:04:28.740
And what’s the biggest bang for the buck and then developers like you should trust refactor listen to a new programming language. And I’m like, now that’s not the like.

00:04:29.100 –> 00:04:32.250
The problem we will be solving is not the problem we’re having, and then SEOs are like

00:04:32.760 –> 00:04:42.600
We should just not use JavaScript. And I’m like, Well, no, that’s also not really the problem we are having because we’re not having JavaScript in the first place, like, what, what is this discussion is this coming from

00:04:43.740 –> 00:04:53.940
And other things, amongst other things, like, oh, we need to get, I don’t know, we need to get our time to first byte a lot lower, and like, it’s already at like a second so like, what’s the point here.

00:04:56.640 –> 00:05:11.130
And yeah, that eventually led to Google recruiter to reach out and going like, Hey, would you be interested in a job at the web platform. Sorry what web content ecosystem team. And I’m like, What’s the web content ecosystem.

00:05:11.160 –> 00:05:22.650
Team, and then I had an interesting discussion with a with a recruiter. Then I went to, because I’m living in Zurich. Anyways, and the Google offices in Zurich that john and the team works from

00:05:23.580 –> 00:05:39.120
Most of the team anyway. And I mean, Gary is like everywhere. And Lizzie or tech drivers in the US. But I went to lunch have lunch with everyone. And we talked about a bunch of stuff, but I somehow. I don’t know.

00:05:40.380 –> 00:05:49.830
I didn’t ask that many questions I asked a few questions did get really confusing answers like what’s your normal day like and they’re like, oh, it depends. As you know,

00:05:51.780 –> 00:05:59.160
And but for all seriousness, like I now understand that every day is very, very different and very hard to predict. And yeah.

00:05:59.910 –> 00:06:11.730
Then they made me an offer. After all, interviewing and I was happy with the offer and then I joined the team and I asked on after I got the offer. Before I signed the offer. So, so

00:06:12.540 –> 00:06:21.150
Here is people with, I don’t know how many decades of experience in both in the internals of Google search and the realities of SEOs

00:06:22.110 –> 00:06:32.880
Why me, because I was so different from everyone else. I felt at least. And then I realized, no we’re not that different. We both belly or all of us value.

00:06:33.840 –> 00:06:49.410
The fact that we can help people be successful in the web platform and we want the web platform to succeed as an as an ecosystem and platform. And while there was the the view of web developer, I have an I still am building things with web technologies.

00:06:51.390 –> 00:07:01.140
And yeah not 10 years ago, five years ago. But today, basically. So yeah, that was an interesting challenge and there was like a lot of challenges that we went through this year.

00:07:01.620 –> 00:07:18.600
A lot of challenges last year. And there’s a lot more challenges up the road. So that’s really, really interesting. And when I’m not programming. I’m either doing like magic tricks or diving or play computer games or, I don’t know, just hang out with people.

00:07:19.920 –> 00:07:31.950
So, I, I’ve got two questions, then I want to let the other guys kind of jump in and have their opportunity to pepper you with questions one being, what is it like to be

00:07:33.300 –> 00:07:37.920
Be to to be in front of the curtain, so to speak, since to use a magic analogy.

00:07:38.460 –> 00:07:52.740
When, when you were not a part of Google, right. And now that you’re kind of behind the curtain and you’ve had a little peek and you can see how the I’m gonna say tricks. That’s, that’s a bad thing to say, but for the sake of the magic analogy. Now that you can see how the tricks are done.

00:07:54.330 –> 00:08:00.240
What is your perspective or how is your perspective changed being outside versus now kind of being inside the organization.

00:08:01.140 –> 00:08:07.470
I love to answer with the magic analogy. I don’t know if you’ve ever seen Penn and Teller’s cup and balls routine.

00:08:08.250 –> 00:08:17.730
If not, it’s a beautiful thing. So the cups and balls is probably like one of the oldest magic proteins, where you have three cups and what seems to be three balls and then you like

00:08:18.150 –> 00:08:32.760
Put a ball under the thing and then like, do a move, and then it disappears from here and reappear somewhere else and they perform this with the classical disposable red plastic cups and aluminum foil bonds.

00:08:33.690 –> 00:08:44.430
And then they do the same trick again, but this time with like they show you where they put all the extra balls that they need for the for the trick and they use transparent.

00:08:44.880 –> 00:08:48.600
Cups. And you could think of. But that’s going to ruin the trick.

00:08:49.080 –> 00:08:56.970
Because you know how it’s done. And even if you like. If you literally learn how the trick is done you know exactly the moves you know exactly what you need to look for

00:08:57.450 –> 00:09:10.020
And if you if you pay really really close attention. You do see it and you do know how it’s done. But it still is impressive and beautiful and challenging to a catch all the moves and be

00:09:11.160 –> 00:09:21.360
Just like follow the the routine and you can you can you can you get to choose. Right. I can sit back and enjoy what people are doing. It’s like I can see when someone puts out a really nice and interesting

00:09:21.780 –> 00:09:34.710
Start to like study or experiment I can enjoy when people are working together and creating better things on the web. And I’m like, yes, this is what I wanted to, to encourage and empower

00:09:36.810 –> 00:09:49.560
But I can also literally just go like, oh, okay. Well, I see what you’ve done here, and I’ve seen where you have gone off track or I can see where you have done the move that is not so great.

00:09:51.060 –> 00:09:54.990
Let us let us make sure that we are not falling for this move the next time or

00:09:57.210 –> 00:10:00.180
Also, when I like it when people report problems.

00:10:01.620 –> 00:10:08.820
But only when they have really researched that it is an actual problem because most reports are like, Oh, we have this problem and we think it’s rendering. And I’m like,

00:10:09.510 –> 00:10:23.550
Let me have a look. No, it’s not rendering. Thanks, but sometimes people do voice concerns or problems or challenges that we know or sometimes also, we don’t know. And then we work on resolving them.

00:10:24.870 –> 00:10:33.840
And that’s, that’s interesting because then I get to actually learn the magic trick. And I might learn a new trick that I haven’t known before. I haven’t seen before.

00:10:35.070 –> 00:10:46.020
And I can actually make things better and I can make it better, not just for me, but only for Google, I can make it better for everyone who might face the problem. So that’s really, really exciting.

00:10:47.400 –> 00:10:51.480
So on a personal level. One of the things that

00:10:52.590 –> 00:10:54.630
I’ve always been curious about as

00:10:55.770 –> 00:11:06.480
I think I think back to Matt Cutts and once he kind of left the scene john kind of came more to the forefront and then Gary and now you’re now yourself.

00:11:07.410 –> 00:11:14.430
And sometimes what comes with that, especially from the SEO community is a lot of a lot of heat sometimes

00:11:15.180 –> 00:11:25.380
Sometimes unnecessary and I think that there are times when people expect a lot of information and a lot of giving from from you guys, but don’t also take the time to consider that your people to

00:11:26.070 –> 00:11:36.060
And I just wonder, what does that been like for you kind of stepping a little bit more up into into the public spotlight just personally. Yeah.

00:11:36.750 –> 00:11:44.610
So I have been the public speaker beforehand. I have been active in many different communities beforehand so that that wasn’t that much of a step up.

00:11:45.270 –> 00:11:52.290
I mean sure, if you’re associated with Google. You have a lot more coming your way than usual. But I am I don’t know.

00:11:53.250 –> 00:12:06.030
One of the things that I think I’m still drawing from was my experience, when I was 16 I actually wanted to become a nurse, so I did like an internship as a nurse and that teaches you some perspective.

00:12:07.950 –> 00:12:19.350
You like honestly if if things get heated and there is some substance to it I ignore the heat as much as I can because it doesn’t help me.

00:12:19.860 –> 00:12:27.630
It doesn’t accomplish anything at this point. This is pointless to shoot back because if I should back then what’s the point like get more sit back

00:12:28.230 –> 00:12:34.440
I’m human. So every now and then I do lose my cool that obviously happens. So I wouldn’t say like, Oh yeah, I’m just floating

00:12:34.980 –> 00:12:41.910
Like above it. No, that’s not what I’m a human like you and me and everyone else’s and obviously I have bad days where I’m like,

00:12:42.660 –> 00:12:47.820
Okay, cool. Like, what do you want me to do here, and I look at the options. Screw this

00:12:48.360 –> 00:12:55.380
But most of the times. I’m like okay I I cut through the heat. I look at if there is some substance to it, if there is some substance to it.

00:12:55.890 –> 00:13:05.910
And I I caused the problem or I miss communicated something, then I own up to it like an adult should apologize for it and then like see that I can make it better.

00:13:07.680 –> 00:13:20.400
If there is just heat for the sake of heat or because someone has some personal agenda that they need to further than I just step away from the computer because it’s pointless, it’s just absolutely pointless.

00:13:21.090 –> 00:13:26.760
So I’m like, yeah, that’s Twitter for today and let’s see if I come back a couple of days later, because like

00:13:27.480 –> 00:13:32.160
Or I just choose to completely ignore that person and just gonna Yeah, whatever. Let them shout.

00:13:32.940 –> 00:13:46.290
That’s cool. I’ll have the people that I actually care for and like, who have my back and honest and level headed towards me and then I have a conversation with them, rather than the hot heads and that’s okay too.

00:13:47.610 –> 00:13:56.130
I’m not anyone’s babysitter. And I’m not anyone’s target and if if they think that I should be one of these things, then they are wrong and

00:13:57.420 –> 00:13:58.080

00:14:00.030 –> 00:14:03.450
That’s just part of the job. And it’s part of humans and yeah

00:14:05.430 –> 00:14:05.880
That’s a great

00:14:08.190 –> 00:14:13.740
Yes, JR. Jump in. You’ve been quiet, thus far, I’ve been. I’ve been doing

00:14:13.800 –> 00:14:20.700
A lot of the talking. No, that’s all good. So, I mean, I think as an SEO. Not all of us, but a lot of us have like the dream of

00:14:21.450 –> 00:14:31.260
You know, Google one day is going to reach out to us and say we need you to come work for our company and and you actually kind of, you know, live that dream a little bit, um,

00:14:31.740 –> 00:14:39.180
It’s funny, I had a little story where I did have a recruiter reached out to me and I failed miserably on the interview test because

00:14:39.780 –> 00:14:48.510
It was not at Google’s headquarters. IT WAS THAT LIKE SOME campus office and I’m like in Seattle. And I was like, I don’t want to be in Seattle. I want to be at the headquarters and

00:14:49.830 –> 00:14:51.000
Just my reaction to it.

00:14:51.180 –> 00:14:58.980
It. That’s what I thought in my head, my reaction, I guess, you know, said that also so didn’t go much further than that. But I mean,

00:14:59.460 –> 00:15:09.570
I don’t working at Google camp necessarily the easiest. A lot of amazing smart people there. So what are some of the challenges you go through. I’m like a daily basis with just

00:15:10.620 –> 00:15:13.380
Being part of the big G and things like that.

00:15:15.090 –> 00:15:26.550
That’s a really good question. So generally speaking, I have to say most people are really nice and very, very humble. I mean, you know, JOHN. JOHN is not like

00:15:27.120 –> 00:15:36.600
I know here’s me john Miller is just like very nice, very friendly and like trying to help everyone out. It’s really nice to work with him.

00:15:37.170 –> 00:15:48.660
Pretty much. That’s my experience with most of the governors and then only afterwards to figure out, like, hold on, wait. I DON’T YOU THE PERSON WHO Oh, interesting. They’re, they’re like down to earth nice people.

00:15:49.860 –> 00:15:59.670
And I think that’s very important. And a lot of it is just like it’s a job. I mean, what are the struggles that you have in your job. So for instance, I have my

00:16:01.470 –> 00:16:04.110
Conversations with accounting every now and then.

00:16:05.850 –> 00:16:08.160
Over random stuff like

00:16:09.210 –> 00:16:20.460
I don’t know recently Lufthansa changed their billing system to do a very stupid thing that makes everything more complicated when you put additional luggage and then

00:16:20.850 –> 00:16:29.970
Like, Hey, what are you trying to do here. And I’m like, as I said in the comments. This is what happens. And then they’re like, oh, we didn’t see that. Sorry. Yeah. But now you’re like,

00:16:30.450 –> 00:16:39.390
Your expenses are in a little late. So you have to like refile then next week latest and I’m like, but I’m on vacation, and I

00:16:40.200 –> 00:16:54.990
Don’t have a company like a corporate device with me. And then they’re like, Oh, that’s bad, and probably your company credit card will be blocked. And I’m like, Yeah, but I’m I’m traveling next like the week after I come back I’m traveling somewhere for work. So like, tough luck.

00:16:56.040 –> 00:16:57.960
It’s, it’s like these small things were like

00:17:00.660 –> 00:17:07.560
But I guess like that’s like that happens everywhere. That’s not really a challenge. I think the real challenge that we have a Google is

00:17:08.580 –> 00:17:18.180
Kind of this our Google scale is very different from most of the things that you normally ever run into, like, I remember when I would

00:17:19.470 –> 00:17:24.030
Deal with a bug. I think that our like largest customer. If I would deal with the bug that would

00:17:24.810 –> 00:17:40.170
Hit a certain percentage of users that would still just be like, let’s say, a few thousand people. If we do something that breaks a percent of the websites that we index at like a really large number, right.

00:17:40.290 –> 00:17:46.920
So that’s something that we have to be very careful about. So for instance, when, when we updated the Google world and like, yay.

00:17:47.310 –> 00:17:54.780
And we’re going to update the user agent string right but I know right. I think like the conversation with like this. Oh, right. We have rolled out the experiment.

00:17:55.170 –> 00:18:06.090
So we should be seeing SEOs like blocking this like, at some point, noticing this right because of the user agent and then the story from the rendering team who I did the I O talk with well

00:18:06.570 –> 00:18:12.000
She’s like, No, no, they’re not going to see it in the server logs and I’m like, why not because we’re not changing the user agent string. And I’m like,

00:18:14.400 –> 00:18:22.140
Why wait. What, why not that. That’s like, that’s an easy fix. And she’s like, Oh yeah, we could do it like this. It’s just we would break

00:18:22.530 –> 00:18:34.320
A lot of websites. And I’m like, oh, okay. Do we know how many and she’s like, Well, right now it’s a hypothesis. But we’ll, we’ll try it out and then we can basically what we can do is we can run experiments.

00:18:36.570 –> 00:18:48.510
In let’s call it like a developer copy of a part of the index and then we can see how the indexing decisions or like the rendering outcome would look like. So basically we can run part of the pipeline.

00:18:49.110 –> 00:19:00.270
Separately from the real thing to see what would happen. Hypothetically speaking, and we saw yeah a bunch of these websites would come out broken. If we will do this. Oh.

00:19:02.850 –> 00:19:15.000
We have to listen and that’s why we said that we’re going to update the user agent string and I, oh, and then we said it again when we updated the tools and then we said it again. I think like a month ago or something in the blog post.

00:19:15.450 –> 00:19:20.400
And then in December we hopefully will be at a point where we cannot use a string.

00:19:21.750 –> 00:19:40.710
So these are things where you’re like ah ok this is a lot more complicated than if we will be small and like no one would care as a startup, you get away with that right. It’s like, oh yeah, we just like broke the thing for 100 customers. Now when free beta, whatever. No one can

00:19:42.510 –> 00:19:54.510
We can Google search is pretty light on by people. Yeah, it’s an important source of traffic. We can’t just gamble that we are very, very aware of this. The second big challenge that we’re dealing with.

00:19:57.330 –> 00:20:14.520
You know, I personally deal with is that the process behind the scenes is very involved because actually building a search engine is very complicated and we have built this amazing infrastructure that is huge and

00:20:16.080 –> 00:20:16.440

00:20:18.390 –> 00:20:24.180
As as you has a lot of moving parts. So when we are talking about it. We have to simplify it.

00:20:24.960 –> 00:20:33.690
And then usually I have a certain context in mind as, like, okay, I want to explain how it works for new sites or new pages that we hadn’t discovered before

00:20:33.930 –> 00:20:46.110
And I want to look at the example of one page going through the process, then this is this is roughly what happens. And that’s correct. The problem is, there are edge cases that I do not factor into this. I remember

00:20:47.400 –> 00:20:58.680
Like putting up a slide from a presentation with a very simplified view of Googlebot of how we go about process things and then some was like, Yeah, but what about robots txt and I’m like dude, yes.

00:21:00.180 –> 00:21:10.650
Good point. But no, that’s not what this diagram is about. If you think that this diagram is the whole truth, then you are mistaken. There is a context to it very

00:21:12.270 –> 00:21:27.750
Limited it’s useful in a very limited context if you’re taking it out of that context. Yeah. Right. And oftentimes, people don’t know. And people don’t notice, either. And that’s great, but sometimes people take things out of context and then go like so.

00:21:28.890 –> 00:21:33.000
This is happening right and then you’re like, No, that’s not true.

00:21:34.710 –> 00:21:47.790
And what I observe most SEOs and developers is that they didn’t like the ask you a question you answer that question. And then if it’s not matching their hypothesis, then they are trying to push the hypothesis as a fact. And I’m like,

00:21:48.810 –> 00:21:52.980
What do you want from me like I can agree with you. But then we’re both wrong. So like what’s

00:21:54.030 –> 00:21:55.380
What’s your goal here.

00:21:59.160 –> 00:22:12.570
That’s sometimes tricky, but I understand that from the outside. So I’m trying to share as much as I can. But some things that I can share policy wise and like no one cares if I disclose that or not. It’s just, I know that if I disclose that

00:22:13.860 –> 00:22:16.710
A lot of people will be confused. It

00:22:18.390 –> 00:22:35.400
Will be misrepresented will be used to do more harm than it would do good to disclose this information. So that’s a really, really tricky balance to strike and sometimes I get it wrong. And that’s tricky. Then, but luckily, everyone is very forgiving.

00:22:37.380 –> 00:22:48.600
At least on our side but yeah that’s that’s like a huge job to figure out what’s the right obstruction and where can we actually like do something useful.

00:22:49.740 –> 00:22:53.280
For web masters. That’s awesome. Now,

00:22:54.210 –> 00:23:00.210
That scale in general just frightens me. I mean, I have some clients that maybe getting a couple million visits a day.

00:23:01.440 –> 00:23:03.720
But that’s just like a second for you guys so

00:23:05.160 –> 00:23:14.790
It is absolutely like I was completely mind blowing. I was carrying a data set. At some point, and I was I’m used to writing sequel for reasonably sized databases.

00:23:15.150 –> 00:23:26.790
And I wasn’t aware of the size of the database that I was looking at. And I’m like, all right, this this query is still running. I’m going to have lunch. I came back from manager was still like not not. Oh.

00:23:27.630 –> 00:23:28.320

00:23:29.520 –> 00:23:36.450
More or less, like, yeah, it was like a complex join over multiple tables. And I was like, Okay, this has now quit.

00:23:38.430 –> 00:23:46.020
For 15 with it or like 100 like 500 million data sets and still not done yet only like kill this

00:23:46.890 –> 00:23:48.000
So yeah, that was interesting.

00:23:48.180 –> 00:23:48.600
When I’m like

00:23:50.460 –> 00:23:55.470
Have this to data scientist because I literally can’t run. I can’t even run the query that I contrived.

00:23:58.080 –> 00:23:58.350

00:24:00.300 –> 00:24:10.680
I’m with a. So, I mean, Google has been around since 1998 that right 2098 yeah I think so. So

00:24:10.890 –> 00:24:18.180
I mean I think everyone thinks of Google was like the most cutting edge company in probably the world.

00:24:19.260 –> 00:24:26.820
But it’s like, I imagine, like, you know, government that has like machines still running on das right from

00:24:27.840 –> 00:24:35.850
Like 30 or 40 years ago. I mean, I guess. Are there any interesting things there within Google because, I mean,

00:24:36.840 –> 00:24:50.880
You guys have built kind of and maybe you can or can’t talk to this, I don’t know, but it’s like you built like this layer upon layer upon layer of different search and processes and everything. So I mean, are there other

00:24:52.860 –> 00:25:01.650
Kind of like an old legacy system there that nobody really understands anymore. I mean, you have those types of issues within Google.

00:25:04.110 –> 00:25:11.130
I think we don’t have an issue of systems that no one understands. But we do have a bunch of legacy systems, but interestingly enough,

00:25:12.570 –> 00:25:27.210
Not necessarily in the core product. So, for instance, for search. A lot of the stuff gets ported or Britain or move to new infrastructure. So like we do not have anything running on das or something like that, because our infrastructure team basically has certain migration windows.

00:25:28.290 –> 00:25:42.060
One of the reasons that Search Console did like a huge move and the entire new search console came about was that they had to a bunch of the infrastructure that they were running on was turned down in September.

00:25:42.600 –> 00:25:43.080

00:25:43.110 –> 00:25:43.530
So it’s like

00:25:44.850 –> 00:25:59.460
That we don’t have a choice in two years time this infrastructure exist anymore. So we have to move to something else. And then they have to migrate and it’s like, well, if we are touching this code anyway. We might as well. Rethink a bunch of stuff and then like redo our

00:26:01.470 –> 00:26:05.490
Now look, so that’s why it has changed quite dramatically.

00:26:07.020 –> 00:26:15.270
But on the other hand, we have a bunch of software that is not necessarily considered like crucial or necessarily update

00:26:15.810 –> 00:26:23.010
So for instance, we are not really using it internally. So developers these days are all engaged and running happily ever after.

00:26:23.940 –> 00:26:33.270
I think like some people are still using the Curia but it’s pretty much like a game has has shifted to get and everyone’s using get full version controlling software.

00:26:34.140 –> 00:26:46.500
And software source code and we’re not, we internally have a system that’s called Google three and it’s running on. I don’t even know how the thing is called that it’s actually running on

00:26:47.280 –> 00:26:55.200
And then there’s like a bunch of of client infrastructure on top of it and there’s like a layer of abstraction that if you like some sort of access, but that’s

00:26:55.890 –> 00:27:06.000
terribly complicated to use some of the other layer of abstraction on top of it, which is now being dedicated to the new one being put in place. And I’m like, honestly. To me, the different

00:27:07.590 –> 00:27:16.710
Every creating the workspace in one of the systems. And I’m like, I don’t know what any of this means for me. Nothing else changes the interface stays the same. It’s just like, yes, please.

00:27:18.330 –> 00:27:28.290
You could thing, whatever that means, like, I’m not touching it. But I guess like the software engineers, probably, who really touch it every day up probably very excited about the new thing.

00:27:29.160 –> 00:27:39.750
But yeah, so like we’re stuck with the internal systems and they work. All right, we have our own bug tracker that I’m also not interacting with because I’m using a different for

00:27:41.610 –> 00:27:45.360
For a bunch of like legacy stuff that exists, and I think

00:27:46.440 –> 00:27:53.520
If I were to name one thing of software that hasn’t really changed much. It’s probably the robots txt

00:27:57.630 –> 00:28:07.890
I think that’s mostly like it might have have expanded or like been updated, but it’s I think it’s pretty much the same code as far as Gary goes

00:28:10.020 –> 00:28:13.740
To check with Gary If that’s true, but I think that’s like thing.

00:28:14.760 –> 00:28:15.120

00:28:16.170 –> 00:28:22.440
So before we jump into into JavaScript, which I know JR’s chomping at the bit on

00:28:22.770 –> 00:28:23.880
I have to ask one

00:28:24.390 –> 00:28:31.140
Thing. I’m your hair is amazing. And it’s kind of your, your signature. Where did it. Where did

00:28:31.530 –> 00:28:31.920

00:28:33.150 –> 00:28:34.320
Oh, so

00:28:35.640 –> 00:28:36.240
The hair.

00:28:37.440 –> 00:28:48.600
So in my youth I wanted to try out blue hair and I went to address and I had to die, blue and it didn’t turn out purple and it was not gray.

00:28:49.980 –> 00:29:00.780
I wasn’t happy with it. So eventually I want to give it another go. But I couldn’t really like I went to the back of my head, never really thought about it until a co worker of mine. Before I joined Google actually

00:29:01.290 –> 00:29:07.500
co worker of mine came into the office with like beautiful brightly colored rainbow hair. And I’m like,

00:29:08.550 –> 00:29:23.400
Oh my god, I’m so envious. This is amazing. This is really beautiful. Where did you get it done. And she’s like, I’ll just, you know, here in Zurich in this one place. And I’m like, oh my god. Does that mean that we have a hairstylist available in Zurich that can

00:29:25.710 –> 00:29:36.600
And but I didn’t have long enough here for it to be really like the to get like a gradient or something you have to have like some certain I guess like this is probably the minimum length that you should have

00:29:39.150 –> 00:29:45.510
And I wanted gradient. So like, that means I need to grow my hair which is annoying because there’s a certain

00:29:46.740 –> 00:29:56.490
Length of here between like here and there probably was like super annoying because it’s too short to put it behind the ear, but it’s long enough to get into your eye and ah

00:29:56.940 –> 00:30:02.040
That was just very, very annoying. A very annoying period. But then once it was long enough.

00:30:02.490 –> 00:30:07.860
around September last year, I decided. All right, now it’s time. Let’s get, let’s get this done.

00:30:08.160 –> 00:30:18.090
And then I looked around and Instagram. A little bit for inspiration of, like, okay, cool. So this green blue thing is actually quite beautiful. So I’ll try that. And then I tried that and then

00:30:18.690 –> 00:30:30.480
Pretty great. But then, our producer said, Actually, no, hold on. That was, that was the first time that I read colored my hair and to like a really, really colorful bunch without a gradient that

00:30:30.990 –> 00:30:41.070
Looked okay but wasn’t really what I was in for. And I’m like, Okay, I have to redo my hair. Anyways, because I I went diving and seawater basically sucks the color of your hair.

00:30:41.160 –> 00:30:42.180
That’s just what happens

00:30:42.270 –> 00:30:53.010
I was blonde afterwards. I’m like, I’m I looked like a surfer. Boy, I still look like a surfer bar on my certification card. And I’m like, and I have to get this color and then I

00:30:53.850 –> 00:30:59.250
Said that in the office allowed and our video producer and like do not do what you did last

00:30:59.940 –> 00:31:05.010
Time. Do not do the blue green thing. And I’m like, Oh, why not. Oh, we’re going to record next year. We’re going to record a bunch of stuff.

00:31:05.460 –> 00:31:12.780
On Sunday, not this year we’re going to record a bunch of stuff in front of a green screen if you have green in your hair. We have a huge problem. And I’m like, haha.

00:31:13.230 –> 00:31:23.910
Right so green is out of the question. I wanted to do, blue, green, what other gradients with blue look good. And then I saw this amazing gradient between blue and pink.

00:31:26.250 –> 00:31:32.070
And I’m like pink is a bit of a bold move, but I think, why not. And then I talked to my hairstylist.

00:31:33.810 –> 00:31:40.920
He’s like something that I will try as well if like, that sounds reasonable. Let’s do it. And then we did it. And then it came out like this. And I’m really happy how it turned off.

00:31:42.960 –> 00:31:44.610
So we’re thinking of doing some Google colors.

00:31:45.900 –> 00:31:46.350
Blue that

00:31:46.620 –> 00:31:48.750
Entails green green is the

00:31:49.110 –> 00:31:50.400
Green is the hard part. Yeah.

00:31:50.850 –> 00:31:56.190
The green is the issue well producer would be like, why did you do this.

00:31:57.450 –> 00:31:59.730
The green just yell, right. So this is the smallest part

00:32:02.130 –> 00:32:02.550

00:32:04.290 –> 00:32:05.730
But yeah, so that’s

00:32:06.810 –> 00:32:07.140

00:32:07.230 –> 00:32:11.700
So we did a lot about your history and getting into Google

00:32:12.930 –> 00:32:26.370
I mean, we did want to talk to you a little bit more about like JavaScript and SEO and things like that. And I came from an old SEO background where I pretty much told all my clients, stay away from JavaScript. I

00:32:26.400 –> 00:32:28.920
Like the JavaScript. Great for functionality and things like that.

00:32:28.920 –> 00:32:40.530
But, you know, running JavaScript like if you want to rank well stay away from JavaScript and and there’s still a little bit in me that says that I know that I mean the Times have changed Googlebot has changed.

00:32:41.640 –> 00:32:46.470
I mean, up to a couple of years ago, I think I was still right by recommending staying kind of away from the things

00:32:47.640 –> 00:32:58.710
And I still think a lot of people do it wrong. Right. So they’ll come in and they’ll use a framework, you know, doesn’t matter which one it is. They implemented poorly. We don’t really get a great

00:33:00.210 –> 00:33:06.360
Experience, maybe we get a good user experience, but Google does not get a good user experience because URLs don’t change or something like that.

00:33:07.770 –> 00:33:15.600
So I wanted to just chat a little bit about this and and kind of what are some of the ways that we could be using JavaScript.

00:33:16.560 –> 00:33:27.210
Whether JavaScript frameworks and stuff that can be friendly for, you know, SEO. In general, I know with the new evergreen Googlebot. We do have a better JavaScript rendering engine.

00:33:28.140 –> 00:33:34.920
So I guess like over the next kind of rest of this podcast is figuring out what are some of the do’s and some of the don’ts and

00:33:35.610 –> 00:33:43.050
Because I want to evolve. I want to thank everybody wants to use like JavaScript frameworks and awesome. And it’s like, I don’t want to be scared of

00:33:43.530 –> 00:33:51.870
You know, hey, we need to use, you know, pre render IO or something like that to be able to get what we need, because I’m in the job of traffic.

00:33:52.260 –> 00:34:07.320
And, you know, web designers and developers are in jobs, making website. Cool. So I want to unite with them instead of fight with them and figure out, like, what’s the best way we can do this. So what are some of the biggest myths about right now with JavaScript and SEO that you know

00:34:09.660 –> 00:34:19.020
I’m so like. So the first thing that makes me very twitchy is mental I do not use JavaScript or to use Java.

00:34:20.880 –> 00:34:32.670
For everything I’m in this fantastic position where I’m telling developers will like JavaScript all the things and then like, hold on, not a great idea.

00:34:33.330 –> 00:34:42.600
It’s one tool that does certain things very well and does not do other things. Well, so like you have to pick the right tool for what you’re trying to accomplish.

00:34:42.990 –> 00:34:56.940
And then on the SEO side SEOs like JavaScript terrible and it’s like the worst thing ever and do not touch it, you should stay away from JavaScript. If you ever want to rang and and like, hold on. It’s a tool. It can be used for good. It can be done right.

00:34:58.980 –> 00:35:01.200
And then you can get interesting and good results.

00:35:02.280 –> 00:35:10.020
So like, I mean, in between the two camps, it seems, and sometimes that is quite stressful, especially when you get yelled at over the Internet or in person.

00:35:13.080 –> 00:35:21.300
And these, the truth is somewhere in the middle right where I get very nervous when people are like doing

00:35:22.920 –> 00:35:28.590
Everything good just because they it’s more convenient for them as developers, it’s like oh yeah I

00:35:28.920 –> 00:35:36.750
I learned how to do this with this framework, and then they just like do it every single time no matter what they are trying to build. And I remember vividly.

00:35:37.050 –> 00:35:55.680
A situation where I wasn’t a consultant role, I mean like I was in a company, but we were not the team building the thing we were the team consulting the other teams with our experience and we caught wind of a less experienced team of developers were tasked

00:35:56.760 –> 00:36:02.430
With building the new company website. And that was a off the shelf.

00:36:04.920 –> 00:36:23.100
dandy website there was literally nothing dynamic on it, nothing. Nada. However, they have build web applications single page applications with a certain framework. So this team now saw the opportunity with this new project to finally get on the train, and also

00:36:24.930 –> 00:36:32.520
Use this amazing framework and they they were so fast to building the website using that framework. Now, like, yes, but you haven’t really used any of

00:36:33.210 –> 00:36:45.870
The frameworks functionality, because what you’re building is not a single page web app or you’re building is a website’s literally that it’s a website where people come for information they click on the link and then they go

00:36:46.890 –> 00:36:57.450
That’s like they click on that link on the page loads, they get the information that’s it. That’s the entire attached and that we need to go. Yeah, look at this. Now we have like these transitions between the pages. And I’m like,

00:36:58.590 –> 00:36:59.130

00:37:00.540 –> 00:37:11.700
I see that. But we have so many problems and there were so many issues with this SEO being one then like they ignored our advice and then the website tendons.

00:37:12.060 –> 00:37:23.070
Search and then everyone got angry and then look turn to us like why didn’t you prevent this. We like we did isn’t like we tried. They just ignored us and overrode our decision. So, good job.

00:37:24.090 –> 00:37:37.320
I guess every SEO there has a horror story like that where you would like work with a client and then they go, oh, with whatever they think was the right thing to do based on developers experience and

00:37:38.580 –> 00:37:51.810
Developer Experience is important. Don’t get me wrong, like if you are forcing something horrible O’Neill developers. They gonna quit and eventually, there’s a certain self selecting mechanism. And then you might not end up with the people who didn’t necessarily want up with

00:37:53.820 –> 00:38:02.490
And that’s, that’s not great either. And it’s not great for your users is no great for us not great for the developers. Everyone loses. Not a good idea, but

00:38:03.540 –> 00:38:09.990
You have to understand what you’re trying to build and then you have to have tools to accomplish what you’re trying to accomplish, and I think

00:38:11.220 –> 00:38:17.940
These days, a lot of people. I like the JavaScript made it a lot easier for a lot of people to build cool stuff without having to wait for

00:38:18.510 –> 00:38:22.350
Some back end infrastructure to catch up with it or to

00:38:23.040 –> 00:38:32.850
I don’t know, like using just using the latest and greatest browser features all that is amazing. And we lower the barriers for people to make stuff on the web. And I think that is amazing as well.

00:38:33.510 –> 00:38:46.770
It’s just that I would wish for the people who are making the things that people are picking up like JavaScript frameworks to be a little more considerate in terms of what they are building for whom

00:38:48.270 –> 00:38:55.470
And you can observe that in the react world next Jess and Gatsby, they actually care.

00:38:56.850 –> 00:39:01.470
A great deal, they are trying to help, especially smaller Companies, and startups.

00:39:02.640 –> 00:39:11.700
To quickly put something on the web and they understand the discovery is an important aspect of putting something on the web, right, and then you can like

00:39:12.870 –> 00:39:18.540
Does it starts with disagree or argue and agree on what is a non functional functional

00:39:19.500 –> 00:39:35.130
Required requirements for instance you can say, like, well, if it doesn’t display anything within. I don’t know. Let’s be conservative within 10 seconds and it’s broken, but you can also say if it’s not showing up in

00:39:36.180 –> 00:39:37.410
Course, it’s broken.

00:39:38.490 –> 00:39:45.930
Because we need that discovery, if we’re just building for ourselves, then we’re not building for anyone outside of this office. And then what’s the point

00:39:46.230 –> 00:39:58.980
And I think a lot of people miss understand that, or just discard that too early. Like I add as SEO is like an add on that you put on at the end of the game, similar to accessibility as well or performance greed.

00:40:00.090 –> 00:40:06.360
Oh little version. And then we’re going to make it great never happens. And I don’t understand, like, we don’t do that as well.

00:40:08.130 –> 00:40:13.830
I like all your car. And then we just like add some more metal sheets to it. And then it’s going to become a Corvette.

00:40:14.070 –> 00:40:34.200
That’s not happening, we just build it right from the beginning, or we build a thing a prototype doesn’t work so away build again. I don’t know why we think that was software, we can just like bolt on parts and then it’s going to be fine. And I think like the biggest don’t is to not consider

00:40:37.080 –> 00:40:45.300
At least content rendering. And when I say server side rendering. I don’t mean a like dynamic rendering. That’s a workaround. We have never said it’s not a workaround is a workaround.

00:40:46.350 –> 00:40:55.170
Or be entirely server side rendering come out with a static website not none of these are necessarily the things that you need to do what I want people to do is

00:40:55.740 –> 00:41:02.100
Reduce the amount of JavaScript that you run in the browser. For the very simple reason that JavaScript is

00:41:02.880 –> 00:41:13.710
more expensive than anything else on your website. That’s just a fact 100 kilobytes JavaScript are probably taking longer to actually get to the end result than 100 kilobytes of image or video

00:41:14.010 –> 00:41:24.270
That is because the entire JavaScript has to be downloaded and then it can be parsed and then it can be executed and then whatever it does actually come to fruition, whereas HTML can be

00:41:26.100 –> 00:41:38.250
Basically, as it arrives. We don’t have to wait for the entire HTML to come down then powers it and then this player. So there’s a fantastic article on the developer

00:41:40.590 –> 00:41:48.780
Jason and Addy, I think products called rendering on the web that explains, like the spectrum of options that you have and why

00:41:49.110 –> 00:41:52.380
Entirely client side rendering. Everything is not necessarily a good idea.

00:41:52.800 –> 00:42:07.380
That being said, it’s not necessarily a bad idea because the short answer to that question is, it depends. I know everyone hates that answer, but it’s true, if what I’m realizing is a but but it’s it’s true. That’s the thing, like so, whenever we are struggling with

00:42:09.120 –> 00:42:17.640
An answer is it depends. And there’s like much more context needed, but we can’t discuss this for an entire day. I can’t, like, sit here with you all.

00:42:18.060 –> 00:42:24.120
For the next week and have a workshop on like what we are trying to do for this one specific customer of yours.

00:42:25.110 –> 00:42:37.320
What we can do those two, I can say, if it’s a very highly interactive dynamic application with a lot of interaction, then yes yes client side rendering is your thing. I worked at a startup before that.

00:42:37.950 –> 00:42:49.200
Did like an interactive 3D rendering of spaces as in like offices or apartments or something that is super interactive, there’s not much you can do in terms of server side rendering

00:42:49.920 –> 00:42:54.510
But even they did server side rendering. That’s the thing. And then people are like, how, how does that go

00:42:55.860 –> 00:43:07.140
Like image for each of these apartments or offices or whatever, where you at least see like the rough idea, get a rough idea of how the space looks like.

00:43:08.520 –> 00:43:22.890
All we can do, and we should probably do is we should have the server give out an HTML file that has that image and then as the JavaScript triggers. We can then progressively load and render the rendering what we did. And that was fantastic.

00:43:24.660 –> 00:43:32.790
So like server side rendering is dependent on what you’re trying to accomplish. But think outside of the box and trying to basically go like

00:43:33.150 –> 00:43:48.510
What’s the core value that I’m trying to get across. What is the core, the core thing that I need my user to do and then what are all the fluffy things around it. There was a thread reason recently on Twitter where a very popular.

00:43:49.170 –> 00:43:55.560
CSS developer and and coach and speaker web developer really

00:43:56.520 –> 00:44:03.300
Was like this this image website that shall go unnamed for this podcast but this this image website. Its purpose is to show me an image.

00:44:03.510 –> 00:44:18.540
What it does is it downloads. I don’t know how many megabytes of JavaScript and then hundred element or hundred network request in it starts downloading the image so that it does 100 network requests before it starts, even down even trying to download the frickin image.

00:44:19.740 –> 00:44:33.300
And that’s your core purpose as an image uploading and sharing website your purpose is to show me the image that I clicked on not load JavaScript. So if we can do this and then then it

00:44:35.190 –> 00:44:42.570
Comes a balance and user experience. I would always say user experience trumps developer experience that doesn’t mean that we can completely disregard that.

00:44:42.990 –> 00:44:46.350
And there are tools that give you the opportunity to have a

00:44:47.190 –> 00:44:54.810
Good developer experience while not having a good user experience. We’re just not doing it because developers are like, oh, this is fantastic. I just installed the COI tool.

00:44:55.020 –> 00:45:05.430
Run five commands then Brandon right my actual code and my tests. And hey, here we are. We have 100% test coverage on things that I build and we have done all the feature requests.

00:45:05.880 –> 00:45:14.310
Everything is in. We have a few bugs that we need to fix, but the website is there and then like it’s not because I need a very recent.

00:45:16.320 –> 00:45:21.540
On it in a reasonable amount of time, especially if you’re like in Germany or somewhere then like them.

00:45:23.190 –> 00:45:23.460

00:45:25.500 –> 00:45:28.290
It’s broken. And then I go, I don’t think so.

00:45:30.060 –> 00:45:48.390
So like the biggest the biggest don’t is just blindly to whatever is the easiest try to figure out what is a reasonable tool for the job. And how can you incorporate that into what you’re doing. Now I know a lot of people are stuck with existing projects and then obviously

00:45:49.710 –> 00:45:53.220
Switching something that is client side rendering to server side rendering

00:45:55.230 –> 00:45:59.460
In some areas, I’m aware of it. I still think it’s full of the best investments, you can make

00:46:01.140 –> 00:46:02.520
Server side, the blind side.

00:46:06.990 –> 00:46:09.720
At least not entirely relying on client side rendering

00:46:11.490 –> 00:46:25.260
So, so, like, what, what I would, I think, is probably the best trade off is to have some server side rendered primary content for the image sharing portal that would be the frickin image that I want to look at

00:46:25.830 –> 00:46:41.370
And then use the JavaScript to load all the interactivity afterwards until you do risk a little bit of a situation where a bunch of the interface might be disabled but at least like the core value is delivered and then everything else comes later.

00:46:42.840 –> 00:46:43.830
And that’s possible.

00:46:45.120 –> 00:46:53.010
Yeah. But the interesting thing for me is like you had mentioned something I think it was in a talk with john

00:46:54.210 –> 00:47:03.060
Few months ago that I had never thought of that before but like with HP right you have 1000 different metrics that you can look at. Right.

00:47:04.200 –> 00:47:05.670
But, you know,

00:47:07.050 –> 00:47:12.360
When trying to think your point was that there’s no single number to look at. Right.

00:47:13.500 –> 00:47:22.650
But that yeah if you have something that you’re going to need to interact with and it’s time to interact. If you have something that you’re wanting to read and it’s a first content will paint right

00:47:23.790 –> 00:47:27.120
Which should be your primary metric to to look at

00:47:28.290 –> 00:47:37.500
The thing with JavaScript. In general, for me, is that, you know, it’s the shiny object. And I know it’s it’s it’s

00:47:41.760 –> 00:47:47.640
It’s been around, right. It’s not the shiny new object it’s but it is the shiny your object. Right.

00:47:48.120 –> 00:47:58.080
And I think, you know, I remember 10 years ago when I had clients come to me and asked, like, hey, should I do WordPress or Drupal. Right. And I’m like, well, there’s literally like

00:47:58.650 –> 00:48:06.030
A WordPress developer living on every street corner right so that may be the one that you want to go to

00:48:06.780 –> 00:48:20.010
Do you have any advice for that because I’ve had clients that have, you know, JavaScript is a pretty rapidly changing ecosystem. Right. I think there are some obviously winners out there right now but

00:48:23.850 –> 00:48:34.470
Do. Yeah. Do you have any advice for like the company’s deciding on what to lock into now. Right. Yeah, as you said earlier, you know, their developers are going to come with what they’re used to.

00:48:34.620 –> 00:48:47.970
Right. I’ve already developed in this and I had lunch COI get everything going right, but that may that that’s that’s a decision driven driven upon their familiarity, not what is best for thinking for the company.

00:48:48.540 –> 00:48:55.230
That depends on the experience of your developers like if your developers are good and they don’t make it about that. I’m allowed to

00:48:55.980 –> 00:49:15.570
Something they so my best recommendation is a little more elaborate as well. So what I saw, I was I was literally in that situation, a couple of years ago, a the company I worked for decided to completely redo the bad client that they had

00:49:16.950 –> 00:49:30.450
And then I was, I was like sitting there and looking at the other developers in the team. And we’re like, okay, we need to figure out what we’re going to go every one of us has a certain preference and we have it.

00:49:31.920 –> 00:49:42.990
Here. So let’s figure out first, before we look into this one other criteria. What’s the criteria that we look at in terms to like what makes a thing useful.

00:49:43.470 –> 00:49:52.290
And then it’s like, Okay, so what’s the community adoption looking like how simple is it to operate with things that are not the thing

00:49:52.860 –> 00:50:03.090
And how easy it is to like deal with the the the tooling as well itself as a like, do we have to learn a completely different set of tools do we have to

00:50:03.990 –> 00:50:11.250
Deal with it with a completely undocumented new thing that is just evolving or do we have something where we can already like

00:50:11.640 –> 00:50:30.090
See that we can build upon it and there is prior art that we can look at this ecosystem activity and we looked at the, the three things that we thought were probably that we looked at more than just three frameworks, but we came out with a short list of three frameworks.

00:50:31.110 –> 00:50:43.440
One was actually for Angular JS, the old one and get her, which was the new thing up and coming. It wasn’t it, I think it was the release candidate at the time.

00:50:44.910 –> 00:50:49.380
Then we had react and then we had viewed as

00:50:51.270 –> 00:50:56.520
For the team that we worked with. And this is, this is where the independence comes in right

00:50:57.390 –> 00:51:07.140
The team that we worked with most of them were experienced JavaScript developers, but they haven’t really worked with any framework before and they were stuck in the jQuery back backbone world.

00:51:07.500 –> 00:51:19.620
And for them, it was the big jump. So that was what was a consideration that we had to make we already knew from experience that a bunch of them were really, really, really reluctant to working with

00:51:21.630 –> 00:51:28.740
Languages. That’s okay. There’s pros and cons to type languages. That’s, that’s a completely different rabbit hole to fall into

00:51:29.190 –> 00:51:40.080
And it was just the observation was that we knew that the team that we would be training on the thing that we go with would not enjoy working with the type system and I typed language.

00:51:41.670 –> 00:51:54.450
And then we needed reliability and then it’s like, Okay. So Angular. The old Angular is basically just continued with no migrate clear migration path to the new thing. The new thing isn’t done yet.

00:51:54.840 –> 00:52:09.450
As an like they they are not ready at this lots of documentation still missing there was, I mean that was like years ago now. That’s a safe place to make. It’s just the choice that you need to make deliberately rather than accidentally right

00:52:10.590 –> 00:52:17.640
So like they were not ready. So these two options fell off the cliff immediately. So like Angular was out from the get go for us.

00:52:18.330 –> 00:52:22.920
That doesn’t mean that it’s not a good framework. It’s just, it didn’t fit our team because it comes with TypeScript.

00:52:23.190 –> 00:52:33.240
Yes, you can use Angular two without TypeScript. But then you have to work around a bunch of stuff that is not necessarily best documented and not necessarily a well lit path as you would say

00:52:33.720 –> 00:52:44.580
Right. So instead of like leading our developers into a dark corner of the park. We’re like, okay, so if that’s not there. Well, the path as they say the well lit path is the type language that’s a no no for our

00:52:46.500 –> 00:52:53.070
Other person goes next thing. And we knew that we could do something successfully without TypeScript, because we have done it beforehand so

00:52:55.020 –> 00:53:05.430
It’s like okay right so then we have react and Vue JS and then we looked at that as like okay so react has a lot of popularity. It is being pushed by Facebook, which is a large player.

00:53:06.990 –> 00:53:16.050
It is also doing things its own way as in like, yes, it is very interoperable with everything web, but it has its very own idioms.

00:53:17.010 –> 00:53:35.520
Yes, you can use it without JS X. But again, the well lit path is to not use it without J sex. And so we’re like, Okay. Do we are we are we willing to make the commitment to that specific tooling ecosystem and the entire community that is behind it, yes or no, there were about

00:53:36.840 –> 00:53:40.470
Things, and then we like build a few prototypes, actually, because we weren’t sure.

00:53:42.510 –> 00:53:50.010
Will prototype was, as I said, an experienced developer available for this. So like they they helped us build a prototype.

00:53:51.120 –> 00:53:53.850
We try things out and then we noticed that integrating

00:53:54.540 –> 00:54:10.230
Certain thirds not straightforward. It is possible. It’s just not straightforward because reactors things. It’s all the way in certain ways, or at least was in the time we’re evaluating it so it’s like okay yeah so react as a tricky one. So that what

00:54:11.550 –> 00:54:25.290
About you do this. Oh us just builds upon banner done and then standard web component technologies. So like, yeah, that’s not a problem. We could integrate everything that we needed to integrate quickly and easily and

00:54:27.570 –> 00:54:38.070
And we gave react and Vue to a few of the developers on the team. And it became clear that they prefer to work with you view.

00:54:38.580 –> 00:54:41.040
Yeah, and I’ve heard it when I hold, we were

00:54:42.420 –> 00:54:42.870

00:54:43.320 –> 00:54:44.880
I’ve heard of it. Yeah, I’ve heard a lot

00:54:46.290 –> 00:54:50.040
Of preference for view lightly just because of the ease

00:54:50.400 –> 00:54:58.650
But, but that’s not the that’s not the lesson that’s not the lesson I want people to take away from this, the lesson I want to take people away from this is like evaluate really spend time

00:54:59.310 –> 00:55:08.670
Give it the go interview the team that you would have working with because if they don’t like the tool you’re fighting an uphill battle.

00:55:09.720 –> 00:55:19.020
If they are making rational arguments which can happen because we all humans, we have our feelings as well. We are basically houseplants with complicated feelings.

00:55:21.000 –> 00:55:27.990
If they have a rational problems or our fears or or resistance is then you have to work out.

00:55:29.610 –> 00:55:40.680
Those things I be considered folks at potentially dealing with the type language issue. If it wasn’t for the other factors that that got Angular off the table. We might have

00:55:41.580 –> 00:55:59.760
Would have spent time on educating them on type languages, but the the thing was quite clear for us was that viewed as is the tool that we can be successful with in this given project in the given constraints of the project and with the developers that we would be working with

00:56:01.050 –> 00:56:09.630
Evaluate these things, find your constraints, find your cursor characteristics that you need to deal with and take the time to figure out what is the

00:56:11.580 –> 00:56:18.240
Will that fit right if you are building a skyscraper, you probably use different tools than if you’re building a shed.

00:56:19.830 –> 00:56:31.620
Right. Yeah, I think, I think that’s where the, I mean, obviously you’re very sophisticated with development and very knowledgeable about all the different aspects.

00:56:33.390 –> 00:56:42.720
I guess that’s one thing that that concerns me a little bit is because you know we’ve had clients before coming to us that have made decisions to

00:56:43.170 –> 00:56:53.160
You know JavaScript is cool, right, that’s it. Like it’s seen as the next thing, right, if you’re developing in PHP. Obviously that’s a really old language or Ruby, it’s just it’s seen as old

00:56:53.610 –> 00:57:03.390
JavaScript is new. Right, so I guess that’s my commentary, there is. I’m not sure that there’s a clear definition of that focus on saying, you know,

00:57:03.600 –> 00:57:06.990
Oh yeah, you know, there’s all this cool stuff. And it’s like, Let’s go for cool

00:57:07.230 –> 00:57:11.070
But let’s not yeah actually say, what do we mean right

00:57:11.370 –> 00:57:18.480
It is a bubble. I mean, look at it from the other side. Everyone’s like, ooh, PHP, is terrible and dad or

00:57:19.620 –> 00:57:23.400
Press is like not great 30% of the websites on WordPress.

00:57:23.790 –> 00:57:27.600
Right, it’s just the reality of it. I think like the big it’s, I think, if I remember

00:57:29.640 –> 00:57:36.930
It’s like the biggest content management system, there is in terms of sites that are using it and

00:57:38.310 –> 00:57:52.590
Yes, sure that there are websites that are built on the JavaScript frameworks and the latest and greatest. But yeah, it’s, it is a bit of hype involved in this and I’m looking forward to see when this hype comes down, back to Earth and a little bit

00:57:53.310 –> 00:57:53.670

00:57:54.900 –> 00:58:03.990
And yeah, on the other hand, not everyone’s going to fall into a hole of terror and pain by using a little bit of JavaScript framework, if they

00:58:04.710 –> 00:58:13.110
Were just using it right but that’s something that a lot of people skip so if if they make the decision because developers want the new shiny, then at least come with a with a

00:58:13.590 –> 00:58:21.780
Array of questions prepared as in like, okay. So do we know how this performs on an old phone, have we run this on HTML.

00:58:22.920 –> 00:58:32.760
Webpage tests. Have you seen how webpage tests speaks about this application that we built here. Do we know if SEO is going to be a problem that’s that’s the websites.

00:58:33.270 –> 00:58:40.890
That they create get rendered. Is it, is there anything that we can look into, like, are there any any showcase websites that we

00:58:42.990 –> 00:58:43.620
Know, you know,

00:58:44.070 –> 00:58:55.680
How do they perform across these these things. How familiar are we with the like using these tools at scale, because you probably not going to build a single

00:58:56.550 –> 00:59:07.950
Page app with like five different views are probably going to build something larger and then normally developers find that they don’t have an answer to sessions but developers are really good at researching and finding

00:59:09.090 –> 00:59:11.160
Any data. So like

00:59:11.250 –> 00:59:14.850
Right then build the prototype. Let them try things out. Yeah.

00:59:17.010 –> 00:59:26.880
The question a little bit about kind of AMP and JavaScript. So, you know, as an SEO. Google pushes AMP, you know a lot just, you know,

00:59:27.570 –> 00:59:33.480
Mobile speed, things like that. And going from the performance side like I was anti AMP most of my life.

00:59:34.080 –> 00:59:45.510
I’ve been coming around the corner. Now, since it has been it’s been growing. And one of the things I know with like App Script, you can add in now JavaScript libraries and things like that to it, where before it was locked down

00:59:46.260 –> 00:59:56.220
I didn’t know if there’s anything like should I still be kind of hesitant or should I like really think that, you know, with am script and things like that that we should be going full bore on things like

01:00:00.060 –> 01:00:03.780
So I have a official opinion and I have my personal

01:00:06.810 –> 01:00:20.310
This really tricky one. So I think amis great because it showed that if we are not doing stupid shit, then the web can be faster. Great. So, and what it has done is, it has given

01:00:21.330 –> 01:00:23.700
Developers and

01:00:24.840 –> 01:00:35.760
A lever or some leverage to say like, look, if we want to do this that we can’t do this kind of stupid shit and this kind of do super cheap because then we would not be compliant.

01:00:36.390 –> 01:00:48.300
So I think for that it is great. And it also tries to solve a lot of problems that are really, really, really hard to solve. So I’m excited to see where I’m going. And I would just

01:00:49.710 –> 01:00:58.740
Do with the out, give it a go have a look at what you can do with it and have a look at where the weaknesses are, because m is a tool.

01:00:59.040 –> 01:01:12.030
And it has weaknesses and it has things were not excited about that. I’m not excited about. I understand where they come from. They are not evil spirit or whatever. It’s just like a bunch of it is just really, really tricky engineering

01:01:13.650 –> 01:01:23.100
And some of it just can’t be done that easily. And I’m like, okay, I understand that I value the engineering effort that we put into this and I continue to put into this

01:01:23.400 –> 01:01:31.740
And I value what we’re doing and how we’re trying to get as much of the open as possible. I do understand the backlash just as well.

01:01:34.200 –> 01:01:38.880
But yeah, I can’t. There’s no simple answer like yay or nay. It’s just like

01:01:40.740 –> 01:01:41.910
It’s the tool, it can

01:01:41.910 –> 01:01:50.370
Use this way or that way. And if it fits what you’re trying to accomplish and go for it. And I think, like, especially if you’re dealing with publishers. I think publishers are

01:01:50.970 –> 01:02:02.130
The main target audience for it. If you asked me if you would ask someone from the emptiness like know everyone is the target audience and is the greatest thing ever. And that’s that.

01:02:03.390 –> 01:02:18.960
Is good because that tells me that they believe in what they’re doing and they can they can be proud of everything they do. It’s just, it’s a tool. It’s not the next web, it’s not going to replace the regular web it’s using web technologies.

01:02:18.960 –> 01:02:19.410

01:02:19.500 –> 01:02:20.820
A good decision, but it

01:02:23.130 –> 01:02:24.840
Depends where it’s headed

01:02:25.950 –> 01:02:32.070
The real issue. I always had with it was that I spent so much time getting away from like mobile subdomains to then get

01:02:32.370 –> 01:02:42.360
It have appt that say, Oh, no, we do need to versions of your site. Again, which I think now you know amps getting to a point where you can create your whole desktop and mobile format into it.

01:02:42.960 –> 01:02:50.340
Yeah but but I agree. I think some of it is one reason I kind of like to push it with some of my clients is to remove some of that stupid stuff that

01:02:50.640 –> 01:02:59.310
Slows the site down like why am I losing five megabytes of JavaScript for your homepage. It has no functionality exams for me to get to your deeper pages right so

01:03:00.660 –> 01:03:02.400
And I think app solve some of that it’s

01:03:02.400 –> 01:03:05.160
A fantastic shortcut right across that. Yeah, exactly.

01:03:06.570 –> 01:03:15.870
So I did want to start kind of wrapping up the the episode. But before we, before we let you go, Martin I know JR has one last question.

01:03:18.690 –> 01:03:21.780
So the dreaded other error.

01:03:23.130 –> 01:03:26.160
Responses in Search Console.

01:03:28.290 –> 01:03:37.470
For well is essentially redirection error and other error when you’re looking at page resources and Search Console.

01:03:38.850 –> 01:03:55.350
We had a we have a client that, you know, all of a sudden, you know, we were rendering pages and Search Console and all. They’re all broken right there’s like this huge icon at the top right and all the CSS and styling and then we found out that

01:03:58.440 –> 01:04:15.180
That they were essentially you know cash busting and then just throwing away the old resources right when they catch up the which meant that when Google came back to render. They were rendering with for for resources and everything was broken. Right.

01:04:16.290 –> 01:04:28.380
But trying to get like something that I can put in front of a developer and say, here’s the issue right is different because it’s happening on Google servers. And then we see kind of a little window into the US.

01:04:29.190 –> 01:04:29.610

01:04:29.940 –> 01:04:31.890
But going through that process.

01:04:33.000 –> 01:04:46.650
It was a lot, right, because you know with the new render, but the, like, I think it used to be when I would like I always had a version of Chrome 41 right and then

01:04:47.220 –> 01:04:58.800
On on my laptop right I’ve had that forever, right, and then I could pull up something and I could see an issue and Search Console. Right. And I could load it in Chrome 41

01:04:59.190 –> 01:05:12.750
And the console errors were the same, right, I’d be like, Okay, and then you can debug that problem. From there, I think that’s been a little more difficult with the new Search Console, because there are different errors like

01:05:16.710 –> 01:05:23.550
web socket connection errors, but the most mysterious errors for me are

01:05:25.530 –> 01:05:41.550
Like the other errors, right, and the redirection errors, right, and redirection errors happen on Google scripts. Right. I think it’s just the three empty redirection is calling an error. Right. Can you talk at all about those and how

01:05:42.480 –> 01:05:48.480
You, I guess, SEOs or developers that are wanting to use this tool or

01:05:49.650 –> 01:05:50.220

01:05:53.160 –> 01:05:54.510
The scope of rich

01:05:55.530 –> 01:05:56.040

01:05:57.330 –> 01:06:05.760
Content rich results or the mobile friendly test when they seeing those things like, what can they ignore what could they possibly be.

01:06:07.170 –> 01:06:17.040
What would they look at or should or they just fine and Google’s just saying, hey, there’s some stuff here. But we don’t need that right care. Does that make sense.

01:06:17.520 –> 01:06:22.140
Yeah, and it makes sense. That’s a, that’s a

01:06:23.730 –> 01:06:33.090
Fantastic question. Because it’s one that comes up, well, and the one I like to do once I like tricky questions. Okay, so here’s the thing, um,

01:06:34.830 –> 01:06:43.920
And the mobile friendly test which results test and the URL inspection tool fantastic tools, even for me as developer

01:06:44.430 –> 01:07:00.300
Because I get to I get to see the console to just and screenshot and if it was broken and it’s like I’m tough luck. And now I get to see a little more of that I can play, especially in the mobile friendly test and rituals test I can

01:07:03.000 –> 01:07:07.620
Will practice and and see like how am I am local development version fairs.

01:07:08.910 –> 01:07:13.680
And bonds there obviously need

01:07:14.910 –> 01:07:24.780
So the nice thing is that you get the rendering as the Google bar would render as unlike you get a rendering from the weaponry service. Great. It is is

01:07:25.800 –> 01:07:40.020
That see this is this is now I’m not thinking about, like, where do. Where does policy go nothing like what is the right layer of abstraction to talk about. I’ll just risk it tonight because I’m it’s like Friday evening, so why not

01:07:41.940 –> 01:07:46.830
I go whenever you are seeing this podcast just enjoy it because I’m going risky now.

01:07:48.030 –> 01:07:52.050
Let’s see if this backfires when we render

01:07:52.770 –> 01:08:03.960
For the indexing pipeline and say, like the indexing pipeline has a bunch of steps that run in parallel and they can run multiple times if they need to run multiple times. So for instance, what can happen is

01:08:04.320 –> 01:08:11.340
That we have detected a high host load on your server because it’s black friday and everyone is on your e commerce website.

01:08:12.720 –> 01:08:20.520
Or just generally like we have determined a certain threshold of data that we can like put on your server. The mobile friendly.

01:08:21.990 –> 01:08:29.430
As in, like, it doesn’t detract from it, but basically it respects the limits. So whenever the mobile friendly test or any of the testing tools, things like oh

01:08:29.670 –> 01:08:39.660
We’re not sure if we should be putting load on the server. Right now it rather goes defensive and the boards that does happen, and indexing as well. But there. It’s not as bad a we have

01:08:40.320 –> 01:08:52.710
quite strict caching when we really like when the real indexing pipeline runs it is quite good at cashing most of the things and then also it tries to get a new version. If it doesn’t work, that it uses something from its own cash. Cool.

01:08:53.400 –> 01:08:58.260
It does a bunch of really funky stuff and catching. That’s a completely different rabbit hole to go into

01:08:59.520 –> 01:09:06.780
It also when it fails fetching resources and then the render looks weird. And it can just like reschedule the render for later. And then try again.

01:09:07.050 –> 01:09:20.070
So the real indexing run it doesn’t really make that much of an impact if there are some problems like fetching something from the server fetching some specific resource because A, we might fall back to a cached version of it or be

01:09:20.670 –> 01:09:28.860
We might just retry it after a while. This is not a problem. This is a non issue really. However, what if you’re sitting in front of the testing tool.

01:09:30.270 –> 01:09:45.750
Very different story. First things first, we don’t want to use cash when we’re testing that would defeat the purpose of this testing tool because we want you to see the latest results as if we would run this fresh now so we are skating caching.

01:09:48.000 –> 01:10:02.850
caching, caching a slightly different code path that we go to get into the weaponry service that led to some of the discrepancies between the old and the new rendering by we took to actually update the testing tools as well.

01:10:04.380 –> 01:10:19.500
But we also we don’t cash we we cannot wait. We cannot, there’s no way for us in the testing tool to say like check back in two hours when we have retried. This is where like in 20 minutes or we don’t we don’t know. We just scheduled

01:10:20.130 –> 01:10:29.100
The drops like okay we need to retry rendering this rendering attempt failed. We need to retry it that can happen. It can happen in an hour.

01:10:29.760 –> 01:10:42.360
I can’t wait, you wait an hour, I have to show you something. So what the testing tools tried to do is they try to figure out what is the cause of the arrow, this might be an arrow that you wouldn’t actually incur

01:10:43.650 –> 01:10:53.070
Encounter when we are really indexing the page like indexing will not be affected because we’re going to retry the rendering. It’ll be fine. Cool, just move on. Nice.

01:10:54.750 –> 01:10:58.710
You encounter it in the testing tool and then the thing is

01:10:59.730 –> 01:11:10.110
Because it makes a lot of steps. It’s basically one piece of software calling another piece of software calling another piece of software calling another piece of software.

01:11:10.800 –> 01:11:30.930
In this chain. It’s a little bit of a game of telephone some stuff gets lost, especially the things where you don’t think they’re important, for instance, one of the back you basically shout into a black boy it please render this and it comes time out. And then you’re like what timeout.

01:11:32.250 –> 01:11:44.760
I don’t know what what is this time. Now, as a developer, you should not care because that’s the problem that the indexing type lead pipeline would deal with, you would not even experienced this. You see, this would not be affected by this.

01:11:45.300 –> 01:11:55.200
When you’re using the testing tool you are affected by this because that’s the arrow that you get back of that the testing tool gets back but then we don’t know is like

01:11:56.220 –> 01:12:05.670
What, what are we telling you, are we telling you timeout, because then you’ll be like my server timed out. No, that’s not true. And you’re right, it’s not true. It wasn’t your survey was

01:12:06.930 –> 01:12:12.120
The box number four out of a chain of five that had a timeout, for whatever reason,

01:12:12.390 –> 01:12:13.410
Maybe because there was

01:12:13.440 –> 01:12:19.530
Maintenance. Maybe there was a new version being deployed at the time, maybe solar winds, who knows.

01:12:22.410 –> 01:12:26.580
So timeout. That would be misleading because we don’t know what kind of time of that is

01:12:27.390 –> 01:12:35.460
So a lot of the information that we get back with it’s unclear where it comes from, it’s useful for us to internally debug it. But it’s either unclear.

01:12:36.030 –> 01:12:45.870
What we would communicate to you or where it would come from, in a way, like we can’t necessarily distinguish. Is this something that is actionable for you or is this something that is not actionable for you.

01:12:46.320 –> 01:12:57.030
Because a time of that happens. Someone our pipeline is not actionable for you. There’s nothing you can do about it. Well, you can run the test again. Okay, cool. But there’s nothing you specifically need to do

01:12:57.480 –> 01:13:04.770
Because that’s a problem on our side. And we’ll fix it and you would not necessarily even encounter it when you would actually index the website.

01:13:07.530 –> 01:13:11.040
So then we don’t know what to tell you other than other error.

01:13:12.330 –> 01:13:13.230
Which is unfortunate.

01:13:15.090 –> 01:13:25.050
There are some problems in that bucket that are actionable and what we are working on right now is figuring out how to break out the actionable ones from the non

01:13:27.240 –> 01:13:41.070
Local ones as much as we can so that you get a more helpful error message a bunch of the other areas also literally just infrastructure wildness, that you should be exposed to that we are working on reducing but yeah so that if you encounter the

01:13:41.340 –> 01:13:41.970

01:13:42.360 –> 01:13:44.370
It’s a bit of a tricky one, and I don’t

01:13:46.110 –> 01:13:53.010
Have a good answer for developers. Besides, like, look at the outset, you’re getting if you are sure that the resources exist.

01:13:53.430 –> 01:14:00.270
And you are sure that the resources can be obtained infatuated renders find in your browser. It should render fine.

01:14:01.080 –> 01:14:09.810
On our side as well unless there’s like something more major that like if you see a robotic RESOURCE THAT IS IMPORTANT THAN that’s something he would probably look into um

01:14:10.830 –> 01:14:12.240
But yeah

01:14:14.190 –> 01:14:27.660
This is, this is a tricky one. And then it’s also just like check if the page stays in the index or if it shows up with arrows or something like that. But yeah, we’re trying our best to untangle the actionable feedback from the non actionable feedback, what the

01:14:30.240 –> 01:14:34.170
Next piece where the resources will catch busted and then timing out and then

01:14:35.280 –> 01:14:37.050
For that matter being for for

01:14:39.210 –> 01:14:41.160
Whereas, yeah.

01:14:43.980 –> 01:14:49.320
actionable things that we need to make separate it out is redirection error theater.

01:14:50.850 –> 01:14:57.420
I’m not sure why because I hadn’t I hadn’t seen that in a long while, I would have somebody double check before I say something about that.

01:14:57.600 –> 01:14:58.260
Actually oh

01:14:58.770 –> 01:14:59.130
Okay, all

01:15:00.510 –> 01:15:05.340
Right. Thank you. That was, that was, that was good tonight. Appreciate it. Yeah.

01:15:05.490 –> 01:15:09.450
And I’m sorry that I have to like give these long winded answers. It’s just like

01:15:09.990 –> 01:15:10.590
We understand

01:15:10.650 –> 01:15:20.640
And working and working through layers and layers of abstractions like figure out, okay, so how can I put this into reasonable terms without confusing people out there.

01:15:21.690 –> 01:15:22.080

01:15:23.100 –> 01:15:24.180
Yeah and there’s

01:15:24.750 –> 01:15:27.690
All makes sense in totally it’s totally true.

01:15:28.350 –> 01:15:41.400
There’s an incredible amount of complexity and I think like even I know for myself, I struggle sometimes leveling things up to make them less complex and easier to understand than they are. But

01:15:42.270 –> 01:15:48.540
Just wanted to say wanted to put a bow on the episode and Martin. I wanted to thank you for

01:15:48.990 –> 01:16:09.180
Spending a little bit of what is your Friday night with us when you probably could be could be doing much more fun things JR also wanted to thank you for, for coming on and just yeah thank you for being candid, JR. Thank you. Thank you for asking amazing questions, JR. And

01:16:10.200 –> 01:16:12.540
Yeah. Have a good have a Good Friday night.

01:16:14.250 –> 01:16:16.710
Have a magical Friday.

01:16:16.770 –> 01:16:17.190

01:16:21.510 –> 01:16:23.850
Sorry, I could not resist I have is lying around here.

01:16:28.260 –> 01:16:28.830
Oh, that’s cool.

01:16:28.890 –> 01:16:30.090
Alright, alright.

01:16:31.170 –> 01:16:32.130
Thanks for having us.

01:16:33.270 –> 01:16:34.530
Thanks so much for having us.John


Search Discovery: A Data Transformation Company



Contact us to advertise

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top