How to promote your Open Source project with SEO
Tags: seo, opensource
Published: 2021-06-13 07:19:50

---
description: How to promote your Open Source project in Google for free using SEO
canonical_url: https://itnext.io/seo-for-open-source-projects-1a6b17ffeb8b
tags: SEO, OpenSource
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zxxl244r3ms5eo8f5b90.jpg
---

## 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 do SEO for Open Source Project?

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](https://federicoterzi.com/blog/how-to-promote-open-source-project-on-github/)

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 do you get started?

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:


  * jQuery Terminal which is a [JavaScript library to create Terminal like websites](https://terminal.jcubic.pl/)
  * LIPS is [Scheme based Lisp interpreter written in JavaScript](https://lips.js.org)

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](https://www.investopedia.com/terms/l/long-tail.asp). 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](https://jcubic.pl/2019/05/jak-zaczac-nauke-lispa.html), 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 your GitHub repo

First, this is the phrase that 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 to the anchor text.

Why this is important? It's because your GitHub will be replicated on other websites that 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](https://openbase.com/js/@jcubic/lips) or [awesomeopensource.com](https://awesomeopensource.com/project/jcubic/lips).

### 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.

### 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.

### GitHub internal Wiki

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

## Keyword research

To find what keywords you should put in your website and git README you can use tools like [keywordtool.io](https://keywordtool.io/) or [Google Keyword Planner](https://ads.google.com/intl/pl_pl/home/tools/keyword-planner/). The second tool is used to plan Google Ads but you can use to find what people are searching 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 that can give you a clue what keywords to use to rank also for those additional keywords.

## Liking to your projects

Linking, after on-page SEO, is the second most important thing with 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 article about your project on Medium

Another piece of advice that can be both like promote 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](https://levelup.gitconnected.com/writing-strong-medium-articles-for-developers-and-programmers-in-2020-ae5a5a17b33a)

After you'll write the article you can post to dev.to (make sure you put canonical URL that point to your article on medium and remember to update the URL if you publish to some publication).

Examples of Medium Publishers:
* [ITNext](https://itnext.io/),
* [BetterProgramming](https://betterprogramming.pub/),
* [Level Up](https://levelup.gitconnected.com/) by GitConnected.

Alternative platform to Medium:
* [HackerNoon](https://hackernoon.com/),
* [GeeksForGeeks](https://www.geeksforgeeks.org/),
* [iCODE](https://icodemag.com/).

To improve the position of your published article, you can add some links to that article from other sites. You can put a link in your blog (if you have one) add it to 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 into Stack Overflow (discussed in the next section) with your solution and link to the article.

### Stack Overflow

Another nice place where you can put links to your website is Stack Overflow. First thing that you can do is to edit your profile page and include the link to your project and copy it to all website where you have account. If you're developer and don't have account you should definitely create one. It's a great place to learn by answering the questions on topic you want to learn. You can also ask question when you're stuck.

For my project jQuery Terminal I've create a tag and encourage users to ask question there. Also when I had problem with the project I also was asking with tag. You can put your link into a tag.

Another tip I can give you about Stack Overflow is to search for problems that people have and your Open Source project can solve and add answer with a link to your project. Remember to write how to use it with code or explanation how your project can help, because otherwise it may get down voted (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.

Example of such question is this that I've created recently (as I'm writing this) where I found question users where asking in Google:

[How to send a command to the shell with jQuery Terminal?](https://stackoverflow.com/questions/67942185/how-to-send-a-command-to-the-shell-with-jquery-terminal).

Putting links to your article from the 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](https://blogtrottr.com/).

### 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](https://www.wikibooks.org/) or [Wikiversity](https://www.wikiversity.org/). But please don't spam those sites with your links. Do this only if your project is relevant to the article.

Example link I've put to Wikipedia is on Article:

[Scheme (programming language)](https://en.wikipedia.org/wiki/Scheme_(programming_language))

I've put a link to my Open Source project LIPS that 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.

### Hacker News and Reddit

You can also post your project to [hacker news](https://news.ycombinator.com/) (use "Show HN:" prefix) and [Reddit](https://www.reddit.com/). To find a good subreddit to showcase your project you can use [findareddit.com](https://www.findareddit.com/). An example is [r/OpenSource](https://www.reddit.com/r/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](https://www.echojs.com/).

### 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 few ideas for blog posts).

### Awesome lists:

Think if you can submit a link to your project to some [Awesome list](https://github.com/sindresorhus/awesome).

## Few tips

### Project Website tips
* Use your own domain or GitHub pages (you can get free subdomain at [js.org](https://js.org/) that will point to your GitHub pages if the project is written in JavaScript)
* Sitemap.xml (even if it's just single page) it will be indexed faster after change.
* Register to Google Webmaster Tools and submit 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](https://www.google.com/search?hl=pl&q=free%20google%20analytics%20alternative))
* Mobile friendly (use Google Chrome dev tools responsive tool to test you site)
* Make the site fast
* Create Long Tail Phrases. Write keywords in text if you can, but don't put it 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 normal text as well.
* use [Lighthouse tool](https://developers.google.com/web/tools/lighthouse/) to improve performance of your site.
* add [twitter card](https://developer.twitter.com/en/docs/twitter-for-websites/cards/guides/getting-started) and [open graph](https://ahrefs.com/blog/open-graph-meta-tags/) (used by Facebook) meta tags to your website. To test if it works correctly you ca use [Twitter Validator](https://cards-dev.twitter.com/validator) and [Facebook Debug Tool](https://developers.facebook.com/tools/debug/).

## Useful links
### Articles
* [How to Promote Your Open Source Project](https://federicoterzi.com/blog/how-to-promote-open-source-project-on-github/)
* [9 Steps to Get 100 Stars on GitHub](https://dev.to/nastyox1/8-concrete-steps-to-get-stars-on-github-355c)
* [How to promote your open source project](https://linux-audit.com/how-to-promote-your-open-source-project/)
* [Google’s 200 Ranking Factors: The Complete List (2020)](https://backlinko.com/google-ranking-factors)
* [30 Most Important Google Ranking Factors A Beginner Should Know](https://unamo.com/blog/seo/30-important-google-ranking-factors-beginner-know)
* [Cheat Sheet: How to promote my open source project?](https://github.com/zenika-open-source/promote-open-source-project)

### Free SEO Tools
* [SEO Analyzer](https://app.neilpatel.com/en/seo_analyzer/)
* [Backlink Checker](https://ahrefs.com/backlink-checker)

If you have any other tips and links please add them into a comment.

If you've liked this post, you can follow me on twitter at [@jcubic](https://twitter.com/jcubic).

---
This post was originaly published on Medium: ["How to Promote your Open Source Project with SEO"](https://itnext.io/seo-for-open-source-projects-1a6b17ffeb8b) that was updated few times, read that one if you want latest chages.