Reflections - My First Month Blogging and SEO-ing For Linkidex
December 2023 I committed myself to finally getting the blog for Linkidex off the ground. My goals were:
- Have a place to share release notes for Linkidex.
- Have a place to share documentation (such as “how to use feature XYZ!”) for Linkidex.
- Start driving organic traffic to Linkidex through Google SEO.
I hit my first 2 goals with resounding success. My third goal, not so much.
Choosing How To Build The Blog
The high level solution to the above goals was easy: build a blog. A blog had been on my roadmap for a long time, I knew I would eventually have to do it. “Should I build a blog for my SaSS Application” is an easy question to answer. (The answer is yes). “How should I build a blog for my SaSS Application” is less easy.
I could have used a blogging platform like Medium. I have friends that use Medium for personal blogs with great success, and I have seen SaSS companies use Medium for their blog. But using Medium or something similar would mean I wouldn’t have full control over my blog. I have some long term feature ideas for integrating the blog with Linkidex that would be impossible, or at least much more difficult, using a third party blog.
I could build a custom blog from scratch within my web application. This would give me complete control over everything. The issue here is that I would want to use React to build the blog, and for SEO reasons its best to have server side rendering enabled when using react. To get Server Side Rendering working, I eventually concluded that I would want to use Next JS.
Rewriting Linkidex’s front end to work with Next JS so I could then build a blog from scratch so I could then begin writing blog articles is doable, but it blows the scope of this project completely out of the water. Migrating to Next JS is a non trivial undertaking. Using Next JS just for the Linkidex blog would eliminate needing to rewrite Linkidex’s front end, but increases the scope of things I would need to maintain. Also, writing a quality custom blog application from scratch takes time. Time that I could instead use to make Linkidex better. Or go to the beach.
I decided to keep investigating my options, and found what in hindsight was the obvious answer: A static site generator called Jekyll.
The Answer - Jekyll
In short, Jekyll turns markdown into HTML. Here is an example of what a basic site looks like using Jekyll. You can write your blog posts in Markdown and then run a command and it will turn your markdown into HTML.
Choosing Jekyll was easy for several reasons. It integrates with Github Pages. At the time of writing, thats what this blog (rdavidreid.com) is on. It is also used by a ton of companies and projects, such as the official Ruby on Rails site.
There very well could be better static site generators out there. Hugo and Eleventy for example are great alternatives to Jekyll. But Linkidex uses both Github and Rails, and if Jekyll is good enough for them, its good enough for me. At least for now.
Using a static site generator gives me complete control over the blog while also letting me write blog articles in markdown not have to worry about code at all. I can customize things if I need to, and focus on writing if I don’t. The Jekyll pages are more performant than loading my React app. Jekyll was the perfect answer for my use case. It was time to start building.
Building The Blog
Deciding how to build the blog was difficult. Building the blog using Jekyll was not. I have written a 130,000 word novel in Markdown. Thats a story for another time, but suffice it to say I am exceptionally comfortable writing markdown. I made a simple Welcome To The New Blog blog post, and then had Jekyll build the blog. I did a little bit of research on how routing should work before realizing all I had to do was plop the built blog into the /public
folder of my rails app. Just like that, my blog was live!
I made a separate repo for the blog and wrote a simple script that would automate building the blog and copying it into the Linkidex Rails Monolith. Long term I imagine hosting the blog from S3 may be the best play, but what I have is working perfectly so far, so for now I am quite satisfied with it. Or at least the technical side of it.
SEO-ing for the first time
Driving traffic to Linkidex through SEO has not gone how I expected it would. At the end of January, google is only showing 1 of our blog posts in search results. The post is far enough down in the search results that no one has clicked it. Out of 25 (supposedly) indexed blog posts on Linkidex’s blog, only 1 is showing up in search results. I’m not super stoked about this.
In the beginning of January I worked on adding all of Linkidex’s release notes to Linkidex. I backdated dates to match when the given feature was deployed. It took google more than 2 weeks to begin indexing these.
I also authored 6 blog posts. Some of these posts are ‘top XYZ’ lists (top Tools, top courses, etc) which I think lend themselves well to what Linkidex does, and some of them are about productivity tools, or specifically bookmark managers. All of them say they are indexed.
This was not the outcome I wanted for January. I thought release notes would generate at least a small amount of traffic, and the few of the blog posts would get some hits and start giving me data on what people are finding valuable. Instead, I have no data and I am not sure if the google search console is broken, or the data is just 2 weeks stale, or maybe google just hates me.
Reflections
My research suggests that SEO can take a long time, and that I should just be patient and keep adding content. So thats what I am going to do. There is a stark difference between deploying a feature and immediately seeing if you took down the site or not, versus throwing a blog post into the ether and hoping within a month maybe people will start to see it, and this is something i’ll have to adjust to and learn more about.
So far I am disappointed but not discouraged. I have never done SEO before. 2 months ago I was researching what the best way would be to add a blog to Linkidex. A month and a half ago I deployed a blog to Linkidex, not really knowing where this would go. Now I have 45 indexed pages and an easy to follow process to add content to the Linkidex blog. Linkidex has shown up organically in search results over 1,500 times (albeit no one has ever clicked on it.) There are jobs, teams, and even entire companies dedicated to SEO, so I guess its reasonable it may take me more than a month to get the hang of it.
For now, I’ll take comfort that things can only get better from here. And I’ll keep writing.