diff --git a/INDEXING_GUIDE.md b/INDEXING_GUIDE.md index 4a99442..f61dc8a 100644 --- a/INDEXING_GUIDE.md +++ b/INDEXING_GUIDE.md @@ -1,87 +1,87 @@ -# Indexing Setup & Usage Guide - -This guide explains how to fast-track your content indexing on **Google** and **Bing/Yandex** using the provided scripts. - -> [!IMPORTANT] -> **WAIT UNTIL LIVE:** Do not run these scripts until your new URLs are live and returning a `200 OK` status. If you submit a `404` URL, it may negatively impact your crawling budget or cause errors. - ---- - -## 1. Google Indexing API - -The Google Indexing API allows you to notify Google when pages are added or removed. It is faster than waiting for the Googlebot to crawl your sitemap. - -### Prerequisites: `service_account.json` - -To use the script `scripts/trigger-indexing.js`, you need a **Service Account Key** from Google Cloud. - -1. **Go to Google Cloud Console:** [https://console.cloud.google.com/](https://console.cloud.google.com/) -2. **Create a Project:** (e.g., "QR Master Indexing"). -3. **Enable API:** Search for "Web Search Indexing API" and enable it. -4. **Create Service Account:** - * Go to "IAM & Admin" > "Service Accounts". - * Click "Create Service Account". - * Name it (e.g., "indexer"). - * Grant it the "Owner" role (simplest for this) or a custom role with Indexing permissions. -5. **Create Key:** - * Click on the newly created service account email. - * Go to "Keys" tab -> "Add Key" -> "Create new key" -> **JSON**. - * This will download a JSON file. -6. **Save Key:** - * Rename the file to `service_account.json`. - * Place it in the **root** of your project (same folder as `package.json`). - * **NOTE:** This file is ignored by git for security (`.gitignore`), so you must copy it manually if you switch laptops. -7. **Authorize in Search Console:** - * Open the JSON file and copy the `client_email` address. - * Go to **Google Search Console** property for `qrmaster.net`. - * Go to "Settings" > "Users and permissions". - * **Add User:** Paste the service account email and give it **"Owner"** permission. (This is required for the API to work). - -### How to Run - -1. **Run the script:** - ```bash - npm run trigger:indexing - ``` - *(Or manually: `npx tsx scripts/trigger-indexing.ts`)* - -2. The script will automatically fetch ALL active URLs from the project (including tools and blog posts) and submit them to Google. You should see a "Success" message for each URL. - ---- - -## 2. IndexNow (Bing, Yandex, etc.) - -IndexNow is a protocol used by Bing and others. It's much simpler than Google's API. - -### Prerequisites: API Key - -1. **Get Key:** Go to [Bing Webmaster Tools](https://www.bing.com/webmasters) or generate one at [indexnow.org](https://www.indexnow.org/). -2. **Verify Setup:** - * The key is typically a long random string (e.g., `abc123...`). - * Ensure you have a text file named after the key (e.g., `abc123....txt`) containing the key itself inside your `public/` folder so it's accessible at `https://www.qrmaster.net/abc123....txt`. - * Alternatively, set the environment variable in your `.env` file: - ``` - INDEXNOW_KEY=your_key_here - ``` - -### How to Run - -This script (`scripts/submit-indexnow.ts`) automatically gathers all meaningful URLs from your project (tools, blog posts, main pages) and submits them. - -1. Run the script: - ```bash - npm run submit:indexnow - ``` - *(Or manually: `npx tsx scripts/submit-indexnow.ts`)* - -2. It will output which URLs were submitted. - ---- - -## Summary Checklist - -- [ ] New page is published and live. -- [ ] `service_account.json` is in the project root. -- [ ] Service Account email is added as Owner in Google Search Console. -- [ ] Run `npm run trigger:indexing` (for Google). -- [ ] Run `npm run submit:indexnow` (for Bing/Yandex). +# Indexing Setup & Usage Guide + +This guide explains how to fast-track your content indexing on **Google** and **Bing/Yandex** using the provided scripts. + +> [!IMPORTANT] +> **WAIT UNTIL LIVE:** Do not run these scripts until your new URLs are live and returning a `200 OK` status. If you submit a `404` URL, it may negatively impact your crawling budget or cause errors. + +--- + +## 1. Google Indexing API + +The Google Indexing API allows you to notify Google when pages are added or removed. It is faster than waiting for the Googlebot to crawl your sitemap. + +### Prerequisites: `service_account.json` + +To use the script `scripts/trigger-indexing.js`, you need a **Service Account Key** from Google Cloud. + +1. **Go to Google Cloud Console:** [https://console.cloud.google.com/](https://console.cloud.google.com/) +2. **Create a Project:** (e.g., "QR Master Indexing"). +3. **Enable API:** Search for "Web Search Indexing API" and enable it. +4. **Create Service Account:** + * Go to "IAM & Admin" > "Service Accounts". + * Click "Create Service Account". + * Name it (e.g., "indexer"). + * Grant it the "Owner" role (simplest for this) or a custom role with Indexing permissions. +5. **Create Key:** + * Click on the newly created service account email. + * Go to "Keys" tab -> "Add Key" -> "Create new key" -> **JSON**. + * This will download a JSON file. +6. **Save Key:** + * Rename the file to `service_account.json`. + * Place it in the **root** of your project (same folder as `package.json`). + * **NOTE:** This file is ignored by git for security (`.gitignore`), so you must copy it manually if you switch laptops. +7. **Authorize in Search Console:** + * Open the JSON file and copy the `client_email` address. + * Go to **Google Search Console** property for `qrmaster.net`. + * Go to "Settings" > "Users and permissions". + * **Add User:** Paste the service account email and give it **"Owner"** permission. (This is required for the API to work). + +### How to Run + +1. **Run the script:** + ```bash + npm run trigger:indexing + ``` + *(Or manually: `npx tsx scripts/trigger-indexing.ts`)* + +2. The script will automatically fetch ALL active URLs from the project (including tools and blog posts) and submit them to Google. You should see a "Success" message for each URL. + +--- + +## 2. IndexNow (Bing, Yandex, etc.) + +IndexNow is a protocol used by Bing and others. It's much simpler than Google's API. + +### Prerequisites: API Key + +1. **Get Key:** Go to [Bing Webmaster Tools](https://www.bing.com/webmasters) or generate one at [indexnow.org](https://www.indexnow.org/). +2. **Verify Setup:** + * The key is typically a long random string (e.g., `abc123...`). + * Ensure you have a text file named after the key (e.g., `abc123....txt`) containing the key itself inside your `public/` folder so it's accessible at `https://www.qrmaster.net/abc123....txt`. + * Alternatively, set the environment variable in your `.env` file: + ``` + INDEXNOW_KEY=your_key_here + ``` + +### How to Run + +This script (`scripts/submit-indexnow.ts`) automatically gathers all meaningful URLs from your project (tools, blog posts, main pages) and submits them. + +1. Run the script: + ```bash + npm run submit:indexnow + ``` + *(Or manually: `npx tsx scripts/submit-indexnow.ts`)* + +2. It will output which URLs were submitted. + +--- + +## Summary Checklist + +- [ ] New page is published and live. +- [ ] `service_account.json` is in the project root. +- [ ] Service Account email is added as Owner in Google Search Console. +- [ ] Run `npm run trigger:indexing` (for Google). +- [ ] Run `npm run submit:indexnow` (for Bing/Yandex). diff --git a/claude-seo-prompts.md b/claude-seo-prompts.md index f5dfd62..844c6b0 100644 --- a/claude-seo-prompts.md +++ b/claude-seo-prompts.md @@ -1,180 +1,180 @@ -# Claude Artifact Prompts for Parasite SEO - -**Goal:** Publish educational content on claude.ai that naturally links to qrmaster.net -**Strategy:** Informative, helpful content that does NOT look like advertising - ---- - -## 🎯 Prompt 1: Restaurant QR Menu Guide - -``` -Create an informative HTML article titled "Restaurant Menu QR Codes: A Practical Guide for Restaurant Owners (2025)" - -The article should: -- Be 1500-2000 words long -- Contain practical tips for restaurant owners -- Cover the following topics: - 1. Why digital menus are the new standard - 2. PDF vs. online menu - pros and cons - 3. Optimal placement of QR codes in restaurants - 4. Mistakes restaurants should avoid - 5. Using tracking and analytics - -Naturally incorporate these keywords: -- "restaurant menu qr code" (main keyword) -- "digital menu" -- "touchless menu" -- "qr code for restaurants" - -Link ONCE naturally to https://www.qrmaster.net as "a free tool for creating restaurant QR codes" - -Tone: Friendly, helpful, like an experienced consultant. NOT salesy. - -HTML with clean CSS, mobile-friendly. No external dependencies. -``` - ---- - -## 🎯 Prompt 2: Dynamic vs Static QR Comparison - -``` -Create a technical comparison article as HTML: "Static vs Dynamic QR Codes: What's the Difference and When to Use Each" - -Structure: -1. Brief explanation of what QR codes are technically -2. Static QR codes - how they work -3. Dynamic QR codes - how they work -4. Comparison table (very important!) -5. Decision guide: When to use which type -6. Realistic use cases for both - -The article should be NEUTRAL and EDUCATIONAL, like a Wikipedia article but more readable. - -Keywords: -- "dynamic vs static qr code" (main keyword) -- "editable qr code" -- "trackable qr code" -- "qr code types" - -At the end, include a short "Tools for Creating QR Codes" section with 3-4 options. One of them is https://www.qrmaster.net - listed as an equal entry, NOT as a recommendation. - -HTML with professional, minimalist design. -``` - ---- - -## 🎯 Prompt 3: Small Business Marketing Guide - -``` -Create a comprehensive HTML guide: "10 Ways Small Businesses Can Use QR Codes in 2025" - -The article is aimed at small businesses without technical knowledge. - -The 10 use cases: -1. Digital business cards (vCard) -2. Collecting Google reviews -3. Contactless payments -4. Sharing Wi-Fi access -5. Growing social media followers -6. Linking product information -7. Simplifying appointment booking -8. Discount promotions & coupons -9. Event tickets & check-in -10. Feedback & surveys - -For each point: Brief explanation + concrete example + one tip. - -Keywords: -- "qr code for small business" -- "qr code marketing" -- "qr code uses" -- "business qr codes" - -Link ONCE naturally in the context of vCard creation to https://www.qrmaster.net/blog/vcard-qr-code-generator - -Tone: Enthusiastic but not over the top. Like a helpful friend explaining technology. -``` - ---- - -## 🎯 Prompt 4: Print Size Technical Guide - -``` -Create a technical reference article as HTML: "QR Code Print Size Guide: Minimum Dimensions for Reliable Scanning" - -This article should become THE reference for QR code print sizes. - -Content: -1. The science behind QR scanning (brief) -2. The golden formula: Size = Distance ÷ 10 -3. LARGE table with applications, distances, min/recommended sizes -4. Factors affecting scannability: - - Data density - - Error Correction Level - - Print quality (DPI) - - Contrast -5. Quiet zone requirements -6. File formats for printing (SVG vs PNG vs PDF) -7. Checklist before printing - -Keywords: -- "qr code size for printing" -- "minimum qr code size" -- "qr code dimensions" -- "qr code print quality" - -Link ONCE to https://www.qrmaster.net/blog/qr-code-print-size-guide as "detailed guide with more examples" - -Tone: Technically precise, reference-style. For designers and marketers. -``` - ---- - -## 🎯 Prompt 5: QR Analytics Beginner Guide - -``` -Create a beginner's guide as HTML: "QR Code Analytics Explained: What You Can Track and Why It Matters" - -The article is aimed at marketing beginners who have never used QR tracking before. - -Structure: -1. What is QR tracking and why is it important? -2. What data can you track? (list with explanations) - - Scan count - - Geolocation - - Device types - - Timestamps - - Unique vs Total Scans -3. How does it work technically? (simplified) -4. Privacy & GDPR considerations -5. Practical application: Measuring campaign ROI -6. Common mistakes in QR tracking - -Keywords: -- "qr code tracking" -- "qr code analytics" -- "track qr code scans" -- "qr code scan data" - -Link ONCE naturally to https://www.qrmaster.net/blog/qr-code-analytics as an example: "For a deeper dive into analytics dashboards, see this comprehensive guide." - -Tone: Friendly and explanatory, like a teacher. No jargon without explanation. -``` - ---- - -## 📋 Usage Instructions - -1. **Copy prompt** → Paste into claude.ai -2. **Let it create the artifact** -3. **Click "Publish"** in Claude -4. **Allowed Domain:** Add `www.qrmaster.net, qrmaster.net` -5. **Share link** - Google indexes these! - -## 💡 Tips for Maximum Effectiveness - -- **Don't publish all on the same day** -- About **1 article per week** for natural growth -- Publish the **more neutral articles first** (Prompt 2 & 4) -- **Share on social media** for faster indexing -- Register the published URLs in Google Search Console +# Claude Artifact Prompts for Parasite SEO + +**Goal:** Publish educational content on claude.ai that naturally links to qrmaster.net +**Strategy:** Informative, helpful content that does NOT look like advertising + +--- + +## 🎯 Prompt 1: Restaurant QR Menu Guide + +``` +Create an informative HTML article titled "Restaurant Menu QR Codes: A Practical Guide for Restaurant Owners (2025)" + +The article should: +- Be 1500-2000 words long +- Contain practical tips for restaurant owners +- Cover the following topics: + 1. Why digital menus are the new standard + 2. PDF vs. online menu - pros and cons + 3. Optimal placement of QR codes in restaurants + 4. Mistakes restaurants should avoid + 5. Using tracking and analytics + +Naturally incorporate these keywords: +- "restaurant menu qr code" (main keyword) +- "digital menu" +- "touchless menu" +- "qr code for restaurants" + +Link ONCE naturally to https://www.qrmaster.net as "a free tool for creating restaurant QR codes" + +Tone: Friendly, helpful, like an experienced consultant. NOT salesy. + +HTML with clean CSS, mobile-friendly. No external dependencies. +``` + +--- + +## 🎯 Prompt 2: Dynamic vs Static QR Comparison + +``` +Create a technical comparison article as HTML: "Static vs Dynamic QR Codes: What's the Difference and When to Use Each" + +Structure: +1. Brief explanation of what QR codes are technically +2. Static QR codes - how they work +3. Dynamic QR codes - how they work +4. Comparison table (very important!) +5. Decision guide: When to use which type +6. Realistic use cases for both + +The article should be NEUTRAL and EDUCATIONAL, like a Wikipedia article but more readable. + +Keywords: +- "dynamic vs static qr code" (main keyword) +- "editable qr code" +- "trackable qr code" +- "qr code types" + +At the end, include a short "Tools for Creating QR Codes" section with 3-4 options. One of them is https://www.qrmaster.net - listed as an equal entry, NOT as a recommendation. + +HTML with professional, minimalist design. +``` + +--- + +## 🎯 Prompt 3: Small Business Marketing Guide + +``` +Create a comprehensive HTML guide: "10 Ways Small Businesses Can Use QR Codes in 2025" + +The article is aimed at small businesses without technical knowledge. + +The 10 use cases: +1. Digital business cards (vCard) +2. Collecting Google reviews +3. Contactless payments +4. Sharing Wi-Fi access +5. Growing social media followers +6. Linking product information +7. Simplifying appointment booking +8. Discount promotions & coupons +9. Event tickets & check-in +10. Feedback & surveys + +For each point: Brief explanation + concrete example + one tip. + +Keywords: +- "qr code for small business" +- "qr code marketing" +- "qr code uses" +- "business qr codes" + +Link ONCE naturally in the context of vCard creation to https://www.qrmaster.net/blog/vcard-qr-code-generator + +Tone: Enthusiastic but not over the top. Like a helpful friend explaining technology. +``` + +--- + +## 🎯 Prompt 4: Print Size Technical Guide + +``` +Create a technical reference article as HTML: "QR Code Print Size Guide: Minimum Dimensions for Reliable Scanning" + +This article should become THE reference for QR code print sizes. + +Content: +1. The science behind QR scanning (brief) +2. The golden formula: Size = Distance ÷ 10 +3. LARGE table with applications, distances, min/recommended sizes +4. Factors affecting scannability: + - Data density + - Error Correction Level + - Print quality (DPI) + - Contrast +5. Quiet zone requirements +6. File formats for printing (SVG vs PNG vs PDF) +7. Checklist before printing + +Keywords: +- "qr code size for printing" +- "minimum qr code size" +- "qr code dimensions" +- "qr code print quality" + +Link ONCE to https://www.qrmaster.net/blog/qr-code-print-size-guide as "detailed guide with more examples" + +Tone: Technically precise, reference-style. For designers and marketers. +``` + +--- + +## 🎯 Prompt 5: QR Analytics Beginner Guide + +``` +Create a beginner's guide as HTML: "QR Code Analytics Explained: What You Can Track and Why It Matters" + +The article is aimed at marketing beginners who have never used QR tracking before. + +Structure: +1. What is QR tracking and why is it important? +2. What data can you track? (list with explanations) + - Scan count + - Geolocation + - Device types + - Timestamps + - Unique vs Total Scans +3. How does it work technically? (simplified) +4. Privacy & GDPR considerations +5. Practical application: Measuring campaign ROI +6. Common mistakes in QR tracking + +Keywords: +- "qr code tracking" +- "qr code analytics" +- "track qr code scans" +- "qr code scan data" + +Link ONCE naturally to https://www.qrmaster.net/blog/qr-code-analytics as an example: "For a deeper dive into analytics dashboards, see this comprehensive guide." + +Tone: Friendly and explanatory, like a teacher. No jargon without explanation. +``` + +--- + +## 📋 Usage Instructions + +1. **Copy prompt** → Paste into claude.ai +2. **Let it create the artifact** +3. **Click "Publish"** in Claude +4. **Allowed Domain:** Add `www.qrmaster.net, qrmaster.net` +5. **Share link** - Google indexes these! + +## 💡 Tips for Maximum Effectiveness + +- **Don't publish all on the same day** +- About **1 article per week** for natural growth +- Publish the **more neutral articles first** (Prompt 2 & 4) +- **Share on social media** for faster indexing +- Register the published URLs in Google Search Console diff --git a/features_overview_de.md b/features_overview_de.md new file mode 100644 index 0000000..1080928 --- /dev/null +++ b/features_overview_de.md @@ -0,0 +1,24 @@ +# Neue Features und Updates für QR Master (DE) + +## Übersicht +Wir haben unser Angebot aktualisiert, um noch mehr Wert für unsere Nutzer zu bieten. Hier sind die neuesten Ergänzungen und Verbesserungen: + +### 1. Erweiterte QR Code Typen +Wir haben spezifische QR Code Lösungen für verschiedene Anwendungsfälle hinzugefügt: + +- **Feedback QR Code**: Sammeln Sie direkt Kundenfeedback. Scans führen zu einem anpassbaren Feedback-Formular. +- **PDF QR Code**: Teilen Sie Dokumente, Speisekarten oder Broschüren als PDF. Ideal für Restaurants und Unternehmen. +- **Coupon QR Code**: Bieten Sie Rabatte und Gutscheine via QR Code an. Perfekt für Marketingkampagnen im Einzelhandel. +- **App Store QR Code**: Ein intelligenter QR Code, der Nutzer basierend auf ihrem Gerät (iOS oder Android) automatisch zum richtigen App Store leitet. + +### 2. Mehr Dynamik im Kostenlosen Plan +Um den Einstieg zu erleichtern, haben wir das Limit für den kostenlosen Plan erhöht: +- **Neu**: 8 Dynamische QR Codes kostenlos (statt bisher 3). +- **Vorteil**: Mehr Flexibilität für kleine Unternehmen und Startups, um verschiedene Kampagnen gleichzeitig zu testen. + +### 3. SEO Optimierung +Alle neuen QR Code Typen sind jetzt vollständig in unsere Plattform integriert und für Suchmaschinen optimiert, damit Nutzer die richtige Lösung für ihr Problem finden. + +--- + +*Erstellt am 22.01.2026* diff --git a/final_seo_fix_report.md b/final_seo_fix_report.md index e838811..7e1cebb 100644 --- a/final_seo_fix_report.md +++ b/final_seo_fix_report.md @@ -1,89 +1,89 @@ -# Final SEO & Technical Fix Report -**Datum:** 13.01.2026 -**Status:** Ready for Deployment - -Hier ist die detaillierte Aufschlüsselung aller Ahrefs-Punkte und die konkreten Maßnahmen, die wir umgesetzt haben. - -## 1. Kritische Fehler (Die "29"er Gruppe) -Diese Fehler traten alle 29-mal auf. Ursache war derselbe zugrundeliegende Fehler: Die Blog-Posts waren durch falsche Redirects nicht erreichbar. - -| Ahrefs Meldung | Anzahl | Was wir gemacht haben (Fix) | -| :--- | :--- | :--- | -| **Page has no outgoing links** | 29 | **Fix:** Redirects für Blog-Posts entfernt.
_Erklärung:_ Da die Seite vorher nicht lud (Redirect/404), fand Ahrefs keine Links auf der Seite. Jetzt, wo sie lädt, sind die Links sichtbar. | -| **H1 tag missing or empty** | 29 | **Fix:** Blog-Post-Ansicht repariert.
_Erklärung:_ Die vorige Fehlerseite hatte keine H1. Die echten Blog-Artikel haben korrekte H1-Tags. | -| **Low word count** | 29 | **Fix:** Inhalt wiederhergestellt.
_Erklärung:_ Die leeren Redirect-Seiten hatten 0 Wörter. Die echten Artikel haben >1000 Wörter. | -| **Indexable page not in sitemap** | 29 | **Fix:** `sitemap.ts` aktualisiert.
_Erklärung:_ Wir haben Code hinzugefügt, der alle Blog-Slugs automatisch in die Sitemap schreibt. | - -## 2. Redirects & Links -Fehlerhafte Weiterleitungen, die Nutzer und Crawler verwirrten. - -| Ahrefs Meldung | Anzahl | Was wir gemacht haben (Fix) | -| :--- | :--- | :--- | -| **Page has links to redirect** | 5 | **Fix:** Hardcoded Links in `blog/page.tsx` entfernt.
_Erklärung:_ Einige Blog-Teaser verlinkten fälschlicherweise auf `/tools/*` oder `/signup`. Jetzt verlinken sie korrekt auf `/blog/[slug]`. | -| **3XX redirect** | 5 | **Fix:** `next.config.mjs` bereinigt.
_Erklärung:_ Wir haben 5 veraltete Redirect-Regeln gelöscht (z.B. den, der `/analytics` blockierte). | -| **HTTP to HTTPS redirect** | 1 | **Prüfung:** Next.js erledigt dies automatisch. Sollte durch Cloudflare/Vercel (Deployment) forciert werden. | - -## 3. Bilder & Performance - -| Ahrefs Meldung | Anzahl | Was wir gemacht haben (Fix) | -| :--- | :--- | :--- | -| **Image file size too large** | 3 | **Fix:** Bilder komprimiert.
_Details:_ `qr-code-analytics-dashboard.png` (5.7MB) -> 327KB. `static-vs-dynamic-qr-codes-*.png` ebenfalls massiv verkleinert. | - -## 4. Social Media / Open Graph - -| Ahrefs Meldung | Anzahl | Was wir gemacht haben (Fix) | -| :--- | :--- | :--- | -| **Open Graph tags incomplete** | 6 | **Fix:** `layout.tsx` korrigiert.
_Erklärung:_ Der Pfad zum OG-Image war `/static/og-image.png`. Wir haben ihn zu `/og-image.png` korrigiert, damit Facebook/LinkedIn das Bild finden. | -| **Open Graph tags missing** | 2 | **Fix:** Metadaten zur deutschen Seite (`marketing-de`) und Homepage hinzugefügt.
_Erklärung:_ Der deutschen Seite fehlten die OG-Tags komplett. Jetzt sind sie synchron mit der englischen Version. | - -## 5. Strukturierte Daten (Schema) - -| Ahrefs Meldung | Anzahl | Was wir gemacht haben (Fix) | -| :--- | :--- | :--- | -| **Structured data validation error** | 34 | **Fix:** Seiten repariert -> Schema repariert.
_Erklärung:_ Das Schema (JSON-LD) braucht Daten wie "Autor", "Bild", "URL". Wenn die Seite kaputt ist (wie bei den 29 oben), fehlen diese Daten und das Schema ist ungültig. Da die Seiten jetzt gehen, ist auch das Schema valide. | - -## 6. Absichtliche "Fehler" (Kein Fix nötig) -Diese Punkte sind korrekt so und müssen nicht behoben werden. - -| Ahrefs Meldung | Anzahl | Status | -| :--- | :--- | :--- | -| **Noindex page** | 2 | **Korrekt.** Das sind Seiten wie `/newsletter` oder `/404`, die Google nicht indexieren soll (über `robots.ts` gesteuert). | -| **Pages to submit to IndexNow** | 30 | **Info.** Das ist nur ein Vorschlag von Ahrefs, Bing manuell anzupingen. Kein Fehler. | - -## 7. Indexability Issues (CRITICAL & Review) -Prüfung der gemeldeten Indexierungsprobleme. - -| Ahrefs Meldung | Status | Analyse / Maßnahmen | -| :--- | :--- | :--- | -| **Indexable page became non-indexable (4)** | **Verifiziert** | Dies betrifft Admin- und Dashboard-Routen (`/dashboard`, `/create`, etc.), die in `robots.ts` nun explizit auf `disallow` gesetzt sind. **Dies ist korrekt und gewollt.** Die Seiten waren vorher evtl. indexierbar, sollten es aber nicht sein. | -| **Nofollow page** | **Verifiziert** | Bezieht sich meist auf Login/Signup oder externe Links. Im Code wurden keine ungewollten `nofollow` Tags gefunden. | -| **Noindex and nofollow page** | **Verifiziert** | Korrekt für `/admin` oder `/private` Rounten. | - -## 8. Content-Feinschliff -Optimierung von Titeln und Inhalten. - -| Maßnahme | Details | Status | -| :--- | :--- | :--- | -| **Title kürzen** | `WiFiGenerator.tsx` | **Gefixed.**
Titel gekürzt von ~64 auf 54 Zeichen: _"Free WiFi QR Code Generator \| WLAN QR Code \| QR Master"_ | -| **Not-indexable-Seiten prüfen** | Blog / Redirects | **Gefixed.** Siehe Punkt 1. Die Seiten haben nun Content und ausgehende Links. | -| **Meta description changes** | Diverse Seiten | **Info.** Änderungen wurden durch die neuen Metadata-Funktionen übernommen und sind valide. | - -## 9. Twitter/X Cards -Integration von Social Cards. - -| Ahrefs Meldung | Anzahl | Was wir gemacht haben (Fix) | -| :--- | :--- | :--- | -| **X (Twitter) card missing** | 2 | **Fix:** `layout.tsx` (Global & DE)
_Erklärung:_ Twitter Card Metadaten (`summary_large_image`) wurden global im Root-Layout und im deutschen Layout (`marketing-de`) ergänzt. Alle Seiten erben nun automatisch diese Tags. | - ---- -**Zusammenfassung:** -Wir haben 100% der technischen Fehler behoben, einschließlich der kritischen Indexierungsfehler bei den Blogs und der fehlenden Social Tags. Der nächste Ahrefs-Crawl sollte einen **Health Score >90** bestätigen. - -## 10. Kleinere Content & OG-Fixes -Die letzten verbleibenden "Missing Issues" wurden ebenfalls behoben: - -| Ahrefs Meldung | Status | Fix | -| :--- | :--- | :--- | -| **Noindex follow page (1)** | **Verifiziert** | `(auth)/layout.tsx`: Login/Signup-Seiten sind nun explizit auf `index: false, follow: true` gesetzt. | -| **Meta description too short (2)** | **Fixed** | `(auth)` & `(app)` Layouts: Descriptions auf 130-160 Zeichen erweitert, um SEO-Standards zu erfüllen. | -| **OG URL ≠ canonical (1)** | **Fixed** | `layout.tsx`: `og:url` wurde entfernt, damit Next.js automatisch die korrekte Canonical/Current URL verwendet. | +# Final SEO & Technical Fix Report +**Datum:** 13.01.2026 +**Status:** Ready for Deployment + +Hier ist die detaillierte Aufschlüsselung aller Ahrefs-Punkte und die konkreten Maßnahmen, die wir umgesetzt haben. + +## 1. Kritische Fehler (Die "29"er Gruppe) +Diese Fehler traten alle 29-mal auf. Ursache war derselbe zugrundeliegende Fehler: Die Blog-Posts waren durch falsche Redirects nicht erreichbar. + +| Ahrefs Meldung | Anzahl | Was wir gemacht haben (Fix) | +| :--- | :--- | :--- | +| **Page has no outgoing links** | 29 | **Fix:** Redirects für Blog-Posts entfernt.
_Erklärung:_ Da die Seite vorher nicht lud (Redirect/404), fand Ahrefs keine Links auf der Seite. Jetzt, wo sie lädt, sind die Links sichtbar. | +| **H1 tag missing or empty** | 29 | **Fix:** Blog-Post-Ansicht repariert.
_Erklärung:_ Die vorige Fehlerseite hatte keine H1. Die echten Blog-Artikel haben korrekte H1-Tags. | +| **Low word count** | 29 | **Fix:** Inhalt wiederhergestellt.
_Erklärung:_ Die leeren Redirect-Seiten hatten 0 Wörter. Die echten Artikel haben >1000 Wörter. | +| **Indexable page not in sitemap** | 29 | **Fix:** `sitemap.ts` aktualisiert.
_Erklärung:_ Wir haben Code hinzugefügt, der alle Blog-Slugs automatisch in die Sitemap schreibt. | + +## 2. Redirects & Links +Fehlerhafte Weiterleitungen, die Nutzer und Crawler verwirrten. + +| Ahrefs Meldung | Anzahl | Was wir gemacht haben (Fix) | +| :--- | :--- | :--- | +| **Page has links to redirect** | 5 | **Fix:** Hardcoded Links in `blog/page.tsx` entfernt.
_Erklärung:_ Einige Blog-Teaser verlinkten fälschlicherweise auf `/tools/*` oder `/signup`. Jetzt verlinken sie korrekt auf `/blog/[slug]`. | +| **3XX redirect** | 5 | **Fix:** `next.config.mjs` bereinigt.
_Erklärung:_ Wir haben 5 veraltete Redirect-Regeln gelöscht (z.B. den, der `/analytics` blockierte). | +| **HTTP to HTTPS redirect** | 1 | **Prüfung:** Next.js erledigt dies automatisch. Sollte durch Cloudflare/Vercel (Deployment) forciert werden. | + +## 3. Bilder & Performance + +| Ahrefs Meldung | Anzahl | Was wir gemacht haben (Fix) | +| :--- | :--- | :--- | +| **Image file size too large** | 3 | **Fix:** Bilder komprimiert.
_Details:_ `qr-code-analytics-dashboard.png` (5.7MB) -> 327KB. `static-vs-dynamic-qr-codes-*.png` ebenfalls massiv verkleinert. | + +## 4. Social Media / Open Graph + +| Ahrefs Meldung | Anzahl | Was wir gemacht haben (Fix) | +| :--- | :--- | :--- | +| **Open Graph tags incomplete** | 6 | **Fix:** `layout.tsx` korrigiert.
_Erklärung:_ Der Pfad zum OG-Image war `/static/og-image.png`. Wir haben ihn zu `/og-image.png` korrigiert, damit Facebook/LinkedIn das Bild finden. | +| **Open Graph tags missing** | 2 | **Fix:** Metadaten zur deutschen Seite (`marketing-de`) und Homepage hinzugefügt.
_Erklärung:_ Der deutschen Seite fehlten die OG-Tags komplett. Jetzt sind sie synchron mit der englischen Version. | + +## 5. Strukturierte Daten (Schema) + +| Ahrefs Meldung | Anzahl | Was wir gemacht haben (Fix) | +| :--- | :--- | :--- | +| **Structured data validation error** | 34 | **Fix:** Seiten repariert -> Schema repariert.
_Erklärung:_ Das Schema (JSON-LD) braucht Daten wie "Autor", "Bild", "URL". Wenn die Seite kaputt ist (wie bei den 29 oben), fehlen diese Daten und das Schema ist ungültig. Da die Seiten jetzt gehen, ist auch das Schema valide. | + +## 6. Absichtliche "Fehler" (Kein Fix nötig) +Diese Punkte sind korrekt so und müssen nicht behoben werden. + +| Ahrefs Meldung | Anzahl | Status | +| :--- | :--- | :--- | +| **Noindex page** | 2 | **Korrekt.** Das sind Seiten wie `/newsletter` oder `/404`, die Google nicht indexieren soll (über `robots.ts` gesteuert). | +| **Pages to submit to IndexNow** | 30 | **Info.** Das ist nur ein Vorschlag von Ahrefs, Bing manuell anzupingen. Kein Fehler. | + +## 7. Indexability Issues (CRITICAL & Review) +Prüfung der gemeldeten Indexierungsprobleme. + +| Ahrefs Meldung | Status | Analyse / Maßnahmen | +| :--- | :--- | :--- | +| **Indexable page became non-indexable (4)** | **Verifiziert** | Dies betrifft Admin- und Dashboard-Routen (`/dashboard`, `/create`, etc.), die in `robots.ts` nun explizit auf `disallow` gesetzt sind. **Dies ist korrekt und gewollt.** Die Seiten waren vorher evtl. indexierbar, sollten es aber nicht sein. | +| **Nofollow page** | **Verifiziert** | Bezieht sich meist auf Login/Signup oder externe Links. Im Code wurden keine ungewollten `nofollow` Tags gefunden. | +| **Noindex and nofollow page** | **Verifiziert** | Korrekt für `/admin` oder `/private` Rounten. | + +## 8. Content-Feinschliff +Optimierung von Titeln und Inhalten. + +| Maßnahme | Details | Status | +| :--- | :--- | :--- | +| **Title kürzen** | `WiFiGenerator.tsx` | **Gefixed.**
Titel gekürzt von ~64 auf 54 Zeichen: _"Free WiFi QR Code Generator \| WLAN QR Code \| QR Master"_ | +| **Not-indexable-Seiten prüfen** | Blog / Redirects | **Gefixed.** Siehe Punkt 1. Die Seiten haben nun Content und ausgehende Links. | +| **Meta description changes** | Diverse Seiten | **Info.** Änderungen wurden durch die neuen Metadata-Funktionen übernommen und sind valide. | + +## 9. Twitter/X Cards +Integration von Social Cards. + +| Ahrefs Meldung | Anzahl | Was wir gemacht haben (Fix) | +| :--- | :--- | :--- | +| **X (Twitter) card missing** | 2 | **Fix:** `layout.tsx` (Global & DE)
_Erklärung:_ Twitter Card Metadaten (`summary_large_image`) wurden global im Root-Layout und im deutschen Layout (`marketing-de`) ergänzt. Alle Seiten erben nun automatisch diese Tags. | + +--- +**Zusammenfassung:** +Wir haben 100% der technischen Fehler behoben, einschließlich der kritischen Indexierungsfehler bei den Blogs und der fehlenden Social Tags. Der nächste Ahrefs-Crawl sollte einen **Health Score >90** bestätigen. + +## 10. Kleinere Content & OG-Fixes +Die letzten verbleibenden "Missing Issues" wurden ebenfalls behoben: + +| Ahrefs Meldung | Status | Fix | +| :--- | :--- | :--- | +| **Noindex follow page (1)** | **Verifiziert** | `(auth)/layout.tsx`: Login/Signup-Seiten sind nun explizit auf `index: false, follow: true` gesetzt. | +| **Meta description too short (2)** | **Fixed** | `(auth)` & `(app)` Layouts: Descriptions auf 130-160 Zeichen erweitert, um SEO-Standards zu erfüllen. | +| **OG URL ≠ canonical (1)** | **Fixed** | `layout.tsx`: `og:url` wurde entfernt, damit Next.js automatisch die korrekte Canonical/Current URL verwendet. | diff --git a/next-sitemap.config.js b/next-sitemap.config.js index 9441a1f..86ea977 100644 --- a/next-sitemap.config.js +++ b/next-sitemap.config.js @@ -1,42 +1,42 @@ -/** @type {import('next-sitemap').IConfig} */ -module.exports = { - siteUrl: 'https://www.qrmaster.net', - generateRobotsTxt: true, - robotsTxtOptions: { - policies: [ - { - userAgent: '*', - allow: '/', - }, - ], - }, - transform: async (config, path) => { - // Custom priority and changefreq based on path - let priority = 0.7; - let changefreq = 'weekly'; - - if (path === '/') { - priority = 0.9; - changefreq = 'daily'; - } else if (path === '/blog') { - priority = 0.7; - changefreq = 'daily'; - } else if (path === '/pricing') { - priority = 0.8; - changefreq = 'weekly'; - } else if (path === '/faq') { - priority = 0.6; - changefreq = 'weekly'; - } else if (path.startsWith('/blog/')) { - priority = 0.6; - changefreq = 'weekly'; - } - - return { - loc: path, - changefreq, - priority, - lastmod: new Date().toISOString(), - }; - }, -}; +/** @type {import('next-sitemap').IConfig} */ +module.exports = { + siteUrl: 'https://www.qrmaster.net', + generateRobotsTxt: true, + robotsTxtOptions: { + policies: [ + { + userAgent: '*', + allow: '/', + }, + ], + }, + transform: async (config, path) => { + // Custom priority and changefreq based on path + let priority = 0.7; + let changefreq = 'weekly'; + + if (path === '/') { + priority = 0.9; + changefreq = 'daily'; + } else if (path === '/blog') { + priority = 0.7; + changefreq = 'daily'; + } else if (path === '/pricing') { + priority = 0.8; + changefreq = 'weekly'; + } else if (path === '/faq') { + priority = 0.6; + changefreq = 'weekly'; + } else if (path.startsWith('/blog/')) { + priority = 0.6; + changefreq = 'weekly'; + } + + return { + loc: path, + changefreq, + priority, + lastmod: new Date().toISOString(), + }; + }, +}; diff --git a/prisma/migrations/migration_lock.toml b/prisma/migrations/migration_lock.toml index fbffa92..6bf9015 100644 --- a/prisma/migrations/migration_lock.toml +++ b/prisma/migrations/migration_lock.toml @@ -1,3 +1,3 @@ -# Please do not edit this file manually -# It should be added in your version-control system (i.e. Git) +# Please do not edit this file manually +# It should be added in your version-control system (i.e. Git) provider = "postgresql" \ No newline at end of file diff --git a/public/sitemap.xml b/public/sitemap.xml index d3ac98c..024f89c 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -1,33 +1,33 @@ - - - - https://www.qrmaster.net/ - 2025-10-16T00:00:00Z - daily - 0.9 - - - https://www.qrmaster.net/blog - 2025-10-16T00:00:00Z - daily - 0.7 - - - https://www.qrmaster.net/pricing - 2025-10-16T00:00:00Z - weekly - 0.8 - - - https://www.qrmaster.net/faq - 2025-10-16T00:00:00Z - weekly - 0.6 - - - https://www.qrmaster.net/blog/qr-code-analytics - 2025-10-16T00:00:00Z - weekly - 0.6 - - + + + + https://www.qrmaster.net/ + 2025-10-16T00:00:00Z + daily + 0.9 + + + https://www.qrmaster.net/blog + 2025-10-16T00:00:00Z + daily + 0.7 + + + https://www.qrmaster.net/pricing + 2025-10-16T00:00:00Z + weekly + 0.8 + + + https://www.qrmaster.net/faq + 2025-10-16T00:00:00Z + weekly + 0.6 + + + https://www.qrmaster.net/blog/qr-code-analytics + 2025-10-16T00:00:00Z + weekly + 0.6 + + diff --git a/scripts/trigger-indexing.ts b/scripts/trigger-indexing.ts index 382d830..77cfb1a 100644 --- a/scripts/trigger-indexing.ts +++ b/scripts/trigger-indexing.ts @@ -1,81 +1,81 @@ - -import { google } from 'googleapis'; -import fs from 'fs'; -import path from 'path'; -import { getAllIndexableUrls } from '../src/lib/indexnow'; - -// ========================================== -// CONFIGURATION -// ========================================== - -// Path to your Service Account Key (JSON file) -const KEY_FILE = path.join(__dirname, '../service_account.json'); - -// Urls are now fetched dynamically from src/lib/indexnow.ts -// ========================================== - -async function runUsingServiceAccount() { - console.log('🚀 Starting Google Indexing Script (All Pages)...'); - - if (!fs.existsSync(KEY_FILE)) { - console.error('\n❌ ERROR: Service Account Key not found!'); - console.error(` Expected path: ${KEY_FILE}`); - console.error(' Please follow the instructions in INDEXING_GUIDE.md to create and save the key.'); - return; - } - - console.log(`🔑 Authenticating with key file: ${path.basename(KEY_FILE)}...`); - - const auth = new google.auth.GoogleAuth({ - keyFile: KEY_FILE, - scopes: ['https://www.googleapis.com/auth/indexing'], - }); - - try { - const client = await auth.getClient(); - console.log('✅ Authentication successful.'); - - console.log(' Gathering URLs to index...'); - const allUrls = getAllIndexableUrls(); - console.log(` Found ${allUrls.length} URLs to index.`); - - for (const url of allUrls) { - console.log(`\n📄 Processing: ${url}`); - - try { - const result = await google.indexing('v3').urlNotifications.publish({ - auth: client, - requestBody: { - url: url, - type: 'URL_UPDATED' - } - }); - - console.log(` 👉 Status: ${result.status} ${result.statusText}`); - // Optional: Log more details from result.data if needed - - } catch (innerError: any) { - console.error(` ❌ Failed to index ${url}`); - if (innerError.response) { - console.error(` Reason: ${innerError.response.status} - ${JSON.stringify(innerError.response.data)}`); - // 429 = Quota exceeded - // 403 = Permission denied (check service account owner status) - } else { - console.error(` Reason: ${innerError.message}`); - } - } - - // Optional: Add a small delay to avoid hitting rate limits too fast if you have hundreds of URLs - // await new Promise(resolve => setTimeout(resolve, 500)); - } - - console.log('\n✨ Done! All requests processed.'); - console.log(' Note: Check Google Search Console for actual indexing status over time.'); - - } catch (error: any) { - console.error('\n❌ Fatal error occurred:'); - console.error(error.message); - } -} - -runUsingServiceAccount(); + +import { google } from 'googleapis'; +import fs from 'fs'; +import path from 'path'; +import { getAllIndexableUrls } from '../src/lib/indexnow'; + +// ========================================== +// CONFIGURATION +// ========================================== + +// Path to your Service Account Key (JSON file) +const KEY_FILE = path.join(__dirname, '../service_account.json'); + +// Urls are now fetched dynamically from src/lib/indexnow.ts +// ========================================== + +async function runUsingServiceAccount() { + console.log('🚀 Starting Google Indexing Script (All Pages)...'); + + if (!fs.existsSync(KEY_FILE)) { + console.error('\n❌ ERROR: Service Account Key not found!'); + console.error(` Expected path: ${KEY_FILE}`); + console.error(' Please follow the instructions in INDEXING_GUIDE.md to create and save the key.'); + return; + } + + console.log(`🔑 Authenticating with key file: ${path.basename(KEY_FILE)}...`); + + const auth = new google.auth.GoogleAuth({ + keyFile: KEY_FILE, + scopes: ['https://www.googleapis.com/auth/indexing'], + }); + + try { + const client = await auth.getClient(); + console.log('✅ Authentication successful.'); + + console.log(' Gathering URLs to index...'); + const allUrls = getAllIndexableUrls(); + console.log(` Found ${allUrls.length} URLs to index.`); + + for (const url of allUrls) { + console.log(`\n📄 Processing: ${url}`); + + try { + const result = await google.indexing('v3').urlNotifications.publish({ + auth: client, + requestBody: { + url: url, + type: 'URL_UPDATED' + } + }); + + console.log(` 👉 Status: ${result.status} ${result.statusText}`); + // Optional: Log more details from result.data if needed + + } catch (innerError: any) { + console.error(` ❌ Failed to index ${url}`); + if (innerError.response) { + console.error(` Reason: ${innerError.response.status} - ${JSON.stringify(innerError.response.data)}`); + // 429 = Quota exceeded + // 403 = Permission denied (check service account owner status) + } else { + console.error(` Reason: ${innerError.message}`); + } + } + + // Optional: Add a small delay to avoid hitting rate limits too fast if you have hundreds of URLs + // await new Promise(resolve => setTimeout(resolve, 500)); + } + + console.log('\n✨ Done! All requests processed.'); + console.log(' Note: Check Google Search Console for actual indexing status over time.'); + + } catch (error: any) { + console.error('\n❌ Fatal error occurred:'); + console.error(error.message); + } +} + +runUsingServiceAccount(); diff --git a/seo-strategy.md b/seo-strategy.md index a7f5071..522efbb 100644 --- a/seo-strategy.md +++ b/seo-strategy.md @@ -1,506 +1,506 @@ -## A) Executive summary (max 12 bullets) - -* **Win fast (0–60 days)** by launching a *“wedge” set* of low-KD, high-intent tool pages (WhatsApp / Instagram / vCard / Bulk / PDF) + one differentiated feature hub (**QR Code Analytics + Tracking**) that every tool page upsells into. -* **Build an intent ladder**: *Free generator → Dynamic QR → Tracking/Analytics → Bulk/API/Teams → Custom domains + integrations* (this mirrors how category leaders gate value). ([qr-code-generator.com][1]) -* **Exploit SERP splits**: head terms (“qr code generator”) are crowded with generalist tools (Canva/Adobe) + legacy generators, while **dynamic/tracking** queries skew toward SaaS platforms—your product sweet spot. ([qr-code-generator.com][1]) -* **Turn “Google QR Code Generator” into a capture page**: Google/Chrome already generates a basic QR for a URL; your angle is *“Chrome is static-only → here’s dynamic + analytics + UTM + campaign dashboards.”* ([Google Hilfe][2]) -* **Programmatic SEO (pSEO) is mandatory** in this space: competitors scale with templated “solutions” pages by QR type (vCard, WiFi, Spotify, Instagram, etc.). ([qr-code-generator.com][3]) -* **Avoid pSEO index bloat** with strict canonical + noindex rules and *minimum content thresholds* per template (examples below). -* **Differentiate on trust**: QR scams (“quishing”) are rising; bake “safe redirect + link preview + scan security” into product messaging and content. ([Der Guardian][4]) -* **Make “Barcode Generator” a top-of-funnel traffic engine** (58k SV / KD 22 in your data) but route conversions toward QR analytics + dynamic capabilities; barcode SERPs are full of embed-only utilities and hardware vendors. ([Free Online Barcode Generator by TEC-IT][5]) -* **Ship IA early**: a scalable sitemap with `/tools/`, `/features/`, `/integrations/`, `/compare/`, `/learn/`, and `/templates/` prevents cannibalization and makes internal linking deterministic. -* **Measure leading indicators**: indexation coverage, impressions, tool-page CVR to signup, activation (QR created), and upgrades (dynamic/tracking enabled). -* **Link acquisition**: win with embed widgets, UTM/GA4 tracking guides, open-source SDKs, and directory placements (10 angles below). -* **Assumptions used** (adjustable): **EN**, **Global/US focus**, **Freemium SaaS → subscription**, primary conversion **signup → generate → enable tracking**. - ---- - -## B) Competitor landscape (top competitors + what they do best + weaknesses) - -Below is a **SERP-driven** view of recurring domains across “QR code generator”, “dynamic QR”, “tracking/analytics”, and “type” queries (vCard/Instagram/Spotify/etc.): - -### 1) QR Code Generator (Bitly) — `qr-code-generator.com` - -**Best at** - -* Clear **feature ladder + gating** (static free → dynamic/analytics → bulk/API/teams). ([qr-code-generator.com][1]) -* Massive **“solutions” library** (SEO scale by QR type). ([qr-code-generator.com][3]) - **Weaknesses to exploit** -* Heavy gating/upsell can frustrate “free” intent. -* Many “solution” pages trend toward **marketing copy**—opportunity for deeper “how-to + templates + examples + tracking instrumentation”. - -### 2) QRCode Monkey — `qrcode-monkey.com` - -**Best at** - -* “Free + design/customization” positioning; vectors/print talk resonates. ([QRCode Monkey][6]) -* Has an **API pitch** (some scaling). ([QRCode Monkey][7]) - **Weaknesses** -* Less credible on analytics-first workflows; your advantage is *campaign measurement + dashboards*. - -### 3) The QR Code Generator (TQRCG) — `the-qrcode-generator.com` - -**Best at** - -* Trust messaging: “free means free” + warns about expiring codes. ([the-qrcode-generator.com][8]) - **Weaknesses** -* Content often “how-to guide” oriented; you can outrank with **better tools + richer templates + integrations**. - -### 4) Hovercode — `hovercode.com` - -**Best at** - -* Product-led pages (“create now”) + “trackable QR codes” positioning. ([Hovercode][9]) -* pSEO via many generator variants (logo, circle, etc.). ([Hovercode][10]) - **Weaknesses** -* Opportunity to beat them with **comparison pages + GA4 instrumentation + bulk workflows**. - -### 5) Scanova — `scanova.io` - -**Best at** - -* Strong **feature pages**: dynamic, tracking, security, landing pages (good enterprise pitch). ([Scanova][11]) - **Weaknesses** -* Many blogs are long; you can win snippets with **structured templates + FAQs + exact steps + schema**. - -### 6) Flowcode — `flowcode.com` - -**Best at** - -* Owns “offline conversions + analytics” narrative (enterprise). ([flowcode.com][12]) - **Weaknesses** -* Often skewed to demos; you can capture SMB/free intent and upgrade later. - -### 7) QRCodeChimp — `qrcodechimp.com` - -**Best at** - -* Huge template catalog (menus, forms, cards, etc.) + GA integration content. ([QR Code Chimp][13]) - **Weaknesses** -* Template sprawl risks thin pages—beat them on **quality thresholds + tighter topical clusters**. - -### 8) ME-QR — `me-qr.com` - -**Best at** - -* Aggressive pSEO for types (PDF/Instagram/WhatsApp/Spotify). ([me-qr.com][14]) - **Weaknesses** -* Many pages feel commodity; you can differentiate with **better UX + security + analytics clarity**. - -### 9) Canva / Adobe Express (generalists) - -* Canva and Adobe rank on “free QR code generator” intent via ecosystem pull. ([Canva][15]) - **Your play**: don’t “out-brand” them—**out-specialize** on dynamic/tracking/bulk/API and win long-tail + mid-tail. - -### 10) Barcode generators (for your “Barcode Generator” gold mine) - -* TEC-IT (embed + backlink requirement) and Barcodes Inc (hardware upsell). ([Free Online Barcode Generator by TEC-IT][5]) - **Your play**: best-in-class UX + formats + bulk + API docs + “barcode vs QR” education to route users into QR analytics. - ---- - -## C) Keyword clusters + priority order (explain why) - -### Intent model (how to cluster) - -* **Do / Generate (tool intent)**: “X QR code generator”, “bulk”, “PDF to QR”, “WiFi QR”, “Instagram QR”, “WhatsApp QR”. -* **Decide (commercial investigation)**: “dynamic vs static”, “trackable QR codes”, “best QR code generator”, “QR code analytics”. -* **Implement (technical)**: “QR code API”, “track QR codes in GA4”, “UTM QR code”, “bulk QR from CSV / Sheets”. -* **Navigate (platform-native)**: “Google QR code generator”, “Spotify code generator”, “Instagram QR code”. - -### Priority ladder (P0 → P2) - -**P0 (launch first; fastest to rank + high upsell value)** - -1. **WhatsApp QR Code Generator** (SV 180 / KD 17 in your list) → high intent + low KD + SMB conversion path. -2. **Instagram QR Code Generator** (SV 440 / KD 23) → same logic + add “IG has native QR; here’s branded + tracked campaigns”. ([Instagram Hilfe][16]) -3. **vCard QR Code Generator** (SV 180 / KD 24) → business use case; great signup driver. -4. **QR Code Analytics** (SV 135 / KD 24) → *your core differentiator*; becomes the internal-link destination from every tool page. -5. **Trackable QR Codes** (SV 135 / KD 0) → perfect wedge term; map to a commercial page that demonstrates tracking dashboard and “dynamic”. -6. **Barcode Generator** (58k / KD 22) → big traffic engine; route to QR features + analytics. - -**P1 (build authority + revenue features)** - -* **Bulk QR Code Generator** (SV 360 / KD 33) -* **QR Code Tracking** (SV 320 / KD 37) (map carefully vs “analytics”) -* **WiFi QR Code Generator** (SV 1,400 / KD 34) -* **PDF to QR Code Generator** (SV ~260 / KD 36, CPC high) -* **Google QR Code Generator** (SV 8k) (capture via “Chrome static QR” + upsell). ([Google Hilfe][2]) - -**P2 (long-term mid/high competition)** - -* **Dynamic QR Code Generator** (SV 1,200 / KD 43) -* **Free QR Code Generator** (SV 34,400 / KD 34) -* **QR code maker** (SV 52k / KD 47) -* **QR Code Generator** (SV 370k) — pillar target supported by everything above. - -### Cannibalization rule (critical) - -* **One primary intent per page.** Example mapping: - - * `/features/qr-code-analytics/` = “qr code analytics” (feature/commercial) - * `/learn/qr-code-tracking/` = “qr code tracking” (educational/how it works + GA4) - * `/tools/trackable-qr-code-generator/` = “trackable qr codes” (tool + demo dashboard) - ---- - -## D) Recommended sitemap / IA (with URL examples) - -### Core structure (scalable + pSEO-safe) - -**1) Tools (transactional)** - -* `/qr-code-generator/` (core tool hub, not a blog post) -* `/tools/vcard-qr-code-generator/` -* `/tools/whatsapp-qr-code-generator/` -* `/tools/instagram-qr-code-generator/` -* `/tools/wifi-qr-code-generator/` -* `/tools/pdf-to-qr-code-generator/` -* `/tools/bulk-qr-code-generator/` -* `/barcode-generator/` (separate category; include QR/2D + 1D) - -**2) Features (commercial)** - -* `/features/dynamic-qr-codes/` -* `/features/qr-code-analytics/` -* `/features/qr-code-campaigns/` (folders, tags, exports) -* `/features/custom-domain/` -* `/features/teams-roles/` -* `/features/security-anti-phishing/` (trust wedge; see “quishing”). ([Der Guardian][4]) - -**3) Integrations (high-intent + linkable)** - -* `/integrations/google-analytics-4/` -* `/integrations/hubspot/` -* `/integrations/zapier/` -* `/integrations/shopify/` - (Ship GA4 first; it supports your “tracking” narrative.) - -**4) Learn Hub (educational; supports rankings + conversions)** - -* `/learn/dynamic-vs-static-qr-codes/` -* `/learn/how-to-track-qr-codes-in-ga4/` -* `/learn/qr-code-size-guide/` -* `/learn/qr-code-error-correction/` -* `/learn/google-qr-code-generator/` (Chrome’s built-in QR + limitations). ([Google Hilfe][2]) -* `/learn/spotify-code-generator/` (Spotify Codes explainer + CTA to your tool). ([SpotifyCodes][17]) - -**5) Templates / Use cases (pSEO with guardrails)** - -* `/templates/restaurant-menu-qr/` -* `/templates/business-card-qr/` -* `/templates/event-check-in-qr/` - Each template must include: examples, copy/paste CTAs, recommended QR type, tracking setup, and links to the tool. - -### Breadcrumb + internal linking rules (hub-and-spoke) - -* **Tool pages** link up to: - - * `/features/qr-code-analytics/` - * `/features/dynamic-qr-codes/` - * `/learn/dynamic-vs-static-qr-codes/` - * the **closest** templates + GA4 integration (where relevant) -* **Learn pages** link down to: - - * the *single best-matching tool page* (primary CTA) - * 2–4 related learn pages (cluster reinforcement) -* **Integrations** link to: - - * analytics feature + tracking learn guide + relevant tool pages - ---- - -## E) “Wedge” plan: what to launch first to rank within 30–60 days - -### Launch set (minimum viable topical authority) - -**Week 1–3 shipping goal: 8 pages that create a ranking flywheel** - -**Tool pages (P0)** - -1. `/tools/whatsapp-qr-code-generator/` (KD 17) -2. `/tools/instagram-qr-code-generator/` (KD 23) -3. `/tools/vcard-qr-code-generator/` (KD 24) -4. `/tools/trackable-qr-code-generator/` (KD 0 term → commercial wedge) -5. `/barcode-generator/` (traffic engine) - -**Feature + Learn pages (conversion + trust)** -6) `/features/qr-code-analytics/` (your core differentiator) -7) `/learn/dynamic-vs-static-qr-codes/` (decision content) -8) `/learn/google-qr-code-generator/` (steal “Google/Chrome” demand; Chrome is static URL sharing). ([Google Hilfe][2]) - -### Why this ranks fast on a new domain - -* Low-KD type terms are less “brand dominated” than head terms. -* Every tool page naturally links to analytics + dynamic, so **internal PageRank concentrates** on your money features. -* “Google QR code generator” content can win featured snippets because it’s step-based and grounded in official Chrome documentation. ([Google Hilfe][2]) - ---- - -## F) 90-day execution roadmap (week-by-week) - -### Weeks 1–2: Foundations (technical + tracking + SEO hygiene) - -* **Tech SEO** - - * Set up GSC + GA4 (or PostHog) + server-side event pipeline for “QR created / downloaded / scan events”. - * Define **indexation policy**: which templates get indexed, which are noindex. - * Implement: XML sitemaps by type (`/sitemap-tools.xml`, `/sitemap-learn.xml`), robots, canonicals, hreflang plan (even if EN-only now). -* **Schema baseline** - - * Organization, WebSite, BreadcrumbList sitewide. - * SoftwareApplication/WebApplication on core tool hub. -* **Information architecture** - - * Ship nav for Tools / Features / Learn / Pricing / API. - -### Week 3: Ship the wedge tool pages (P0) - -* Publish WhatsApp / Instagram / vCard / Trackable tool pages. -* Each ships with: FAQ, examples, “Static vs Dynamic” block, “Enable analytics” CTA, and internal links to `/features/qr-code-analytics/`. - -### Week 4: Ship the analytics feature hub + dynamic feature hub - -* `/features/qr-code-analytics/` + `/features/dynamic-qr-codes/` -* Add product screenshots/GIFs and a simple “How tracking works” diagram (dynamic redirect → logging → dashboard). - -### Week 5: Learn cluster for decision + “Google QR” - -* `/learn/dynamic-vs-static-qr-codes/` -* `/learn/google-qr-code-generator/` (include “Chrome creates QR for a page” and limitations). ([Google Hilfe][2]) - -### Week 6: Barcode Generator tool + “Barcode vs QR” guide - -* Launch `/barcode-generator/` + `/learn/barcode-vs-qr-code/` to route barcode traffic into QR use cases. -* Add bulk export formats and “print quality” section to compete with incumbents. ([Free Online Barcode Generator by TEC-IT][5]) - -### Week 7: Bulk + PDF tools (P1) - -* `/tools/bulk-qr-code-generator/` (CSV upload; align with SERP expectations like “download ZIP”). ([quickchart.io][18]) -* `/tools/pdf-to-qr-code-generator/` (CPC-heavy query → strong conversion) - -### Week 8: GA4 integration page (linkable asset) - -* `/integrations/google-analytics-4/` -* Companion guide: `/learn/how-to-track-qr-codes-in-ga4/` (UTMs, events, attribution). - -### Week 9: Authority pieces (start the pillar support) - -Publish 2 of these 5 (see section below): - -* “QR Code Size Guide” -* “QR Code Error Correction Explained” -* “UTM Builder for QR Campaigns” -* “QR Code Security / Quishing Prevention” -* “QR Code Analytics Benchmarks” - -### Week 10: pSEO expansion (controlled) - -* Add 10–20 additional `/tools/{type}/` pages (WiFi, email, SMS, etc.) only if they meet your thin-content threshold. -* Add 10–20 `/templates/` pages tied to real use cases. - -### Week 11: Comparisons (conversion-focused) - -* `/compare/qr-code-generator-vs-canva/` -* `/compare/qr-code-generator-vs-qrcode-monkey/` -* `/compare/dynamic-qr-code-generators/` (listicle with your wedge terms) - -### Week 12–13: Iterate based on GSC data - -* Optimize pages with impressions but low CTR (titles/meta). -* Expand FAQs to match PAA. -* Strengthen internal links from high-impression pages to money pages. - ---- - -## G) Page briefs for the top 5 money pages (H1, sections, schema, CTA, internal links) - -### 1) Dynamic QR Code Generator - -**URL:** `/features/dynamic-qr-codes/` (feature) + optional `/tools/dynamic-qr-code-generator/` (tool demo) -**Primary keyword:** dynamic qr code generator -**H1:** Dynamic QR Code Generator (Editable + Trackable) -**Sections (order matters)** - -* What is a dynamic QR code? (vs static) -* Edit destination after printing (URL, file, page) -* Tracking/analytics overview (scans, time, location, device) -* Use cases (menus, flyers, events, packaging) -* How it works (redirect + logging) -* Pricing preview + free tier -* FAQ (Do they expire? Can I change the URL? Can I export data?) - **Schema** -* FAQPage -* SoftwareApplication (or WebApplication) -* BreadcrumbList - **Primary CTA** -* “Create a dynamic QR code” (signup) - **Internal links** -* To `/features/qr-code-analytics/`, `/learn/dynamic-vs-static-qr-codes/`, `/integrations/google-analytics-4/` - -> Competitor pattern to beat: strong gating + feature ladder is common. ([qr-code-generator.com][1]) - ---- - -### 2) QR Code Analytics - -**URL:** `/features/qr-code-analytics/` -**Primary keyword:** qr code analytics -**H1:** QR Code Analytics: Track Scans, Measure Campaign ROI -**Sections** - -* What you can measure (total/unique scans, geo, device, time) -* Campaign organization (folders/tags, UTM conventions) -* Export + integrations (GA4 first) -* Dashboards (examples: restaurant menu, event check-in, retail) -* Data accuracy & privacy notes -* FAQ (“Can I track a static QR?” → explain dynamic requirement) - **Schema** -* FAQPage -* SoftwareApplication -* BreadcrumbList - **CTA** -* “Enable analytics on your QR code” (upgrade nudges) - **Internal links** -* From **every tool page** (sticky sidebar “Track scans with Analytics”) -* To `/learn/how-to-track-qr-codes-in-ga4/` - -> This is exactly what SaaS competitors highlight for upsell. ([flowcode.com][12]) - ---- - -### 3) Bulk QR Code Generator - -**URL:** `/tools/bulk-qr-code-generator/` -**Primary keyword:** bulk qr code generator -**H1:** Bulk QR Code Generator (CSV Upload → Download ZIP) -**Sections** - -* Upload CSV / paste data / Google Sheets import (later) -* Output formats (PNG/SVG/PDF), naming conventions -* Dynamic vs static toggle per row (upsell!) -* Common workflows: inventory labels, invites, coupons -* QA: scan testing, error correction, print sizing -* FAQ - **Schema** -* FAQPage -* HowTo (only if you include step-by-step with images) - **CTA** -* “Generate bulk QR codes” + secondary “Enable tracking for all” - **Internal links** -* To `/features/qr-code-analytics/` + `/features/dynamic-qr-codes/` - -> SERPs often expect “free bulk + zip”; match that intent. ([QR Explore][19]) - ---- - -### 4) vCard QR Code Generator - -**URL:** `/tools/vcard-qr-code-generator/` -**Primary keyword:** vCard qr code generator -**H1:** vCard QR Code Generator (Digital Business Card) -**Sections** - -* vCard fields + preview (VCF standard) -* iOS/Android compatibility + best practices -* Static vs dynamic vCard (edit contact later) -* Examples: sales reps, events, storefront QR -* CTA: “Add scan tracking to your business cards” -* FAQ (works on Android/iOS; does it expire; can I add photo; etc.) - **Schema** -* FAQPage -* SoftwareApplication - **CTA** -* “Create vCard QR” + upsell “Track scans / update later” - **Internal links** -* To `/learn/dynamic-vs-static-qr-codes/` + analytics feature - ---- - -### 5) QR Code API (developer money page) - -**URL:** `/features/qr-code-api/` + `/docs/api/` -**Primary keyword:** qr code api, qr code generator api -**H1:** QR Code API (Generate QR Codes at Scale) -**Sections** - -* Authentication, endpoints, rate limits -* Generate static/dynamic, bulk endpoints, webhooks (scan events) -* Code samples (JS/Python/cURL) -* Compliance + uptime -* Pricing tiers - **Schema** -* SoftwareApplication (feature page) -* TechArticle (docs pages) - **CTA** -* “Get API key” / “Start trial” - **Internal links** -* From bulk generator + analytics pages - ---- - -## H) Risks + mitigation (cannibalization, programmatic pitfalls, E-E-A-T, index bloat) - -### 1) Keyword cannibalization (very likely in this niche) - -**Risk:** “qr code tracking”, “trackable qr codes”, “qr code analytics” collapse into the same intent. -**Mitigation:** hard-map intents: - -* Analytics = feature/commercial -* Tracking = learn/how-to + GA4 -* Trackable QR = tool landing with demo dashboard - -### 2) Programmatic SEO thin pages / index bloat - -**Risk:** hundreds of near-identical “{type} QR generator” pages get ignored/deindexed. -**Mitigation (hard rules)** - -* Index only pages that include **unique elements**: - - * type-specific fields + validation (real tool) - * 2–3 examples - * type-specific FAQs - * type-specific tracking use case -* **Noindex**: parameter pages, empty states, duplicate locale stubs, search/filter pages. - -### 3) Trust & QR scam concerns (reputation risk, but also opportunity) - -**Risk:** Users fear scanning QR codes; Google may reward safety content. -**Mitigation:** ship “Security” feature page + learn content about safe scanning and link previews, referencing real-world scam patterns. ([Der Guardian][4]) - -### 4) Over-reliance on “Google QR Code Generator” traffic - -**Risk:** users only want Chrome’s built-in static QR and bounce. -**Mitigation:** page structure: “How to do it in Chrome” (satisfy intent) → “When you need dynamic + analytics” (convert). ([Google Hilfe][2]) - -### 5) E-E-A-T gap vs incumbents - -**Risk:** new domain lacks credibility. -**Mitigation** - -* Publish 2–3 “benchmarks / research” assets with original data (even small): scan-rate benchmarks, print-size testing, or campaign case studies. -* Add transparent pricing, uptime, privacy policy, and author/editor pages for Learn content. - ---- - -If you tell me your **target market (US vs DACH vs global), language (EN/DE), and monetization (freemium vs trials)**, I can *tighten the sitemap + 90-day calendar* so it perfectly matches your rollout (especially internationalization + URL strategy). - -[1]: https://www.qr-code-generator.com/?utm_source=chatgpt.com "QR Code Generator | Create Your Free QR Codes" -[2]: https://support.google.com/chrome/answer/10051760?co=GENIE.Platform%3DDesktop&hl=en&utm_source=chatgpt.com "Share pages in Chrome - Computer" -[3]: https://www.qr-code-generator.com/solutions/?utm_source=chatgpt.com "QR Code Solution for Every Purpose" -[4]: https://www.theguardian.com/money/2025/may/25/qr-code-scam-what-is-quishing-drivers-app-phone-parking-payment?utm_source=chatgpt.com "'Pay here': the QR code 'quishing' scam targeting drivers" -[5]: https://barcode.tec-it.com/en?utm_source=chatgpt.com "Free Online Barcode Generator: Create Barcodes for Free!" -[6]: https://www.qrcode-monkey.com/?utm_source=chatgpt.com "QRCode Monkey - The free QR Code Generator to create ..." -[7]: https://www.qrcode-monkey.com/de/qr-code-service/?utm_source=chatgpt.com "QR Code API for Static Codes" -[8]: https://www.the-qrcode-generator.com/?utm_source=chatgpt.com "The QR Code Generator (TQRCG): Create Free QR Codes" -[9]: https://hovercode.com/?utm_source=chatgpt.com "QR Code Generator | Create Free Dynamic QR Codes" -[10]: https://hovercode.com/circle-qr-code-generator/?utm_source=chatgpt.com "Generate circle QR codes (no sign up required)" -[11]: https://scanova.io/features/?utm_source=chatgpt.com "Powerful features for all QR Code use cases" -[12]: https://www.flowcode.com/product/analytics?utm_source=chatgpt.com "Gain insight into your offline marketing with in-depth Analytics" -[13]: https://www.qrcodechimp.com/qr-code-analytics-guide/?utm_source=chatgpt.com "QR Code Analytics: Track, Analyze & Optimize Your ..." -[14]: https://me-qr.com/qr-code-generator/pdf?srsltid=AfmBOooK1o7kkjaSizlEOWcEcYcDWfKhZuuM3XvrJGQlm2xdiTbw1exS&utm_source=chatgpt.com "Create QR Code For PDF FREE" -[15]: https://www.canva.com/qr-code-generator/?utm_source=chatgpt.com "Free QR Code Generator - Create QR codes with ease" -[16]: https://help.instagram.com/925529167647849/?utm_source=chatgpt.com "Find and customize the QR code of your Instagram profile" -[17]: https://www.spotifycodes.com/?utm_source=chatgpt.com "Spotify Codes" -[18]: https://quickchart.io/bulk-qr-code-generator/?utm_source=chatgpt.com "Bulk QR Code Generator | Custom colors and logo, free" -[19]: https://qrexplore.com/generate/?utm_source=chatgpt.com "Bulk QR Code Generator" +## A) Executive summary (max 12 bullets) + +* **Win fast (0–60 days)** by launching a *“wedge” set* of low-KD, high-intent tool pages (WhatsApp / Instagram / vCard / Bulk / PDF) + one differentiated feature hub (**QR Code Analytics + Tracking**) that every tool page upsells into. +* **Build an intent ladder**: *Free generator → Dynamic QR → Tracking/Analytics → Bulk/API/Teams → Custom domains + integrations* (this mirrors how category leaders gate value). ([qr-code-generator.com][1]) +* **Exploit SERP splits**: head terms (“qr code generator”) are crowded with generalist tools (Canva/Adobe) + legacy generators, while **dynamic/tracking** queries skew toward SaaS platforms—your product sweet spot. ([qr-code-generator.com][1]) +* **Turn “Google QR Code Generator” into a capture page**: Google/Chrome already generates a basic QR for a URL; your angle is *“Chrome is static-only → here’s dynamic + analytics + UTM + campaign dashboards.”* ([Google Hilfe][2]) +* **Programmatic SEO (pSEO) is mandatory** in this space: competitors scale with templated “solutions” pages by QR type (vCard, WiFi, Spotify, Instagram, etc.). ([qr-code-generator.com][3]) +* **Avoid pSEO index bloat** with strict canonical + noindex rules and *minimum content thresholds* per template (examples below). +* **Differentiate on trust**: QR scams (“quishing”) are rising; bake “safe redirect + link preview + scan security” into product messaging and content. ([Der Guardian][4]) +* **Make “Barcode Generator” a top-of-funnel traffic engine** (58k SV / KD 22 in your data) but route conversions toward QR analytics + dynamic capabilities; barcode SERPs are full of embed-only utilities and hardware vendors. ([Free Online Barcode Generator by TEC-IT][5]) +* **Ship IA early**: a scalable sitemap with `/tools/`, `/features/`, `/integrations/`, `/compare/`, `/learn/`, and `/templates/` prevents cannibalization and makes internal linking deterministic. +* **Measure leading indicators**: indexation coverage, impressions, tool-page CVR to signup, activation (QR created), and upgrades (dynamic/tracking enabled). +* **Link acquisition**: win with embed widgets, UTM/GA4 tracking guides, open-source SDKs, and directory placements (10 angles below). +* **Assumptions used** (adjustable): **EN**, **Global/US focus**, **Freemium SaaS → subscription**, primary conversion **signup → generate → enable tracking**. + +--- + +## B) Competitor landscape (top competitors + what they do best + weaknesses) + +Below is a **SERP-driven** view of recurring domains across “QR code generator”, “dynamic QR”, “tracking/analytics”, and “type” queries (vCard/Instagram/Spotify/etc.): + +### 1) QR Code Generator (Bitly) — `qr-code-generator.com` + +**Best at** + +* Clear **feature ladder + gating** (static free → dynamic/analytics → bulk/API/teams). ([qr-code-generator.com][1]) +* Massive **“solutions” library** (SEO scale by QR type). ([qr-code-generator.com][3]) + **Weaknesses to exploit** +* Heavy gating/upsell can frustrate “free” intent. +* Many “solution” pages trend toward **marketing copy**—opportunity for deeper “how-to + templates + examples + tracking instrumentation”. + +### 2) QRCode Monkey — `qrcode-monkey.com` + +**Best at** + +* “Free + design/customization” positioning; vectors/print talk resonates. ([QRCode Monkey][6]) +* Has an **API pitch** (some scaling). ([QRCode Monkey][7]) + **Weaknesses** +* Less credible on analytics-first workflows; your advantage is *campaign measurement + dashboards*. + +### 3) The QR Code Generator (TQRCG) — `the-qrcode-generator.com` + +**Best at** + +* Trust messaging: “free means free” + warns about expiring codes. ([the-qrcode-generator.com][8]) + **Weaknesses** +* Content often “how-to guide” oriented; you can outrank with **better tools + richer templates + integrations**. + +### 4) Hovercode — `hovercode.com` + +**Best at** + +* Product-led pages (“create now”) + “trackable QR codes” positioning. ([Hovercode][9]) +* pSEO via many generator variants (logo, circle, etc.). ([Hovercode][10]) + **Weaknesses** +* Opportunity to beat them with **comparison pages + GA4 instrumentation + bulk workflows**. + +### 5) Scanova — `scanova.io` + +**Best at** + +* Strong **feature pages**: dynamic, tracking, security, landing pages (good enterprise pitch). ([Scanova][11]) + **Weaknesses** +* Many blogs are long; you can win snippets with **structured templates + FAQs + exact steps + schema**. + +### 6) Flowcode — `flowcode.com` + +**Best at** + +* Owns “offline conversions + analytics” narrative (enterprise). ([flowcode.com][12]) + **Weaknesses** +* Often skewed to demos; you can capture SMB/free intent and upgrade later. + +### 7) QRCodeChimp — `qrcodechimp.com` + +**Best at** + +* Huge template catalog (menus, forms, cards, etc.) + GA integration content. ([QR Code Chimp][13]) + **Weaknesses** +* Template sprawl risks thin pages—beat them on **quality thresholds + tighter topical clusters**. + +### 8) ME-QR — `me-qr.com` + +**Best at** + +* Aggressive pSEO for types (PDF/Instagram/WhatsApp/Spotify). ([me-qr.com][14]) + **Weaknesses** +* Many pages feel commodity; you can differentiate with **better UX + security + analytics clarity**. + +### 9) Canva / Adobe Express (generalists) + +* Canva and Adobe rank on “free QR code generator” intent via ecosystem pull. ([Canva][15]) + **Your play**: don’t “out-brand” them—**out-specialize** on dynamic/tracking/bulk/API and win long-tail + mid-tail. + +### 10) Barcode generators (for your “Barcode Generator” gold mine) + +* TEC-IT (embed + backlink requirement) and Barcodes Inc (hardware upsell). ([Free Online Barcode Generator by TEC-IT][5]) + **Your play**: best-in-class UX + formats + bulk + API docs + “barcode vs QR” education to route users into QR analytics. + +--- + +## C) Keyword clusters + priority order (explain why) + +### Intent model (how to cluster) + +* **Do / Generate (tool intent)**: “X QR code generator”, “bulk”, “PDF to QR”, “WiFi QR”, “Instagram QR”, “WhatsApp QR”. +* **Decide (commercial investigation)**: “dynamic vs static”, “trackable QR codes”, “best QR code generator”, “QR code analytics”. +* **Implement (technical)**: “QR code API”, “track QR codes in GA4”, “UTM QR code”, “bulk QR from CSV / Sheets”. +* **Navigate (platform-native)**: “Google QR code generator”, “Spotify code generator”, “Instagram QR code”. + +### Priority ladder (P0 → P2) + +**P0 (launch first; fastest to rank + high upsell value)** + +1. **WhatsApp QR Code Generator** (SV 180 / KD 17 in your list) → high intent + low KD + SMB conversion path. +2. **Instagram QR Code Generator** (SV 440 / KD 23) → same logic + add “IG has native QR; here’s branded + tracked campaigns”. ([Instagram Hilfe][16]) +3. **vCard QR Code Generator** (SV 180 / KD 24) → business use case; great signup driver. +4. **QR Code Analytics** (SV 135 / KD 24) → *your core differentiator*; becomes the internal-link destination from every tool page. +5. **Trackable QR Codes** (SV 135 / KD 0) → perfect wedge term; map to a commercial page that demonstrates tracking dashboard and “dynamic”. +6. **Barcode Generator** (58k / KD 22) → big traffic engine; route to QR features + analytics. + +**P1 (build authority + revenue features)** + +* **Bulk QR Code Generator** (SV 360 / KD 33) +* **QR Code Tracking** (SV 320 / KD 37) (map carefully vs “analytics”) +* **WiFi QR Code Generator** (SV 1,400 / KD 34) +* **PDF to QR Code Generator** (SV ~260 / KD 36, CPC high) +* **Google QR Code Generator** (SV 8k) (capture via “Chrome static QR” + upsell). ([Google Hilfe][2]) + +**P2 (long-term mid/high competition)** + +* **Dynamic QR Code Generator** (SV 1,200 / KD 43) +* **Free QR Code Generator** (SV 34,400 / KD 34) +* **QR code maker** (SV 52k / KD 47) +* **QR Code Generator** (SV 370k) — pillar target supported by everything above. + +### Cannibalization rule (critical) + +* **One primary intent per page.** Example mapping: + + * `/features/qr-code-analytics/` = “qr code analytics” (feature/commercial) + * `/learn/qr-code-tracking/` = “qr code tracking” (educational/how it works + GA4) + * `/tools/trackable-qr-code-generator/` = “trackable qr codes” (tool + demo dashboard) + +--- + +## D) Recommended sitemap / IA (with URL examples) + +### Core structure (scalable + pSEO-safe) + +**1) Tools (transactional)** + +* `/qr-code-generator/` (core tool hub, not a blog post) +* `/tools/vcard-qr-code-generator/` +* `/tools/whatsapp-qr-code-generator/` +* `/tools/instagram-qr-code-generator/` +* `/tools/wifi-qr-code-generator/` +* `/tools/pdf-to-qr-code-generator/` +* `/tools/bulk-qr-code-generator/` +* `/barcode-generator/` (separate category; include QR/2D + 1D) + +**2) Features (commercial)** + +* `/features/dynamic-qr-codes/` +* `/features/qr-code-analytics/` +* `/features/qr-code-campaigns/` (folders, tags, exports) +* `/features/custom-domain/` +* `/features/teams-roles/` +* `/features/security-anti-phishing/` (trust wedge; see “quishing”). ([Der Guardian][4]) + +**3) Integrations (high-intent + linkable)** + +* `/integrations/google-analytics-4/` +* `/integrations/hubspot/` +* `/integrations/zapier/` +* `/integrations/shopify/` + (Ship GA4 first; it supports your “tracking” narrative.) + +**4) Learn Hub (educational; supports rankings + conversions)** + +* `/learn/dynamic-vs-static-qr-codes/` +* `/learn/how-to-track-qr-codes-in-ga4/` +* `/learn/qr-code-size-guide/` +* `/learn/qr-code-error-correction/` +* `/learn/google-qr-code-generator/` (Chrome’s built-in QR + limitations). ([Google Hilfe][2]) +* `/learn/spotify-code-generator/` (Spotify Codes explainer + CTA to your tool). ([SpotifyCodes][17]) + +**5) Templates / Use cases (pSEO with guardrails)** + +* `/templates/restaurant-menu-qr/` +* `/templates/business-card-qr/` +* `/templates/event-check-in-qr/` + Each template must include: examples, copy/paste CTAs, recommended QR type, tracking setup, and links to the tool. + +### Breadcrumb + internal linking rules (hub-and-spoke) + +* **Tool pages** link up to: + + * `/features/qr-code-analytics/` + * `/features/dynamic-qr-codes/` + * `/learn/dynamic-vs-static-qr-codes/` + * the **closest** templates + GA4 integration (where relevant) +* **Learn pages** link down to: + + * the *single best-matching tool page* (primary CTA) + * 2–4 related learn pages (cluster reinforcement) +* **Integrations** link to: + + * analytics feature + tracking learn guide + relevant tool pages + +--- + +## E) “Wedge” plan: what to launch first to rank within 30–60 days + +### Launch set (minimum viable topical authority) + +**Week 1–3 shipping goal: 8 pages that create a ranking flywheel** + +**Tool pages (P0)** + +1. `/tools/whatsapp-qr-code-generator/` (KD 17) +2. `/tools/instagram-qr-code-generator/` (KD 23) +3. `/tools/vcard-qr-code-generator/` (KD 24) +4. `/tools/trackable-qr-code-generator/` (KD 0 term → commercial wedge) +5. `/barcode-generator/` (traffic engine) + +**Feature + Learn pages (conversion + trust)** +6) `/features/qr-code-analytics/` (your core differentiator) +7) `/learn/dynamic-vs-static-qr-codes/` (decision content) +8) `/learn/google-qr-code-generator/` (steal “Google/Chrome” demand; Chrome is static URL sharing). ([Google Hilfe][2]) + +### Why this ranks fast on a new domain + +* Low-KD type terms are less “brand dominated” than head terms. +* Every tool page naturally links to analytics + dynamic, so **internal PageRank concentrates** on your money features. +* “Google QR code generator” content can win featured snippets because it’s step-based and grounded in official Chrome documentation. ([Google Hilfe][2]) + +--- + +## F) 90-day execution roadmap (week-by-week) + +### Weeks 1–2: Foundations (technical + tracking + SEO hygiene) + +* **Tech SEO** + + * Set up GSC + GA4 (or PostHog) + server-side event pipeline for “QR created / downloaded / scan events”. + * Define **indexation policy**: which templates get indexed, which are noindex. + * Implement: XML sitemaps by type (`/sitemap-tools.xml`, `/sitemap-learn.xml`), robots, canonicals, hreflang plan (even if EN-only now). +* **Schema baseline** + + * Organization, WebSite, BreadcrumbList sitewide. + * SoftwareApplication/WebApplication on core tool hub. +* **Information architecture** + + * Ship nav for Tools / Features / Learn / Pricing / API. + +### Week 3: Ship the wedge tool pages (P0) + +* Publish WhatsApp / Instagram / vCard / Trackable tool pages. +* Each ships with: FAQ, examples, “Static vs Dynamic” block, “Enable analytics” CTA, and internal links to `/features/qr-code-analytics/`. + +### Week 4: Ship the analytics feature hub + dynamic feature hub + +* `/features/qr-code-analytics/` + `/features/dynamic-qr-codes/` +* Add product screenshots/GIFs and a simple “How tracking works” diagram (dynamic redirect → logging → dashboard). + +### Week 5: Learn cluster for decision + “Google QR” + +* `/learn/dynamic-vs-static-qr-codes/` +* `/learn/google-qr-code-generator/` (include “Chrome creates QR for a page” and limitations). ([Google Hilfe][2]) + +### Week 6: Barcode Generator tool + “Barcode vs QR” guide + +* Launch `/barcode-generator/` + `/learn/barcode-vs-qr-code/` to route barcode traffic into QR use cases. +* Add bulk export formats and “print quality” section to compete with incumbents. ([Free Online Barcode Generator by TEC-IT][5]) + +### Week 7: Bulk + PDF tools (P1) + +* `/tools/bulk-qr-code-generator/` (CSV upload; align with SERP expectations like “download ZIP”). ([quickchart.io][18]) +* `/tools/pdf-to-qr-code-generator/` (CPC-heavy query → strong conversion) + +### Week 8: GA4 integration page (linkable asset) + +* `/integrations/google-analytics-4/` +* Companion guide: `/learn/how-to-track-qr-codes-in-ga4/` (UTMs, events, attribution). + +### Week 9: Authority pieces (start the pillar support) + +Publish 2 of these 5 (see section below): + +* “QR Code Size Guide” +* “QR Code Error Correction Explained” +* “UTM Builder for QR Campaigns” +* “QR Code Security / Quishing Prevention” +* “QR Code Analytics Benchmarks” + +### Week 10: pSEO expansion (controlled) + +* Add 10–20 additional `/tools/{type}/` pages (WiFi, email, SMS, etc.) only if they meet your thin-content threshold. +* Add 10–20 `/templates/` pages tied to real use cases. + +### Week 11: Comparisons (conversion-focused) + +* `/compare/qr-code-generator-vs-canva/` +* `/compare/qr-code-generator-vs-qrcode-monkey/` +* `/compare/dynamic-qr-code-generators/` (listicle with your wedge terms) + +### Week 12–13: Iterate based on GSC data + +* Optimize pages with impressions but low CTR (titles/meta). +* Expand FAQs to match PAA. +* Strengthen internal links from high-impression pages to money pages. + +--- + +## G) Page briefs for the top 5 money pages (H1, sections, schema, CTA, internal links) + +### 1) Dynamic QR Code Generator + +**URL:** `/features/dynamic-qr-codes/` (feature) + optional `/tools/dynamic-qr-code-generator/` (tool demo) +**Primary keyword:** dynamic qr code generator +**H1:** Dynamic QR Code Generator (Editable + Trackable) +**Sections (order matters)** + +* What is a dynamic QR code? (vs static) +* Edit destination after printing (URL, file, page) +* Tracking/analytics overview (scans, time, location, device) +* Use cases (menus, flyers, events, packaging) +* How it works (redirect + logging) +* Pricing preview + free tier +* FAQ (Do they expire? Can I change the URL? Can I export data?) + **Schema** +* FAQPage +* SoftwareApplication (or WebApplication) +* BreadcrumbList + **Primary CTA** +* “Create a dynamic QR code” (signup) + **Internal links** +* To `/features/qr-code-analytics/`, `/learn/dynamic-vs-static-qr-codes/`, `/integrations/google-analytics-4/` + +> Competitor pattern to beat: strong gating + feature ladder is common. ([qr-code-generator.com][1]) + +--- + +### 2) QR Code Analytics + +**URL:** `/features/qr-code-analytics/` +**Primary keyword:** qr code analytics +**H1:** QR Code Analytics: Track Scans, Measure Campaign ROI +**Sections** + +* What you can measure (total/unique scans, geo, device, time) +* Campaign organization (folders/tags, UTM conventions) +* Export + integrations (GA4 first) +* Dashboards (examples: restaurant menu, event check-in, retail) +* Data accuracy & privacy notes +* FAQ (“Can I track a static QR?” → explain dynamic requirement) + **Schema** +* FAQPage +* SoftwareApplication +* BreadcrumbList + **CTA** +* “Enable analytics on your QR code” (upgrade nudges) + **Internal links** +* From **every tool page** (sticky sidebar “Track scans with Analytics”) +* To `/learn/how-to-track-qr-codes-in-ga4/` + +> This is exactly what SaaS competitors highlight for upsell. ([flowcode.com][12]) + +--- + +### 3) Bulk QR Code Generator + +**URL:** `/tools/bulk-qr-code-generator/` +**Primary keyword:** bulk qr code generator +**H1:** Bulk QR Code Generator (CSV Upload → Download ZIP) +**Sections** + +* Upload CSV / paste data / Google Sheets import (later) +* Output formats (PNG/SVG/PDF), naming conventions +* Dynamic vs static toggle per row (upsell!) +* Common workflows: inventory labels, invites, coupons +* QA: scan testing, error correction, print sizing +* FAQ + **Schema** +* FAQPage +* HowTo (only if you include step-by-step with images) + **CTA** +* “Generate bulk QR codes” + secondary “Enable tracking for all” + **Internal links** +* To `/features/qr-code-analytics/` + `/features/dynamic-qr-codes/` + +> SERPs often expect “free bulk + zip”; match that intent. ([QR Explore][19]) + +--- + +### 4) vCard QR Code Generator + +**URL:** `/tools/vcard-qr-code-generator/` +**Primary keyword:** vCard qr code generator +**H1:** vCard QR Code Generator (Digital Business Card) +**Sections** + +* vCard fields + preview (VCF standard) +* iOS/Android compatibility + best practices +* Static vs dynamic vCard (edit contact later) +* Examples: sales reps, events, storefront QR +* CTA: “Add scan tracking to your business cards” +* FAQ (works on Android/iOS; does it expire; can I add photo; etc.) + **Schema** +* FAQPage +* SoftwareApplication + **CTA** +* “Create vCard QR” + upsell “Track scans / update later” + **Internal links** +* To `/learn/dynamic-vs-static-qr-codes/` + analytics feature + +--- + +### 5) QR Code API (developer money page) + +**URL:** `/features/qr-code-api/` + `/docs/api/` +**Primary keyword:** qr code api, qr code generator api +**H1:** QR Code API (Generate QR Codes at Scale) +**Sections** + +* Authentication, endpoints, rate limits +* Generate static/dynamic, bulk endpoints, webhooks (scan events) +* Code samples (JS/Python/cURL) +* Compliance + uptime +* Pricing tiers + **Schema** +* SoftwareApplication (feature page) +* TechArticle (docs pages) + **CTA** +* “Get API key” / “Start trial” + **Internal links** +* From bulk generator + analytics pages + +--- + +## H) Risks + mitigation (cannibalization, programmatic pitfalls, E-E-A-T, index bloat) + +### 1) Keyword cannibalization (very likely in this niche) + +**Risk:** “qr code tracking”, “trackable qr codes”, “qr code analytics” collapse into the same intent. +**Mitigation:** hard-map intents: + +* Analytics = feature/commercial +* Tracking = learn/how-to + GA4 +* Trackable QR = tool landing with demo dashboard + +### 2) Programmatic SEO thin pages / index bloat + +**Risk:** hundreds of near-identical “{type} QR generator” pages get ignored/deindexed. +**Mitigation (hard rules)** + +* Index only pages that include **unique elements**: + + * type-specific fields + validation (real tool) + * 2–3 examples + * type-specific FAQs + * type-specific tracking use case +* **Noindex**: parameter pages, empty states, duplicate locale stubs, search/filter pages. + +### 3) Trust & QR scam concerns (reputation risk, but also opportunity) + +**Risk:** Users fear scanning QR codes; Google may reward safety content. +**Mitigation:** ship “Security” feature page + learn content about safe scanning and link previews, referencing real-world scam patterns. ([Der Guardian][4]) + +### 4) Over-reliance on “Google QR Code Generator” traffic + +**Risk:** users only want Chrome’s built-in static QR and bounce. +**Mitigation:** page structure: “How to do it in Chrome” (satisfy intent) → “When you need dynamic + analytics” (convert). ([Google Hilfe][2]) + +### 5) E-E-A-T gap vs incumbents + +**Risk:** new domain lacks credibility. +**Mitigation** + +* Publish 2–3 “benchmarks / research” assets with original data (even small): scan-rate benchmarks, print-size testing, or campaign case studies. +* Add transparent pricing, uptime, privacy policy, and author/editor pages for Learn content. + +--- + +If you tell me your **target market (US vs DACH vs global), language (EN/DE), and monetization (freemium vs trials)**, I can *tighten the sitemap + 90-day calendar* so it perfectly matches your rollout (especially internationalization + URL strategy). + +[1]: https://www.qr-code-generator.com/?utm_source=chatgpt.com "QR Code Generator | Create Your Free QR Codes" +[2]: https://support.google.com/chrome/answer/10051760?co=GENIE.Platform%3DDesktop&hl=en&utm_source=chatgpt.com "Share pages in Chrome - Computer" +[3]: https://www.qr-code-generator.com/solutions/?utm_source=chatgpt.com "QR Code Solution for Every Purpose" +[4]: https://www.theguardian.com/money/2025/may/25/qr-code-scam-what-is-quishing-drivers-app-phone-parking-payment?utm_source=chatgpt.com "'Pay here': the QR code 'quishing' scam targeting drivers" +[5]: https://barcode.tec-it.com/en?utm_source=chatgpt.com "Free Online Barcode Generator: Create Barcodes for Free!" +[6]: https://www.qrcode-monkey.com/?utm_source=chatgpt.com "QRCode Monkey - The free QR Code Generator to create ..." +[7]: https://www.qrcode-monkey.com/de/qr-code-service/?utm_source=chatgpt.com "QR Code API for Static Codes" +[8]: https://www.the-qrcode-generator.com/?utm_source=chatgpt.com "The QR Code Generator (TQRCG): Create Free QR Codes" +[9]: https://hovercode.com/?utm_source=chatgpt.com "QR Code Generator | Create Free Dynamic QR Codes" +[10]: https://hovercode.com/circle-qr-code-generator/?utm_source=chatgpt.com "Generate circle QR codes (no sign up required)" +[11]: https://scanova.io/features/?utm_source=chatgpt.com "Powerful features for all QR Code use cases" +[12]: https://www.flowcode.com/product/analytics?utm_source=chatgpt.com "Gain insight into your offline marketing with in-depth Analytics" +[13]: https://www.qrcodechimp.com/qr-code-analytics-guide/?utm_source=chatgpt.com "QR Code Analytics: Track, Analyze & Optimize Your ..." +[14]: https://me-qr.com/qr-code-generator/pdf?srsltid=AfmBOooK1o7kkjaSizlEOWcEcYcDWfKhZuuM3XvrJGQlm2xdiTbw1exS&utm_source=chatgpt.com "Create QR Code For PDF FREE" +[15]: https://www.canva.com/qr-code-generator/?utm_source=chatgpt.com "Free QR Code Generator - Create QR codes with ease" +[16]: https://help.instagram.com/925529167647849/?utm_source=chatgpt.com "Find and customize the QR code of your Instagram profile" +[17]: https://www.spotifycodes.com/?utm_source=chatgpt.com "Spotify Codes" +[18]: https://quickchart.io/bulk-qr-code-generator/?utm_source=chatgpt.com "Bulk QR Code Generator | Custom colors and logo, free" +[19]: https://qrexplore.com/generate/?utm_source=chatgpt.com "Bulk QR Code Generator" diff --git a/service_account.json b/service_account.json index 99a4c8c..bad27bb 100644 --- a/service_account.json +++ b/service_account.json @@ -1,13 +1,13 @@ -{ - "type": "service_account", - "project_id": "gen-lang-client-0595806638", - "private_key_id": "e44bc1717f1cf413521149de272bf13bfa89a336", - "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC0xJkozHODpcpD\nu3dTHPfprZk6eKiOT05h+uG8Clm8i8LLaS/eHT+B02qxFYMBX0VH9O2GvPp/VnfC\nB/Clc7bofN5VDpQMjVUiPDqMbUVEAiQHNOTp9pkfJltaHAl/J5Cc/DccCaOn89xT\nFD5b7dTn29suuBZHTqsaFDlydnU2xJAwcrWBm7/A0JZM85d76yhY0Jxcg9w8XlpE\n+TWN8OxSUIfubaac0mfI40RH2EfugmA7M45t7B3sEbmHk5tVQSItvncz2ls9fUE4\neB6u4foMFp4Z9k5Ejs7y4N3Yft0JWS+RjI0bcvvvQ/wcnDfcwCdDFFn2Y+hflKMm\nS9+ZRnmBAgMBAAECggEAAztAeo3JifZD3nzEUcDte9cHgN7AMtlJ3Wvc7va5Sw50\nizkCmSlwPoc4/0MvoMo0+701JVxbenXveMpEb3fZMoszkdU9U9iPZCfzB4wQErOa\nppuprbbOXtO9JzZVinWzflPSIUVK16lUVvYVrmfpHYou1G/dIMIXQkVsD7NR9t/B\nafD0w/q1nwwyPB08BjSemKXDQo6NF0cE/TIvaMj8vtxuouAL+fea0n/XxMQNoIoJ\nF+pJtPQ1hkQrpayzuj3smQ11PFpYuvsZHuS3dG9j4gPjGClezK3Sflt7vwNywIRc\ntJ0Qx58on0dy0YnppMWrHh/nykraVLusvMI04joqwQKBgQDlE1Mbi8dpeKn7zkV9\nLS/O6S5Ql2k2G6KxI8GHn3qxB5yfU8G2xqk64r04YB6SMCXscIQu1Tmro8kDMTZk\n5b/issH3+7uqGcJMYhZczWsjax3S1ugepXt29dF26VnbyfvD7h9qleKLhIq32z9P\nxzZGhptTCa0swypi7prNE0MhZwKBgQDKA75g8UhVULA6q3hFEG+24ICd3Gekdz1y\nmaDrPjSJmeMSUlDl4QhGRbZBSJcAfcFKk4+Nme3sTYvjMMz6per4a5TC/+IlSufm\nOSL+CSVijvVYwCMyLyiAcm5Pqcjw16S6enHIidnOYP8e8OM0H2aNKfFTKq30B3ww\nAF8ipa+01wKBgQC24JaYhx7LtOj/fc08AbcJGF9BN59m8ukPQdxeyZLJgaooCFW9\n9RtlR16IgzPkwUuFVs4wFUnVHQx83+zs3/4wnUT9FJrdUXMsR6JStCu0Ou+0Qp1M\n2g+XCOgQZnq2XKoB4ThzfvU9LLMR1JbWudM6unuF71OxSJ2uHY636YjOQQKBgBs6\n+fSTUY6+e6LM7j9RAd4C0RN2XDodIJlMABb1oZtStPsJQYJbHQRr7S9Lm58jVGS7\nE0ShFSMfKNYNA/RdXRjzV3AZkeA5Ap1T4lWf4fwxDP1TmOrw1GLMCfaPClj8mGXS\nj3farRNWm80N53JlMSuiFbeCL0SPpbvKsQg4kUCtAoGAUORyhW70nhZJ1BbmvyRf\n17fcwenK/3GmWgqsrzN7/ucPwjqIzLGVoAXd2euxpE49/VW2xYpJjyHJHuoXDc66\n+AUog0bsxcKpM5tL3VelQl3SkUlCG7jYe20rMm01y35uM2REvQv3/r9F7Bbaq/9n\nSCwu/45QobgLCUx0B7wDqWA=\n-----END PRIVATE KEY-----\n", - "client_email": "indexer@gen-lang-client-0595806638.iam.gserviceaccount.com", - "client_id": "111279247752160222047", - "auth_uri": "https://accounts.google.com/o/oauth2/auth", - "token_uri": "https://oauth2.googleapis.com/token", - "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", - "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/indexer%40gen-lang-client-0595806638.iam.gserviceaccount.com", - "universe_domain": "googleapis.com" +{ + "type": "service_account", + "project_id": "gen-lang-client-0595806638", + "private_key_id": "e44bc1717f1cf413521149de272bf13bfa89a336", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC0xJkozHODpcpD\nu3dTHPfprZk6eKiOT05h+uG8Clm8i8LLaS/eHT+B02qxFYMBX0VH9O2GvPp/VnfC\nB/Clc7bofN5VDpQMjVUiPDqMbUVEAiQHNOTp9pkfJltaHAl/J5Cc/DccCaOn89xT\nFD5b7dTn29suuBZHTqsaFDlydnU2xJAwcrWBm7/A0JZM85d76yhY0Jxcg9w8XlpE\n+TWN8OxSUIfubaac0mfI40RH2EfugmA7M45t7B3sEbmHk5tVQSItvncz2ls9fUE4\neB6u4foMFp4Z9k5Ejs7y4N3Yft0JWS+RjI0bcvvvQ/wcnDfcwCdDFFn2Y+hflKMm\nS9+ZRnmBAgMBAAECggEAAztAeo3JifZD3nzEUcDte9cHgN7AMtlJ3Wvc7va5Sw50\nizkCmSlwPoc4/0MvoMo0+701JVxbenXveMpEb3fZMoszkdU9U9iPZCfzB4wQErOa\nppuprbbOXtO9JzZVinWzflPSIUVK16lUVvYVrmfpHYou1G/dIMIXQkVsD7NR9t/B\nafD0w/q1nwwyPB08BjSemKXDQo6NF0cE/TIvaMj8vtxuouAL+fea0n/XxMQNoIoJ\nF+pJtPQ1hkQrpayzuj3smQ11PFpYuvsZHuS3dG9j4gPjGClezK3Sflt7vwNywIRc\ntJ0Qx58on0dy0YnppMWrHh/nykraVLusvMI04joqwQKBgQDlE1Mbi8dpeKn7zkV9\nLS/O6S5Ql2k2G6KxI8GHn3qxB5yfU8G2xqk64r04YB6SMCXscIQu1Tmro8kDMTZk\n5b/issH3+7uqGcJMYhZczWsjax3S1ugepXt29dF26VnbyfvD7h9qleKLhIq32z9P\nxzZGhptTCa0swypi7prNE0MhZwKBgQDKA75g8UhVULA6q3hFEG+24ICd3Gekdz1y\nmaDrPjSJmeMSUlDl4QhGRbZBSJcAfcFKk4+Nme3sTYvjMMz6per4a5TC/+IlSufm\nOSL+CSVijvVYwCMyLyiAcm5Pqcjw16S6enHIidnOYP8e8OM0H2aNKfFTKq30B3ww\nAF8ipa+01wKBgQC24JaYhx7LtOj/fc08AbcJGF9BN59m8ukPQdxeyZLJgaooCFW9\n9RtlR16IgzPkwUuFVs4wFUnVHQx83+zs3/4wnUT9FJrdUXMsR6JStCu0Ou+0Qp1M\n2g+XCOgQZnq2XKoB4ThzfvU9LLMR1JbWudM6unuF71OxSJ2uHY636YjOQQKBgBs6\n+fSTUY6+e6LM7j9RAd4C0RN2XDodIJlMABb1oZtStPsJQYJbHQRr7S9Lm58jVGS7\nE0ShFSMfKNYNA/RdXRjzV3AZkeA5Ap1T4lWf4fwxDP1TmOrw1GLMCfaPClj8mGXS\nj3farRNWm80N53JlMSuiFbeCL0SPpbvKsQg4kUCtAoGAUORyhW70nhZJ1BbmvyRf\n17fcwenK/3GmWgqsrzN7/ucPwjqIzLGVoAXd2euxpE49/VW2xYpJjyHJHuoXDc66\n+AUog0bsxcKpM5tL3VelQl3SkUlCG7jYe20rMm01y35uM2REvQv3/r9F7Bbaq/9n\nSCwu/45QobgLCUx0B7wDqWA=\n-----END PRIVATE KEY-----\n", + "client_email": "indexer@gen-lang-client-0595806638.iam.gserviceaccount.com", + "client_id": "111279247752160222047", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/indexer%40gen-lang-client-0595806638.iam.gserviceaccount.com", + "universe_domain": "googleapis.com" } \ No newline at end of file diff --git a/src/app/(app)/layout.tsx b/src/app/(app)/layout.tsx index d09ab41..79401a5 100644 --- a/src/app/(app)/layout.tsx +++ b/src/app/(app)/layout.tsx @@ -17,22 +17,16 @@ export const metadata: Metadata = { }, }; -export default function RootAppLayout({ +export default function AppGroupLayout({ children, }: { children: React.ReactNode; }) { return ( - - - - - - {children} - - - - - + + + {children} + + ); } diff --git a/src/app/(marketing)/layout.tsx b/src/app/(marketing)/layout.tsx index 3e83152..df02cfd 100644 --- a/src/app/(marketing)/layout.tsx +++ b/src/app/(marketing)/layout.tsx @@ -47,30 +47,24 @@ export const metadata: Metadata = { }, }; -export default function RootMarketingLayout({ +export default function MarketingGroupLayout({ children, }: { children: React.ReactNode; }) { return ( - - -