12 KiB
SEO-Umsetzungsplan qrmaster.net
Erstellt: 2026-08-04 · Datenbasis: GSC-Export 2026-08-03 (letzte 3 Monate) Zugeschnitten auf wenige Stunden pro Woche — jeder Schritt ist einzeln abschließbar.
Ausgangslage: ~34.000 Impressionen, ~150 Klicks außerhalb der Homepage. Kein Sichtbarkeits-, sondern ein Positions- und Konsolidierungsproblem.
REVISION 2026-08-04 — nach Code- und Live-Prüfung
Beim Umsetzen von Phase 1 hat sich die Ausgangslage als anders herausgestellt als aus den reinen GSC-Daten ableitbar. Drei Befunde, die den Plan verändern.
Befund 1: Kaputter Title (behoben)
/blog/qr-code-tracking-guide-2025 hatte rohes HTML im title-Feld:
title: '<a href="/qr-code-tracking" class="...">QR Code Tracking</a>: Complete Guide 2026'
Live ausgeliefert wurde daraus im <title>-Tag, in der H1, in og:title und twitter:title:
<a href="/qr-code-tracking" class="text-blue-600 underline font-semibold">QR Code Tracking</a>: Complete Guide 2026 | QR Master
Das erklärt Position 79,4 vollständig. Kein Content-, kein Kannibalisierungsproblem — ein unbrauchbares Snippet. Einzelvorkommen, alle anderen Titles sind sauber. Behoben in src/lib/blog-data.ts:1160.
Befund 2: Konsolidierungsrunde lief bereits (Commit 671c1a1 / 2026-07-10)
Live und funktionierend:
| Quelle | Ziel |
|---|---|
/blog/qr-code-analytics |
/qr-code-analytics |
/blog/qr-code-restaurant-menu |
/restaurants |
/guide/tracking-analytics |
/learn/tracking |
/guide/qr-code-best-practices |
/learn/basics |
/guide/bulk-qr-code-generation |
/learn/developer |
Die GSC-Positionen dieser URLs sind damit historisch — die Redirects waren nur die letzten ~3,5 Wochen des Auswertungsfensters aktiv. Die Phase-1.1-Tabelle weiter unten ist insoweit überholt.
Konsequenz: Nicht /blog/qr-code-tracking-guide-2025 zum Ziel machen, wie ursprünglich geplant. Die bestehende Architektur ist /learn/[pillar] als Hub. Dieser Struktur folgen, keine dritte parallel aufmachen.
Befund 3: Der Learn-Hub hält die Kannibalisierung am Leben
/learn/tracking listet und verlinkt alle fünf konkurrierenden Tracking-Artikel gleichzeitig — inklusive /blog/qr-code-analytics, das eine 301-Quelle ist. Der Hub ist damit nicht die Lösung, sondern der Motor: Er hält jeden Artikel im Index und intern verlinkt, statt Signale zu bündeln.
Zusätzlich behoben:
- Footer verlinkte sitewide auf
/guide/tracking-analyticsund/guide/qr-code-best-practices— beides 301-Quellen. Jede Seite der Site leitete Linkkraft durch eine Weiterleitung. → jetzt/learn/trackingund/learn/basics(src/components/ui/Footer.tsx:88-89) - IndexNow meldete aktiv die drei
/guide/*-URLs an Suchmaschinen, also Redirect-Quellen. → jetzt die/learn/*-Pillars (src/lib/indexnow.ts:125-130)
Offen aus dieser Runde
/learn/trackingentrümpeln: nur noch auf die eine überlebende Tracking-Seite verlinken, nicht auf alle fünf/blog/trackable-qr-codes(204 Impr., Pos. 81,5) ist nicht weitergeleitet und lebt weiter → 301 auf den Guidesrc/app/(main)/guide/*/page.tsxexistieren noch als Komponenten mit Self-Canonical, obwohl der Redirect greift → Dead Code entfernen- Drei FAQ-Antworten in
industry-pages.ts(Zeilen 102, 375, 735) undgrowth-pages.ts:473verlinken auf/blog/qr-code-restaurant-menu→ auf/restaurantsumhängen
Erst diese Punkte, dann Phase 2. Die Reihenfolge im Plan bleibt sonst gültig.
Wichtige Korrektur vorab: Intent-Check vor Snippet-Rewrites
Ich hatte empfohlen, die /qr-code-for/-Seiten mit Position < 20 und 0 % CTR per Title-Rewrite zu fixen. Beim Prüfen der Seiten stimmt das nur zum Teil. Die Meta-Titles sind bereits gut geschrieben:
barbershops→ „QR Codes for Barbershops: Bookings & Reviews"cinemas→ „QR Codes for Cinemas: Tickets & Loyalty"
Das Problem liegt woanders. Beispiel /qr-code-for/barbershops (327 Impr., Position 9,8, 4 Klicks) — die tatsächlichen Suchanfragen:
| Query | Impr. | Pos. |
|---|---|---|
| short code for barbershops | 16 | 21,8 |
| qr barber | 13 | 8,9 |
| short code for barber shops | 6 | 16,3 |
| barber+scan | 5 | 9,6 |
| barcode grooming | 4 | 11,0 |
| short code for barber shop | 4 | 26,0 |
Das Muster short code for X zieht sich durch: short code for barbers, for yoga studios, for cinemas, for bars, for nail bars, for theaters, for barbershop — zusammen rund 60 Impressionen. Wer „short code for barbershops" sucht, will mit hoher Wahrscheinlichkeit einen SMS-Short-Code, keinen QR-Code. Diese Impressionen sind mit keinem Title der Welt klickbar.
Konsequenz für den Plan: Vor jedem Rewrite die Queries der Einzelseite prüfen. Nur Seiten anfassen, deren Top-Queries echte QR-Intention haben. Das kostet pro Seite zwei Minuten und verhindert, dass Phase 2 zu Beschäftigungstherapie wird.
Phase 0 — Messpunkt setzen (30 Min, einmalig)
Ohne Baseline lässt sich später nicht sagen, ob etwas gewirkt hat.
- GSC-Export von heute unter
/seo-baseline/2026-08-03/im Repo ablegen - Vier Zahlen notieren: Gesamtklicks, Gesamtimpressionen, Ø-Position, Anzahl Keywords auf Position < 10
- Kalendereintrag: gleicher Export am 2026-11-03 (Google braucht 6–10 Wochen, vorher ist jede Bewertung Rauschen)
Erfolgskriterium: Datei liegt im Repo.
Phase 1 — Kannibalisierung auflösen (Wochen 1–2)
Höchster Hebel im ganzen Plan, weil kein neuer Content nötig ist. Fünf Seiten konkurrieren um das Tracking-Thema, keine rankt.
1.1 Tracking-Cluster zusammenlegen (~2 Std.)
| URL | Impr. | Pos. | Aktion |
|---|---|---|---|
/qr-code-tracking |
2.148 | 48,4 | bleibt — Money-Page |
/blog/qr-code-tracking-guide-2025 |
67 | 79,4 | bleibt — wird der eine Ratgeber |
/blog/trackable-qr-codes |
204 | 81,5 | 301 → Guide |
/blog/qr-code-analytics |
93 | 85,1 | 301 → Guide |
/guide/tracking-analytics |
1 | 91,0 | 301 → Guide |
- Die besten Absätze aus den drei Seiten in den Guide übernehmen, bevor umgeleitet wird
- Redirects in
next.config.mjseintragen - Guide umbenennen:
qr-code-tracking-guide-2025→ Jahreszahl raus oder auf 2026 (Slug-Änderung nur mit Redirect) - Eigenes H2 für
how to track qr code scans from a print campaign— steht bereits auf Position 9,9 bei 43 Impressionen - Wechselseitige Verlinkung Guide ↔
/qr-code-tracking
Erfolgskriterium: Eine URL pro Suchintention. /qr-code-tracking unter Position 30 bis November.
1.2 Static-vs-Dynamic-Duplikate mergen (~1 Std.)
/blog/static-vs-dynamic-qr-code (Pos. 3, 1 Impr.) und /blog/dynamic-vs-static-qr-codes (Pos. 5, 1 Impr.) sind faktisch dieselbe Seite. Beide ranken top und bekommen zusammen 2 Impressionen — klassisches Zeichen dafür, dass Google beide kennt und keiner traut.
- Inhalte in eine URL zusammenführen, die andere per 301 darauf
- Zusammen mit
/blog/convert-static-to-dynamic-qr-code(Pos. 3,5) und/guide/dynamic-qr-code-best-practices(Pos. 50) prominent von/dynamic-qr-code-generatorverlinken
Warum das zählt: /dynamic-qr-code-generator hat mit 4.147 Impressionen das größte Volumen der Site — bei Position 45,5 und 0,02 % CTR.
1.3 Instagram entzerren (~30 Min)
/tools/instagram-qr-code (794 Impr., Pos. 33,7) vs. /blog/instagram-qr-code-generator (11 Impr., Pos. 73,4).
- Blogpost auf How-to-Intent umschreiben („So erstellst du…") oder konsolidieren, damit er nicht mehr um dasselbe Keyword kämpft
Phase 2 — Snippets mit Intent-Check (Woche 3, ~2 Std.)
Nur Seiten mit Position < 20, CTR < 3 % und passender Query-Intention.
Kandidaten mit belegbar richtiger Intention:
/blog/microsoft-teams-qr-code— 287 Impr., Position 14,4, 0 Klicks. Queries sind sauber:microsoft teams qr code generator(Pos. 9,6),teams qr code generator(Pos. 6,6),qr code for teams meeting(Pos. 11). Klarster Einzelfall der Site./tools/teams-qr-code— 489 Impr., Pos. 13,6, CTR 2,45 %/tools/call-qr-code-generator— 119 Impr., Pos. 18,9, 0 Klicks/learn— 486 Impr., Pos. 13,3, CTR 1,65 %
Erst nach Query-Prüfung anfassen: /qr-code-for/cinemas (168 Impr., Pos. 16), /qr-code-for/airports (162, Pos. 10,6), /qr-code-for/yoga-studios, /qr-code-for/art-galleries, /qr-code-for/catering, /qr-code-for/car-dealerships.
Prüfweg: GSC → Seiten → URL wählen → Tab „Suchanfragen". Enthalten die Top-3-Queries short code, barcode oder Branchenbegriffe ohne QR-Bezug, ist die Seite kein Snippet-Fall.
Titles und Descriptions liegen zentral in src/lib/industry-pages.ts (Felder metaTitle, metaDescription) — kein Anfassen einzelner Routen nötig.
Erfolgskriterium: Teams-Post von 0 auf messbare Klicks. Alles andere ist Bonus.
Phase 3 — Aufräumen (Woche 4, ~1 Std.)
Nicht die 53 Branchenseiten löschen — die ranken mit Ø Position 20,4 am besten von allen Content-Typen. Tot ist etwas anderes:
| Bereich | Seiten | Impr. | Klicks | Ø Pos. | Vorschlag |
|---|---|---|---|---|---|
/de/* |
13 | 194 | 0 | 31,0 | Entscheiden: ausbauen oder deindexieren |
/guide/* |
2 | 15 | 0 | 70,6 | In /blog/ überführen (siehe 1.1) |
/compare/* |
1 | 31 | 0 | 50,6 | Prüfen, ob es die Route noch braucht |
/qr-code-erstellen |
1 | 264 | 2 | 72,5 | Deutsche Seite ohne DE-Strategie — bündeln mit /de/* |
Die DE-Frage ist eine Entscheidung, keine Aufgabe: 13 Seiten mit 0 Klicks binden Crawl-Budget. Entweder eine echte deutsche Sektion mit hreflang, oder weg.
Phase 4 — Neue Posts, einer pro Woche (ab Woche 5)
Reihenfolge nach Impressionen ohne passende Seite. Jeweils ein Post, dann weiter.
| Woche | Post | Nachfrage | Zielseite, die profitiert |
|---|---|---|---|
| 5 | Google Review QR Code erstellen (inkl. Place-ID) | 1.331 Impr. | /tools/google-review-qr-code (1.752 Impr., Pos. 37,8) |
| 6 | QR Codes aus Excel & Google Sheets | 402 Impr., konvertiert bereits | /bulk-qr-code-generator |
| 7 | Location-QR: Maps, GPS, geo:-URI auf iOS vs. Android | 923 Impr. | /tools/geolocation-qr-code (Pos. 62,8) |
| 8 | Custom QR mit Logo ohne Scanbarkeitsverlust | 465 Impr. | /custom-qr-code-generator |
| 9 | QR-Coupons: Einlösung tracken, Missbrauch verhindern | 495 Impr. | /use-cases/coupon-qr-codes |
| 10 | Beaconstac vs Popl vs Blinq vs QR Master | ~350 Impr., hohe Kaufintention | /alternatives/* |
| 11 | Kundenfeedback per QR sammeln | 349 Impr. | /use-cases/feedback-qr-codes |
Jeder Post: Verlinkung zur Money-Page rein und raus, Aufnahme in public/llms.txt, Eintrag im Sitemap-Lauf.
Woche 6 zuerst ziehen, falls Zeit knapp wird — bulk qr code generator in google sheets und bulk qr code generator from excel haben als einzige Nicht-Brand-Keywords bereits Klicks geliefert. Bewiesene Konversion schlägt großes Volumen.
Phase 5 — Daten-Asset (ab Woche 12, größerer Block)
Aggregierte, anonymisierte Scan-Daten aus QRMaster als Studie: Scan-Zeitpunkte über den Tag, Device-Splits, wie oft dynamische Codes nach dem Druck tatsächlich geändert werden, Abbruchraten.
Realitätscheck vorab: /blog/qr-code-scan-statistics-2026 existiert bereits — Position 38,7, 3 Impressionen. Ein Daten-Asset rankt nicht, weil es eines ist. Ohne Verteilung passiert nichts.
- Bestehende Statistik-Seite als Basis nehmen statt neu anzulegen
- Echte Zahlen aus der DB, Methodik sichtbar dokumentieren, Stichprobengröße nennen
- Eigene Grafiken statt Fremdquellen
- Erst danach: aktiv verteilen (Reddit, Branchennewsletter, HARO-artige Anfragen)
Der Wert liegt im Zitiertwerden durch LLMs und in Backlinks, nicht im direkten Ranking. Entsprechend bewerten.
Was dieser Plan bewusst nicht enthält
Crypto-Cluster (765 Impr.) — rankt vergleichsweise gut (usdt qr code generator Pos. 13, 2 Klicks), monetarisiert aber schwach.
Internationale Streuung — system qr dla hoteli (PL), qr kütüphane (TR), куар мастер (RU). Ohne lokalisierte Seiten nicht adressierbar, siehe DE-Entscheidung in Phase 3.
E-E-A-T-Maßnahmen — /authors/timo existiert bereits (Position 6,4) und hat für sich genommen nichts bewegt. Kein weiterer Aufwand nötig.
Alles, was „schnell rankt" — Phase 1 ist der schnellste Effekt im Plan, und auch der braucht 6–10 Wochen bis zur Messbarkeit.
Nächster Schritt
Phase 1.1 (Tracking-Konsolidierung). Zwei Stunden, kein neuer Text, betrifft 2.371 Impressionen.