Learning SEO from Neil Patel

Stop Wasting Money on Content Creation Before Learning the Basics

Maybe you, like me, are a web developer who can build a site that does just about anything, but are at a loss when you need to figure out how to drive traffic to your own site.

I’ve been working on a new site called Ongoing Remote, and the business model depends entirely on organic traffic. Though I have experience with implementing technical SEO in my full time job, I’ve never actually had to write any of the content myself.

I experimented with paying some freelancers on Fiverr, but quickly realized that I wasn’t providing them with the right information to generate traffic. They are happy to take my money, but it wasn’t going to create value because it wasn’t directed at the traffic I’m looking for.

I clearly needed to learn more about the subject from someone more knowledgeable than myself.

Which SEO guru should I trust?

So I looked around for guides on SEO on YouTube, and found that there are tons of them:

A plethora of SEO gurus.

I ended up going with Neil Patel, because I felt like he was really trying to share, rather than up-sell me on his products, and I found that his content appeared to be backed up by research and real world experience. Funny enough, his advice is to do exactly that!

Though there are many technical factors about how Google ranks you, at the end of the day, Google is trying to help people find the answers they are searching for. So you should take care of technical SEO and keyword research and meta tags, but the core goal should be to help give value to your visitors by answering their questions.

And I think that sometimes feels like it is lost when looking at SEO-related content and guides. The technical aspects and the algorithm take center stage over delivering real value, which can lead one to become cynical.

But with Neil he clearly embodies his values. He wants to help people and he wants you to learn and get better and build your business. He does pitch his product, but that product is usable and highly featured for free. The option to upgrade is there, but he never mentions it once in his guide.

SEO Unlocked – Course by Neil Patel

I’ve gone through his course, SEO Unlocked, skimming the stuff I already know quite well, I focused on my weakness: content creation. The guy gave great practical advice, some of which I’m directly applying to this blog post – you might notice the format is a bit different than the posts in the past.

His course includes many PDF templates and guides that are incredibly useful for me as a newbie content creator. I now feel like I have an actual plan for my first content piece and I know why each section is what it is and why it is in it’s place in the sequence.

I also feel like I’m not just treating my visitors like ATMs, but I will be writing something that gives back to them and helps them find answers to their questions. On top of that, I picked a topic that is relatively sparse, so it should be filling an unfulfilled need online.

Ongoing Remote Update: Creating a Content Plan

Current Goal

Ongoing Remote gets at least 10 Google search impressions in a single day in January 2021.


Zero impressions in the past day.


Today the only functional changes I made were some more performance improvements to the site, as well as adding some links to the header to improve internal linking:

The new nav at Ongoing Remote.

I also hired another Fiverr freelancer to write some content, and while doing it I realized I didn’t really know what I wanted them to write.

So I know the marketing team at my company maintains a content plan that they work off of to track their content writers. I made a much more simplified version with one tab on my content hierarchy:

This is a simple map of parent-child relationships between pages and how they appear in nav elements.

And a second tab on content to be written:

A simple start to tracking all this.

The version at our company is more detailed and includes links to article briefs, date of publishing, status of rich elements to include, and so on. For now I can start with what I have and make it more sophisticated as I need to.

If I’m going to create 100 content pieces, I’m first going to have to be able to list out 100 topics, and this sheet will help me keep track of that. Considering the cost of paying for content, I’m unlikely to spend enough on external resources to hit 100. So instead maybe I will plan out 100 and get a smaller number written this month.

Ongoing Remote Update: Paying for Content and Speeding Up Site

Current Goal

Ongoing Remote gets at least 10 Google search impressions in a single day in January 2021.


Zero impressions in the past day.


Although my goal is modest, at only 10 impressions in a day, I am shooing much higher to increase my chances of actually achieving the target.

One of the principles I wrote in my notebook recently is that I should outsource anything that can be done both cheaper and better than me doing it myself. In this case, the writing of content is one of those things.

So yesterday I created a task to brainstorm 20 new FAQ topics:

This runs on to 20 and only took me about 15 minutes to come up with.

Then I went on Fiverr and paid someone specialized in FAQ writing to fill in the answers. In addition I wrote one FAQ myself: What should I look for in a remote job?

I also realized that the copy on my site is also poor, and that I have no skill in writing sales/marketing copy. So I went on Fiverr again and paid someone to write it for me.

In the meantime I worked on SEO-related things that I am very talented at and can do better than just about anyone, or at least better than anyone at a reasonable price:

  • I dynamically added schema markup for the FAQs, which can lead to featured results in Google like this:
When you get this in your Google search, it is being generated from schema markup, rather than from the page content itself.
  • I replaced semantic-ui-react with picnic, which reduced the weight of my pages by over 100kb and pushed my mobile performance score to 100!
  • I started working on replacing react with preact, which would lower my page weight even more. It’s working already, but I need to replace some test libraries for my unit tests to pass.
  • I’ve also identified a better way to render my markdown-based FAQs. If I use remark to convert them to html over an API call, then I won’t have to import remark and it’s dependencies, which are 10’s of kbs. This is a great example of me using my expertise, because when I looked at optimization guides, none of them recommended this method and instead opted for heavier pages.

But with my performance score currently sitting at 100, I think I need to focus on more and more content and also ensuring that I have the right schema and html markup. I should make a content plan and then outsource the writing.

Roughly I think that if I can get 100 content pieces or pages up in the next couple of days, I should blow away my goal of 10 impressions in a day.

Ongoing Remote Update: Adding a Contact Form and FAQs

Current Goal

Ongoing Remote gets at least 10 Google search impressions in a single day in January 2021.


Zero impressions in the past day.


Yesterday I finally put my nose down and wrote some content for Ongoing Remote. Admittedly it isn’t much, and I spent significantly more time putting the framework in place.

I’ve made a contact form and an FAQ that initially has two question and answers.

Gotta start somewhere!

As part of the templates I added breadcrumbs to each article:

Just now I checked and Google says that these should also be added to the page schema, so that goes on my to-do list.

I also added a footer section with internal linking, which is recommended for SEO:

After publishing them I went to the Google Search Console, and realized that not all of my pages were indexed, so I submitted each URL for indexing:

I’m not going to get any impressions unless Google has indexed the pages!

Since getting through the indexing queue will take at least a couple of days, I need to write a lot of content early if I want to meet my goal.

So today I’m looking at writing several more FAQs and possibly applying the recommended schema markup mentioned above.

Ongoing Remote Update: Meta Tags and Logos

Current Goal

Ongoing Remote gets at least 10 Google search impressions in a single day in January 2021.


Yesterday I wrote about some next steps for improving SEO on Ongoing Remote, and I implemented them all. I connected a Twitter account to this blog, I updated my meta tags on the site, and I added a robots.txt file.

I also added various favicons to the site using this very helpful guide. Now I have favicons for each recommended size:

See the linked guide to understand why we need each one.

And I also have meta tags for the various uses of these icons:

Some for various browsers, one for Android, and two for iOS.

I also converted my logo to inline SVG, eliminating an additional http request from my page load. In the process I learned a few things about SVG accessibility and was sure to include the elements for sight-impaired visitors:

Including title and desc elements help for users with screen readers.

My mobile performance isn’t as high as I would like it to be at the moment, and the main contributor is a ton of css coming from semantic-ui-react:

I want this to be 100!

However, replacing my css library is not the most pressing thing at the moment considering my goal. The elephant in the room is the lack of content on the site, as it is extremely limited at the moment.

I’ve been lazy about this because I’m just better at technical tasks than I am at writing. Although I’m writing here on my blog, and this is providing helpful back-linking to my site, I really need to have content directly on the site itself.

Next Steps

So now that I’ve done some cleanup, I think that I just need to hunker down and write. I should add at least one page per day for a while, and ensure these all get the right meta tags on them. Then Google should pick them up and I can get those juicy impressions that I’m after.

Ongoing Remote Goal: 10 Impressions Per Day

Just before the end of 2020 I hit an important milestone with Ongoing Remote: our first Google search impression!

Hey, thanks whoever you are in Singapore!

This is of course a small victory, but after seeing zero impressions for several weeks, it’s reassuring to see a positive number. The ultimate goal of course is to get sales, but your conversion funnel needs to start somewhere.

  • Impressions come before clicks
  • Clicks come before starting the purchase process
  • Starting the purchase process comes before completing the purchase process

This first impression wasn’t an explicit goal of mine, but I had been checking the Search Console nearly every day to see if it happened. But now I do want to set a goal: Ongoing Remote gets at least 10 Google search impressions in a single day in January 2021.

To do this, I need to do some SEO basics:

  • Update and verify all of my meta tags
  • Add robots.txt file
  • Update my social media profiles to include links to Ongoing Remote
  • Connect Twitter to my blog, as this blog includes back linking to Ongoing Remote
  • Post a bit more on social media (I recently opened a Reddit account and started giving technical advice to startups)

So though my goal is 10 impressions per day by the end of the month, but I should shoot for much higher than that with my actions, to increase the probability that I hit the goal.

Starting Ongoing Remote

A few weeks back I was looking for better places to put job postings for remote developers than LinkedIn (it’s horrible for this), and I came across JS Remotely. The first thing I thought was, “Wow, this site is so simple, and there are at least five posts each day. If those are real they are 500 USD of income basically for free every day. That’s a great business model!”

So I set about making a similar site and got something up and running in a few days. It’s called Ongoing Remote. There is a homepage with a list of posts, and a form to submit new posts. I wasn’t able to get payment up and running yet because I don’t have a registered business.

Also cool is that I used NextJs to build it and tried to optimize for speed. It should load extremely quickly as it has dynamic content that is statically rendered using Incremental Static Regeneration.

I also set up Google Search Console to see how many impressions and hits I get, since this business will be primarily SEO-driven. Several weeks in and I still have zero impressions and zero clicks.

Finally I paid a designer to create a logo for the site. This is the working version I have for now, which is why it has a watermark:

This is supposed to evoke images of working from the beach while sipping on your coconut drink. The color scheme feels like the sunset at the beach. This is exactly the kind of atmosphere I would love to work from! I definitely recommend sarah_tyler as a logo designer!

Initially my spin on the idea was that I would have a site generator. Basically, it would be a posting site template that would be infinitely scalable to different domains focused on different types of jobs. Since JS Remotely focuses only on JavaScript jobs, maybe I could one for each programming language or each major library.

Although the infrastructure is still in there to do that, I haven’t expanded to more sites yet and may not do that.

So since the site is up and I have absolutely zero search engine traffic on it, my primary concern is getting eyeballs via SEO. Hence me writing this post.

Other things running through my mind at the moment are:

  • Maybe I really should focus on one particular type of job, since there are lots of generic job posting sites, and probably less SEO competition for highly specific jobs.
  • I have a lot of experience as a web developer, but it was my first time using NextJs, and I learned a lot. But this site is super simple and doesn’t really leverage my strengths – I’m good at building web applications and services, not at SEO. Maybe I should try another business idea.
  • While researching competitors I came across RemoteOK and the creator, who has some great advice for people starting online businesses by themselves. He gave himself a challenge once to do 12 startups in 12 months, and that also sounds like a great way to learn a lot and spread some seed around to see what grows.
  • If I want to charge money for anything, I need to register a business, and luckily just a few weeks ago Dubai changed their business ownership laws to allow 100% foreign ownership. Since this is where I live, it makes for a great option. I’ve still got to investigate what actually needs to be done, and it’s on my to-do list.

Using Meditation to Overcome Anger

I’m a pretty passionate guy at work. Most of the time this manifests as being productive and taking initiative on things. However, it can sometimes manifest as anger when I’m not getting my way. I’ve definitely blown up and yelled at coworkers before, and I always regret it afterwards. Other times I will write a very terse email that causes more harm than good. Once I even created a ‘special’ folder for a coworker I had a problem with and accidentally showed it to him during a screen sharing session. How embarrassing!

I’ve tried a number of things to prevent negative outbursts and focus my passion only into productive pursuits. And somewhat recently I’ve found that daily meditation is like a miracle cure. I use a bare-bones app called Oak every day during my lunch time. At first I did the guided meditation sessions, and later I went through the mantra course. Now I just do twenty minutes of unguided meditation every day, with a sound every two minutes to bring my mind back if it has wandered.

I find that when I do the meditation well, I get put in a state of deep relaxation, and feel much more emotionally detached from my work. The state of frustration and anger seem to be closely related to confusion, and with my mind cleared of confusion I’m able to be even more productive than before and also feel quite content doing my work.

I still get frustrated and angry at times, and when I do I try to catch myself and hear my personal mantra, ‘ma-nah’. This is like a guiding light to bring me away from my bad state of mind and generally prevents my mood from getting any worse. Then when I have my daily session I get a complete reset again and am good for another day.

How Asking ‘Why Not?’ Can Overcome Digital Transformation Implementation Resistance

I want to share with you a technique I used to overcome some serious implementation resistance we had on a digital transformation project.

We had built a new system for transactional processing and had run several pilot transactions involving real customers and real employees using the system. These transactions went through without the sky falling, though there were some rough edges to address here and there.

We wanted to keep running more transactions through the system, so that we could learn from the real-world usage, but many of the people involved, even some on our own transformation team, were against it. We were having weekly calls at that point, but it seemed like every call we looked at the status for an hour and then promised to something about it the next week. And then the next week we would rinse and repeat, getting nowhere.

So I decided to call a much shorter, daily meeting (I called it a ‘daily scrum’ even though it was mainly business people), and started a new list, called the ‘Why Nots’. Instead of asking everyone their progress, I would ask them why they objected to putting another transaction in the system, repeatedly asking ‘why not’ until we arrived at something actionable.

The conversations would go something like this:

Me: “So John, I want to put the next transaction on the new system, why not?”

John: “Well James, Joe from accounting hasn’t signed off.”

Me: “Ok, so why hasn’t he signed off?”

John: “Because we haven’t given him a demo of the accounting features yet.”

Me: “Why haven’t we given him a demo of the accounting features?”

John: “Well, I haven’t had the time to schedule it yet.”

Me: “Ok, so the ‘why not’ on the list is that we haven’t scheduled a demo with Joe from accounting. Who do you think should take care of this?”

John: “I should do it, because he works in my office.”

Me: “Great, thanks.”

It turned out that well over 50% of the ‘why nots’ raised were actually action items for the people who raised them. It turns out that people raise objections about things they understand, and the things they understand are in their domain, and their domains tend to be their responsibility. They were complaining about action items not getting done, when they were the ones who needed to do them!

The next largest category of ‘why nots’ were imaginary problems. For instance, we would get an objection that we hadn’t built a certain integration yet. I would ask why they can’t process the transaction without the integration, and I would be told that actually they can. And so we would end up marking it as resolved, because it wasn’t a real blocker to implementation.

So we ended up with a list of over 100 ‘why nots’ in a couple of days, with over half of them completely resolved in the same time span. It quickly became clear which ‘why nots’ were really serious and those got immediate attention. Anything that required additional development got scheduled in the subsequent sprint, and once that finished we had restarted processing transactions again!

Does Agile have too many meetings?

Like every headline phrased as a question, the answer is ‘no’! But more important than the answer is the reason for it.

When a large team convert to Agile, they typically are implementing some version of Scrum, which has a set of events (read: meetings) to observe: sprint planning, daily scrum, sprint retrospective, sprint review, and backlog grooming.

On top of that, there are typically cross-team meetings and updates for management that take up additional time from the development teams. This can really add up!

We suffered from too many meetings at one point in our Agile journey, soon after we split our single Scrum team into multiple teams. It took us quite a while to get a handle on the root cause, but ultimately it ended up being a lack of ownership and accountability for the teams, which was a sign that we weren’t doing Scrum correctly. Instead, we had many stakeholders who wanted to tell the teams what to do and how to do it, without taking accountability for the solutions they were pushing.

Once we recognized the issue, we made sure to address it in our next team restructure, and pushed more responsibility and decision making into the teams. And we continuously reinforced that the stakeholders first and foremost need to clearly describe problems, not jump ahead to solutions. This made the meetings that remained much more productive and structured than the ones we had in the past, and also reduced the total amount of time spent in meetings.

If your Agile teams are also suffering from too many meetings, it’s worth considering whether they are being micro-managed or if they are as empowered as they should be.