Building the Most Popular SEO Plugin with Joosy de Valk

Sponsored by:

In this episode, Joost and I talk all about his incredibly popular Yoast SEO plugin. Running one of the most popular plugins globally is hard work and it shows in the Yoast SEO team’s development process. We talk about everything from good readability and supporting multiple languages to the rigid development and testing processes. We also wax poetic on the evolution of the development and how it is affecting the WordPress community.

Show Notes

Joe Casabona: Hey, everybody. Today’s show is brought to you by two great sponsors. The first is hover.com. With hundreds of domain extensions, no heavy-handed upselling, and best-in-class support, Hover makes it easy to spend less time on your domains, and more time on your big idea. And now, you can use the offer code, ‘BUILDSOMETHING’ for 10% off your first purchase. Head over to hover.com today.

The next sponsor is a new one, WP Stagecoach. WP Stagecoach provides easy WordPress staging sites. Create your staging site with one click and import your changes back to your live site with one click. This makes changing copy, adding features, or new development easier than ever. Head over to wpstagecoach.com today to check them out.

And now, on with the show.

Hey everybody. Welcome to How I Built It, a podcast that asks the question, “How did you build that?” Today, my guest is Joost de Valk of Yoast SEO. Joost, thanks for joining me.

Joost de Valk: My pleasure to be here.

Joe Casabona: Awesome. Awesome. So today we’re going to be talking about in general, your business, which most people know about the plugin part. But I think you guys do a lot more than that, right? You’re like a full-tilt boot SEO.

Joost de Valk: Yeah, we do more. And to be honest, the plugin is becoming so big that it’s becoming a bigger part of the business every month. So we have a review side to our business where we do website reviews and some other things. And we have an academy side that’s growing fairly rapidly to where we have online courses on SEO, and SEO copywriting that still grows. And the good thing about that thing is too, is that it’s skilled reviewing. And there’s a lot like, well, general consulting and consulting doesn’t scale. So that’s a harder thing for us to keep growing at the same rate.

Joe Casabona: Yeah, absolutely. And so kind of, how did you come up with the idea for, I guess, first the plugin, and then expanding the business?

Joost de Valk: So I have been building WordPress plugins for about 10 years now. And I used to have five different small plugins that did one or the other thing. And at some point I decided, “Okay. I should just combine all of this together” because it’s getting really annoying to have five different plugins that interact with each other but calm, really control each other’s settings, et cetera. For instance, if you want to have, if he wants no index to a page to keep it out of the search engines, you probably also don’t want that page in your XML site. Making things like that work automatically in a good way was a lot easier when it became one plugin. So that’s why I decided to build one. And the only thing I was lacking at that time was titled functionality. So I built on it.

Joe Casabona: Nice, nice. So, is this something that you built on your own, like completely…

Joost de Valk: So, the first version I built on my own. Right now, I’m happy to say that most of the code I ever wrote is no longer in there. So, for the first two, three years, I was on my own. I started Yoast as a business in 2010 and hired my first developer in 2013. And there are 13 developers working for Yoast now on the plugin. And well, yeah. So we’ve gone through quite a lot of changes over time.

Joe Casabona: Gotcha. Yeah. And so you had the plugin, and then you kind of decided to go into like copywriting and things like that. Can you tell us a little bit about that? Because copywriting to me is one of the hardest things you can do on the internet.

Joost de Valk: It is incredibly hard. Well, the funny thing is copywriting, it’s just a different talent than coding. And so we found more and more is that we basically, with your SEO, we take away all the technical SEO issues that a site can have. But that doesn’t mean that you will suddenly start ranking when you install our plugin. Because to start ranking, you’ll actually need content that does something. And so we started expanding on that. We’ve done that from the very beginning. We had a snippet preview to show you what it looked like, et cetera. And we’ve been expanding on that more and more because we’re finding that even though we keep up with all the technical SEO stuff. The added value we give people is way more on the copywriting side, because basically, they don’t see that we solve all the technical issues, but we do that nonetheless. So to get them to write better, we actually need them to write better, which is why we went into more SEO content scoring in the plugin.

And then recently, even readability scoring on how well is your text readable. And we’re thinking about that more and more and more, and how we can help people write content that attracts the right people to their site and makes them do the right things.

Joe Casabona: That’s awesome. Especially because the readability functionality has been invaluable to me. I’ve been developing a course and I always go for the green, like I want to get all green. I noticed that the passive voice is something I always use…

Joost de Valk: Oh yeah. In technical writing, that actually happens a lot. And it’s sometimes very hard to get out of as well. But copy becomes so much easier to read when you take that out or limit that to a certain degree. And it’s so much easier to get through that. And the funny thing for us being a Dutch company with 90% of our people being in Holland, and in this office where I’m sitting now when English is not your native language, if people improve their readability, the readability for us goes up double as fast. Because the stuff that’s hard to read in your native language is even harder to read when it’s done. And I can say I’m fairly proficient in English. But for me, it helps a lot when people are actually trying to arrive somewhat simpler and just you go through stuff quicker. And especially in courses or in posts where you want people to remember stuff, it’s a lot easier to remember stuff if it was written down more recently.

Joe Casabona: Yeah, absolutely. And that’s a great point. So you do all of this stuff with SEO. SEO is always a moving target. So what kind of research do you do to kind of stay on top of this stuff?

Joost de Valk: A ton. So we have an SEO team of now four people here in the house that basically, we do some cyber reviews to make sure that we work with clients’ websites, and see what’s wrong with them. The funny thing is that it helps keep us grounded and what’s happening in the real world.

Next to that, we read everything that Google clips out, and we test a lot. So we have a lot of sites where we try little things, and see like, “Okay. What’s changing?” And luckily these days we are in very good contact with Google directly. So when they make big changes still until they give us a warning, like, ”Hey, you probably should do something about this.” Because we’ve reached a point wherein the top 1 million websites, 11% of them are using Yoast SEO. So if we make a change, Google notices. So it waits, it dies a nice position to be in I have to say, it makes stuff incredibly easy to watch just to validate like, “Okay. It seems like this would work better is actually true.” And they’d be like, yes or no. And usually, we done test what they say. If they’re not, usually they’re not lying. But sometimes they don’t know any better, but it’s not like it’s not 100% true. But it’s a lot of testing, it’s a lot of reading. It’s a lot of playing with new technologies that Google puts ads and sees like, “Okay. Well, so what are they going to do with this?” And yeah. So there’s a lot of work.

Joe Casabona: Man, yeah. It sounds like it. And so you’ve mentioned Google a lot, and I mean, Google has become synonymous with search. Is it, I don’t want to, and I don’t want you to bad mouth like any other search engine, but is it worth looking at what Yahoo and Bing, and others are doing?

Joost de Valk: It depends 100% of where you are. So if you’re in Europe, then Google is pretty much the only thing.

Joe Casabona: Gotcha.

Joost de Valk: In the U.S., Yahoo and Bing still serve some traffic. As in like 20% of search traffic comes from those two engines. So it might be worth looking into it if your site is somewhat bigger. If you’re in Russia, you need to optimize for Yandex. If you’re in Korea, you need to optimize for Navarez. As you’re in Japan, you need to optimize for other things. I mean, you’ve got Baidu in China. So Google is by far the biggest one globally. But in your specific area, it might be other search engines. Luckily, most of them are full of just about the same rules. And so all the big ones support, schema.org, all the big ones, support title to nautical message descriptions, et cetera. So most of that work you do for all the engines. We focus on Google the most right now, but I hope to get to a future at a certain point where we’ll have a snippet preview for Yandex and one for Baidu too, but we’re not very good at Chinese yet.

Joe Casabona: I imagine that’s a lot tougher of a market to get into.

Joost de Valk: Well, it’s a lot of analysis. So we do a lot of constant analysis, and all of those analyses rely on things that we think are common in languages. Because even though I speak a lot of languages, they’re all fairly Western. And then you go into Asia and you figure out that there are languages without spaces and your entire [Inaudible 10:38.18] is based on the fact that there are spaces to camp words and things like that. So it needs a lot of rethinking. We actually hired a linguist last year to help us do that. And she’s been doing a lot of work and getting our stuff like passive voice recognition, et cetera, and for Western languages going. And we’re looking, we’re starting to look now at, “Okay. So what should we do for all these languages that are huge in India and Russia?” et cetera.

Joe Casabona: Man, that is cool. That’s really cool. How many languages do you speak?

Joost de Valk: Ah, well, fluently, really only Dutch and English. I can make myself understood in French, German, Spanish, Italian.

Joe Casabona: Nice.

Joost de Valk: But that’s all. As I said, it’s all Western European. They’re all especially, I’ve had in total about seven years of ancient Latin, and all of those languages are based on lessons. So it becomes easier to do those combinations, right?

Joe Casabona: Yeah. I took Spanish in high school and I’m like dying to learn Italian and…

Joost de Valk: Oh, that’s pretty close. If the Spanish is good, then Italian Is pretty good. The only thing is you probably switch from one to the other upon using it.

Joe Casabona: Yeah, which is, I was, this is kind of a tangent. But, so I got married in June and we went to Italy for our honeymoon. I’m a hundred percent of Italian descent. But my grandfather was born in Italy and I had a conversation with a fella in Naples who was basically like half Spanish, half Italian, cause he didn’t speak English. So we managed the conversation that way. It was really intense.

Joost de Valk: No, they are very related languages. If you have that base of having done the lesson for so long, as I have, then all of those languages basically look alike at some point.

Joe Casabona: Yeah. Nice man. So cool. So moving on, I’ve realized that talking to people helps a lot. It’s part of the reason I started this podcast. So do you kind of bounce ideas off of other people about features, business advice, direction, things like that?

Joost de Valk: Oh, yeah. Absolutely. I’ve had different topics with different friends. But, we have in the SEO community, a lot of good friends that we bounce ideas off. And while we’re, I’m lucky enough to have a team here that I can really do that well with too. There are currently 36 people in our Dutch office. So that’s a pretty big team where you can bounce it around and talk to people. So that’s mostly, Omar, CTO, Marika, my wife, and a lot of people that really understand our business well, and understand what people that have our plugin might need, and might help them improve their site.

Joe Casabona: Nice. That’s very cool. So, all right. So let’s get to the title question then. How did you build it? So tools, coding methodologies, whatever you want to talk about here is fun.

Joost de Valk: So that’s changed quite a bit over the years. When I started, it was mostly me coding in text mate on my Mac. Now it’s the entire team using PHP storm or web storm. In the beginning, almost all of it was PHP. And now we’re at like 50% JavaScript, and Javascript part of it’s growing fast. We’re switching almost all of our interfaces to React. We have rewritten the entire constant analysis and everything around that. And the entire readability thing is written in JavaScript. So basically Brian has his separate library and et cetera. We do all our development on GitHub, and a couple of repositories. We have a WordPress SEO repository for the plugin, we have a Yoast SEO .js repository, all the JavaScript that does the constant analysis, et cetera. Those are separate projects. These projects, because we actually have a Yoast SEO for group call two, and we have one coming out for Magento, and for a type of three, which uses the exact same interface, the exact same analysis, et cetera.

Joe Casabona: The only thing that differs is the underlying code that stores data, and it serves that.

Joost de Valk: So well, we have a very rigid process here where someone creates an issue and specks out what needs to be done, someone codes it up, a second person reviews the code, and she said, “Okay. what can be approved?” et cetera. Then one, it’s when it passes, the review goes to acceptance testing by a third person who goes through to codes yet again. And then the acceptance test is whether it actually fixes the issue or meets the acceptance criteria. And we look okay, should just have unit tests. Yes or no. Usually, those will have been coded right in the beginning because when we tag, we will usually do test-driven development.

So for instance, with all our cops and analyses, we start with a bunch of tests and then we scan them. We slowly work our way to, from having a test to something that actually passes the test, then it gets merged. And then before release, we do another extensive testing period where our support team will go through testing the plugin and testing all sorts of combinations with other plugins.

Every time you commit, we run our Travis interface. So we have Travis running through seven different service setups with multi-site other languages combined with some big plugins, like Jetpack and a couple of others. So we have a rather rigid process which is needed because the good and the bad thing about our plugin is that we run every page of your WordPress install. So every single small mistake we make will always lead to an issue somewhere and another plugin. And even when we don’t make mistakes, usually other people will make mistakes and we’ll get into issues.

Joe Casabona: Yeah. I mean, it sounds like you’re doing a lot of stuff on the front end to really limit that. And that’s great because I mean, you know, Pippin Williamson was just talking about how a certain type of plugin is generally done wrong across the board. And it causes a lot of problems for him, you know, for him and his support team. So, you know, just, you have a, it sounds like a very modern process, a very up-to-date process.

Joost de Valk: I think…I’m boasting a bit here. Sorry. I think we have the most rigid development process in the WordPress community. We probably also have one of the bigger teams. And so we can do that. It’s very hard when there’s just one or two of you to have a process like we have because while there are only one or two eyes to look at that code, this has become easier over time as our business grows. And it’s one of the reasons why I think that larger plugins need to make some money to be able to build out a team and to get to a higher quality.

Joe Casabona: Yeah, absolutely. I mean, you see a lot of stuff like this and other sections of the software development community. But WordPress is still pretty young as far as that goes. So.

Joost de Valk: Yeah. And the funny thing is, my first development experience 15 years ago now, I don’t want to think about how long that was in Java. And the funny thing is that a lot of the things I learned there and the things I learned 10 years ago when I was coding on web kids, the core of Safari and Chrome, the things we did 10 years ago are stuff that we’re setting up now for our development. And somehow it feels weird that we haven’t done that before. One of the things we’re looking at for ourselves is doing performance profiling in our Travis, so that we don’t slow down the plugin during development, and that we make sure that we know that every commit that goes in either makes it faster or it keeps it at the same level. But stuff like that, it’s fairly new. And I don’t think too many people even know how to perform profiler plugins. So there’s a lot that the community can learn there. And at the same time, we probably benefit from the fact that we are doing all of that. And people are seeing that it’s becoming a very stable plugin and that it is becoming better and better over time.

Joe Casabona: Yeah. Without a doubt. And I get the feeling that a lot of people in the community are self-taught programmers, which is probably why we’re seeing the evolution that has been seen in other industries before. So, you know, I think we’re getting there. It sounds like you’re moving the chains on that. And as people hear about what you guys do…

Joost de Valk: We actually have plans a lot more about all of this, because this is probably stuff that we should share a lot more about an alley, how people can set up the process, et cetera. The only thing is that that means freeing up my developers to write blog posts, which is not always the thing I want to do.

Joe Casabona: Yeah. Yeah. Absolutely. A developer’s blog post is very expensive. I’d imagine.

Joost de Valk: Yeah, absolutely. Yeah.

Joe Casabona: So cool. Well, so it sounds like we’ve talked a lot about the transformations of the plugin since it first launched. You know, it started off as a few different ones that you had and then combined, and now you’re moving everything to React. Are there plans to integrate the Rest API? Are you already integrating the Rest API?

Joost de Valk: We’re already using the Rest API? In fact, we’ll have a release a week and a half from now in which we add an installer. And so when people first activate the plugin on a site, they’ll go through and install our process that’s built completely on rest API. So the React framework, we built for that ourselves so that we can reuse that on other platforms too.

Reusable code is something that’s becoming more and more important to us because we’re figuring out how we are going to be as other platforms. So we’re basically running into the same problems on every platform. And that only a couple of things really need to be tied to the platform that much. So I mean, how you store and retrieve options is something that’s very restricted to the platform. But your Google snippet preview won’t change. Whether you’re on Magento or on WordPress, there’ll be a Google snippet for you, not a Magento or WordPress theme. So there’s a lot of code that we share between those different platforms, and that’s actually helping us build better code too.

Joe Casabona: Yeah, that makes a ton of sense. And that’s maybe one of my favorite things about coding myself is, you know, I got my master’s in software engineering and we learned about the whole reusable code in architecting software. And that’s, I’m not the most backendy developer by any stretch, but the planning and architecting software stuff is the stuff I love. So that’s awesome.

Joost de Valk: Oh, that’s a different job. We actually have, so we have the CTO and two architects, and 12 people who do development. And even within development, you’ve got specialties for specific stuff. Like, we have, only a few months ago we hired [Inaudible 22:24.87] does a lot of work for a WordPress core too, who’s kick-ass at accessibility. So he’s been building and making our plugins so much better in terms of keyboard accessibility and screen reader, accessibility, and all these things. And that’s just, that is a specialty within development days we underrated. But so there are a lot of these smaller specialties that are starting to build up and that’s really cool.

Joe Casabona: That’s excellent. So, well, it sounds like you guys are like right on the forefront of a lot of things, which is really cool. So, what are your plans for the future? You hinted at it a little bit with a new feature rolling out next week, but…

Joost de Valk: Oh yeah. We got a ton of features, plans. We’re actually going to a slightly faster release schedule because we’re doing it, and we’re going to work through a somewhat more continuous model. We have a ton of releases planned for the coming months with all sorts of new features, both for Yoast SEO premium and for Yoast SEO three, and for our extensions, so we have a local and the video extension, et cetera. A lot of those things you’ll have to see just because while me talking about them is actually harder than just seeing what it looks like in this screenshot. The installer has actually one Graphic, one as you can probably imagine in your head like that’ll happen. And a lot of what we are doing is trying to help people write better content and structure their site better. So there’s a lot of what we’re doing coming in that area where we look at tax categories, et cetera on how we can make use of those things to improve the structure of your site. Because we’re seeing that that’s something that people struggle with all the time. And as they write more posts on their blogs, when you have like a hundred posts, what are you doing to make sure that the first few posts you wrote are still being read by people and are still being FAQED? So how are you into connecting all of those? How are you relating stuff to each other?

And there’s a lot of cool stuff that we can do there. I know we’re working hard in our own way, because we tried to do all of these things without using surfaces that we host. So we don’t use external elastic searches or stuff. Like what Jet does. We try, and do it all on your, either in your browser or on your server. That’s the Europeans and us trying to keep the data.

Joe Casabona: I like that. That sounds great. I’m really looking forward to those features because, as you know, and as you said at the top of the show, content is the most important thing for SEO.

Joost de Valk: Yeah. So how we look at SEO, I mean, the technical SEO part is actually becoming harder sometimes. And we tried to just take all of that away to just transparently solve all of that for people. It’s way too hard for us to think about tonight.

Joe Casabona: Absolutely. Awesome. Well, so, we will end on the last, the final question. Do you have any trade secrets for us?

Joost de Valk: Any, what sort of secrets?

Joe Casabona: Trade secrets, anything that you kind of learned that has helped you throughout growing your business.

Joost de Valk: So many things that you learn. The question is what are the more important ones? Probably the most important thing you need to learn yourself is become very good at challenging issues as a developer. And if you’re not very good at that, find someone who is and make sure that they really make minimal test cases of a case of what is this bug really. So often I fixed bugs and then figured out that what I fixed was above, but it wasn’t about that. The customer is actually asking for me to fix it. And it’s just very hard. And especially in the WordPress ecosystem, because everything ties into everything, it’s very important to figure out a case of what really is the issue here, preventing this from working, and which other plugins are running with what’s the thing doing what, et cetera, et cetera.

Joe Casabona: Yeah. I feel like in the WordPress community, did you disable all the other plugins as the new, is your computer plugged in? Like that’s…

Joost de Valk: And then the thing is that you don’t necessarily always want that. At the same time it’s for us. If another plugin throws a JavaScript error, we’re done. I mean, you can’t really do anything anymore. So, the amount of developers that we’ve emailed and said there, so if you adapt your code here and add the try catch, and so it catches the error. And even if it breaks, it breaks, that’s fine.

Joe Casabona: But it doesn’t, you know, it doesn’t destroy everything.

Joost de Valk: Sometimes you’ll see it in our plugin when one of the analyses has failed, you’ll see a grey bullet instead of a green one, the green or a red one. And that means that the analysis failed. But it also means that we’ve caught that error and we haven’t thrown the javascript error preventing you from it. And that’s something that I wish a lot more people would do.

Joe Casabona: Yeah, absolutely. Well that’s great advice. And it’s great advice to end on. So we will end there. Joost, thank you so much for joining me.

Joost de Valk: My pleasure.

Joe Casabona: But also thanks to our great sponsors, Hover and WP Stagecoach. Thank you, the listener, for tuning in. The show wouldn’t be what it is without you. And if you like the show, please rate us on iTunes.

Finally, until next week. Get out there and build something.

2 Comments

Leave a Reply

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