How to create a Chrome extension

Have you ever done a repetitive task and wished you could automate your process?

Tired of spending time looking for a suitable extension just to get a blank search results page?

Fortunately, as a Chrome user, you can create a Chrome extension in just eight easy steps.

How do we know? We created our own Ubersuggest Google Chrome extension to streamline our keyword research systems.

In this post, we're going to show you how to create a Chrome extension that will help you innovate your tasks and be productive again.

What is a Chrome Extension?

Google Chrome extensions are programs that you can install on your Chrome browser to change its functionality.

With the help of Chrome extensions you can automate certain functions in your browser, change existing behavior and improve the comfort of your software. There are even Chrome extensions that can improve your SEO.

Chrome extensions are created using HTML, JavaScript, and CSS scripts and are essentially small websites that are uploaded to the Chrome Store.

The only difference between a Chrome extension and a regular website is that Chrome extensions contain a manifest file that gives them a specific function to perform.

Another way to think about Chrome extensions is that they are part of the code that changes your browsing experience.

For example, the Grammar Chrome Extension allows you to edit and change your copy as you write. The LastPass extension allows you to keep your password manager in your browser.

Here are 13 of our favorite Google Chrome extensions to consider.

What can Chrome extensions do?

A custom extension can do a single task. This task must be well defined and easy to understand in order for it to work properly.

You can include more than one component or functionality, as long as everything aligns the extension with a single goal.

Chrome extensions use either page actions or browser actions.

A page action is an action that is specific to certain pages.

A browser action is relevant regardless of where you are in the browser.

In addition, your user interfaces must be easy to use and straightforward. These can range from a single icon, think of the Gmail icon, or they can override an entire page for your user interface.

Your final result is a compressed .crx package that users download and install.

Why should I create a Chrome extension?

Google Chrome is the most widely used browser software in the world. According to W3Counter, Chrome has 65.3 percent of the total market share.

You should also create a Chrome Extension if you want to add a simple action to your browsing experience.

The advantage of Chrome extensions over regular applications is that they are often easier to build and maintain. Because Chrome extensions are based on a single function, they take less time and skill to create.

Creating a Chrome extension often takes much less time than creating a website from scratch.

If you want to change your browser in an easy and effective way, consider creating a Chrome extension.

Chrome extensions can also improve your web traffic. Please see the following video for more information.

What Makes a Chrome Extension Successful?

A successful Google Chrome extension simplifies a task or functionality and improves your productivity.

Imagine you are an ecommerce web builder doing research on competitor business. When you install the Koala Inspector extension, you can see if Shopify has created a website that you land on. You can also see which theme was used when new updates were made and view product statistics.

Another Chrome extension, the News Feed Eradicator for Facebook, can improve your productivity by blocking your news feed so you can focus on your tasks. It's a simple but effective feature that can help you improve your daily workflow.

Both extensions perform a simple functionality that improves the user experience. When creating a Chrome extension, keep its simplicity in mind. That is the secret to a successful expansion.

Your step-by-step guide on how to create a Chrome extension

Now is the time to build your Chrome extension.

It is important to note that you need to do this in Google Chrome. This may seem obvious, but not everyone uses Chrome as their default browser.

If you're not a regular Chrome user, be sure to install it before starting these steps.

Also, check your work regularly as you go through this process. It's much easier to fix coding errors right now than after you're done.

Creating a Chrome Extension Step 1: Determine What Your Extension Needs

The first step in creating your Chrome extension is deciding on a functionality.

What will it do? What will it look like?

If you want to create an extension for your Google AdWords campaigns, you need to decide how you want it to work.

An icon is required to upload any Chrome extension to the Google Chrome Store. Make sure you create or swap out an icon before you begin.

Once you know how your Chrome extension works and what you want it to look like, it's time to start building.

Below we are going to show you how to create an extension that will allow you to change the background color of your current page.

Creating a Chrome Extension Step 2: Create a Directory for Your Extension

To start creating your Chrome extension, you'll need to create a new directory that will store all of your extension's files.

This is important because in order to load your plugin, Chrome needs to point to a folder with your extension files.

You can put all the files you need for your extension in this directory.

Create a Chrome Extension Step 3: Create your extension's manifest file

The next step is to create your extension's manifest file.

This file tells Chrome how to properly load the extension.

Create a file named manifest.json and add it to your directory.

Then add the required code to your manifest file.

For our purposes, the code looks like this:


"Name": "Example of the first steps",

"Description": "Create an extension!",

"Version": "1.0",

"Manifest_version": 3


Creating a Chrome Extension Step 4: Load your extension into Chrome and check for errors

Now is the time to test your extension to make sure Chrome is running it.

Follow these steps:

  1. Go to chrome: // extensions in your Google Chrome browser
  2. Check the Developer Mode box in the top right corner
  3. Click on "Load unzipped" to display a file selection dialog
  4. Choose your extension directory

Example of the loading screen of the Google Chrome extension

If your extension is valid, it should load immediately.

If it's invalid, you'll see an error message at the top of your page. If so, check for errors, correct them, and try loading your extension again.

The most common mistakes made here are syntax errors. Check all commas and parentheses and make sure they are formatted correctly.

Also make sure that the activated The box next to your extension is checked so you can see it going live.

Creating a Chrome Extension Step 5: Develop Your Background Script

Next, you'll need to add a background script to tell your extension what to do.

First, create a file named background.js in your extensions directory.

Then add your script.

For our color change extension we use this script:


"Name": "Example of the first steps",

"Description": "Create an extension!",

"Version": "1.0",

"Manifest_version": 3,

"Background": {

"Service_worker": "background.js"



This file tells Chrome to look for additional instructions.

The extension we're creating also requires a listening event for runtime.onInstalled in the background script.

In the onInstall listener, the extension defines a value with the storage API. This allows multiple extension components to run and edit this value.

let color = "# 3aa757";

chrome.runtime.onInstalled.addListener (() => { ({color});

console.log ("Default background color set to% cgreen", "Color: $ {color}");


Most APIs must be registered in the Permissions field of your manifest. Like this:


"Name": "Example of the first steps",

"Description": "Create an extension!",

"Version": "1.0",

"Manifest_version": 3,

"Background": {

"Service_worker": "background.js"


"Permissions": ("Storage")


Next, go back to your extension management page and click Reload.

You should see a new field for Review views come up. There will also be a blue link that reads this Background page.

Chrome Extension Builder user interface example

Click on the link and you will see the console log of the background script, It says "Default background color set to green".

Content scripts can also be added to run page-by-page scripts.

Content scripts should be placed directly in your manifest file.

Building a Chrome Extension Step 6: Build your UI

Your extension can contain a variety of user interfaces, from popups to tooltips and more.

To start designing your user interface, you need to register a browser action in your manifest.

In our example we are using a popup. The code looks like this:

You need to declare this code in your manifest for it to work.

To do this, add an action to your manifest and set it popup.html than the action default_popup.

Your script should look like this:


"Name": "Example of the first steps",

"Description": "Create an extension!",

"Version": "1.0",

"Manifest_version": 3,

"Background": {

"Service_worker": "background.js"


"Permissions": ("Storage"),

"Action": {

"Default_popup": "popup.html"



This particular popup points to a CSS script so you'll need to add another file to your directory. Name it appropriately and add the following:

Key {

Height: 30px;

Width: 30px;

Outline: none;

Border: 10px;

Limit: none;

Edge radius: 2px;


button.current {

Box shadow: 0 0 0 2px white,

0 0 0 4px black;


In our example, you also want to add color to your pop-up buttons. Later this color will also be used for the background of your page.

Create a file with the name and add it popup.js with the following code in the directory.

// Initialize the button with the color preferred by the user

let changeColor = document.getElementById ("changeColor"); ("color", ({color}) => { = color;


This will grab the button from popup.html and request the color value. Add a script tag popup.js in the popup.html like this:

From there, you can add badges to show the status of your extension. For example, a badge can tell a user whether the extension is activated or not, on or off.

A symbol of functionality and a drop of water underneath

Toolbar icons are covered action by doing default_icons Field.

Place any images you want in your directory and tell the extension how to use the images.


"Name": "Example of the first steps",

"Description": "Create an extension!",

"Version": "1.0",

"Manifest_version": 3,

"Background": {

"Service_worker": "background.js"


"Permissions": ("Storage"),

"Action": {

"Default_popup": "popup.html",

"Default_icon": {

"16": "/images/get_started16.png",

"32": "/images/get_started32.png",

"48": "/images/get_started48.png",

"128": "/images/get_started128.png"




16 × 16 and 32 × 32 sizes are recommended for images. All symbols should be square, otherwise they can be distorted.

If you don't specify an icon, Chrome will add a default icon for you.

Keep your Chrome extension's interface simple and easy to use.

According to Google, all extension interfaces should contribute to a surfing experience and not distract from it.

Reload your extension before proceeding and make sure everything looks right.

Create a Chrome Extension Step 7: add logic

Logic encourages interaction with the user interface.

Add logic scripts to the user interface options you have included.

Logic can instruct your extension to take certain actions, such as: B. What to do when a button is clicked.

For example, if you've used the popup.js script, you'll want to include your logic at the end.

In our example, you can use this script:

// When you click the button, add setPageBackgroundColor to the current page

changeColor.addEventListener ("click", async () => {

let (tab) = wait for chrome.tabs.query ({active: true, currentWindow: true});

chrome.scripting.executeScript ({

Target: {tabId:},

Function: setPageBackgroundColor,



// The main part of this function is executed as a content script within

// current page

Function setPageBackgroundColor () { ("color", ({color}) => { = color;



Function setPageBackgroundColor () { ("color", ({color}) => { = color;



This code triggers a programmatically injected content script. This will change the background color of the page to the same color as the button that was added earlier.

From here your extension should be fully functional. All new additions are frills.

Create a Chrome Extension Step 8: Test Your Extension

Just like A / B testing in marketing, it's important to continually test your extension to make sure everything is working.

Test it yourself or have someone else test it.

If you have someone else test it, do so without giving them instructions to make sure it is intuitive to use.

Make the necessary changes and test your extension again.

Even after starting your extension, you can continuously optimize and improve it. This is how we got the Ubersuggest Chrome Extension 2.0.

Once you are satisfied, you can use it.

Can I practice creating a Chrome extension?

Once you've uploaded your extension to the Chrome Store, it's live and usable.

If you don't want your Chrome extension to be publicly available, you can always create a GitHub repo that users can clone from.

This requires that people have access to your source code. So be sure to consider this before uploading anything to GitHub.

You can also experiment with open source examples before diving into your extension.

Examples of Chrome extensions are available on Google's GitHub.


Creating a custom Google Chrome extension is a great way to improve the functionality of your browser and get the best user experience.

In addition, your tool can drive traffic to your website. Changing that experience can lead to new leads for your business.

Remember, some of the best performing Chrome extensions were made by people like you!

It might be a learning curve to get your extension where you want it to be, but it's well worth it when you have an exciting new feature to showcase to your friends and prospects.

What kind of Chrome extensions did you create?

Consultation with Neil Patel

See How my agency can drive Firmly Traffic volumes on your website

  • SEO – Unlock massive amounts of SEO traffic. See real results.
  • Content Marketing – Our team creates epic content that is shared, links accessed and visitors drawn.
  • Paid media – effective paid strategies with a clear ROI.

Book a call


Please enter your comment!
Please enter your name here