Der alte Dr.-Web-Artikel zu diesem Thema aus dem Jahr 2012 beschreibt eine Welt, die nicht mehr existiert. Background Pages, persistente Hintergrund-Skripte, das chrome.browserAction-API, der Schraubenschlüssel im Chrome-Menü: All das hat Google in den vergangenen drei Jahren abgeschafft. Manifest V3 hat den alten Standard ersetzt, Service Worker laufen jetzt im Hintergrund, und der Chrome Web Store nimmt seit Mitte 2024 keine MV2-Erweiterungen mehr an. Dieser Leitfaden ist ein vollständiger Rewrite und führt Schritt für Schritt von der ersten Manifest-Datei bis zum öffentlichen Chrome-Web-Store-Eintrag.
Kernaussagen auf einen Blick
- Manifest V3 ist Pflicht. Chrome 139 hat im Sommer 2025 den letzten Rest an MV2-Unterstützung aus dem Browser entfernt. Edge, Brave, Opera und Vivaldi folgen dem Standard.
- Der Markt ist riesig, aber polarisiert. Im Chrome Web Store stehen im Mai 2026 genau 251.488 Erweiterungen, 90 Prozent davon erreichen weniger als tausend Nutzer.
- 5 US-Dollar einmalig kosten den Verkaufsstart. Die Developer-Account-Gebühr fällt nur einmal an und gilt lebenslang für bis zu 20 Erweiterungen pro Konto.
- Service Worker statt Background Pages. Hintergrund-Prozesse laufen nicht mehr dauerhaft, sondern wachen nur auf Ereignisse hin auf und schlafen danach wieder ein.
- HTML, CSS und JavaScript reichen aus. Build-Tools, Compiler oder Frameworks sind für eine funktionierende Erweiterung nicht zwingend nötig.
Browser-Erweiterungen 2026: Markt, Reichweite, Pflicht-Standard

Chrome ist der mit Abstand verbreitetste Browser der Welt. Die Marktbeobachtungsseite About Chromebooks beziffert die globale Nutzerbasis auf 3,83 Milliarden Menschen im Jahr 2026, und davon hat ein erheblicher Teil mindestens eine Erweiterung installiert. Der LayerX Enterprise Browser Extension Security Report 2025 hat ermittelt, dass 52 Prozent der Berufstätigen mehr als zehn Erweiterungen gleichzeitig nutzen, die meisten davon unbemerkt im Hintergrund.
Die Verteilung im Chrome Web Store ist drastisch ungleich. Chrome-Stats zählt aktuell 251.488 öffentliche Erweiterungen, ergänzt um 70.127 Themes. Der Statistik-Dienst DebugBear hat in seiner Auswertung dokumentiert, dass nur 0,24 Prozent der Erweiterungen die Schwelle von einer Million Nutzern überschreiten. 70 Prozent kommen nicht einmal auf hundert. Diese Realität sollten Entwickler kennen, bevor sie starten: Sichtbarkeit entsteht selten durch Qualität allein, sondern fast immer durch einen klaren Anwendungszweck und gezielte Marketing-Arbeit außerhalb des Stores.
Auf der technischen Seite hat Google das alte Modell vollständig abgelöst. Im Mai 2024 hat das Chromium-Team angekündigt, Manifest V2 aus Chrome zu entfernen, im Juni desselben Jahres begann die Deaktivierung in den Vorab-Versionen Dev, Canary und Beta. Chrome 138 ist laut der offiziellen Migrations-Timeline die letzte Version mit MV2-Unterstützung gewesen, ab Chrome 139 hat Google den Support komplett gestrichen. Eine bestehende MV2-Erweiterung läuft heute in keinem Chromium-Browser mehr.
Architektur einer Erweiterung: Was im Hintergrund läuft

Eine Chrome-Erweiterung ist im Kern ein Ordner mit Dateien. Eine Pflicht-Datei steuert alles Weitere, die übrigen Bausteine werden dynamisch geladen.
Manifest. Die Datei manifest.json liegt im Wurzelverzeichnis der Erweiterung und beschreibt Name, Version, Berechtigungen, Icons und alle Komponenten. Manifest V3 ist das einzige zulässige Format.
Service Worker. Das Hintergrund-Skript einer Erweiterung. Anders als die alten Background Pages läuft ein Service Worker nicht dauerhaft, sondern wacht auf bestimmte Ereignisse hin auf. Eine treffende Analogie: Eine Sekretärin, die zwischen Anrufen schläft und nur bei Bedarf das Telefon abnimmt. Diese Architektur spart Speicher, erzwingt aber einen Bruch in der Programmierlogik.
Popup. Das kleine Fenster, das nach Klick auf das Erweiterungs-Icon erscheint. Besteht aus einer HTML-Datei plus optionalem CSS und JavaScript.
Content Script. JavaScript-Datei, die in fremde Webseiten eingebettet wird und deren DOM lesen oder verändern kann. Klassisches Werkzeug für Werbeblocker, Übersetzer oder Layout-Modder.
Optionsseite. Eigene HTML-Seite für Einstellungen der Erweiterung. Optional, aber für komplexere Werkzeuge fast immer sinnvoll.
Die folgende Tabelle zeigt die wichtigsten Bruchstellen zwischen dem alten MV2 und dem aktuellen MV3.
| Bereich | Manifest V2 (veraltet) | Manifest V3 (Pflicht) |
|---|---|---|
| Hintergrund-Prozess | Background Page, dauerhaft im Speicher | Service Worker, nur bei Ereignissen aktiv |
| API-Stil | Callbacks | Promises mit async/await |
| Browser-Action | chrome.browserAction und chrome.pageAction | Vereinheitlicht zu chrome.action |
| Remote-Code | erlaubt, inklusive externer Skripte und eval | verboten, alle Skripte müssen im Paket liegen |
| Netzwerk-Filter | chrome.webRequest mit Blockier-Modus | chrome.declarativeNetRequest mit Regel-Sätzen |
| Permissions | weitgehend frei deklarierbar | strikte Trennung in permissions und host_permissions |
| Aktueller Status | seit Chrome 139 entfernt | einziges zugelassenes Format im Web Store |
Die Umstellung auf Promises ist die angenehmste Neuerung. Frühere Callback-Ketten aus MV2 weichen await-Konstrukten, was den Code deutlich lesbarer macht.
Werkzeuge und Voraussetzungen

Für die Entwicklung einer Erweiterung reichen drei Werkzeuge.
Ein Code-Editor. Visual Studio Code ist Standard, funktioniert kostenfrei und bringt mit der Erweiterung „Chrome Extension Snippets“ passende Code-Vorlagen mit. Sublime Text, JetBrains WebStorm oder Notepad++ tun denselben Dienst. Der alte Hinweis aus dem 2012er Artikel auf Notepad gilt technisch immer noch, ist aber heute schmerzhaft.
Eine aktuelle Chrome-Version. Chrome 138 oder neuer, mit aktiviertem Entwicklermodus. Der Modus lässt sich unter chrome://extensions/ über den Schalter oben rechts einschalten. Edge, Brave und Vivaldi haben einen vergleichbaren Modus, der die Beispiele dieses Leitfadens ohne Änderung übernimmt.
Ein leerer Ordner. Jede Erweiterung wohnt in einem eigenen Verzeichnis. Build-Tools wie Webpack, Vite oder esbuild sind nicht zwingend nötig, helfen aber bei größeren Projekten mit TypeScript oder mehreren Modulen.
Die Mindeststruktur einer Erweiterung sieht so aus:
Drei Icon-Größen sind Pflicht. Eigene Icons sind nicht zwingend nötig; das offizielle Google-Beispiel-Repository auf GitHub bietet Vorlagen, die sich später austauschen lassen.
„Hallo Welt“ in 15 Minuten: Die erste Erweiterung mit Manifest V3

Die folgenden Schritte führen zu einer funktionierenden Erweiterung, die ein kleines Popup mit Begrüßung und Knopf öffnet. Moderne CSS-Funktionen machen das Styling schlank.
Schritt 1: Manifest anlegen. Erstellen Sie im Ordner hallo-welt/ die Datei manifest.json mit folgendem Inhalt:
Der Eintrag manifest_version: 3 ist der wichtigste Schalter. Ohne diese Zeile lehnt Chrome die Erweiterung ab.
Schritt 2: Popup-HTML erstellen. Legen Sie popup.html an:
Schritt 3: Styling hinzufügen. Die Datei popup.css gibt dem Fenster Form:
Schritt 4: JavaScript für den Knopf. Die Datei popup.js reagiert auf den Klick:
Ein Detail aus der Praxis: Inline-Skripte im HTML sind in Manifest V3 verboten. Das <script>-Tag muss zwingend auf eine externe Datei zeigen. Der alte Trick mit onclick="..." im HTML funktioniert nicht mehr. Die Content Security Policy von MV3 blockiert das aus Sicherheitsgründen.
Schritt 5: Icons platzieren. Drei PNG-Dateien in den Größen 16×16, 48×48 und 128×128 Pixel im Unterordner icons/ ablegen. Format und Dateinamen müssen exakt mit den Einträgen im Manifest übereinstimmen.
Schritt 6: Laden im Entwicklermodus. Öffnen Sie in Chrome die Adresse chrome://extensions/, aktivieren Sie oben rechts den Entwicklermodus und klicken Sie auf „Entpackte Erweiterung laden“. Wählen Sie den Ordner hallo-welt/ aus. Das Icon erscheint sofort in der Toolbar.
Schritt 7: Testen. Klick auf das Icon, das Popup öffnet sich, Klick auf den Knopf, die Meldung erscheint. Das war die erste eigene Chrome-Erweiterung.
Fehler im Code? Chrome zeigt sie direkt auf der Erweiterungs-Seite unter chrome://extensions/ an, mit Hinweis auf Datei und Zeile.
Vom Spielzeug zur Nutzanwendung: Tab-Snapshot mit Storage

Eine Hallo-Welt-Erweiterung beweist, dass das Setup steht. Wirklich spannend wird die Arbeit ab der zweiten. Das folgende Beispiel zeigt eine Erweiterung mit echtem Nutzwert: Die aktive Tab-URL lässt sich per Knopfdruck speichern, alle gespeicherten Tabs erscheinen als Liste im Popup.
Drei neue Bausteine kommen hinzu: ein Service Worker für die Initialisierung, die chrome.tabs-API zum Lesen der aktiven Tab-Informationen und chrome.storage.local zum dauerhaften Speichern.
Erweitertes Manifest:
Service Worker (background.js):
Der Service Worker initialisiert die Liste beim ersten Installieren. Mehr Logik braucht es für dieses Beispiel nicht.
Popup-HTML:
Popup-Logik (popup.js):
Drei Punkte sind wichtig.
Erstens nutzt der Code durchgängig async/await. Manifest V3 bietet alle Chrome-APIs als Promise-Variante an, das macht den Code deutlich lesbarer als die alten Callback-Ketten.
Zweitens kommen die Berechtigungen tabs und storage ins Manifest. Ohne diese Einträge funktionieren die entsprechenden APIs nicht, Chrome wirft stattdessen Fehler in die Konsole.
Drittens werden alle gespeicherten Daten lokal abgelegt, ohne Server, ohne externe Schnittstelle. chrome.storage.local reicht für mehrere Megabyte Nutzdaten und überlebt Browser-Neustarts.
Content Scripts: In fremde Webseiten eingreifen

Bislang lief alles innerhalb der Erweiterung selbst. Content Scripts ändern das. Solche Skripte injizieren JavaScript in jede aufgerufene Webseite und können deren DOM lesen oder verändern. Das ist die Technologie hinter Werbeblockern, Übersetzern, Lese-Modus-Apps und Page-Moddern.
Das folgende Beispiel hebt alle Bilder einer Webseite mit einem orangefarbenen Rahmen hervor, sobald der Nutzer auf das Erweiterungs-Icon klickt.
Manifest:
Service Worker:
Die chrome.scripting.executeScript-API ist die moderne Methode, um Code in eine Seite einzuschleusen. Die alte Variante mit tabs.executeScript aus MV2 funktioniert nicht mehr. Mit activeTab als Berechtigung greift die Erweiterung nur auf den Tab zu, in dem der Nutzer aktiv das Icon geklickt hat. Das ist datenschutzfreundlicher als ein pauschales <all_urls> und löst bei der Installation keine Warnmeldung aus.
Die folgende Tabelle zeigt die wichtigsten Berechtigungen im Überblick.
| Berechtigung | Wirkung | Typische Nutzung |
|---|---|---|
activeTab | Zugriff auf den aktiven Tab nach Nutzer-Aktion | Buttons mit Sofort-Effekt auf der aktuellen Seite |
tabs | Lesen von Tab-Eigenschaften (URL, Titel) | Tab-Verwaltung, Lesezeichen-Helfer |
storage | Lokales Speichern von Daten | Einstellungen, Notizen, Listen |
scripting | Skripte in Webseiten einschleusen | DOM-Eingriffe, Page-Modder |
cookies | Cookies lesen und setzen | Session-Manager, Login-Helfer |
notifications | System-Benachrichtigungen anzeigen | Reminder, Hintergrund-Hinweise |
host_permissions | Zugriff auf bestimmte URL-Muster | Daten von fremden Seiten lesen |
Jede zusätzliche Berechtigung kostet Vertrauen. Der Chrome Web Store zeigt sie bei der Installation an, und Nutzer brechen den Vorgang ab, sobald die Liste zu lang oder zu vage wird. Die Sicherheits-Analyse von DebugBear hat gezeigt, dass restriktive Permissions die Installations-Quote messbar verbessern.
Veröffentlichen, Debuggen, Wartung: Vom Prototyp zum Web Store

Eine Erweiterung im Entwicklermodus zu testen, ist eine Sache. Sie öffentlich zugänglich zu machen, eine andere. Drei Wege stehen offen.
Chrome Web Store. Der offizielle Marktplatz. Anmeldung über die Developer-Console unter chrome.google.com/webstore/devconsole, einmalige Gebühr von 5 US-Dollar pro Konto. Die Gebühr ist lebenslang gültig und deckt bis zu 20 veröffentlichte Erweiterungen ab. Der Review-Prozess dauert in der Regel wenige Stunden bis mehrere Tage, in komplexen Fällen länger. Pflicht für die Veröffentlichung sind eine Datenschutz-Erklärung mit URL, mindestens ein Screenshot und eine knappe Beschreibung.
Sideloading per ZIP. Eine gepackte Erweiterung lässt sich an Kollegen verschicken und beim Empfänger über den Entwicklermodus laden. Das ist der Standard-Weg für interne Werkzeuge im Unternehmen oder für private Tests in einem Beta-Kreis. Ohne Web-Store-Eintrag bleibt die Erweiterung allerdings unsichtbar für Suchende.
Privates Hosting per ExtensionInstallSources. Unternehmen mit Chrome-Verwaltung können Erweiterungen über Group-Policies installieren und verteilen, ohne den Web Store zu nutzen. Das ist die richtige Wahl für interne Werkzeuge in größeren Organisationen.
Beim Debugging hat sich der Workflow gegenüber MV2 verändert. Der Service Worker hat keine sichtbare HTML-Seite mehr, also auch keine offensichtliche Konsole. Stattdessen erscheint auf der Seite chrome://extensions/ neben der Erweiterung der Link „Service Worker“, der die zugehörige DevTools-Instanz öffnet. Wichtige Einschränkung: Der Service Worker schläft nach etwa 30 Sekunden Inaktivität ein. Ein erwarteter console.log-Aufruf bleibt manchmal aus, weil der Service Worker zwischenzeitlich geschlafen hat.
Für Popup und Content Script läuft das Debugging klassisch über die F12-DevTools. Das Popup öffnet seine eigene Konsole, wenn man im offenen Popup einen Rechtsklick macht und „Untersuchen“ wählt. Content Scripts erscheinen in der DevTools-Konsole der jeweiligen Webseite unter dem Filter „Content Scripts“.
Die Frage, ob eine eigene Chrome-Erweiterung wirtschaftlich sinnvoll ist, hängt stark vom Anwendungsfall ab. Eine vergleichbare Diskussion führt der Dr.-Web-Artikel zur KI-Resilienz im Webdesigner-Beruf: Programmierkompetenz allein reicht nicht, der Kontext entscheidet.
Manifest V3 hat einen Nebeneffekt, den die Pressemitteilungen nicht erwähnen: Werbeblocker mit Zehntausenden Filter-Regeln funktionieren technisch schwächer als unter MV2. Wer heute eine Chrome-Erweiterung baut, baut in einem System, das Google die Endkontrolle gegeben hat. Das ist nicht zwingend schlecht, aber eine Entscheidung, die ein Entwickler kennen sollte, bevor er anfängt.
— Michael Dobler, Herausgeber Dr. Web
Glossar

Manifest V3 — Aktueller Pflicht-Standard für Chrome-Erweiterungen, gültig seit 2024. Vorgänger Manifest V2 ist seit Chrome 139 vollständig entfernt.
Service Worker — Hintergrund-Skript einer Erweiterung, das nur bei Ereignissen aktiv ist und nach kurzer Inaktivität automatisch schläft.
Background Page — Veraltetes Hintergrund-Konzept aus MV2 mit dauerhaft geladener HTML-Seite. Heute nicht mehr nutzbar.
Popup — Kleines Fenster, das nach Klick auf das Erweiterungs-Icon erscheint. Enthält HTML, CSS und JavaScript.
Content Script — JavaScript, das in eine fremde Webseite eingebettet wird und deren DOM lesen oder verändern kann.
Action — Sammelbegriff für das klickbare Symbol einer Erweiterung in der Browser-Toolbar. Wird über chrome.action gesteuert, das die alten browserAction und pageAction ersetzt hat.
Permission — Berechtigung, die in der manifest.json deklariert sein muss, damit eine Erweiterung bestimmte APIs nutzen darf.
host_permissions — Spezielle Berechtigung für Zugriffe auf konkrete URL-Muster, etwa https://*.beispiel.de/*.
chrome.storage — API zum lokalen Speichern von Daten. Promise-basiert, mit optionaler Synchronisation über Google-Konten.
chrome.scripting — API zum dynamischen Einschleusen von Skripten in Tabs. Ersetzt die alten tabs.executeScript-Methoden.
Sideloading — Installation einer Erweiterung aus einem entpackten Ordner oder ZIP, ohne Veröffentlichung im Web Store.
Chrome Web Store — Offizieller Marktplatz für Erweiterungen, Themes und Apps. Veröffentlichung kostet einmalig 5 US-Dollar pro Konto.
Content Security Policy (CSP) — Sicherheits-Richtlinie, die in MV3 strenger gefasst ist und externe Skript-Quellen sowie eval verbietet.
Message-Passing — Kommunikationsverfahren zwischen Service Worker, Content Script und Popup über chrome.runtime.sendMessage.
declarativeNetRequest — API zum Filtern oder Umleiten von Netzwerk-Anfragen über vorab definierte Regel-Sätze. Hat die alte webRequest-API für Blocker-Funktionen ersetzt.
Häufig gestellte Fragen

Brauche ich Programmiererfahrung, um eine Chrome-Erweiterung zu bauen?
Grundkenntnisse in HTML, CSS und JavaScript reichen für die erste funktionierende Erweiterung. Für komplexere Funktionen helfen Erfahrung mit Promises sowie ein grundlegendes Verständnis vom DOM und von asynchronem JavaScript.
Wie lange dauert eine Veröffentlichung im Chrome Web Store?
Die einmalige Anmeldung mit 5 US-Dollar lässt sich in wenigen Minuten erledigen. Der Review-Prozess für eine neue Erweiterung dauert in der Regel zwischen wenigen Stunden und mehreren Tagen, in Einzelfällen länger. Updates bestehender Erweiterungen gehen meist schneller durch.
Funktionieren Manifest-V2-Erweiterungen heute noch?
Nein. Chrome 139 hat den Support im Sommer 2025 komplett entfernt. Edge, Brave und andere Chromium-basierte Browser haben den gleichen Schritt vollzogen. Eine bestehende MV2-Erweiterung muss vor jeder weiteren Nutzung auf MV3 migriert werden.
Darf eine Erweiterung beliebige Webseiten verändern?
Nur mit expliziter Berechtigung. Die host_permissions müssen die betroffenen URLs konkret nennen. Der Wildcard-Eintrag ist erlaubt, führt aber zu einer Warnmeldung bei der Installation und schreckt viele Nutzer ab.
Wo finde ich die offizielle Dokumentation?
Google pflegt die zentrale Anlaufstelle unter developer.chrome.com/docs/extensions. Dort stehen API-Referenz, Migration-Guide für MV2-Code und mehrere Beispiel-Repositorys.
Kann ich eine Erweiterung ohne Veröffentlichung weitergeben?
Ja. Eine Erweiterung lässt sich als ZIP-Datei versenden und beim Empfänger über den Entwicklermodus laden. Das ist die übliche Methode für interne Werkzeuge im Unternehmen oder für private Tests.
Verdienen Erweiterungen Geld?
Selten. DebugBear hat ermittelt, dass im Chrome Web Store nur 4,7 Prozent der Erweiterungen kostenpflichtig sind, und 90 Prozent erreichen weniger als tausend Nutzer. Wirtschaftlich lohnt sich der Aufwand fast nie über den Store-Eintrag selbst, sondern eher als Begleit-Produkt einer SaaS-Lösung oder als Marketing-Werkzeug für ein anderes Geschäft.
Quellen

- Chrome-Stats: Chrome Extension Statistics, Mai 2026. chrome-stats.com/chrome/stats
- Chrome for Developers: Manifest V2 Support Timeline. developer.chrome.com
- Google Chromium Blog: Manifest V2 phase-out begins, Mai 2024. blog.google
- Chrome for Developers: Hello World Tutorial. developer.chrome.com/docs/extensions/get-started
- Chrome for Developers: Register your developer account. developer.chrome.com/docs/webstore/register
- DebugBear: Counting Chrome Extensions, Januar 2026. debugbear.com
- About Chromebooks: Unused Chrome Extension Statistics 2026. aboutchromebooks.com