Publishing an Extension on the Chrome Web Store: A Step-by-Step Guide
Your extension is ready, but getting it live in the store is its own process. Here are the steps to watch, in order, from the developer account to the review.
Photo: Zulfugar Karimov / Unsplash
Publishing a Chrome extension comes down to a few steps: opening a developer account, uploading the extension package, filling in the store listing, justifying your permissions and data use, and getting through Google's review. Technically it's a short process, but if your permission justifications and privacy disclosures aren't prepared carefully, the extension can be rejected or the review can drag on. This guide walks through the process step by step, along with the most common mistakes.
Pre-launch preparation
Before you upload anything, the materials that describe your extension need to be just as ready as the extension itself.
Technical preparation
- Manifest V3 compliance: New extensions are published with Manifest V3. Remotely hosted JavaScript can't be executed; all logic has to live inside the package.
- Least privilege: Request only the permissions you actually use. Broad permissions such as access to all sites can trigger a more in-depth review. Where possible, limit access to specific domains or prefer temporary access granted when the user clicks.
- Version number: Bump the version in the manifest with every update.
- Testing: Install the packaged extension in a clean Chrome profile and run through the main flows.
Store listing materials
- Extension name and short description,
- A detailed description of what it does, who it's for, and how to use it,
- An icon and screenshots (showing real usage),
- Optional promotional images,
- A support contact email or web page,
- A link to your privacy policy (required if you handle user data).
Steps to publish a Chrome extension
1. Open a developer account
You register for the Chrome Web Store Developer Dashboard with a Google account. There's a one-time registration fee, and two-step verification must be enabled on the account. If you're publishing on behalf of a company, use a company-owned account rather than a personal one to avoid access problems later. The dashboard also supports groups, so several people can manage the same publisher account.
2. Upload the package
Compress the extension files into a ZIP and upload it to the dashboard. The manifest file must sit at the root of the ZIP. If there are manifest errors, the dashboard shows them during upload.
3. Fill in the store listing
Enter the description, category, language, images, and support details. Describe what the extension does clearly and without hype; descriptions that promise features that don't exist or repeat keywords misleadingly violate store policies.
4. Declare your privacy practices
This is the step that needs the most care. The dashboard asks you to state:
- Single purpose: The extension must have one narrow, easy-to-understand purpose. Bundling several unrelated functions into one extension can be treated as a policy violation.
- Permission justifications: For every permission you request, explain briefly and concretely why it's needed.
- Remote code: You declare whether or not you execute remote code.
- Data usage: You state what kinds of user data you collect and certify that you don't sell it or use it for anything outside the extension's purpose.
Your declarations must match both the extension's actual behavior and your privacy policy exactly.
5. Choose visibility
You can publish your extension publicly, as unlisted (findable only by people with the link), or privately to specific people or groups. For internal company tools, unlisted or private publishing is usually enough. On managed corporate devices, admins can also force-install the extension through policy.
6. Submit for review
After you submit, Google reviews the extension. There's no fixed review time; it can vary with the permissions requested, the structure of the code, and whether it's a first release. Build some slack into your launch date for the review.
Common reasons for rejection
- Requesting permissions you don't use, or ones broader than your purpose requires,
- Vague or missing permission justifications,
- No privacy policy, or one that contradicts the extension's behavior,
- Bundling several unrelated functions into a single extension,
- Misleading claims or keyword stuffing in the description,
- Obfuscated code. Minification is fine, but obfuscation that makes the code hard to understand is not.
When an extension is rejected, the dashboard usually names the relevant policy. You can fix the issue and resubmit.
How updates are published
To ship a new version, you bump the version number and upload the new package. Updates go through review too. Keep in mind that when you add a new permission, the extension may be disabled for users until they approve it. That's why it's good practice to plan permission changes carefully and use optional permissions where you can.
Percentage-based staged rollouts can also help you reduce risk by releasing big updates to a portion of users first.
What to monitor after launch
The work doesn't stop once the extension is live. Check these regularly:
- User reviews and support requests: Store reviews are often the first place bugs get reported. Short, concrete replies to reviews also build trust with other users.
- Error logs: Sending background errors to a monitoring service lets you catch problems before users report them. Remember to include what data goes to that service in your privacy disclosures.
- Policy updates: Chrome Web Store policies and Chrome's extension APIs change over time. Keeping an eye on dashboard notifications and emails prevents your extension from being taken down without warning.
- Sites you depend on: If your extension relies on the page structure of other sites, check those sites for changes regularly.
Who owns this monitoring should be settled at the start of the project, together with the maintenance plan.
Publishing checklist
- Uses Manifest V3 and the version number is current.
- Requests only necessary permissions, each with a written justification.
- Does not execute remote code.
- Privacy policy is live and matches the extension's behavior.
- Store description is clear and screenshots show real usage.
- Support contact details are correct.
- Visibility (public, unlisted, private) was chosen deliberately.
- Packaged build was tested in a clean browser profile.
- The launch schedule leaves room for review time.
A short template for your store description
When writing the detailed description on your store page, you can use this structure:
- One-sentence value proposition: Who is the extension for, and what job does it make easier?
- How it works: The usage flow in three or four steps.
- Key features: A short bulleted list, covering only features that actually exist.
- A note on permissions: Which sites the extension runs on and why it needs that access, in plain language.
- Privacy: What data is processed, plus a link to the privacy policy.
- Support: How to report a problem.
A clear note about permissions reduces the hesitation users feel when they see the permission warning during installation.
Conclusion
For a well-prepared extension, publishing to the Chrome Web Store doesn't take long; what really decides the outcome is explaining permissions and data use honestly and clearly. An extension that works with minimal permissions, has one clear purpose, and makes consistent privacy disclosures gets through review far more smoothly. At Weras Labs, we handle store preparation and publishing alongside development on extension projects; details are on our services page.
Frequently asked questions
Does it cost money to publish an extension on the Chrome Web Store?
There's a one-time registration fee when you open a developer account. Beyond that, there's no charge to publish or update extensions.
How long does the extension review take?
There's no fixed timeframe. It depends on factors like the permissions requested, the structure of the code, and whether it's a first release, so leave some room for it in your launch plan.
Can I make the extension available only to my company's employees?
Yes. You can use unlisted publishing or publish privately to specific users. On managed corporate devices, the extension can also be installed through admin policy.
Does every extension need a privacy policy?
If the extension collects or handles user data, a privacy policy is required. It must match the data usage disclosures in the store and the extension's actual behavior.
About the author

Habip Dayan
Founder of Weras Labs
Habip Dayan is the founder of Weras Labs, a company that builds software products for professionals and teams. He has been building software since 2018 and writes about AI, cloud architecture and product design.
The Weras Labs newsletter
New articles, product updates and notes on building software. A few emails a month; unsubscribe any time.