This guide advocates for some pretty silly best practices.
It’s very hung up on making sure the user types the right email address on account registration, having them type it twice, making them provide some sort of security question (before their account is created, mind you!), making sure the question is answered correctly by the person clicking the link, etc etc.
None of that is necessary. Your signup form can literally be a single email field. You validate that it looks enough like an email, and send a unique link to it to continue signup. Then you ask whoever clicked that link questions like “please create a password”, “select a username”, whatever personal information you require.
What happens if they type the wrong email? Well, you send a signup link to the wrong person. Big whoop. Worst case, someone else will get a link to create an account on your system. (Not to create the original person’s account! Because you didn’t ask for anything but an email yet! They would be creating an account, with their own email, even.)
The email validation link only tells you that the person who followed the link owns the email address that was typed. Just don’t do anything permanent (like actually creating an account) until the link is followed, and you don’t need to worry about whether the email was correct.
Now, this still has issues where people can type all sorts of emails into the signup form without friction to make your service spam them with signup links, but I’d argue that the advice in the article has the same problem, just with a trivial amount of additional steps (like having to type the email twice and set up some security question.)