How to Publish a Chrome Extension
Prepare your Manifest V3 ZIP, create the required listing assets, complete Google’s privacy and permission disclosures, and submit your extension for Chrome Web Store review.
Prepare these items first
Do not begin the submission with an untested ZIP and assume the dashboard will fix it. Have the extension, listing copy, images, support information, and privacy answers ready.
Tested extension ZIP
The ZIP must contain manifest.json at its root and should be the exact version you tested with Load unpacked.
Developer account
Use a Google account you monitor. Google requires Chrome Web Store developer registration and a one-time registration fee.
Clear single purpose
Be able to explain the extension’s one narrow, understandable purpose in a sentence.
Store listing copy
Prepare an accurate name, short description, detailed description, category, language, homepage, and support URL.
Listing images
Prepare the required store icon, promotional tile, and at least one real screenshot at Google’s exact dimensions.
Privacy information
Know what data the extension collects, why each permission is needed, and whether a privacy-policy URL is required.
Test the final production version
Install the extracted project with Chrome’s Load unpacked feature and test the same files you plan to upload.
Review the manifest and ZIP structure
Some manifest information cannot be edited inside the Web Store dashboard. Correct it in the project, increase the version when required, rebuild the ZIP, and upload again.
├── manifest.json ← must be at the ZIP root
├── popup.html
├── popup.css
├── popup.js
├── options.html
└── icons/
└── icon128.png
Create your Chrome Web Store developer account
Open the Chrome Web Store Developer Dashboard, sign in, accept the agreement and policies, and pay the one-time registration fee displayed by Google.
Choose the account carefully
- Use an email you check regularly.
- Use an account the business will control long term.
- Protect it with recovery information and two-step verification.
- Keep the payment and publisher records.
Do not treat it as disposable
- Google says the developer-account email cannot simply be changed later.
- Important rejection, takedown, and policy messages go to this account.
- Transferring items later creates extra work.
The registration fee is separate from anything paid to Extension Creator. Confirm the current amount and payment options in Google’s dashboard before registering.
Complete the Developer Dashboard submission
Upload the ZIP
Open the Chrome Web Store Developer Dashboard, select Add new item, choose the ZIP, and upload it. Google currently supports extension packages up to 2 GB, although a normal extension should be much smaller.
Complete the Store Listing tab
Write a concise opening sentence that explains the extension immediately. Add the detailed description, category, language, screenshots, store icon, promotional tile, and any appropriate homepage or support links. Describe only features that actually exist and avoid keyword spam.
Complete the Privacy tab
State the extension’s single purpose. Justify every requested permission, declare whether it uses remote code, disclose any user-data collection, complete the limited-use certifications, and supply a privacy-policy URL when required. Your answers must match the extension’s actual behavior.
Choose distribution
Select the countries and audience that should have access. Public items can appear in search, Unlisted items are available through their direct link, and restricted options may be available for organizations or trusted testers. Unlisted does not mean unreviewed.
Add test instructions when needed
If reviewers cannot understand or reach a feature without special steps, an account, test data, or a particular website, provide clear instructions and valid test credentials in the designated area. Do not put private credentials in the public description.
Resolve every dashboard warning
Read the actual message instead of clicking through it. A warning may point to missing assets, incomplete disclosures, excessive permissions, inconsistent listing claims, or a package problem.
Submit for review
Choose whether the approved item should publish automatically or use deferred publishing. With deferred publishing, Google currently gives you up to 30 days after approval to publish before the staged submission returns to draft.
Monitor the review
Review time varies with the extension and requested access. Watch the dashboard and developer email. If Google rejects the item, read the cited policy, correct the code or listing, increase the version when uploading a new package, and resubmit.
Prepare the Chrome Web Store graphics
Extension icons inside the project and promotional graphics for the store serve different purposes. Do not stretch one tiny icon into every listing image.
| Asset | Size | Status | What it should show |
|---|---|---|---|
| Store extension icon | 128 × 128 px | Required | PNG icon that stays readable on light and dark backgrounds. Google recommends visual padding around square artwork. |
| Screenshot | 1280 × 800 or 640 × 400 px | At least 1 | The real extension experience and its main feature. Google allows up to five. |
| Small promotional tile | 440 × 280 px | Required | A clean brand-focused visual that remains clear when reduced. |
| Marquee promotional tile | 1400 × 560 px | Optional | A wider promotional image that may support additional store promotion. |
| Promotional video | YouTube URL | Optional | A truthful demonstration of the extension’s actual features. |
Give reviewers specific answers
“The extension needs this permission to work” is not a useful justification. Explain the exact user-facing feature, when access occurs, and why narrower access would not support it.
Weak explanation
“We need storage and website access for functionality.”
Specific explanation
“Storage saves the user’s selected formatting preferences locally so they remain available when the popup is reopened. The extension does not transmit those settings.”
Chrome extension publishing checklist
Rejections, approval, and updates
If it is rejected
Use the policy and reason in Google’s notice. Fix the specific issue, verify the rest of the package again, and resubmit. Do not make random changes.
If it is approved
Confirm the public listing, installation, screenshots, support link, privacy page, and core behavior. Monitor user feedback and errors.
When you release an update
Increase the manifest version, test the updated project, upload the new ZIP to the existing item, update disclosures or listing copy if behavior changed, and submi
