How to Promote your Open Source Project with SEO | ITNEXT
SEO and OpenSource letters on a piece of wooden surface

How to Promote your Open Source Project with SEO

Jakub T. Jankiewicz
ITNEXT
Published in
15 min readJun 12, 2021

--

What is SEO?

SEO stands for Search Engine Optimization, it’s all the things you can do to the website to make it high in organic (not paid) search results (mostly in Google that have a bigger market share).

There are two types of things you can do to optimize the page. The first is on-site optimization, which is modifying the website HTML to make it rank better. This includes keywords in the text, speed of the site, mobile-friendliness, also to some degree accessibility of the site. The second way to optimize the site are links that point to your website. And this basically sums up everything.

Why would you want to promote your Open Source Project using SEO?

When you create an Open Source project you probably what users to see the project and use it. You don’t want to have a project that no one uses. The first thing to do if you want to make your project more visible is to promote your project in different ways. You can read a great article about this subject in this article:

How to Promote Your Open Source Project

If you wondering what else you can do, the answer is SEO. Google searches are a big part of the traffic to any website. You can have a lot of visitors from search engines. And you can do this with a little bit of work. You don’t need to pay anyone to do this. You can do SEO yourself. This is especially important for Open Source where you most likely don’t get paid and you don’t want to pay to promote your project.

Read the rest of the article and I will give you some tips on a way to optimize your project to show them on Google.

On-Page SEO factors

There are multiple factors that are taken into account when Google decides what position the website should have. Here is a list of some of them.

  • Keywords on the page.
  • Links to the site from other domains.
  • Ranking of the site that points to your website.
  • Keywords on links that point to your site.
  • Age of the domain.
  • SSL (encryption of the page).
  • Mobile-friendliness.
  • Page speed.
  • Accessibility of the page.
  • Page metadata.
  • EAT (expertise, authority, and trustworthiness) of the author.
  • Good outbound links, e.g.: you can link to your competitors or Wikipedia.
  • At least one image with keywords in alt and caption (or text around the image).

So how to get started promoting your Open Source project?

First, you should optimize the content of your git repository, most of the time it will be GitHub repo (but you can do the same with any other git hosting).

The first thing you can do is to come up with the catchphrase that will describe your project and also will have some keywords in it, here are an example of mine:

Those two project catchphrases also contain the keywords:

“terminal”, “website” and “JavaScript”
“Scheme”, “lisp”, “interpreter” and “JavaScript”

When you link to your project from other sites you can use this phrase as a link text (usually called anchor text).

These types of phrases are called long-tail phrases. Good thing is that if you use that catchphrase in different places (for instance as links) your project page will also rank better for all combinations of keywords e.g. in my case “lisp interpreter in JavaScript” or “lisp JavaScript”. For the last keyword, my project is not that high yet. In the Polish language on the first position is my article about learning LISP. Jak zacząć uczyć się języka LISP — Głównie JavaScript, the blog have JavaScript in name so it rank higher. At least it was when I’ve started working on this article, the position is always fluid, and change depends on where you’re located in the world.

SEO tips for promoting your GitHub project:

The phrase, that you’ve created, should point to your GitHub repo inside the README. If you have a home page you can also create a link with a catchphrase to your home page. To look normal you should put it at the top of the README. If you have a home page for the project (you can use GitHub pages) the top link should be the website. But you can also put a link to your git Repo later in the README. Also, put some keywords in the anchor text.

Why this is important? It’s because your GitHub repo will be replicated on other websites and your README will be shown in different domains. So you can take benefits and get free links to your project that will improve the SEO. All you have to do is to update your README.

Examples of websites that duplicate GitHub content is openbase.com or awesomeopensource.com.

Banner on git repo

By default, each repo on GitHub will have a generic image when you share the link to the repo on Twitter or Facebook. You can make it looks better by creating a nice-looking banner in the settings of the repo. If you have a logo, you can try to create a banner that will show the logo. You can also put a catchphrase into a banner. It will benefit when displayed on Twitter or Facebook. It may even help Image SEO if Google will recognize the text in the image.

Topics on GitHub

Another SEO improvement is internal linking if more links point internally to your single page. It means that this page is more important. On GitHub, you can create topics (they are like hashtags) that explain what your project is all about. Pick as many as you can. Your git repo will be visible on the Topic page with a link. This will improve the SEO of the project Repo.

GitHub internal Wiki

If you’ve created a Wiki for your project, which is a great way to quickly create documentation, you can use the footer of the Wiki page to create a Copyright note and put the link to your project, you can use catchphrases as anchor text, you can also link to your personal home page (same as in README).

Your GitHub profile page

On GitHub, you can have a customized profile page. You just need to create a secret repository with the same name as your username. In the README file (that will appear on your profile) you can put links to your project's websites. GitHub profiles are often cloned by a lot of websites so you will not have one link but many that will point to your project. GitHub README is also a good way to show yourself to potential employers that will check your profile so you can explain what your project is about. You can also put links to your projects and as anchor text (text over the link) put some keywords. You can check my profile here: @jcubic.

Keyword research

To find what keywords you should put on your website and git README you can use tools like keywordtool.io or Google Keyword Planner. The second tool is used to plan Google Ads, but you can use it to find what people are searching for in Google. Another tool that you can use is Google itself. If you search for something you will always see at the bottom what else people are searching for. It can give you a clue what keywords to use to rank also for those additional keywords and phrases.

Liking to your projects

Linking, after on-page SEO, is the second most important thing in Search Engine Optimization. You should link to your project git repo and website and if possible include keywords in anchor text (you can use your catchphrase but you can also come up with different keywords that you want to rank for).

You can do multiple things to make a link to your website. Over time people may link to your project on their own.

Write an article about your project on Medium

Another piece of advice, that can be both like promoting your project, but where you can do some SEO is writing a blog post on Medium. Medium domains have a very high ranking (domain trustworthy or domain ranking). So if you write the article properly (include your keywords and long-tail phrases) you will rank higher in Google. The best thing is that articles, that are like a tutorial, will explain how to do things, but with your Open Source project. You can write more than one article explaining different things.

This article will benefit in two ways if it ranks high. It will be a promotion for your project. People will find it and then visit your website, but they will know exactly how to use your project. And second thing is that you can link to your project that will be a factor when Google finds the article while indexing the Web. Remember to use keywords in anchor text for the link to your project. And you can also put a link to both the Git repo and the home page of your website.

On Medium, there are also publications, where you can get links from different domains. Recently Medium is forcing users on using their own subdomains, so the publication may be the only way to get a good, high-ranking article.

If you want to want to know more about Medium, read this article:

Writing Strong Medium Articles for Developers in 2020

After you’ll write the article you can post it to dev.to (make sure you put a canonical URL that points to your article on the medium and remembers to update the URL if you publish to some publication).

Examples of Medium Publishers:

Alternative platform to Medium:

To improve the position of your published article, you can add some links to that article from other sites. You can put a link on your blog (if you have one) and add it to the comments of related articles. You can create a section with tutorials in README of a git repo or on a project website. You can also add an answer to Stack Overflow (discussed in the next section) with your solution and link to the article.

An example of such an article, that I’ve written for my project is:

How to create interactive terminal like website with JavaScript?

It explains the problem someone may have. I’ve also optimized it by updating it when I’ve found new keywords. It appears in first place in Google, for a lot of keywords. And I have a lot of visitors from this article.

You can also start posting articles to dev.to. They can be simple articles where you share progress on your project or post interesting solutions that you’ve added. Be sure to link to your project website (dev.to have links do follow on articles and it will improve the ranking of your site.

It’s also a good idea to include a list of tutorials in your README. It will be cloned by different sites, and it will make the article rank better.

Awesome lists

Awesome lists are great places to show your project. Awesome List is a project started by Sindre Sorhus (prolific Open Source developer) there are hundreds if not thousands of lists on various topics that list mostly Open Source projects hosted on GitHub. You can find one that fits and create a PR to add your project to the list. But don’t SPAM, use this if your project fits and it’s good enough for the list.

Stack Overflow

Another nice place where you can put links to your website is StackOverflow. The first thing that you can do is to edit your profile page and include the link to your project and copy it to all websites where you have an account. If you’re a developer and don’t have an account, you should definitely create one. It’s a great place to learn by answering the questions on a topic you study. Teaching is the best way to learn. You can also ask questions when you’re stuck.

For my project jQuery Terminal, I’ve created a tag and encouraged users to ask questions there (put a link to the Stack Overflow tag in a main nav bar on the website). Also when I had a problem with the project, I’m also was asking with a tag. You can also put your link into a tag.

Another tip I can give you about StackOverflow is to search for problems that people have, that your Open Source project can solve and add answers with a link to your project. Remember to write how to use it with code or an explanation of how your project can help, because otherwise it may get downvoted (no one likes it).

If you find some keywords where users are asking something and there are no questions on Stack Overflow about this. And this is a good question. You can create a question yourself and add your answer that will show how to solve a particular problem. You can even do that while creating a question.

An example of such a question is the one I’ve created recently (as I’m writing this) where I found question users were asking on Google:

How to send a command to the shell with jQuery Terminal?.

Putting links to your article from different websites will also benefit the article.

If you decide to create a tag, you should subscribe to that tag (via RSS), so you can answer the questions people may have. At first, you may be the only one that knows the answer. If you’re like me and don’t look up RSS that often or you don’t use RSS at all, you can use a Service that will send you an email when a new RSS entry appears.

Another thing you can do on StackOverflow is your profile page, were you can put links to your project’s websites. And you can link to your StackOverflow profile page from your GitHub profile page. You can even put a nice dynamic banner that will show how many points you have.

Wikipedia and sister projects

Wikipedia is another good resource, but not every project can be put into Wikipedia. You can add a link but it may get removed. If not Wikipedia, you can think about other projects like Wikibooks, Wikiversity. But please don’t spam those sites with your links. Do this only if your project is relevant to the article.

The Example link I’ve put to Wikipedia is on the Article:

Scheme (programming language)

I’ve put a link to my Open Source project LIPS which is Scheme implementation in JavaScript. The project is not that significant (and known) to be one of the big implementations of the Scheme programming language. But I’ve created a bookmarklet that creates REPL on any website, that will be of benefit to any user. The link is also on WikiBooks.

Even if your project is not encyclopedic enough for Wikipedia you may create its page on WikiData (Wikipedia sister project) or upload an image of your project (e.g. a screenshot) to Wikimedia Commons and link to your project from the description. You can add an image from Commons to the WikiData page.

Here is the WikiData entry for my jQuery Terminal project and LIPS Scheme. If you look at both entires you will see all version of my projects, they were added by a bot that read the versions from NPM registry, where I published those projects.

Hacker News and Reddit

You can also post your project to hacker news (use “Show HN:” prefix) and Reddit. To find a good subreddit to showcase your project you can use findareddit.com. An example is OpenSource and subreddits with the language the project was created in or related to the problem it tries to solve. You can also find another website where you can showcase your project example for JavaScript is EchoJS and more general Lobster.

Blog

If you have your personal blog you should definitely write a post about your Open Source project and put your catchphrase or other keywords into anchor text.

Another idea, if your project can solve a lot of different issues users may have, is a dedicated blog on your project website (for example GitHub pages). With a blog, you can write how to solve different issues and link to your project git repo and home page, put relevant long-tail phrases for a given problem, users may have. This is something I didn’t test it yet. But almost every big company does this and SEO agencies use blogs to make the website rank higher in Google. So this is definitely something you should try if you have time. I plan to do this for my LIPS project when I have time (I even started working on a new website that will have a blog and created a few ideas for blog posts).

Awesome lists:

Think if you can submit a link to your project to some Awesome list.

Projects aggregators

You also can post to project aggregators, for example:

Website Catalogs

You can also add your Open Source Project to the web catalogs:

And this one is paid (but one time only)

Guest Posts

Another idea is to write guest posts and some good ranking sites. Here is the list of websites that allow writing guest posts. Some of them even will pay you. But of course, depending on your project the article may not be accepted. If you will search for the place for an article consider if you can put dofollow links in the article, otherwise it will only benefit if the user will click on the link and will not improve the ranking of your project.

Here is a list of sites that I’ve found when doing research:

Those websites have a very good domain ranking (checked in SEO tool). You can search on your own, maybe you will find more. on opensource.com you can register and write articles right away.

GitHub issues

Recently found that project GitHub Memory has an issue page where it shows all issues from Github, and links in those issues are dofollow. So can write GitHub comments that point to your website. To make it looks natural if you have an issue with some 3rd party library that doesn’t work with your project give a link to that project home page (or GitHub repo). If you have a demo app (and you should) you can link to that demo, also the demo should point to your home page.

Your Email Signature

Cool hack you can do is to add email signature with link to your projects you want to promote. It may happen that you send an email to a mailing list. If you include the link in your signature it most likely will be included in mailing list archive. Here is example of my message to emacs-devel. Notce 3 links in the signature. They have rel=”nofollow” attribute, but it’s better then nothing.

But don’t spam the mailing list if you don’t have something important to say. I’ve send a message to that list becasuse I had a problem with my project inside GNU Emacs editor.

You can also link to the email in an archive from somewere else. For example you can write a blog post that add solution to some problem you have. Or you can ask an answer on StackOverflow and link to the mailing list archive. Here is example: How to write Node.js REPL that works with GNU Emacs? I’ve asked a question, got no aswers, then asked on mailing list, when got reply, I’ve added an aswer to my own question. And it’s actually something that it will be helpful for other people. StackOverflow have good SEO and it’s easier to find then some mailing list archive.

Few tips

Project Website tips

  • Use your own domain or GitHub pages (you can get a free subdomain at js.org that will point to your GitHub pages if the project is written in JavaScript).
  • Sitemap.xml (even if it’s just a single page) will be indexed faster after the change.
  • Register to Google Webmaster Tools and submit a sitemap.
  • Analytics (Google Analytics is free and can connect with Google Webmaster Tools, you can also find some other free alternative search “free google analytics alternative” in Google).
  • Mobile-friendly (use Google Chrome dev tools responsive tool to test your site).
  • Make the site fast.
  • Add structured data about your project and you as an author, with help from JSON-LD.
  • Create Long Tail Phrases. Write keywords in the text if you can, but don’t put them everywhere because it will be hard to read for users. The text must make sense.
  • keywords in title H1, image alt tag (you can use them in Markdown too), inside links. It will also help if you write them in the normal text as well.
  • use the Lighthouse tool to improve the performance of your site.
  • add a Twitter card and open graph (used by Facebook) meta tags to your website. To test if it works correctly you can use Twitter Validator and Facebook Debug Tool.

Useful links

Articles

Free SEO Tools

If you have any other tips and links please add them to the comment.

If you like this you can follow me on Twitter: @jcubic and check my home page.

--

--

Writer for

Web developer, technical writer, Open Source programmer and Polish Wikipedia editor. Also not professional photographer and logo designer.