Launched helga: skincare made happy! See early progress.

Home

a low maintenance approach for app visibility

Inadvertently learning about SEO while building my portfolio.

15 June 2023

Once upon a time A few months ago, I built an app. I had time on my hands and I wanted something... ambitious, to add to my portfolio. The idea for the app was inspired by a recurring problem I had and after conducting some interviews with friends and family, and learning from secondary research, I realised it was a problem I shared with many others. Other tools which tried to solve the same problem did exist but I thought my own hat was worth throwing in the ring, and fundamentally it would provide a great learning experience, so I built it anyways.

Fast forward, the app has been built and published. The high and elation of having surmounted such a difficult task of designing, architecting, building, and eventually publishing a whole app as a solo developer was, well… short-lived.

It suddenly wasn't enough for friends and family to be my only user base. I wanted feedback. I wanted to know how well, or not, this solution works in a wider context.

Getting an app published is not instantaneous. App store reviews are performed prior and it's undetermined how long the process will take. It can take a few days, weeks or even months. If your app hasn't been reviewed within a week’s end, try not to panic. This is becoming increasingly common. Just buckle up, and wait.

But, how? How do I tell this vast Inters-of-Webs of the thing I built? How can I tell people this is here so they might come?

Several opened tabs and Google searches later, I learnt a few crucial things which helped the app gain visibility. Well…no. Not quite. In truth, the number of installs per month did not skyrocket. In fact, the user base hasn't changed (and I secretly prefer it that way). However, the number of visitors per month on the app’s site is pretty consistent, and the site's average SERP position has steadily increased from 48 to 36 in the past 3 months. With no maintenance to the site on my part, I'd like to think that's a bit of a win.

The majority of visitors are in countries in which the app is not currently available, so I can guess that's one reason the app's user base hasn't changed. There's also a UI issue I recently identified which makes me quite happy friends and family are the only ones who use the app. If you download the app and your device's DPI is not 360 dp, you'll see what I mean.

So, what did I learn? This: There is seemingly only so much that can be done about ASO (app store optimisation) and SEO (search engine optimisation) might be my only friend. Translation: I need a homepage and some good content.

Another learning opportunity presents itself

Building an app has become increasingly easier given tools and technologies like React Native (Native or Expo) and Flutter. All we have to do is write once and deploy anywhere. But building a web application is even much easier.

To boot, there's a whole lot more overhead that comes with building an app than a web application. With a web application, once it's built you can deploy it within a matter of minutes and it's free (for the most part). With a mobile application (*chuckles), that's not happening. But aside from deployment and publishing technicalities, and upfront costs, there's also search optimisation to think about.

I could have optimised (further) search for the mobile application but I figured creating a web presence and channelling traffic from the web application to the mobile application would yield the best results. Most discoveries begin with a Google search anyways and after conducting keyword research to determine the viability of this approach, there was much hope.

When choosing keywords, choose keywords with a low keyword difficulty (”an SEO metric that estimates how hard it would be to rank on the first page of Google for a search term”) and a high search volume (”a measure of the number of search queries for a specific search term”). These keywords represent niches where your website could easily gain visibility. A free tool which can help with keyword research includes Ahrefs SEO tools.

With my research conducted and keywords identified, I went to work designing and building the website.

My quest for an SEO friendly website began with my weapon of choice, Next.js. Out for the box, the framework provides good SEO performance because it renders web pages on the server (server-side rendering or SSR) instead of rendering them in the browser (client-side rendering or CSR - which is the standard behaviour of React applications). Using SSR, the web page's first paint includes it's content which is first generated on the server then sent to the browser instead of a shell, which you'd get with CSR. The former is more reliably indexed by bots - which is good for SEO - compared to the later.

Once I chose the appropriate tooling, I had to figure out what content to include.

Writing a blog was one option, but I wanted something automatic, low maintenance, and able to leverage the work I had already put in, and exposing some functionality I had previously worked on on the web application did just that.

One of the functionality which was particularly effective in achieving this allowed me to create multiple yet unique pages where each page's description meta tag and content targeted the keywords I had identified.

Wondering about the keywords meta tag. Well, as of 2009, Google no longer uses the keywords meta tag when ranking web pages because in the past the keywords meta tag was often abused.

It's like having a blog, except it's automated. In my case, for each product I add, there is more relevant content added to the website.

But! That's not all. Now that I had a website and all these pages, I needed to tell search engines about them and that's when I re-encountered sitemaps.

sitemaps for seo

A sitemap is "a file where you provide information about the pages, videos, and other files on your site, and the relationships between them". In essence, it's a list of all (or some important) web pages on your website that bots use when crawling and indexing your website. Having one these (yes, you can have more than one) makes it easy and quick for bots to do their job.

A sitemap can also be used to define web pages you don't want bots to crawl or index. You can access your website's sitemap by using the following URLs: ${siteUrl}/sitemap.xml or ${siteUrl}/sitemap-0.xml.

It can also help with websites with weak internal linking which may result in orphaned pages, or help bolster websites with a weak external link profile (like mine). In my case, it was particularly helpful in allowing bots to index dynamically generated pages, which was how the exposed functionality worked.

Next.js has their own documentation on creating a sitemap for dynamically generated pages. There's also plugin - next-sitemap - which can help with the process.

results

Now, you might be wondering how it went. Well, within a month of making these changes and deploying, the website had 15 clicks *sheds tear, and as of this writing, 45+ clicks and growing. Not overwhelming exceptional, but - better than no clicks.

It's quite likely this is as good as it gets while leveraging this low maintenance approach. If I was looking to see increased traffic, I would likely have to start looking at adding different channels such as social media profiles and possibly creating a content strategy. Or, taking a few steps back and re-validating the idea.

The bottom line: if you build it, they won’t come. you have to tell someone about it.