70 Commits

Author SHA1 Message Date
9e37136efd seo issue 2026-01-26 00:28:26 +01:00
4569d89ab2 Fix: Add Facebook Pixel ID to Dockerfile 2026-01-26 00:23:15 +01:00
916ea51d68 facebook.. 2026-01-25 23:49:43 +01:00
8ade0ef92b facebook. 2026-01-25 23:38:28 +01:00
7e894bf65e facebook 2026-01-25 23:10:03 +01:00
54c3652c99 Werbung 2026-01-25 22:28:47 +01:00
Timo Knuth
702e2710de seo 2026-01-25 18:44:53 +01:00
Timo Knuth
9ae05d48a4 faq 2026-01-25 18:00:57 +01:00
Timo Knuth
324526cb64 fehler 2026-01-25 15:57:03 +01:00
Timo Knuth
9040e50837 ahrefs 2026-01-25 15:43:38 +01:00
Timo Knuth
30c1e57eab Shema 2026-01-25 14:59:25 +01:00
Timo Knuth
eef4855c1b SEO: Fix structured data validation errors, delete static sitemap, and update indexing scripts 2026-01-23 23:10:22 +01:00
f3637fc2fe URL changed 2026-01-23 15:41:56 -06:00
53dcfb686e Einrueckung falsch 2026-01-23 15:32:18 -06:00
Timo Knuth
74d0b5e7f2 Hardcode+middleware 2026-01-23 20:48:09 +01:00
Timo Knuth
ce4c6ab985 hardcoded 2026-01-23 18:08:29 +01:00
Timo Knuth
c2b32b794b docker-compose 2026-01-23 17:48:08 +01:00
Timo Knuth
7f4de4bd1e Add R2 storage environment variables to docker-compose.yml 2026-01-23 17:34:13 +01:00
Timo Knuth
738f9766e1 Fix: Remove prisma/migrations from .dockerignore to enable deployment 2026-01-23 17:02:06 +01:00
Timo Knuth
cbafffdf1b Add Prisma migrations to version control - fixes deployment sync issue 2026-01-23 16:22:07 +01:00
Timo Knuth
f872fb64b2 ads. 2026-01-23 14:54:02 +01:00
Timo Knuth
9c5f7beb91 ads 2026-01-23 14:45:25 +01:00
Timo Knuth
cb521f2aee AEO / SEO 2026-01-23 14:39:27 +01:00
Timo Knuth
b00697bc37 Add migration for new ContentType enum values (APP, COUPON, FEEDBACK, PDF) 2026-01-23 09:28:31 +01:00
0409fe2afd Final! 2026-01-22 22:24:06 +01:00
f67945d8e7 Final 2026-01-22 22:05:06 +01:00
59131a54f0 Paar fehler 2026-01-22 20:09:54 +01:00
Timo
e44dc1c6bb Merge branch 'dynamisch' into master (favoring dynamisch changes) 2026-01-22 19:37:15 +01:00
Timo Knuth
896c9b1a07 feat: Implement a client-side barcode generator tool and integrate IndexNow API for site URL submission. 2026-01-21 22:39:04 +01:00
Timo Knuth
cca1374c9e feat: Introduce Google Indexing API and IndexNow submission scripts with a unified URL gathering utility and setup guide. 2026-01-21 13:57:58 +01:00
Timo Knuth
c1471830f3 feat: Add a new barcode generator tool with client-side functionality, supporting components, and a Google Indexing script. 2026-01-21 13:43:46 +01:00
373e19a515 barcode 2026-01-21 08:19:53 +01:00
Timo Knuth
99acb37c83 3 neue Blog post 2026-01-20 22:18:12 +01:00
7328b3240d robots 2026-01-17 16:19:37 +01:00
Timo Knuth
185c40f470 Add missing migration for Lead table. 2026-01-16 17:40:17 +01:00
Timo Knuth
9373db8ae6 Add missing migration for Lead table 2026-01-16 17:17:45 +01:00
Timo Knuth
0eafe421d2 Lead fehler 2026-01-16 16:49:27 +01:00
Timo Knuth
af1c0456d7 fehler api 2026-01-16 16:17:58 +01:00
Timo Knuth
2dec18fc97 100/100 2026-01-16 14:41:42 +01:00
2879fd0d8e Lead Magnet implementiert 2026-01-16 14:16:46 +01:00
Timo Knuth
be54d388bb Lead Magnet 2026-01-16 12:44:13 +01:00
Timo Knuth
83ea141230 Ahrefs 96->100 2026-01-15 10:14:40 +01:00
Timo Knuth
0a02876ea4 bilder komprimieren 2026-01-14 15:30:32 +01:00
Timo Knuth
904e439102 neuer versuch. 2026-01-14 14:32:05 +01:00
Timo Knuth
f68b7a331c neuer versuch 2026-01-14 14:02:48 +01:00
1747922b29 Ahrefs problems >95 2026-01-13 23:55:39 +01:00
8b7deb9312 Ahrefs problems >90 2026-01-13 23:50:51 +01:00
6b586ac21b Ahrefs problems 2 2026-01-13 23:18:58 +01:00
3e9daa648a Ahrefs problems 2026-01-13 23:10:35 +01:00
ceb2ac40ec Ahrefs 2026-01-13 19:03:33 +01:00
65def796ea Fehler.... 2026-01-13 17:08:06 +01:00
e9bc1fe98b Fehler... 2026-01-13 17:03:49 +01:00
Timo Knuth
b63f5f424e Fehler.. 2026-01-13 16:43:58 +01:00
Timo Knuth
9746fb970d Fehler. 2026-01-13 16:39:04 +01:00
Timo Knuth
fb788d89d3 Fehler 2026-01-13 16:35:02 +01:00
Timo Knuth
d585e5aed3 seo blog post 2026-01-13 12:08:34 +01:00
Timo Knuth
fa538b8bec Seobility und Ahrefs 100/100 score fixes final 2026-01-13 10:07:10 +01:00
Timo Knuth
4fc1dcd7d8 Seobility und Ahrefs 100/100 score fixes 2026-01-13 09:59:40 +01:00
Timo Knuth
ffe4cca5e5 Seobility und Ahrefs 100/100 score 2026-01-13 08:49:35 +01:00
Timo Knuth
5b74b7b405 Adsense fehler 2026-01-12 17:36:38 +01:00
Timo Knuth
5784a52e3c Adsense 2026-01-12 17:22:20 +01:00
Timo Knuth
b3e858c033 fehler behoben 2026-01-12 17:09:47 +01:00
Timo Knuth
111575aeda Final 2026-01-12 16:56:52 +01:00
Timo Knuth
beed961eef feat: add Google Search Console verification and llms.txt 2026-01-12 15:41:35 +01:00
Timo Knuth
95aa378763 feat: add llms.txt for AI transparency 2026-01-12 15:24:08 +01:00
Timo Knuth
e0871e2960 chore: normalize line endings 2026-01-12 14:15:03 +01:00
Timo Knuth
038c8dddbc feat: implement high-priority SEO fixes and German localization 2026-01-12 13:35:10 +01:00
Timo Knuth
c6adc8567f schema 2026-01-11 17:26:35 +01:00
Timo Knuth
1f067e81f3 lighthouse 2026-01-11 17:11:28 +01:00
Timo Knuth
d64459b200 responsivness Phone 2026-01-11 11:50:17 +01:00
270 changed files with 14257 additions and 3718 deletions

0
..md
View File

View File

@@ -52,4 +52,4 @@ logs
*.log
# Prisma
prisma/migrations
# prisma/migrations # Now included in Docker image for deployment

View File

@@ -1,7 +1,12 @@
# Database credentials (used by both db and web services in docker-compose.yml)
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=qrmaster
# Note: DATABASE_URL and DIRECT_URL are auto-generated from POSTGRES_* vars in docker-compose.yml
# You don't need to set them here when using Docker Compose
NODE_ENV=production
PORT=3000
DATABASE_URL=postgresql://postgres:postgres@db:5432/qrmaster?schema=public
DIRECT_URL=postgresql://postgres:postgres@db:5432/qrmaster?schema=public
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=CHANGE_ME
NEXT_PUBLIC_APP_URL=http://localhost:3000

2
.gitignore vendored
View File

@@ -36,7 +36,7 @@ yarn-error.log*
next-env.d.ts
# prisma
/prisma/migrations/
# /prisma/migrations/ # Now tracked in Git for deployment
# docker
docker-compose.override.yml

View File

@@ -26,7 +26,6 @@ COPY --from=deps /app/node_modules ./node_modules
COPY . .
ENV NEXT_TELEMETRY_DISABLED=1
# Add build-time environment variables with defaults
ENV DATABASE_URL="postgresql://postgres:postgres@db:5432/qrmaster?schema=public"
ENV NEXTAUTH_URL="https://www.qrmaster.net"
ENV NEXTAUTH_SECRET="build-time-secret"
ENV IP_SALT="build-time-salt"
@@ -37,6 +36,7 @@ ENV NEXT_PUBLIC_APP_URL="https://www.qrmaster.net"
ENV NEXT_PUBLIC_POSTHOG_KEY="phc_97JBJVVQlqqiZuTVRHuBnnG9HasOv3GSsdeVjossizJ"
ENV NEXT_PUBLIC_POSTHOG_HOST="https://us.i.posthog.com"
ENV NEXT_PUBLIC_INDEXABLE="true"
ENV NEXT_PUBLIC_FACEBOOK_PIXEL_ID="1601718491252690"
RUN npx prisma generate
RUN npm run build

87
INDEXING_GUIDE.md Normal file
View File

@@ -0,0 +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).

View File

@@ -284,9 +284,9 @@ qr-master/
| Variable | Description | Required | Default |
| ------------------------------------ | ----------------------------- | -------- | ---------------------------------------------------------------------- |
| `DATABASE_URL` | PostgreSQL connection string | Yes | `postgresql://postgres:postgres@localhost:5435/qrmaster?schema=public` |
| `DATABASE_URL` | PostgreSQL connection string | Yes | - |
| `NEXTAUTH_URL` | Application URL | Yes | `http://localhost:3050` |
| `NEXTAUTH_SECRET` | Secret for JWT encryption | Yes | Generate with `openssl rand -base64 32` |
| `NEXTAUTH_SECRET` | Secret for JWT encryption | Yes | - (Generate with `openssl rand -base64 32`) |
| `IP_SALT` | Salt for IP hashing (privacy) | Yes | Generate with `openssl rand -base64 32` |
| `GOOGLE_CLIENT_ID` | Google OAuth client ID | No | - |
| `GOOGLE_CLIENT_SECRET` | Google OAuth client secret | No | - |
@@ -473,3 +473,10 @@ For support, email support@qrmaster.net or open an issue on GitHub.
---
Built with ❤️ by QR Master Team
Führe diese im Terminal aus:
IndexNow (Bing/Yandex + Partner): npm run submit:indexnow
Google Indexing API: npm run trigger:indexing

29
ahrefs-findings.md Normal file
View File

@@ -0,0 +1,29 @@
# Ahrefs SEO Findings & Status
## Critical Issues (Priority: High)
- [RESOLVED] **Page has no outgoing links**
- Found on: `privacy`, `newsletter`, `faq`, `/`, `qr-code-erstellen`
- *Status:* Verified `MarketingLayout` provides navigation. Added specific back-links to `newsletter` (admin), `login`, and `signup`.
- [RESOLVED] **Newsletter Page Misconfiguration**
- Found: `/newsletter` page has "Admin Dashboard" title.
- *Status:* Confirmed as internal Admin tool. Added "Back to Home" link to satisfy link checkers.
- [FIXED] **3XX Redirects & Links to Redirects**
- *Fixed in:* `blog/page.tsx` (links updated) and `blog/[slug]/page.tsx` (301s added).
- [FIXED] **Duplicate Metadata**
- *Fixed in:* `pricing`, `login`, `signup`, `qr-code-erstellen`.
## Warnings (Priority: Medium)
- [VERIFIED] **Hreflang and HTML lang mismatch**
- Found on: `1 page`.
- *Status:* Verified `src/app/(marketing)/layout.tsx` has `lang="en"` and `(marketing-de)/layout.tsx` has `lang="de"`. Correct.
- [FIXED] **Image file size too large**
- *Fixed:* Swapped `1-boy.png` & `2-body.png` for WebP versions as requested.
- [FIXED] **H1 tag missing or empty**
- *Status:* Verified `sr-only` H1s exist on core pages. `faq` and `privacy` have visible H1s.
## Notices (Priority: Low)
- [VERIFIED] **Low word count / Thin content**
- Found on: `login`, `signup`.
- *Status:* Expected behavior for functional auth pages.
- [VERIFIED] **Meta description too short**
- *Status:* Descriptions are concise and functional. No critical SEO impact.

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

View File

@@ -5,9 +5,9 @@ services:
container_name: qrmaster-db-dev
restart: unless-stopped
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: qrmaster
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_INITDB_ARGS: "-E UTF8 --locale=en_US.utf8"
ports:
- "5435:5432"

View File

@@ -5,9 +5,9 @@ services:
container_name: qrmaster-db
restart: unless-stopped
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: qrmaster
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_INITDB_ARGS: "-E UTF8 --locale=en_US.utf8"
ports:
- "5435:5432"
@@ -51,11 +51,11 @@ services:
- "3050:3000"
environment:
NODE_ENV: production
DATABASE_URL: postgresql://postgres:postgres@db:5432/qrmaster?schema=public
DIRECT_URL: postgresql://postgres:postgres@db:5432/qrmaster?schema=public
DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}?schema=public
DIRECT_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}?schema=public
REDIS_URL: redis://redis:6379
NEXTAUTH_URL: ${NEXTAUTH_URL:-http://localhost:3050}
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET:-your-secret-key-change-in-production}
NEXTAUTH_URL: ${NEXTAUTH_URL}
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL:-http://localhost:3050}
IP_SALT: ${IP_SALT:-your-salt-change-in-production}
ENABLE_DEMO: ${ENABLE_DEMO:-false}
@@ -75,6 +75,12 @@ services:
RESEND_API_KEY: ${RESEND_API_KEY:-}
NEXT_PUBLIC_POSTHOG_KEY: ${NEXT_PUBLIC_POSTHOG_KEY:-}
NEXT_PUBLIC_POSTHOG_HOST: ${NEXT_PUBLIC_POSTHOG_HOST:-https://us.i.posthog.com}
# Cloudflare R2 Storage
R2_ACCOUNT_ID: ${R2_ACCOUNT_ID:-}
R2_ACCESS_KEY_ID: ${R2_ACCESS_KEY_ID:-}
R2_SECRET_ACCESS_KEY: ${R2_SECRET_ACCESS_KEY:-}
R2_BUCKET_NAME: ${R2_BUCKET_NAME:-qrmaster-menus}
R2_PUBLIC_URL: ${R2_PUBLIC_URL:-}
depends_on:
db:
condition: service_healthy

View File

@@ -3,6 +3,10 @@ NODE_ENV=development
PORT=3000
# Database Configuration (PostgreSQL)
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=qrmaster
# For local development (without Docker):
# DATABASE_URL=postgresql://postgres:postgres@localhost:5435/qrmaster?schema=public
# For Docker Compose (internal Docker network):

24
features_overview_de.md Normal file
View File

@@ -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*

89
final_seo_fix_report.md Normal file
View File

@@ -0,0 +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.<br>_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.<br>_Erklärung:_ Die vorige Fehlerseite hatte keine H1. Die echten Blog-Artikel haben korrekte H1-Tags. |
| **Low word count** | 29 | **Fix:** Inhalt wiederhergestellt.<br>_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.<br>_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.<br>_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.<br>_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.<br>_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.<br>_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.<br>_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.<br>_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.** <br>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)<br>_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. |

14
firecrawl-config.json Normal file
View File

@@ -0,0 +1,14 @@
{
"mcpServers": {
"firecrawl": {
"command": "npx",
"args": [
"-y",
"firecrawl-mcp"
],
"env": {
"FIRECRAWL_API_KEY": "fc-268826f038ad4bf0a38c48690ba9c1fa"
}
}
}
}

File diff suppressed because one or more lines are too long

827
keyword_planer_google.md Normal file
View File

@@ -0,0 +1,827 @@
Keyword Stats 2026-01-22 at 10_55_20
1. Januar 2025 - 31. Dezember 2025
Keyword Currency Avg. monthly searches Änderung über drei Monate Änderung im Jahresvergleich Competition Competition (indexed value) Top of page bid (low range) Top of page bid (high range) Ad impression share Organic impression share Organic average position In account? In plan? Searches: Jan 2025 Searches: Feb 2025 Searches: Mar 2025 Searches: Apr 2025 Searches: May 2025 Searches: Jun 2025 Searches: Jul 2025 Searches: Aug 2025 Searches: Sep 2025 Searches: Oct 2025 Searches: Nov 2025 Searches: Dec 2025
dynamic qr code generator EUR 5000 0% 0% Mittel 38 "2,34" "14,52"
dynamic qr codes EUR 5000 -90% 0% Mittel 38 "2,58" "17,08"
dynamic qr EUR 500 0% 0% Mittel 34 "1,85" "11,67"
generate qr EUR 500000 -90% 0% Hoch 74 "0,63" "3,12"
create qr code EUR 50000 0% 0% Hoch 84 "1,20" "3,94"
dynamic qr code generator free EUR 500 0% 0% Hoch 82 "1,69" "4,97"
qr code generator free EUR 500000 -90% 0% Hoch 86 "1,24" "3,64"
code generator EUR 5000 0% 0% Niedrig 32 "1,29" "3,97"
free qr generator EUR 5000 0% 0% Hoch 76 "1,21" "3,62"
create qr code free EUR 500000 -90% 0% Hoch 86 "1,24" "3,64"
custom qr code generator EUR 5000 0% 0% Niedrig 14 "1,91" "6,43"
qr code free EUR 5000 0% 0% Hoch 84 "0,94" "3,33"
make qr code EUR 50000 -90% 0% Hoch 82 "0,89" "3,63"
create dynamic qr code EUR 5000 0% 0% Mittel 38 "2,34" "14,52"
make qr code free EUR 500000 -90% 0% Hoch 86 "1,24" "3,64"
static qr code generator EUR 5000 0% 900% Hoch 71 "1,06" "3,50"
my qr code generator EUR 500 0% 0% Hoch 81 "1,45" "3,51"
qr code generator with analytics EUR 500 0% -90% Mittel 65 "3,63" "27,08"
dynamic qr codes free EUR 500 0% 0% Hoch 79 "1,27" "4,58"
scan code generator EUR 500000 -90% 0% Hoch 74 "0,63" "3,12"
url qr code generator EUR 5000 0% -90% Hoch 84 "1,43" "4,85"
dynamic qr generator EUR 5000 0% 0% Mittel 38 "2,34" "14,52"
create a dynamic qr code EUR 50 0% 0% Hoch 83 "4,10" "13,65"
get a qr code EUR 50000 0% 0% Hoch 84 "1,20" "3,94"
create qr code generator EUR 50000 0% 0% Hoch 81 "0,86" "3,52"
qr code generator with tracking EUR 500 0% 0% Hoch 72 "2,77" "19,03"
bulk qr code generator EUR 5000 0% 0% Niedrig 13 "0,69" "3,63"
create custom qr code EUR 500 0% 0% Mittel 51 "2,44" "7,89"
qr codes for business EUR 5000 0% 0% Hoch 97 "2,57" "7,95"
custom qr code EUR 5000 0% 0% Mittel 57 "1,83" "6,10"
make qr EUR 50000 0% 0% Hoch 84 "1,20" "3,94"
qr code tracking EUR 5000 -90% -90% Mittel 64 "1,62" "14,63"
free qr code generator for business cards EUR 500 0% 0% Hoch 85 "2,04" "4,44"
qr creation EUR 50000 0% 0% Hoch 72 "0,71" "3,34"
qr code generator for business card EUR 5000 0% 0% Mittel 42 "2,95" "7,03"
create qr code for business card EUR 5000 0% 0% Mittel 42 "2,95" "7,03"
create qr code for business EUR 50 0% 0% Hoch 96 "2,97" "5,82"
qr code generator pricing EUR 500 -90% -90% Mittel 49 "2,33" "17,90"
static qr code generator free EUR 50 0% 900% Hoch 87 "0,91" "3,24"
qr codes on business cards EUR 50000 -90% -90% Hoch 100 "2,19" "6,72"
static qr codes EUR 500 -90% 0% Mittel 62 "0,90" "3,64"
free qr code for business card EUR 500 0% 0% Hoch 100 "2,40" "4,89"
professional qr code generator EUR 50000 0% 0% Mittel 53 "0,91" "10,80"
dynamic qr code tracking EUR 50 0% 0% Mittel 55 "1,52" "18,26"
qr barcode generator EUR 500000 -90% 0% Hoch 74 "0,63" "3,12"
free qr code generator with logo EUR 500 0% 0% Hoch 80 "1,31" "4,47"
qr code generator for business EUR 500 0% 900% Niedrig 17 "1,81" "7,00"
vcard qr code generator EUR 5000 0% 0% Mittel 60 "1,08" "4,10"
free qr code generator with tracking EUR 500 -90% 0% Hoch 80 "2,43" "9,97"
qr code with analytics EUR 500 0% 0% Mittel 56 "4,85" "22,14"
my qr code EUR 5000 0% 0% Mittel 59 "0,97" "3,79"
qr code designer EUR 500 0% 0% Mittel 64 "0,91" "3,63"
create dynamic qr code free EUR 500 0% 0% Hoch 82 "1,69" "4,97"
qr code for business card free EUR 500 -90% -90% Hoch 96 "2,28" "4,93"
free custom qr code generator EUR 500 0% 0% Hoch 91 "1,69" "4,83"
completely free qr code generator EUR 500 0% 0% Hoch 90 "0,92" "3,04"
vcard qr code EUR 5000 0% 0% Hoch 74 "0,97" "3,63"
custom qr code free EUR 500 0% 0% Hoch 88 "1,86" "4,97"
get a free qr code EUR 500 0% 900% Hoch 86 "1,10" "4,78"
qr gen EUR 500000 -90% 0% Hoch 74 "0,63" "3,12"
create qr free EUR 500 0% 0% Hoch 87 "1,28" "4,10"
trackable qr code generator EUR 500 0% 0% Hoch 72 "2,77" "19,03"
free code generator EUR 500 0% 0% Mittel 40 "1,00" "3,98"
custom qr EUR 500 0% 0% Hoch 87 "1,51" "4,43"
qr code for location EUR 500 -90% -90% Mittel 37 "0,79" "3,42"
create qr code for business card free EUR 50 0% 0% Hoch 100 "0,98" "4,46"
free create a qr code EUR 500 0% 0% Hoch 87 "1,28" "4,10"
qr code generator with logo EUR 5000 0% 0% Mittel 64 "1,51" "5,12"
free qr code for business EUR 50 0% 0% Hoch 88 "1,95" "4,50"
qr maker free EUR 500000 -90% 0% Hoch 86 "1,24" "3,64"
facebook qr code generator EUR 5000 -90% 0% Niedrig 19 "1,26" "4,10"
create free qr code for business card EUR 50 0% 0% Hoch 98 "3,34" "4,97"
qr code com EUR 500 0% 0% Mittel 62 "0,82" "3,73"
qr code for restaurant menu EUR 500 900% 900% Hoch 73 "1,89" "8,11"
trackable qr codes EUR 500 0% 0% Hoch 70 "5,57" "34,95"
create website qr code EUR 50 0% 0% Hoch 88 "2,22" "6,88"
qr business card generator EUR 5000 0% 0% Mittel 42 "2,95" "7,03"
qr code generator and tracking EUR 500 0% 0% Hoch 72 "2,77" "19,03"
qr code restaurant menu EUR 500 -90% -90% Hoch 82 "2,81" "11,90"
qr tracking EUR 500 0% 0% Niedrig 11 "1,66" "12,51"
custom qr generator EUR 5000 0% 0% Niedrig 14 "1,91" "6,43"
v card qr code EUR 50 0% 0% Hoch 79 "1,10" "4,16"
cool qr code generator EUR 500 0% 0% Mittel 63 "1,19" "3,87"
make a qr code for business card EUR 50 0% 0% Hoch 85 "3,17" "7,50"
qr generator for business cards EUR 50 0% 0% Hoch 84 "3,18" "5,18"
branded qr code generator EUR 50 0% 0% Hoch 83 "2,63" "10,80"
website to qr code EUR 5000 0% 0% Mittel 49 "0,68" "3,48"
create qr code with tracking EUR 50 0% 0% Niedrig 18 "3,65" "7,01"
vcard qr code free EUR 500 -90% 0% Hoch 80 "0,83" "3,58"
vcard qr EUR 5000 0% 0% Hoch 74 "0,97" "3,63"
make custom qr code EUR 5000 0% 0% Niedrig 14 "1,91" "6,43"
create static qr code EUR 50 0% 0% Hoch 90 "1,31" "4,10"
qr code for your business EUR 50 0% 0% Hoch 99 "2,16" "5,79"
get a qr code for my business EUR 50 0% 0% Hoch 95 "2,89" "8,41"
generate dynamic qr codes EUR 5000 0% 0% Mittel 38 "2,34" "14,52"
restaurant qr code EUR 500 0% 0% Hoch 80 "1,61" "11,55"
vcard qr code generator free EUR 500 0% 0% Hoch 81 "1,30" "4,00"
my qr EUR 5000 0% 0% Mittel 59 "0,97" "3,79"
qr code generator and analytics EUR 50 ∞ 0% Hoch 88 "6,49" "27,63"
unique qr code generator EUR 500 0% 0% Mittel 57 "1,51" "4,32"
url qr generator EUR 5000 0% -90% Hoch 84 "1,43" "4,85"
free qr code generator free EUR 500000 -90% 0% Hoch 86 "1,24" "3,64"
free qr code tracking EUR 500 0% 0% Hoch 73 "1,62" "9,39"
menu qr code generator EUR 50 0% 0% Hoch 84 "2,58" "5,01"
generate static qr code EUR 50 0% 0% Hoch 90 "1,22" "3,11"
unlimited qr code generator EUR 500 -90% -90% Hoch 82 "1,33" "3,70"
vcard qr generator EUR 5000 0% 0% Mittel 60 "1,08" "4,10"
qr code generator phone number EUR 500 -90% 0% Hoch 75 "0,74" "3,88"
create qr code from url EUR 5000 0% -90% Hoch 84 "1,43" "4,85"
business qr code generator free EUR 50 0% 0% Hoch 93 "1,96" "4,72"
make qr code for business card EUR 5000 0% 0% Mittel 42 "2,95" "7,03"
create a website qr code EUR 50 0% 0% Hoch 88 "2,61" "7,92"
qr card EUR 5000 -90% 0% Hoch 100 "1,35" "4,74"
dynamic qr code pricing EUR 50 0% -90% Mittel 62 "1,89" "11,48"
ai qr code generator EUR 500 0% 0% Mittel 39 "0,87" "3,54"
qr code de EUR 50 -90% 0% Mittel 55 "0,59" "5,28"
qr code create free EUR 500000 -90% 0% Hoch 86 "1,24" "3,64"
make a dynamic qr code EUR 50 0% 0% Hoch 88 "1,80" "7,05"
create my qr code EUR 500 -90% -90% Hoch 88 "1,08" "4,05"
qr code menu free EUR 50 0% -90% Mittel 56 "1,77" "5,39"
creating a qr code for business EUR 50 0% 0% Hoch 86 "2,30" "8,64"
create qr barcode EUR 50000 0% 0% Hoch 84 "1,20" "3,94"
qr card generator EUR 50 0% 0% Hoch 75 "1,26" "3,70"
dynamic qr free EUR 50 0% 0% Hoch 86 "0,46" "3,73"
free barcode EUR 5000 0% 0% Niedrig 6 "0,64" "3,16"
generate qr codes for free EUR 500000 -90% 0% Hoch 86 "1,24" "3,64"
create a qr code for my business EUR 50 0% 0% Hoch 89 "4,10" "9,04"
vcard qr code business card EUR 50 0% 0% Mittel 53 "3,35" "7,32"
create a qr code for your business EUR 50 0% 0% Hoch 93 "2,54" "5,08"
edit qr code EUR 500 0% 0% Mittel 37 "0,90" "6,55"
url code generator EUR 500 0% 0% Mittel 66 "1,19" "3,61"
qr qr code generator EUR 500000 -90% 0% Hoch 74 "0,63" "3,12"
free unlimited qr code generator EUR 500 0% 0% Hoch 89 "0,93" "3,06"
event qr code EUR 500 0% 0% Mittel 43 "1,48" "7,61"
qr code generator contact card EUR 500 0% 0% Mittel 46 "2,35" "6,17"
free code qr generator EUR 50 0% 0% Hoch 73 "0,89" "3,63"
make a qr code for business EUR 50 0% 0% Hoch 88 "1,76" "5,26"
create a static qr code EUR 50 0% 0% Hoch 85 "1,51" "4,36"
create trackable qr code EUR 50 0% 0% Hoch 74 "5,22" "22,03"
produce qr code EUR 50000 0% 0% Hoch 84 "1,20" "3,94"
make dynamic qr code EUR 50 0% 0% Hoch 86 "3,06" "6,45"
qr code generator from url EUR 5000 0% -90% Hoch 84 "1,43" "4,85"
qr code for my business EUR 50 0% 0% Hoch 97 "2,46" "7,58"
my qr generator EUR 50 0% 0% Hoch 93 "0,85" "3,31"
free qr code generator with analytics EUR 50 0% 0% Hoch 93 "2,73" "7,89"
make your own qr code free EUR 500 0% 0% Hoch 86 "1,43" "4,11"
static qr codes generator EUR 50 0% 0% Mittel 51 "1,10" "3,70"
create your own qr code free EUR 500 0% 0% Hoch 86 "1,43" "4,11"
design qr code generator EUR 500 0% 0% Niedrig 32 "0,95" "3,36"
static qr generator EUR 50 0% 0% Hoch 87 "0,91" "4,14"
qr codes pro EUR 500 0% 0% Niedrig 28 "1,23" "8,93"
qr code with tracking free EUR 500 0% 0% Hoch 73 "1,62" "9,39"
website to qr code generator EUR 50 -90% 0% Hoch 77 "0,95" "4,10"
facebook qr code generator free EUR 500 0% 0% Niedrig 15 "1,27" "3,63"
make your qr code EUR 500 0% 0% Hoch 69 "1,35" "5,19"
smart qr code generator EUR 50 0% 0% Mittel 44 "1,09" "5,84"
creating qr code business card EUR 5000 0% 0% Mittel 42 "2,95" "7,03"
qr barcode generator free EUR 5000 0% 0% Hoch 76 "1,21" "3,62"
create qr code from website EUR 50 0% 0% Hoch 93 "1,13" "4,59"
branded qr codes EUR 500 0% 0% Mittel 54 "1,84" "10,35"
create free dynamic qr code EUR 50 0% 0% Hoch 90 "1,84" "5,87"
free url qr code generator EUR 50 0% 0% Hoch 87 "1,18" "3,63"
generate website qr code EUR 50000 0% 0% Niedrig 17 "1,88" "6,16"
create your qr code EUR 500 0% 0% Hoch 69 "1,35" "5,19"
create the qr code EUR 50000 0% 0% Hoch 84 "1,20" "3,94"
make my qr code EUR 500 -90% -90% Hoch 88 "1,08" "4,05"
event qr code generator EUR 50 0% 0% Mittel 57 "1,38" "4,25"
paypal qr code EUR 5000 0% 0% Niedrig 9 "1,03" "6,79"
unique qr codes EUR 500 0% 0% Niedrig 30 "1,21" "5,02"
generate qr code for url free EUR 50 0% 0% Hoch 86 "1,27" "3,63"
create business qr code EUR 50 0% 0% Hoch 96 "2,97" "5,82"
generate the qr code EUR 500000 -90% 0% Hoch 74 "0,63" "3,12"
qr code generator free business card EUR 50 0% 0% Mittel 60 "1,72" "4,10"
qr code generator business EUR 500 0% 0% Hoch 75 "3,51" "7,51"
qr code generator for business card free EUR 50 0% 0% Hoch 92 "2,60" "4,10"
cool qr codes EUR 500 0% 0% Niedrig 25 "1,16" "3,82"
create custom qr code free EUR 50 0% 0% Hoch 89 "2,02" "5,06"
qr code for EUR 500 0% 0% Niedrig 12 "1,04" "3,52"
qr code generator ai EUR 500 0% 900% Mittel 53 "0,87" "3,63"
barcode create EUR 5000 0% 0% Mittel 35 "0,78" "3,15"
create a qr code for a url free EUR 50 0% 0% Hoch 90 "1,51" "4,86"
url to qr code generator free EUR 50 0% 0% Hoch 81 "1,22" "3,11"
create a qr code for business card free EUR 50 0% 0% Hoch 93 "3,63" "5,66"
generate a qr EUR 50000 0% 0% Hoch 81 "0,86" "3,52"
free qr code designer EUR 50 0% 0% Hoch 90 "1,27" "3,34"
dynamic qr code cost EUR 50 0% 0% Mittel 60 "1,62" "10,52"
custom logo qr code EUR 500 0% 0% Hoch 98 "2,27" "7,67"
instant qr code generator EUR 50 0% 0% Hoch 78 "1,30" "3,63"
create menu qr code free EUR 50 0% 0% Hoch 74 "4,10" "6,74"
qr code generator qr code generator qr code generator EUR 500000 -90% 0% Hoch 74 "0,63" "3,12"
create vcard qr code EUR 5000 0% 0% Mittel 60 "1,08" "4,10"
get qr code for business EUR 50 0% 0% Hoch 100 "3,61" "4,62"
qr code sign up EUR 50 0% 0% Mittel 52 "1,44" "9,17"
with qr code EUR 50 0% 0% Niedrig 22 "1,00" "3,92"
create a business qr code EUR 50 0% 0% Hoch 96 "4,50" "11,66"
create qr for free EUR 50 0% 0% Hoch 89 "1,31" "3,63"
free make a qr code EUR 50 0% 0% Hoch 83 "1,28" "3,32"
qr code for menu free EUR 50 0% 0% Hoch 80 "2,31" "5,12"
qr code pricing EUR 500 0% 0% Mittel 58 "0,99" "5,66"
qr code generator permanent EUR 500 0% 900% Hoch 78 "1,22" "4,10"
free trackable qr code EUR 500 0% 0% Hoch 73 "1,62" "9,39"
create free qr code business card EUR 500 0% 0% Hoch 85 "2,04" "4,44"
create free qr code generator EUR 500000 -90% 0% Hoch 86 "1,24" "3,64"
instagram qr code generator free EUR 50 0% 0% Hoch 91 "1,09" "3,63"
develop a qr code EUR 50 0% 0% Hoch 83 "1,60" "5,88"
free business card qr code EUR 500 -90% 0% Hoch 97 "1,92" "4,84"
free qr code generator contact card EUR 50 0% 0% Hoch 88 "1,37" "4,04"
qr code qr code generator EUR 500000 -90% 0% Hoch 74 "0,63" "3,12"
create static qr code free EUR 50 0% 0% Hoch 81 "0,93" "3,36"
qr code from website EUR 50 0% 0% Hoch 85 "0,82" "3,20"
qr code generator for phone number EUR 500 -90% 0% Mittel 56 "0,79" "3,27"
create a qr code for an event EUR 50 0% 0% Hoch 74 "1,64" "5,94"
create qr scan code EUR 50 0% 0% Hoch 88 "1,27" "3,71"
create business card qr code free EUR 50 0% 0% Hoch 92 "2,66" "4,59"
advanced qr code generator EUR 50 0% 0% Mittel 42 "1,29" "6,91"
to create a qr code EUR 50 0% 0% Hoch 89 "2,93" "6,04"
make a qr code generator EUR 50 0% 0% Hoch 68 "1,27" "3,44"
qr restaurant menu EUR 50 0% 0% Mittel 35 "2,52" "28,99"
qr code vcard free EUR 50 0% 0% Hoch 84 "0,86" "4,96"
create barcode free EUR 500 0% 0% Mittel 39 "0,93" "3,34"
free business qr code EUR 50 0% 0% Hoch 95 "2,29" "4,10"
produce a qr code EUR 50000 0% 0% Hoch 84 "1,20" "3,94"
create qr code for event EUR 50 0% 0% Hoch 90 "1,12" "9,73"
website to qr code free EUR 50 0% 0% Hoch 85 "0,86" "3,61"
free qr code vcard EUR 50 0% 0% Hoch 99 "1,87" "3,63"
create qr generator EUR 50000 0% 0% Hoch 81 "0,86" "3,52"
qr design EUR 5000 -90% -90% Hoch 93 "0,93" "3,20"
free qr code menu EUR 50 0% 0% Niedrig 29 "1,57" "4,96"
custom free qr code EUR 50 0% 0% Hoch 95 "1,79" "4,64"
difference between static and dynamic qr code EUR 50 0% 0% Niedrig 24 "0,32" "10,47"
bulk qr generator EUR 5000 0% 0% Niedrig 13 "0,69" "3,63"
create cool qr codes EUR 50 0% 0% Hoch 94 "1,19" "5,18"
create unique qr code EUR 500 0% 0% Mittel 57 "1,51" "4,32"
produce qr code free EUR 50 0% 0% Hoch 100 "2,55" "4,54"
free contact qr code generator EUR 50 0% 0% Hoch 92 "1,31" "3,63"
professional qr code EUR 50 0% 0% Mittel 38 "1,75" "6,26"
menu qr codes EUR 500 0% 0% Hoch 71 "1,63" "5,60"
free qr code contact card EUR 50 0% 0% Hoch 86 "1,85" "3,80"
bulk create qr codes EUR 50 0% 0% Hoch 83 "3,25" "7,78"
generate qr code from website EUR 50 0% 0% Hoch 98 "1,47" "3,63"
create qr code from url free EUR 500 -90% 0% Hoch 92 "1,42" "3,70"
sign in qr code generator EUR 50 0% 0% Hoch 71 "2,16" "4,34"
custom design qr codes EUR 500 0% 0% Hoch 74 "1,38" "5,00"
tracking qr code scans EUR 500 0% -90% Mittel 52 "3,03" "16,93"
unlimited qr codes EUR 50 0% 0% Hoch 86 "1,04" "4,16"
create branded qr code EUR 50 0% 0% Hoch 79 "2,53" "17,43"
qr code generator business card free EUR 50 0% ∞ Hoch 95 "2,55" "5,69"
tracking barcode EUR 5000 0% -90% Mittel 47 "1,35" "4,34"
static qr EUR 500 -90% 0% Mittel 62 "0,90" "3,64"
generate qr code for business EUR 50 0% 0% Hoch 95 "4,11" "11,03"
free url to qr code EUR 50 0% 0% Hoch 87 "1,01" "3,63"
qr business code EUR 50 0% 0% Hoch 91 "3,30" "9,11"
v card qr code generator EUR 50 0% 0% Hoch 82 "1,28" "4,10"
free dynamic qr EUR 500 0% 0% Hoch 79 "1,27" "4,58"
create facebook qr code free EUR 50 0% 0% Hoch 94 "1,04" "4,43"
create my qr code free EUR 50 0% 0% Hoch 89 "2,43" "11,68"
basic qr code generator EUR 50 0% 0% Hoch 87 "1,08" "3,12"
need a qr code EUR 50 0% 0% Hoch 79 "1,18" "5,62"
purchase qr codes EUR 500 0% 0% Hoch 78 "2,78" "11,52"
qr location EUR 500 -90% -90% Mittel 37 "0,79" "3,42"
create free static qr code EUR 50 0% 0% Hoch 80 "1,06" "3,13"
ai qr code EUR 500 0% 0% Niedrig 14 "0,76" "4,66"
qr code generator with analytics free EUR 50 0% 0% Hoch 90 "3,15" "5,12"
need qr code EUR 50 0% 0% Hoch 76 "1,33" "4,97"
buy dynamic qr code EUR 50 ∞ 0% Niedrig 25 "1,87" "12,81"
to make a qr code EUR 50 0% 0% Mittel 65 "1,58" "3,63"
qr tracking code EUR 50 0% 0% Hoch 82 "1,10" "3,60"
sms qr code EUR 500 0% 0% Niedrig 17 "0,60" "3,35"
qr code tools EUR 500 900% 900% Mittel 34 "0,71" "4,11"
dynamic code generator EUR 50 0% 0% Niedrig 17 "3,82" "15,61"
qr code for business free EUR 50 0% 0% Hoch 91 "1,46" "3,63"
free qr code contact generator EUR 50 0% 0% Hoch 84 "1,06" "3,34"
free qr code generator no subscription EUR 50 0% 0% Hoch 90 "0,79" "3,09"
create your qr code free EUR 50 0% 0% Hoch 79 "1,79" "4,10"
free dynamic qr code generator with logo EUR 50 0% 0% Mittel 43 "0,48" "3,97"
sms qr code generator EUR 500 0% 0% Niedrig 18 "0,66" "3,11"
create a qr free EUR 50 0% 0% Hoch 94 "2,12" "3,63"
qr code generator generator EUR 500000 -90% 0% Hoch 74 "0,63" "3,12"
qr code generator account EUR 50 0% 0% Mittel 44 "1,51" "7,59"
make your own qr codes EUR 5000 0% 0% Hoch 79 "1,38" "4,11"
qr tag generator EUR 500000 -90% 0% Hoch 74 "0,63" "3,12"
free trackable qr code generator EUR 500 -90% 0% Hoch 80 "2,43" "9,97"
dynamic qr code free generator EUR 50 0% 0% Hoch 95 "2,50" "4,88"
create a unique qr code EUR 50 0% 0% Hoch 96 "2,58" "4,89"
free menu qr code generator EUR 50 0% 0% Hoch 95 "2,35" "3,38"
trackable qr code generator free EUR 50 0% 0% Hoch 95 "4,38" "8,26"
free code qr EUR 50000 0% 0% Hoch 86 "1,25" "3,63"
create qr code with url EUR 5000 0% -90% Hoch 84 "1,43" "4,85"
difference between static and dynamic qr codes EUR 50 0% 0% Hoch 89 "0,61" "18,51"
free dynamic qr generator EUR 500 0% 0% Hoch 82 "1,69" "4,97"
my qr code generator free EUR 50 0% 0% Hoch 83 "1,51" "4,92"
qr code provider EUR 50 0% 0% Mittel 40 "1,85" "7,42"
qr analytics EUR 500 0% 0% Mittel 56 "4,85" "22,14"
qr code generator with custom logo EUR 50 0% 0% Hoch 88 "3,95" "10,07"
to make qr code EUR 50 0% 0% Mittel 52 "1,46" "4,59"
static and dynamic qr codes EUR 50 0% 0% Mittel 64 "0,42" "5,07"
get qr code generator EUR 50 0% 0% Hoch 80 "1,02" "3,86"
qr code generator with url EUR 50 0% 0% Hoch 90 "2,65" "5,00"
create code qr free EUR 50 0% 0% Hoch 93 "1,96" "3,63"
create qr code of website EUR 50 0% 0% Hoch 97 "2,15" "4,93"
qr code generator free unlimited EUR 50 0% 0% Hoch 94 "1,18" "3,63"
create qr code for EUR 50 0% 0% Hoch 68 "1,14" "3,63"
the qr generator EUR 50 0% 0% Mittel 60 "0,98" "3,99"
bulk qr code generator from excel EUR 50 0% 0% Mittel 42 "1,22" "4,36"
make url qr code EUR 5000 0% -90% Hoch 84 "1,43" "4,85"
qr code and tracking EUR 5000 -90% -90% Mittel 64 "1,62" "14,63"
make qr code for location EUR 50 0% 0% Hoch 86 "1,37" "4,01"
sign up qr code EUR 50 0% 0% Niedrig 23 "1,81" "5,80"
custom branded qr codes EUR 50 0% 0% Hoch 100 "2,33" "13,48"
build qr code generator EUR 50 0% 0% Hoch 80 "1,02" "3,86"
free qr code business card generator EUR 50 0% 0% Mittel 60 "1,72" "4,10"
generate qr code with url EUR 5000 0% -90% Hoch 84 "1,43" "4,85"
qr create free EUR 500 0% 0% Hoch 87 "1,28" "4,10"
make qr code from website EUR 50 0% 0% Hoch 92 "1,48" "3,53"
qr bulk generator EUR 5000 0% 0% Niedrig 13 "0,69" "3,63"
qr code s EUR 500 0% 0% Niedrig 27 "0,57" "4,92"
create your own qr codes EUR 5000 0% 0% Hoch 79 "1,38" "4,11"
restaurant menu qr code free EUR 50 0% 0% Hoch 95 "1,78" "8,90"
event qr code generator free EUR 50 0% 0% Hoch 73 "1,55" "4,53"
qr signs EUR 5000 -90% -90% Hoch 100 "0,65" "4,49"
log in qr code generator EUR 5000 0% 0% Niedrig 15 "0,67" "3,07"
instant qr code EUR 50 0% 0% Hoch 77 "1,86" "4,80"
custom qr code designer EUR 50 0% 0% Hoch 90 "3,13" "4,88"
create a url qr code EUR 50 0% 0% Hoch 89 "2,80" "5,01"
the qr code generator free EUR 50 0% 0% Hoch 82 "1,06" "3,63"
new qr code generator EUR 50 0% 0% Hoch 79 "1,51" "4,58"
trackable qr code free EUR 50 0% 0% Hoch 88 "3,62" "12,45"
free personalized qr code generator EUR 50 0% 0% Hoch 93 "0,81" "3,63"
qr code generator from website EUR 50 0% 0% Hoch 98 "1,28" "4,12"
create qr code for instagram free EUR 50 0% 0% Hoch 95 "1,51" "4,46"
digital qr code generator EUR 50 0% 0% Mittel 45 "1,84" "4,17"
qr png generator EUR 50 0% 0% Hoch 74 "1,28" "3,33"
create custom qr EUR 500 0% 0% Mittel 51 "2,44" "7,89"
make qr code for business EUR 50 0% 0% Hoch 100 "2,49" "3,36"
contact card qr code generator EUR 50 0% 0% Hoch 89 "1,68" "4,94"
qr printing EUR 500 0% 0% Mittel 46 "0,74" "7,53"
qr for business EUR 5000 0% 0% Hoch 97 "2,57" "7,95"
permanent qr code generator free EUR 500 0% 900% Hoch 85 "1,03" "3,57"
free menu qr code EUR 50 0% 0% Hoch 97 "1,94" "4,53"
generate qr code for a url EUR 50 0% 0% Hoch 94 "2,17" "5,95"
manage qr codes EUR 500 0% -90% Niedrig 30 "2,11" "18,77"
qr generator custom EUR 5000 0% 0% Niedrig 14 "1,91" "6,43"
qr code to phone number EUR 50 0% 0% Hoch 75 "0,74" "3,16"
customer qr code EUR 50 0% 0% Mittel 53 "1,80" "3,72"
website url qr code generator EUR 50 0% 0% Hoch 77 "1,65" "4,23"
square barcode generator EUR 500 0% 0% Mittel 45 "0,84" "8,47"
website to create qr code EUR 50 0% 0% Hoch 87 "1,89" "4,62"
scan barcode generator EUR 500 0% 0% Niedrig 27 "0,84" "5,11"
obtain a qr code EUR 50000 -90% 0% Hoch 82 "0,89" "3,63"
qr code generator for my website EUR 500 0% 0% Hoch 87 "4,10" "10,77"
generate your qr code EUR 500 0% 0% Hoch 69 "1,35" "5,19"
generate qr code from url free EUR 50 0% 0% Hoch 84 "0,38" "3,93"
create qr code for menu free EUR 50 0% ∞ Hoch 86 "2,03" "5,10"
qr business EUR 5000 0% 0% Hoch 97 "2,57" "7,95"
qr code generator site EUR 50000 0% 0% Niedrig 17 "1,88" "6,16"
code create EUR 50 -90% 0% Niedrig 3 "0,62" "6,98"
dynamic codes EUR 500 0% 0% Niedrig 12 "0,78" "4,21"
qr code analytics free EUR 50 0% 0% Hoch 86 "1,32" "5,57"
free url to qr code generator EUR 50 0% 0% Hoch 91 "0,94" "3,65"
personalized qr code generator EUR 50 0% 0% Hoch 90 "1,75" "6,74"
custom logo qr code generator EUR 500 0% 0% Hoch 68 "2,73" "7,71"
restaurant qr EUR 500 0% 0% Hoch 80 "1,61" "11,55"
generate facebook qr code EUR 5000 -90% 0% Niedrig 19 "1,26" "4,10"
qr contact card generator EUR 500 0% 0% Mittel 46 "2,35" "6,17"
free qr generator code EUR 50 0% 0% Hoch 90 "1,69" "4,10"
dynamic url qr code EUR 50 0% 0% Hoch 82 "5,45" "18,45"
free qr code analytics EUR 50 0% 0% Hoch 86 "1,32" "5,57"
generate qr code for phone number EUR 50 0% 0% Hoch 79 "0,76" "3,37"
free qr code generator and tracking EUR 500 -90% 0% Hoch 80 "2,43" "9,97"
generate unique qr code EUR 500 0% 0% Mittel 57 "1,51" "4,32"
youtube qr code generator free EUR 50 0% 0% Hoch 96 "1,21" "3,63"
customize qr code generator EUR 50 0% 0% Hoch 83 "1,16" "6,79"
make a qr scan code EUR 50 0% 0% Hoch 88 "1,27" "3,71"
create a qr code for location EUR 50 0% 0% Hoch 100 "1,91" "3,60"
url to qr generator EUR 50 0% 0% Hoch 89 "0,20" "9,36"
business qr EUR 5000 0% 0% Hoch 97 "2,57" "7,95"
edit a qr code EUR 500 0% 0% Mittel 37 "0,90" "6,55"
generate qr codes in bulk EUR 50 0% 0% Hoch 100 "2,07" "8,02"
qr code generator freeware EUR 500000 -90% 0% Hoch 86 "1,24" "3,64"
automated qr code generator EUR 50 0% 0% Hoch 86 "0,93" "3,18"
create qr code to email EUR 50 0% 0% Hoch 82 "0,86" "4,06"
free png qr code generator EUR 50 0% 0% Hoch 88 "1,55" "5,87"
free qr code generator for url EUR 50 0% 0% Hoch 89 "1,51" "4,10"
create a qr code from website EUR 50 0% 0% Hoch 77 "2,58" "6,51"
qr code qr EUR 5000 0% 0% Niedrig 0 "1,03" "3,01"
make qr code generator free EUR 500 0% 0% Hoch 83 "1,51" "3,63"
qr code generator custom logo EUR 500 0% 0% Hoch 68 "2,73" "7,71"
make your qr code free EUR 50 0% 0% Hoch 79 "1,79" "4,10"
free qr business cards EUR 500 -90% 0% Hoch 97 "1,92" "4,84"
create qr barcode free EUR 500 0% 0% Hoch 87 "1,28" "4,10"
qr code generator barcode EUR 50 0% 0% Mittel 43 "0,97" "4,06"
free sms qr code generator EUR 50 0% 0% Niedrig 32 "0,81" "3,03"
difference between dynamic and static qr code EUR 50 0% 0% Hoch 70 "0,23" "5,71"
qr code generator free for phone number EUR 50 0% ∞ Hoch 100 "0,37" "3,63"
creating scan codes EUR 50000 0% 0% Hoch 84 "1,68" "4,83"
create scan code free EUR 500 0% 0% Hoch 87 "1,28" "4,10"
free qr code generator for vcard EUR 500 0% 0% Hoch 81 "1,30" "4,00"
qr code generator for contact card EUR 500 0% 0% Mittel 46 "2,35" "6,17"
qr contact code generator EUR 500 0% 0% Hoch 75 "1,32" "4,73"
create own qr code free EUR 50 0% 0% Hoch 85 "0,87" "4,15"
qr to code EUR 50 0% 0% Niedrig 21 "1,00" "3,78"
free branded qr code generator EUR 50 0% 0% Hoch 100 "1,81" "3,52"
qr code free tracking EUR 500 0% 0% Hoch 73 "1,62" "9,39"
free qr code generator unlimited EUR 50 0% 0% Hoch 85 "1,08" "3,27"
create your own free qr code EUR 500 0% 0% Hoch 86 "1,43" "4,11"
customize a qr code EUR 5000 0% 0% Mittel 57 "1,83" "6,10"
modify qr code EUR 500 0% 0% Mittel 37 "0,90" "6,55"
create youtube qr code EUR 50 0% 0% Hoch 71 "0,86" "3,17"
vcard qr free EUR 50 0% 0% Hoch 95 "1,56" "3,63"
build qr codes EUR 50 -90% 0% Hoch 89 "0,95" "4,10"
create qr code free from url EUR 500 0% 900% Hoch 89 "1,74" "4,85"
barcode and qr code generator EUR 50 0% 0% Mittel 43 "0,97" "4,06"
make free qr EUR 50 0% 0% Hoch 89 "0,85" "4,10"
digital restaurant menu qr code EUR 50 0% 0% Hoch 95 "1,68" "5,15"
qr code generator for EUR 50 0% 0% Hoch 96 "0,93" "3,00"
make qr barcode EUR 50000 0% 0% Hoch 72 "0,71" "3,34"
generate a qr code from a url EUR 5000 0% -90% Hoch 84 "1,43" "4,85"
generator free EUR 500 0% 0% Niedrig 16 "0,82" "5,79"
qr campaign EUR 50 0% -90% Niedrig 19 "1,45" "10,66"
free qr code editor EUR 50 0% 0% Hoch 75 "1,32" "3,18"
square codes EUR 5000 0% 0% Niedrig 5 "0,83" "3,42"
free qr code for my business EUR 50 0% 0% Hoch 90 "2,15" "4,10"
generate qr code in bulk EUR 50 0% 0% Hoch 100 "2,07" "8,02"
create custom qr codes free EUR 50 0% 0% Hoch 100 "2,23" "6,61"
smart qr codes EUR 500 900% 900% Mittel 36 "1,13" "6,17"
create qr code for url free EUR 50 0% 0% Hoch 90 "1,51" "4,86"
qr code with brand logo EUR 50 0% 0% Hoch 88 "2,39" "4,41"
barcode to qr code generator EUR 50 0% 0% Niedrig 27 "1,89" "8,80"
i qr code EUR 50 0% 0% Niedrig 11 "1,25" "3,95"
qr code generator with logo for free EUR 500 0% 0% Hoch 80 "1,31" "4,47"
qr code generator no tracking EUR 50 0% 0% Hoch 76 "0,96" "3,93"
qr code unlimited EUR 500 0% 0% Mittel 66 "1,00" "6,13"
csv qr code generator EUR 50 0% 0% Mittel 65 "1,02" "5,95"
design qr code free EUR 50 0% 0% Hoch 97 "1,45" "4,05"
qr code generator card EUR 50 0% 0% Hoch 75 "1,26" "3,70"
qr design generator EUR 500 0% 0% Niedrig 32 "0,95" "3,36"
qr code permanent generator EUR 50 0% 0% Hoch 74 "0,56" "5,09"
free generate qr code for url EUR 50 0% 0% Mittel 48 "1,27" "3,19"
qr code i EUR 50 0% 0% Niedrig 11 "1,25" "3,95"
every qr code EUR 50 0% 0% Niedrig 5 "0,50" "6,33"
view qr code EUR 50 0% 0% Niedrig 13 "0,65" "3,23"
code creation EUR 50 -90% 0% Niedrig 12 "2,14" "5,68"
create own qr code generator EUR 50 0% -90% Hoch 79 "1,21" "3,71"
credit card qr code EUR 50 0% 0% Niedrig 7 "2,64" "9,81"
digital qr codes EUR 500 -90% 0% Mittel 63 "1,15" "4,49"
qr generator for url EUR 50 0% 0% Hoch 91 "1,10" "7,17"
qr code bulk generator free EUR 50 0% 0% Hoch 95 "0,74" "3,18"
dynamic barcode EUR 50 0% 0% Niedrig 33 "1,44" "5,12"
event qr EUR 500 0% 0% Mittel 43 "1,48" "7,61"
custom code generator EUR 50 0% 0% Niedrig 32 "1,79" "8,74"
qr codes marketing EUR 500 0% 0% Niedrig 33 "1,61" "10,10"
recommended qr code generator EUR 5000 0% 0% Hoch 78 "1,63" "8,36"
create a scan qr code EUR 50 0% 0% Hoch 96 "2,22" "4,68"
qr code with vcard EUR 5000 0% 0% Hoch 74 "0,97" "3,63"
make a qr code for text EUR 50 0% 0% Hoch 71 "1,28" "3,34"
logo qr generator EUR 5000 0% 0% Mittel 64 "1,51" "5,12"
contact card qr generator EUR 50 0% 0% Hoch 82 "1,46" "3,63"
qr barcode free EUR 50000 0% 0% Hoch 86 "1,25" "3,63"
qr code scan device EUR 500 0% -90% Hoch 100 "0,37" "3,50"
all qr codes EUR 50 0% 0% Niedrig 5 "0,50" "6,33"
cost for qr code EUR 500 0% 0% Mittel 58 "0,99" "5,66"
free qr tracking EUR 50 0% 0% Hoch 86 "1,49" "8,90"
generator for free EUR 500 0% 0% Niedrig 16 "0,82" "5,79"
create paypal qr code EUR 50 0% 0% Mittel 36 "1,79" "4,70"
generate qr code of url EUR 5000 0% -90% Hoch 84 "1,43" "4,85"
generate paypal qr code EUR 50 0% 0% Niedrig 30 "1,54" "4,76"
email qr code free EUR 50 0% 0% Hoch 68 "0,50" "3,48"
cost of qr codes EUR 500 0% 0% Mittel 58 "0,99" "5,66"
the best qr code generator free EUR 50 0% 0% Hoch 82 "1,00" "3,63"
qr code brand EUR 500 0% 0% Niedrig 4 "1,55" "8,10"
qr all EUR 50 0% 0% Niedrig 5 "0,50" "6,33"
create qr reader EUR 50 0% 0% Hoch 82 "1,28" "3,60"
generate barcode qr EUR 50 0% 0% Mittel 43 "0,97" "4,06"
create barcode url EUR 50 0% 0% Hoch 77 "0,83" "3,43"
logos in qr codes EUR 5000 0% 0% Hoch 86 "1,20" "4,78"
create a paypal qr code EUR 50 0% 0% Mittel 45 "0,95" "5,00"
qr code save EUR 50 0% 0% Niedrig 19 "0,83" "3,47"
make a qr scanner EUR 500 0% 0% Mittel 56 "0,99" "4,22"
qr code freeware EUR 5000 0% 0% Hoch 84 "0,94" "3,33"
barcode scan code EUR 500 0% 0% Hoch 97 "0,81" "3,80"
qr code digital EUR 50 0% 0% Mittel 45 "0,59" "6,18"
qr code from vcard EUR 5000 0% 0% Hoch 74 "0,97" "3,63"
qr generator vcard free EUR 500 0% 0% Hoch 81 "1,30" "4,00"
make cool qr code EUR 50 0% 0% Hoch 83 "1,45" "3,96"
all qr EUR 50 0% 0% Niedrig 5 "0,50" "6,33"
qr do EUR 50 0% 0% Niedrig 15 "0,85" "4,10"
qr events EUR 500 0% 0% Mittel 43 "1,48" "7,61"
call qr EUR 50 0% 0% Mittel 37 "1,00" "4,12"
Keyword Stats 2026-01-22 at 11_03_27
1. Januar 2025 - 31. Dezember 2025
Keyword Currency Avg. monthly searches Änderung über drei Monate Änderung im Jahresvergleich Competition Competition (indexed value) Top of page bid (low range) Top of page bid (high range) Ad impression share Organic impression share Organic average position In account? In plan? Searches: Jan 2025 Searches: Feb 2025 Searches: Mar 2025 Searches: Apr 2025 Searches: May 2025 Searches: Jun 2025 Searches: Jul 2025 Searches: Aug 2025 Searches: Sep 2025 Searches: Oct 2025 Searches: Nov 2025 Searches: Dec 2025
custom qr code generator EUR 5000 0% 0% Niedrig 14 "1,91" "6,43"
qr barcode EUR 50000 0% 900% Niedrig 3 "0,42" "1,93"
bulk qr code generator EUR 5000 0% 0% Niedrig 13 "0,69" "3,63"
bar code generator EUR 500000 0% 0% Niedrig 3 "0,67" "2,58"
qr code generator for business EUR 500 0% 900% Niedrig 17 "1,81" "7,01"
this is a qr code EUR 5000 0% 0% Niedrig 9 "0,47" "1,33"
get a qr code for business EUR 50 0% 0% Niedrig 20
a qr code EUR 500 0% 0% Niedrig 23 "0,49" "2,01"
qr dynamic code generator EUR 50 -100% -100% Unbekannt
facebook qr code generator EUR 5000 -90% 0% Niedrig 19 "1,26" "4,10"
whatsapp qr code generator EUR 500 0% 0% Niedrig 19 "0,51" "1,89"
qr tracking EUR 500 0% 0% Niedrig 11 "1,66" "12,51"
custom qr generator EUR 5000 0% 0% Niedrig 14 "1,91" "6,43"
create qr code with tracking EUR 50 0% 0% Niedrig 18 "3,65" "7,01"
qr code generator sign in EUR 500 -90% -90% Niedrig 6
make custom qr code EUR 5000 0% 0% Niedrig 14 "1,91" "6,43"
qr code qr code EUR 500 -90% -90% Niedrig 27 "0,26" "1,28"
free barcode EUR 5000 0% 0% Niedrig 6 "0,64" "3,16"
youtube qr code EUR 5000 0% 0% Niedrig 16 "0,52" "2,21"
paypal qr code generator EUR 500 0% 0% Niedrig 19 "0,66" "2,58"
code qr code EUR 500 0% 0% Niedrig 18 "0,29" "1,03"
qr code to text EUR 500 0% 0% Niedrig 4 "0,50" "2,20"
code to qr code EUR 50 0% 0% Niedrig 30 "0,43" "1,51"
qr code location generator EUR 50 0% 0% Niedrig 17
restaurant menu qr code generator EUR 50 0% 0% Niedrig 0
bulk qr code EUR 500 0% 0% Niedrig 13 "0,07" "2,85"
qr code instagram generator EUR 50 0% 0% Niedrig 29 "0,71" "1,75"
qr codes pro EUR 500 0% 0% Niedrig 28 "1,23" "8,93"
facebook qr code generator free EUR 500 0% 0% Niedrig 15 "1,27" "3,63"
generate website qr code EUR 50000 0% 0% Niedrig 17 "1,88" "6,16"
paypal qr code EUR 5000 0% 0% Niedrig 9 "1,03" "6,79"
unique qr codes EUR 500 0% 0% Niedrig 30 "1,21" "5,02"
the qr code EUR 500 0% 0% Niedrig 23 "0,66" "2,21"
scan location qr code EUR 50 0% 0% Niedrig 24
cool qr codes EUR 500 0% 0% Niedrig 25 "1,16" "3,82"
qr code for EUR 500 0% 0% Niedrig 12 "1,04" "3,53"
to create qr code EUR 50 -100% -100% Unbekannt
qr code for phone number EUR 500 0% 0% Niedrig 28 "0,70" "2,56"
qr wifi EUR 500 0% 0% Niedrig 2 "0,12" "1,00"
with qr code EUR 50 0% 0% Niedrig 22 "1,00" "3,93"
free bulk qr code generator EUR 500 900% 900% Niedrig 27 "0,91" "2,85"
cost of qr code generator EUR 50 -100% -100% Unbekannt
qr code analytics tracking EUR 50 0% 0% Niedrig 9
free qr code for restaurant menu EUR 50 0% -100% Unbekannt
qr code time tracking EUR 50 0% 0% Niedrig 0
qr code with text EUR 500 0% 0% Niedrig 15 "0,13" "1,40"
free qr code menu EUR 50 0% 0% Niedrig 29 "1,57" "4,96"
qr code generator for restaurant menu EUR 500 0% 0% Niedrig 5
difference between static and dynamic qr code EUR 50 0% 0% Niedrig 24 "0,32" "10,47"
bulk qr generator EUR 5000 0% 0% Niedrig 13 "0,69" "3,63"
barcode code generator EUR 500000 0% 0% Niedrig 3 "0,67" "2,58"
generate dynamic qr code free EUR 50 -100% -100% Unbekannt
qr code contact generator free EUR 50 0% -100% Unbekannt
scan qr code for location EUR 50 0% 0% Niedrig 17
ai qr code EUR 500 0% 0% Niedrig 14 "0,76" "4,66"
buy dynamic qr code EUR 50 ∞ 0% Niedrig 25 "1,87" "12,81"
sms qr code EUR 500 0% 0% Niedrig 17 "0,60" "3,35"
dynamic code generator EUR 50 0% 0% Niedrig 17 "3,82" "15,62"
qr code restaurant menu free EUR 50 0% -100% Unbekannt
vcard qr code generator with logo EUR 50 -100% -100% Unbekannt
bulk qr code generator free EUR 500 900% 900% Niedrig 27 "0,91" "2,85"
sms qr code generator EUR 500 0% 0% Niedrig 18 "0,66" "3,11"
phone qr code EUR 500 0% 0% Niedrig 28 "0,45" "1,61"
create your dynamic qr code EUR 50 -100% -100% Unbekannt
qr code as a business card EUR 50 -100% -100% Unbekannt
generate free barcode EUR 50000 0% 0% Niedrig 5 "0,67" "2,52"
qr code barcode generator EUR 500 0% 0% Niedrig 15 "0,58" "1,51"
bulk qr code generator with logo EUR 50 0% 0% Niedrig 0
qr restaurant EUR 500 0% 0% Niedrig 7
sign up qr code EUR 50 0% 0% Niedrig 23 "1,81" "5,80"
create qr code menu free EUR 50 -100% -100% Unbekannt
bulk qr code generator excel EUR 50 0% 0% Niedrig 21
qr code options EUR 50 0% 900% Niedrig 15 "1,10" "2,91"
qr bulk generator EUR 5000 0% 0% Niedrig 13 "0,69" "3,63"
qr code s EUR 500 0% 0% Niedrig 27 "0,57" "4,93"
qr code to qr code EUR 50 ∞ ∞ Niedrig 14
log in qr code generator EUR 5000 0% 0% Niedrig 15 "0,67" "3,08"
create whatsapp qr code EUR 500 0% 0% Niedrig 19 "0,51" "1,89"
qr code in EUR 50 0% 0% Niedrig 22 "0,31" "1,88"
twitter qr code generator EUR 50 0% 0% Niedrig 4
care code EUR 500 0% 0% Niedrig 2
create qr code gratuit EUR 50 -100% -100% Unbekannt
restaurants with qr codes EUR 50 0% 0% Niedrig 11
master qr EUR 50 0% ∞ Niedrig 0
manage qr codes EUR 500 0% -90% Niedrig 30 "2,11" "18,77"
qr generator custom EUR 5000 0% 0% Niedrig 14 "1,91" "6,43"
qr code generator it EUR 50 0% 0% Niedrig 11
bulk qr EUR 500 0% 0% Niedrig 13 "0,07" "2,85"
master qr code EUR 50 0% 0% Niedrig 2
qr code generator in bulk EUR 50 0% 0% Niedrig 7
scan barcode generator EUR 500 0% 0% Niedrig 27 "0,84" "5,11"
static qr and dynamic qr EUR 50 -100% -100% Unbekannt
barcode make EUR 5000 900% 900% Niedrig 15 "0,64" "2,78"
qr code generator site EUR 50000 0% 0% Niedrig 17 "1,88" "6,16"
code create EUR 50 -90% 0% Niedrig 3 "0,62" "6,98"
dynamic codes EUR 500 0% 0% Niedrig 12 "0,78" "4,21"
scan qr code for restaurant menu EUR 50 0% 0% Unbekannt
qr code tracking analytics EUR 50 0% 0% Niedrig 0
generate facebook qr code EUR 5000 -90% 0% Niedrig 19 "1,26" "4,10"
create qr code location EUR 50 -100% 0% Unbekannt
qr code of location EUR 50 -100% -100% Unbekannt
qr code with EUR 50 0% 0% Niedrig 7
code to qr EUR 50 0% 0% Niedrig 30 "0,43" "1,51"
make your own qr code for business EUR 50 0% -100% Unbekannt
scan your qr code EUR 50 0% 0% Niedrig 27 "0,56" "2,47"
for qr code generator EUR 50 -100% -100% Unbekannt
qr code what is qr EUR 5000 0% 0% Niedrig 15 "0,05" "0,64"
qr code with location EUR 50 -100% -100% Unbekannt
qr code qr EUR 5000 0% 0% Niedrig 0 "1,03" "3,01"
qr code generator bulk free EUR 50 0% 0% Niedrig 24
qr code and EUR 500 0% 0% Niedrig 18 "0,29" "1,03"
qr number EUR 500 0% 900% Niedrig 5 "0,07" "0,94"
credit card qr code generator EUR 50 0% -100% Unbekannt
about qr code generator EUR 50 0% 0% Unbekannt
whatsapp qr generator EUR 500 0% 0% Niedrig 19 "0,51" "1,89"
generate to qr code EUR 50 -100% -100% Unbekannt
qr codes work EUR 500 0% 0% Niedrig 11 "0,63" "2,06"
qr to code EUR 50 0% 0% Niedrig 21 "1,00" "3,78"
in qr code EUR 50 0% 0% Niedrig 22 "0,31" "1,88"
create qr business card free EUR 50 -100% -100% Unbekannt
qr code it EUR 50 0% 0% Niedrig 29 "1,21" "2,25"
qr marketing EUR 50 0% 0% Niedrig 3
it qr code EUR 50 0% 0% Niedrig 5
and qr code EUR 500 0% 0% Niedrig 18 "0,29" "1,03"
qr code is EUR 50 0% 0% Niedrig 17 "0,09" "1,83"
bulk code generator EUR 50 0% 0% Niedrig 5
qr code calculator EUR 50 0% 0% Niedrig 23
qr bulk EUR 500 0% 0% Niedrig 13 "0,07" "2,85"
generator qr barcode EUR 50 -100% -100% Unbekannt
generator free EUR 500 0% 0% Niedrig 16 "0,82" "5,79"
code generator code EUR 50 ∞ 0% Niedrig 14
qr number generator EUR 50 0% 0% Niedrig 14
qr code generator bulk create EUR 50 -100% -100% Unbekannt
qr campaign EUR 50 0% -90% Niedrig 19 "1,45" "10,66"
square codes EUR 5000 0% 0% Niedrig 5 "0,83" "3,42"
generator create EUR 500 0% 0% Niedrig 1
code for qr code EUR 50 ∞ 0% Niedrig 14
qr bulk code generator EUR 50 0% 0% Niedrig 11
qr code generator with location EUR 50 -100% 0% Unbekannt
qr code scanner qr code generator EUR 50 ∞ 0% Niedrig 29
youtube qr EUR 5000 0% 0% Niedrig 16 "0,52" "2,21"
qr code generator custom design EUR 50 -100% -100% Unbekannt
your code generator EUR 50 0% -100% Unbekannt
free dynamic code generator EUR 50 0% -100% Unbekannt
qr scan code free EUR 50 0% 0% Niedrig 0
edit qr EUR 50 0% 0% Niedrig 2
qr code scan qr code EUR 50 0% 0% Niedrig 25
sozdat qr code EUR 50 -100% 0% Unbekannt
barcode to qr code generator EUR 50 0% 0% Niedrig 27 "1,89" "8,80"
qr codes that work EUR 500 0% 0% Niedrig 11 "0,63" "2,06"
i qr code EUR 50 0% 0% Niedrig 11 "1,25" "3,95"
free barcode code generator EUR 50000 0% 0% Niedrig 5 "0,67" "2,52"
work qr code EUR 500 0% 0% Niedrig 11 "0,63" "2,06"
qr code on device EUR 50 0% 0% Niedrig 1
barcode code generator free EUR 50 0% -90% Niedrig 6 "0,20" "2,34"
device qr code EUR 50 0% 0% Niedrig 22 "0,58" "2,52"
code barcode EUR 500 0% 900% Niedrig 10 "0,19" "1,55"
all qr code generator EUR 50 0% 0% Unbekannt
advanced qr code EUR 50 0% 0% Niedrig 2
qr generator bulk EUR 50 0% 0% Niedrig 14
information qr code generator EUR 50 -100% -100% Unbekannt
device qr EUR 50 0% -100% Unbekannt
type qr code EUR 50 0% 0% Niedrig 9 "0,52" "1,66"
qr edit EUR 50 0% 0% Niedrig 21
no qr codes EUR 500 0% 0% Niedrig 3 "0,26" "1,28"
qr code na EUR 50 0% 0% Unbekannt
qr code & EUR 50 0% ∞ Niedrig 0
qr code a EUR 500 0% 0% Niedrig 23 "0,49" "2,01"
qr generator location EUR 50 ∞ 0% Niedrig 0
qr code an EUR 50 0% 0% Niedrig 19
qr code on EUR 50 0% 0% Niedrig 12
qr code i EUR 50 0% 0% Niedrig 11 "1,25" "3,95"
qr code of EUR 50 0% 0% Niedrig 9 "0,50" "2,07"
qr code on this phone EUR 500 0% 0% Niedrig 28 "0,45" "1,61"
your qr EUR 50 0% 0% Niedrig 20
qr code what is EUR 5000 0% 0% Niedrig 15 "0,05" "0,64"
qr code generator vcard business card EUR 50 -100% -100% Unbekannt
every qr code EUR 50 0% 0% Niedrig 5 "0,50" "6,33"
at qr code EUR 50 0% 0% Niedrig 4
qr code what is it EUR 50 0% 0% Niedrig 17 "0,05" "0,44"
qr code where is it EUR 50 0% 0% Niedrig 0
view qr code EUR 50 0% 0% Niedrig 13 "0,65" "3,23"
code creation EUR 50 -90% 0% Niedrig 12 "2,14" "5,68"
qr code from EUR 50 0% 0% Niedrig 14 "0,58" "1,45"
write qr code EUR 50 0% 0% Niedrig 0
credit card qr code EUR 50 0% 0% Niedrig 7 "2,64" "9,81"
qr code about EUR 50 0% 0% Niedrig 18
www com qr code EUR 50 0% 0% Unbekannt
this qr code EUR 50 0% 0% Niedrig 8
by qr code EUR 50 0% 0% Niedrig 19
qr code to location EUR 50 -100% -100% Unbekannt
location qr generator EUR 50 0% 0% Niedrig 0
business card qr code generator with logo EUR 50 0% 0% Niedrig 0
qr work EUR 50 900% 900% Niedrig 1
generate bulk qr code from excel EUR 50 ∞ ∞ Niedrig 14
any qr code EUR 500 0% 0% Niedrig 0
generate qr code bulk EUR 50 -100% 0% Unbekannt
qr code qr scanner EUR 500 0% 0% Niedrig 0
get qr code for location EUR 50 -100% -100% Unbekannt
scan code for EUR 50 0% 0% Niedrig 19
generator barcode qr EUR 50 0% -100% Unbekannt
free qr code for location EUR 50 -100% 0% Unbekannt
open a qr code EUR 500 0% 0% Niedrig 23 "0,41" "1,51"
phone qr EUR 500 0% 0% Niedrig 28 "0,45" "1,61"
barcode to qr generator EUR 50 -100% -100% Unbekannt
static code generator EUR 50 0% 0% Niedrig 26
location qr code creation EUR 50 0% 0% Unbekannt
location scan qr code EUR 50 ∞ ∞ Niedrig 0
create location qr code free EUR 50 -100% 0% Unbekannt
generator qr code vcard EUR 50 0% 0% Unbekannt
bulk generator EUR 50 0% 0% Niedrig 4 "0,27" "1,33"
qr code of this device EUR 50 0% ∞ Niedrig 20
qr code generator location free EUR 50 0% 0% Niedrig 0
qr location code EUR 50 0% -100% Unbekannt
account qr code EUR 50 0% 0% Niedrig 13
qr code to code EUR 50 0% 0% Niedrig 0
free qr scan generator EUR 50 0% 0% Niedrig 26 "0,89" "1,51"
dynamic qr code generator with logo EUR 50 0% 0% Niedrig 0
qr code to barcode generator EUR 50 0% 0% Niedrig 5
qr code of a location EUR 50 0% -100% Unbekannt
the code generator EUR 50 0% 0% Niedrig 27
create qr code of location EUR 50 0% -100% Unbekannt
bulk qr barcode generator EUR 50 0% 0% Niedrig 3
qr hunt EUR 50 0% 0% Niedrig 4
bulk qr generator free EUR 50 -100% -100% Unbekannt
dynamic qr code display EUR 50 900% 900% Niedrig 6
location qr code free EUR 50 0% -100% Unbekannt
location qr scanner EUR 50 -100% 0% Unbekannt
qr quotes EUR 500 0% 0% Niedrig 5 "0,61" "2,17"
qr c9de EUR 50 -90% 0% Niedrig 2
you are code generator EUR 50 0% -100% Unbekannt
make a qr code for location EUR 50 -100% -100% Unbekannt
qr code generator from csv EUR 50 0% 0% Niedrig 0
generate qr code from barcode EUR 50 0% 0% Niedrig 29
make generator EUR 500 0% 0% Niedrig 9 "0,46" "2,62"
all qr codes EUR 50 0% 0% Niedrig 5 "0,50" "6,33"
bulk qr code generator with logo free EUR 50 0% ∞ Unbekannt
whatsapp qr code business card EUR 50 -100% 0% Unbekannt
qr code with phone EUR 500 0% 0% Niedrig 28 "0,45" "1,61"
generator for free EUR 500 0% 0% Niedrig 16 "0,82" "5,79"
generate url from qr code EUR 500 -90% 0% Niedrig 4 "2,05" "2,69"
barcode and qr codes EUR 50000 0% 900% Niedrig 3 "0,42" "1,93"
qr code menu restaurant free EUR 50 0% 0% Unbekannt
qr code features EUR 500 0% 900% Niedrig 2 "0,33" "1,29"
generate qr code for location free EUR 50 0% -100% Unbekannt
location in qr code EUR 50 0% 0% Unbekannt
generate qr code by url EUR 50 -100% -100% Unbekannt
qr code required EUR 50 0% 0% Niedrig 11 "0,94" "2,61"
qr code from phone EUR 50 0% 0% Niedrig 11 "0,49" "1,03"
location qr code scan EUR 50 -100% -100% Unbekannt
no qr EUR 500 0% 0% Niedrig 3 "0,26" "1,28"
qr code scan for location EUR 50 0% -100% Unbekannt
generate url to qr code EUR 50 -100% -100% Unbekannt
get code from qr code EUR 50 0% 0% Niedrig 10
scan the qr code for location EUR 50 ∞ ∞ Niedrig 0
kod generator EUR 50 0% 0% Niedrig 0
qr code in text EUR 50 0% 0% Niedrig 2
restaurant menu scan code EUR 50 0% 0% Niedrig 0
location qr code free generator EUR 50 0% 0% Unbekannt
url from qr code EUR 50 0% 0% Niedrig 4
scan tracking EUR 50 900% 0% Niedrig 24 "0,31" "2,42"
qr code of this phone EUR 50 0% 0% Niedrig 0
qr code brand EUR 500 0% 0% Niedrig 4 "1,55" "8,10"
qr code in phone EUR 500 0% 0% Niedrig 28 "0,45" "1,61"
www the qr code generator scan EUR 50 -100% 0% Unbekannt
create qr code from barcode EUR 50 0% 0% Niedrig 29
qr all EUR 50 0% 0% Niedrig 5 "0,50" "6,33"
bulk qr code barcode generator EUR 50 ∞ 0% Niedrig 0
qr scan location EUR 50 0% 0% Niedrig 0
qr code no EUR 500 0% 0% Niedrig 3 "0,26" "1,28"
qr code that works EUR 500 0% 0% Niedrig 11 "0,63" "2,06"
qr code randomizer EUR 5000 0% 0% Niedrig 13 "0,60" "1,71"
qr code marketing campaigns EUR 50 0% 0% Niedrig 3
qr code generator create your qr code for free EUR 50 -100% -100% Unbekannt
account qr EUR 50 0% ∞ Niedrig 0
qr code for credit card EUR 50 -100% -100% Unbekannt
qr cost EUR 50 0% 0% Niedrig 5
qr code on the phone EUR 50 0% 0% Niedrig 13
scan qr code scan qr code EUR 50 0% 0% Niedrig 25
qr kodlari EUR 50 -100% -100% Unbekannt
qr code scan code EUR 50 0% 0% Niedrig 17
scan by qr code EUR 50 0% 0% Niedrig 0
3 qr code EUR 50 0% 0% Niedrig 0
scan qr code location EUR 50 0% 0% Niedrig 17
qr scanner in EUR 50 0% 0% Niedrig 18
create qr code to whatsapp EUR 50 -100% -100% Unbekannt
qr code on email EUR 50 0% 0% Niedrig 25
create qr code for whatsapp free EUR 50 0% -100% Unbekannt
make qr code of location EUR 50 -100% 0% Unbekannt
qr code save EUR 50 0% 0% Niedrig 19 "0,83" "3,47"
no to qr code EUR 50 0% -100% Unbekannt
call qr code EUR 50000 0% 0% Niedrig 0 "0,57" "2,59"
free barcode code EUR 500 0% 0% Niedrig 18 "0,65" "2,84"
qr code for scan EUR 50 0% 0% Niedrig 14 "0,52" "1,56"
bar code s EUR 50 0% 0% Niedrig 24 "1,26" "1,72"
qr code as text EUR 500 0% 0% Niedrig 15 "0,13" "1,40"
qr view EUR 50 0% 0% Niedrig 3
qr code generator device EUR 50 0% 0% Niedrig 8
qr scanner for EUR 50 0% 0% Niedrig 14 "0,52" "1,56"
qr code generator full EUR 50 0% 0% Unbekannt
qr code generator for visiting card free EUR 50 0% 0% Unbekannt
qr coe3 EUR 50 -100% -100% Unbekannt
qr text code EUR 50 0% 0% Niedrig 29
scan qr free EUR 50 0% 0% Niedrig 25
cole generator EUR 50 0% 0% Niedrig 24
into qr code EUR 50 0% 0% Niedrig 22 "0,31" "1,88"
qr code how does it work EUR 50 0% 0% Niedrig 25 "0,10" "0,52"
any qr EUR 500 0% 0% Niedrig 0
menu card qr code generator EUR 50 0% 0% Unbekannt
url to code generator EUR 50 ∞ 0% Niedrig 14
website qr scanner EUR 500 0% 0% Niedrig 6 "0,03" "1,77"
all in qr code EUR 50 0% 0% Unbekannt
all qr EUR 50 0% 0% Niedrig 5 "0,50" "6,33"
qr scanner location EUR 50 0% 0% Niedrig 0
qr how to use EUR 50 0% 0% Niedrig 0
qr scanner for location EUR 50 -100% 0% Unbekannt
scan qr code for EUR 50 0% 0% Niedrig 11
scan the qr code for EUR 50 0% 0% Niedrig 0
scan this qr code for EUR 50 ∞ ∞ Niedrig 29
the qr barcode generator EUR 50 -100% -100% Unbekannt
trackable codes EUR 50 0% 0% Niedrig 0
scan qr code in EUR 50 0% 0% Niedrig 0
qr do EUR 50 0% 0% Niedrig 15 "0,86" "4,10"
qr code login generator EUR 50 0% 0% Niedrig 16

View File

@@ -1,42 +0,0 @@
/** @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(),
};
},
};

View File

@@ -20,6 +20,25 @@ const nextConfig = {
pagesBufferLength: 2,
},
poweredByHeader: false,
async redirects() {
return [
{
source: '/tools/phone-qr-code',
destination: '/tools/call-qr-code-generator',
permanent: true,
},
{
source: '/barcode-generator',
destination: '/tools/barcode-generator',
permanent: true,
},
{
source: '/bar-code-generator',
destination: '/tools/barcode-generator',
permanent: true,
},
];
},
};
export default nextConfig;

68
next_blog_post.md Normal file
View File

@@ -0,0 +1,68 @@
# SEO Setup (Copy these into the tool)
**Focus Keyword:** Best QR Code Generator 2026
**Page Title:** Best QR Code Generator 2026: Ultimate Guide (Dynamic & AI)
**Meta Description:** Discover standards for the best QR code generator in 2026. Learn why dynamic QR codes, AI analytics, and unlimited scans are essential for your business growth.
**Related Keywords:**
1. free dynamic qr code generator
2. qr code tracking analytics
3. edit qr code after printing
4. unlimited scan qr code
5. vector qr code svg
6. custom brand qr code
7. bulk qr code generator
8. gdpr compliant qr code
---
# Article Content
# Best QR Code Generator 2026: The Ultimate Guide
The digital landscape has transformed, and finding the **Best QR Code Generator 2026** is critical for businesses connecting with customers. The humble QR code has evolved into a sophisticated marketing instrument. To stay competitive, your chosen platform must offer more than just links—it must unlock data, flexibility, and brand engagement.
![Best QR Code Generator 2026 Analytics Dashboard](/blog/best-qr-code-generator-2026-dashboard.jpg)
In this guide, we explore why static codes are dead and why top-tier tools now rely entirely on dynamic technology.
## Why Dynamic QR Codes Are Non-Negotiable
If you are not using a modern solution, you might still be stuck with static codes. The industry standard has shifted entirely to **dynamic QR codes** for critical reasons:
1. **Editability**: Printed 5,000 brochures with the wrong link? A dynamic platform lets you update the destination URL in seconds.
2. **Tracking & Analytics**: You need to know *who* scanned and *when*.
3. **Retargeting**: Integration with [Google Analytics](https://www.qrmaster.net/analytics) allows you to build audiences.
### Static vs. Dynamic: The 2026 Verdict
| Feature | Static QR Code | Best QR Code Generator 2026 (Dynamic) |
| :--- | :--- | :--- |
| **Editing** | Impossible | Instant updates anytime |
| **Analytics** | None | Real-time AI Data |
| **Lifespan** | Until link breaks | Indefinite |
## Top Trends Defining the Market
### 1. AI-Driven Scan Prediction
Leading platforms integrates Artificial Intelligence to predict peak scan times. By analyzing historical data, platforms like [QR Master](https://www.qrmaster.net/) suggest optimal placement.
### 2. Augmented Reality (AR) Integration
New codes trigger immersive AR experiences. The **Best QR Code Generator 2026** supports these next-gen formats natively, allowing customers to visualize products immediately.
### 3. Hyper-Personalization
Contextual redirects are a hallmark of advanced generators. Redirect users in Berlin to German pages and New York users to US pages automatically, ensuring the highest possible conversion rate.
## How to Choose the Right Tool
With many tools available, how do you verify which is the right one for you?
* **No Scan Limits**: Many services cap you at 100 scans. Ensure your provider offers [unlimited scans](https://www.qrmaster.net/pricing).
* **Vector Formats**: Essential for professional printing (SVG/EPS).
* **GDPR Compliance**: Data privacy is paramount.
## Conclusion: Future-Proof Your Marketing
As we move through the year, selecting the **Best QR Code Generator 2026** is the highest ROI decision you can make. Don't settle for temporary solutions. Choose a platform that scales with your ambition.
*Ready to upgrade? Start creating with the industry leader today: [Sign Up Free](https://www.qrmaster.net/signup).*

1492
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -5,9 +5,12 @@
"private": true,
"scripts": {
"dev": "next dev -p 3050",
"build": "prisma generate && next build",
"build": "prisma generate && cross-env NODE_OPTIONS='--max-old-space-size=4096' next build",
"trigger:indexing": "tsx scripts/trigger-indexing.ts",
"submit:indexnow": "tsx scripts/submit-indexnow.ts",
"start": "next start",
"lint": "next lint",
"indexnow": "tsx scripts/submit-indexnow.ts",
"db:generate": "prisma generate",
"db:migrate": "prisma migrate dev",
"db:deploy": "prisma migrate deploy",
@@ -32,34 +35,40 @@
"@prisma/client": "^5.7.0",
"@stripe/stripe-js": "^8.0.0",
"@types/d3-scale": "^4.0.9",
"axios": "^1.13.2",
"bcryptjs": "^2.4.3",
"chart.js": "^4.4.0",
"clsx": "^2.0.0",
"copy-image-clipboard": "^2.1.2",
"d3-scale": "^4.0.2",
"dayjs": "^1.11.10",
"dotenv": "^17.2.3",
"exceljs": "^4.4.0",
"file-saver": "^2.0.5",
"framer-motion": "^12.24.10",
"googleapis": "^170.1.0",
"html-to-image": "^1.11.13",
"i18next": "^23.7.6",
"ioredis": "^5.3.2",
"jspdf": "^4.0.0",
"jszip": "^3.10.1",
"lucide-react": "^0.562.0",
"next": "^14.2.35",
"next-auth": "^4.24.5",
"papaparse": "^5.4.1",
"posthog-js": "^1.276.0",
"posthog-js": "^1.332.0",
"qr-code-styling": "^1.9.2",
"qrcode": "^1.5.3",
"qrcode.react": "^3.1.0",
"react": "^18.2.0",
"react-barcode": "^1.6.1",
"react-chartjs-2": "^5.2.0",
"react-dom": "^18.2.0",
"react-dropzone": "^14.2.3",
"react-facebook-pixel": "^1.0.4",
"react-i18next": "^13.5.0",
"react-simple-maps": "^3.0.0",
"resend": "^6.4.2",
"sharp": "^0.33.1",
"stripe": "^19.1.0",
"tailwind-merge": "^2.2.0",
"uuid": "^13.0.0",
@@ -74,12 +83,13 @@
"@types/react": "^18.2.45",
"@types/react-dom": "^18.2.18",
"autoprefixer": "^10.4.16",
"cross-env": "^10.1.0",
"eslint": "^8.56.0",
"eslint-config-next": "^16.1.1",
"next-sitemap": "^4.2.3",
"postcss": "^8.4.32",
"prettier": "^3.1.1",
"prisma": "^5.7.0",
"sharp": "^0.34.5",
"tailwindcss": "^3.3.6",
"tsx": "^4.7.0",
"typescript": "^5.3.3"

View File

@@ -0,0 +1,146 @@
-- CreateEnum
CREATE TYPE "QRType" AS ENUM ('STATIC', 'DYNAMIC');
-- CreateEnum
CREATE TYPE "ContentType" AS ENUM ('URL', 'WIFI', 'VCARD', 'PHONE', 'EMAIL', 'SMS', 'TEXT', 'WHATSAPP');
-- CreateEnum
CREATE TYPE "QRStatus" AS ENUM ('ACTIVE', 'PAUSED');
-- CreateTable
CREATE TABLE "User" (
"id" TEXT NOT NULL,
"email" TEXT NOT NULL,
"name" TEXT,
"password" TEXT,
"image" TEXT,
"emailVerified" TIMESTAMP(3),
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Account" (
"id" TEXT NOT NULL,
"userId" TEXT NOT NULL,
"type" TEXT NOT NULL,
"provider" TEXT NOT NULL,
"providerAccountId" TEXT NOT NULL,
"refresh_token" TEXT,
"access_token" TEXT,
"expires_at" INTEGER,
"token_type" TEXT,
"scope" TEXT,
"id_token" TEXT,
"session_state" TEXT,
CONSTRAINT "Account_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Session" (
"id" TEXT NOT NULL,
"sessionToken" TEXT NOT NULL,
"userId" TEXT NOT NULL,
"expires" TIMESTAMP(3) NOT NULL,
CONSTRAINT "Session_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "VerificationToken" (
"identifier" TEXT NOT NULL,
"token" TEXT NOT NULL,
"expires" TIMESTAMP(3) NOT NULL
);
-- CreateTable
CREATE TABLE "QRCode" (
"id" TEXT NOT NULL,
"userId" TEXT NOT NULL,
"title" TEXT NOT NULL,
"type" "QRType" NOT NULL DEFAULT 'DYNAMIC',
"contentType" "ContentType" NOT NULL DEFAULT 'URL',
"content" JSONB NOT NULL,
"tags" TEXT[],
"status" "QRStatus" NOT NULL DEFAULT 'ACTIVE',
"style" JSONB NOT NULL,
"slug" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "QRCode_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "QRScan" (
"id" TEXT NOT NULL,
"qrId" TEXT NOT NULL,
"ts" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"ipHash" TEXT NOT NULL,
"userAgent" TEXT,
"device" TEXT,
"os" TEXT,
"country" TEXT,
"referrer" TEXT,
"utmSource" TEXT,
"utmMedium" TEXT,
"utmCampaign" TEXT,
"isUnique" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "QRScan_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Integration" (
"id" TEXT NOT NULL,
"userId" TEXT NOT NULL,
"provider" TEXT NOT NULL,
"status" TEXT NOT NULL DEFAULT 'inactive',
"config" JSONB NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "Integration_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
-- CreateIndex
CREATE UNIQUE INDEX "Account_provider_providerAccountId_key" ON "Account"("provider", "providerAccountId");
-- CreateIndex
CREATE UNIQUE INDEX "Session_sessionToken_key" ON "Session"("sessionToken");
-- CreateIndex
CREATE UNIQUE INDEX "VerificationToken_token_key" ON "VerificationToken"("token");
-- CreateIndex
CREATE UNIQUE INDEX "VerificationToken_identifier_token_key" ON "VerificationToken"("identifier", "token");
-- CreateIndex
CREATE UNIQUE INDEX "QRCode_slug_key" ON "QRCode"("slug");
-- CreateIndex
CREATE INDEX "QRCode_userId_createdAt_idx" ON "QRCode"("userId", "createdAt");
-- CreateIndex
CREATE INDEX "QRScan_qrId_ts_idx" ON "QRScan"("qrId", "ts");
-- AddForeignKey
ALTER TABLE "Account" ADD CONSTRAINT "Account_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Session" ADD CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "QRCode" ADD CONSTRAINT "QRCode_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "QRScan" ADD CONSTRAINT "QRScan_qrId_fkey" FOREIGN KEY ("qrId") REFERENCES "QRCode"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Integration" ADD CONSTRAINT "Integration_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;

View File

@@ -0,0 +1,22 @@
/*
Warnings:
- A unique constraint covering the columns `[stripeCustomerId]` on the table `User` will be added. If there are existing duplicate values, this will fail.
- A unique constraint covering the columns `[stripeSubscriptionId]` on the table `User` will be added. If there are existing duplicate values, this will fail.
*/
-- CreateEnum
CREATE TYPE "Plan" AS ENUM ('FREE', 'PRO', 'BUSINESS');
-- AlterTable
ALTER TABLE "User" ADD COLUMN "plan" "Plan" NOT NULL DEFAULT 'FREE',
ADD COLUMN "stripeCurrentPeriodEnd" TIMESTAMP(3),
ADD COLUMN "stripeCustomerId" TEXT,
ADD COLUMN "stripePriceId" TEXT,
ADD COLUMN "stripeSubscriptionId" TEXT;
-- CreateIndex
CREATE UNIQUE INDEX "User_stripeCustomerId_key" ON "User"("stripeCustomerId");
-- CreateIndex
CREATE UNIQUE INDEX "User_stripeSubscriptionId_key" ON "User"("stripeSubscriptionId");

View File

@@ -0,0 +1,67 @@
/*
Warnings:
- The values [WIFI,EMAIL] on the enum `ContentType` will be removed. If these variants are still used in the database, this will fail.
- A unique constraint covering the columns `[resetPasswordToken]` on the table `User` will be added. If there are existing duplicate values, this will fail.
*/
-- AlterEnum
BEGIN;
CREATE TYPE "ContentType_new" AS ENUM ('URL', 'VCARD', 'GEO', 'PHONE', 'SMS', 'TEXT', 'WHATSAPP');
ALTER TABLE "QRCode" ALTER COLUMN "contentType" DROP DEFAULT;
ALTER TABLE "QRCode" ALTER COLUMN "contentType" TYPE "ContentType_new" USING ("contentType"::text::"ContentType_new");
ALTER TYPE "ContentType" RENAME TO "ContentType_old";
ALTER TYPE "ContentType_new" RENAME TO "ContentType";
DROP TYPE "ContentType_old";
ALTER TABLE "QRCode" ALTER COLUMN "contentType" SET DEFAULT 'URL';
COMMIT;
-- AlterTable
ALTER TABLE "User" ADD COLUMN "resetPasswordExpires" TIMESTAMP(3),
ADD COLUMN "resetPasswordToken" TEXT;
-- CreateTable
CREATE TABLE "NewsletterSubscription" (
"id" TEXT NOT NULL,
"email" TEXT NOT NULL,
"source" TEXT NOT NULL DEFAULT 'ai-coming-soon',
"status" TEXT NOT NULL DEFAULT 'subscribed',
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "NewsletterSubscription_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Lead" (
"id" TEXT NOT NULL,
"email" TEXT NOT NULL,
"source" TEXT NOT NULL DEFAULT 'reprint-calculator',
"reprintCost" DOUBLE PRECISION,
"updatesPerYear" INTEGER,
"annualSavings" DOUBLE PRECISION,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "Lead_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "NewsletterSubscription_email_key" ON "NewsletterSubscription"("email");
-- CreateIndex
CREATE INDEX "NewsletterSubscription_email_idx" ON "NewsletterSubscription"("email");
-- CreateIndex
CREATE INDEX "NewsletterSubscription_createdAt_idx" ON "NewsletterSubscription"("createdAt");
-- CreateIndex
CREATE INDEX "Lead_email_idx" ON "Lead"("email");
-- CreateIndex
CREATE INDEX "Lead_createdAt_idx" ON "Lead"("createdAt");
-- CreateIndex
CREATE INDEX "Lead_source_idx" ON "Lead"("source");
-- CreateIndex
CREATE UNIQUE INDEX "User_resetPasswordToken_key" ON "User"("resetPasswordToken");

View File

@@ -0,0 +1,31 @@
/*
Warnings:
- Added the required column `updatedAt` to the `Lead` table without a default value. This is not possible if the table is not empty.
*/
-- AlterEnum
-- This migration adds more than one value to an enum.
-- With PostgreSQL versions 11 and earlier, this is not possible
-- in a single migration. This can be worked around by creating
-- multiple migrations, each migration adding only one value to
-- the enum.
ALTER TYPE "ContentType" ADD VALUE 'PDF';
ALTER TYPE "ContentType" ADD VALUE 'APP';
ALTER TYPE "ContentType" ADD VALUE 'COUPON';
ALTER TYPE "ContentType" ADD VALUE 'FEEDBACK';
-- DropIndex
DROP INDEX "Lead_createdAt_idx";
-- DropIndex
DROP INDEX "Lead_email_idx";
-- DropIndex
DROP INDEX "Lead_source_idx";
-- AlterTable
ALTER TABLE "Lead" ADD COLUMN "updatedAt" TIMESTAMP(3) NOT NULL,
ALTER COLUMN "updatesPerYear" SET DATA TYPE DOUBLE PRECISION;

View File

@@ -0,0 +1,3 @@
# Please do not edit this file manually
# It should be added in your version-control system (i.e. Git)
provider = "postgresql"

View File

@@ -166,3 +166,14 @@ model NewsletterSubscription {
@@index([email])
@@index([createdAt])
}
model Lead {
id String @id @default(cuid())
email String
source String @default("reprint-calculator")
reprintCost Float?
updatesPerYear Float?
annualSavings Float?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}

View File

@@ -0,0 +1,4 @@
Contact: mailto:security@qrmaster.net
Expires: 2027-01-01T00:00:00.000Z
Strategies: https://www.qrmaster.net/.well-known/security.txt
Preferred-Languages: en, de

BIN
public/1234567890abcdef.txt Normal file

Binary file not shown.

1
public/ads.txt Normal file
View File

@@ -0,0 +1 @@
google.com, pub-2782770414424875, DIRECT, f08c47fec0942fa0

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 KiB

View File

@@ -0,0 +1 @@
bb6dfaacf1ed41a880281c426c54ed7c

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 MiB

BIN
public/blog/1-hero.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 MiB

BIN
public/blog/2-body.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 MiB

BIN
public/blog/2-hero.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 737 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 860 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 863 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 646 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 699 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 KiB

View File

@@ -0,0 +1 @@
google-site-verification: googleccd5315437d68a49.html

13
public/humans.txt Normal file
View File

@@ -0,0 +1,13 @@
/* TEAM */
Founder: Timo Knuth
Site: https://qrmaster.net
Twitter: @qrmaster
/* THANKS */
Thanks to: Next.js, Vercel, Tailwind CSS, Stripe, Supabase
/* SITE */
Last update: 2026/01/12
Language: English, German
Doctype: HTML5
IDE: VS Code

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 516 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 650 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 646 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 700 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB

48
public/llms.txt Normal file
View File

@@ -0,0 +1,48 @@
# QR Master
> QR Master is a B2B SaaS platform for creating dynamic QR codes with real-time analytics, custom branding, and bulk generation. Free tools available for URL, WiFi, vCard, WhatsApp, Instagram, and 15+ other QR code types.
- Primary domain: https://www.qrmaster.net
- Free static QR codes, paid dynamic QR codes with tracking
- German landing page available at /qr-code-erstellen
- Enterprise features: Bulk generation, API access, team management
## Free Tools
- [URL QR Generator](https://www.qrmaster.net/tools/url-qr-code): Create QR codes for any website link
- [WiFi QR Generator](https://www.qrmaster.net/tools/wifi-qr-code): Share WiFi credentials via QR code
- [vCard QR Generator](https://www.qrmaster.net/tools/vcard-qr-code): Digital business card QR codes
- [Text QR Generator](https://www.qrmaster.net/tools/text-qr-code): Encode plain text in QR codes
- [Email QR Generator](https://www.qrmaster.net/tools/email-qr-code): Pre-filled email QR codes
- [SMS QR Generator](https://www.qrmaster.net/tools/sms-qr-code): Send SMS messages via QR
- [Phone QR Generator](https://www.qrmaster.net/tools/phone-qr-code): One-tap phone call QR codes
- [WhatsApp QR Generator](https://www.qrmaster.net/tools/whatsapp-qr-code): Start WhatsApp chats instantly
- [Instagram QR Generator](https://www.qrmaster.net/tools/instagram-qr-code): Grow Instagram followers
- [TikTok QR Generator](https://www.qrmaster.net/tools/tiktok-qr-code): Link to TikTok profiles
- [Twitter QR Generator](https://www.qrmaster.net/tools/twitter-qr-code): Share Twitter/X profiles
- [YouTube QR Generator](https://www.qrmaster.net/tools/youtube-qr-code): Link to videos and channels
- [Facebook QR Generator](https://www.qrmaster.net/tools/facebook-qr-code): Share Facebook pages
- [PayPal QR Generator](https://www.qrmaster.net/tools/paypal-qr-code): Accept PayPal payments
- [Crypto QR Generator](https://www.qrmaster.net/tools/crypto-qr-code): Bitcoin and crypto wallet QR codes
- [Event QR Generator](https://www.qrmaster.net/tools/event-qr-code): Calendar event QR codes
- [Geolocation QR Generator](https://www.qrmaster.net/tools/geolocation-qr-code): Share map locations
- [Zoom QR Generator](https://www.qrmaster.net/tools/zoom-qr-code): Join Zoom meetings instantly
- [Teams QR Generator](https://www.qrmaster.net/tools/teams-qr-code): Join Microsoft Teams meetings
## Premium Features
- [Dynamic QR Codes](https://www.qrmaster.net/dynamic-qr-code-generator): Editable QR codes with real-time tracking
- [Bulk QR Generator](https://www.qrmaster.net/bulk-qr-code-generator): Generate hundreds of QR codes from CSV/Excel
- [QR Code Tracking](https://www.qrmaster.net/qr-code-tracking): Analytics dashboard with scan statistics
## Information
- [Homepage](https://www.qrmaster.net): Main landing page
- [Pricing](https://www.qrmaster.net/pricing): Free, Pro, and Business plans
- [FAQ](https://www.qrmaster.net/faq): Frequently asked questions
- [Blog](https://www.qrmaster.net/blog): Tips and guides for QR code marketing
- [Privacy Policy](https://www.qrmaster.net/privacy): Data privacy information
## Localized Pages
- [German Landing Page](https://www.qrmaster.net/qr-code-erstellen): QR Code Generator auf Deutsch

BIN
public/og-image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 KiB

View File

@@ -1,19 +0,0 @@
# QR Master - robots.txt
# Allow all search engines to crawl all pages
User-agent: *
Allow: /
# Sitemap location
Sitemap: https://www.qrmaster.net/sitemap.xml
# Crawl-delay (optional, be nice to servers)
Crawl-delay: 1
# Disallow admin/api routes
Disallow: /api/
Disallow: /dashboard/
Disallow: /_next/
# Allow all free tools explicitly
Allow: /tools/

View File

@@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.qrmaster.net/</loc>
<lastmod>2025-10-16T00:00:00Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://www.qrmaster.net/blog</loc>
<lastmod>2025-10-16T00:00:00Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.qrmaster.net/pricing</loc>
<lastmod>2025-10-16T00:00:00Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.qrmaster.net/faq</loc>
<lastmod>2025-10-16T00:00:00Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.qrmaster.net/blog/qr-code-analytics</loc>
<lastmod>2025-10-16T00:00:00Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
</urlset>

View File

@@ -0,0 +1,49 @@
const sharp = require('sharp');
const path = require('path');
const fs = require('fs');
const imagesToConvert = [
'2-body.png',
'2-hero.png',
'qr-code-analytics-hero.png',
'1-hero.png'
];
const blogDir = path.join(__dirname, '../public/blog');
async function compressImages() {
console.log('🖼️ Starting image compression...\n');
for (const imageName of imagesToConvert) {
const inputPath = path.join(blogDir, imageName);
const outputName = imageName.replace('.png', '.webp');
const outputPath = path.join(blogDir, outputName);
if (!fs.existsSync(inputPath)) {
console.log(`⚠️ Skipping ${imageName} - file not found`);
continue;
}
const originalSize = fs.statSync(inputPath).size;
try {
await sharp(inputPath)
.webp({ quality: 85 })
.toFile(outputPath);
const newSize = fs.statSync(outputPath).size;
const savings = ((1 - newSize / originalSize) * 100).toFixed(1);
console.log(`${imageName}`);
console.log(` Original: ${(originalSize / 1024 / 1024).toFixed(2)} MB`);
console.log(` WebP: ${(newSize / 1024 / 1024).toFixed(2)} MB`);
console.log(` Savings: ${savings}%\n`);
} catch (err) {
console.error(`❌ Failed to convert ${imageName}:`, err.message);
}
}
console.log('Done! Remember to update image references in blog-data.ts');
}
compressImages();

32
scripts/debug-hang.ts Normal file
View File

@@ -0,0 +1,32 @@
console.log('1. Starting debug script...');
try {
console.log('2. Importing fs...');
const fs = require('fs');
console.log(' fs imported.');
console.log('3. Importing path...');
const path = require('path');
console.log(' path imported.');
console.log('4. Importing googleapis...');
const { google } = require('googleapis');
console.log(' googleapis imported.');
console.log('5. Importing ../src/lib/indexnow...');
const indexnow = require('../src/lib/indexnow');
console.log(' indexnow imported.');
console.log(' Keys:', Object.keys(indexnow));
if (indexnow.getAllIndexableUrls) {
console.log('6. Calling getAllIndexableUrls...');
const urls = indexnow.getAllIndexableUrls();
console.log(` Got ${urls.length} URLs.`);
}
console.log('7. Done!');
} catch (err) {
console.error('ERROR during import:', err);
}

View File

@@ -87,7 +87,7 @@ switch ($choice) {
Write-Host "Access points:"
Write-Host " - App: http://localhost:3050"
Write-Host " - Database UI: http://localhost:8080"
Write-Host " - Database: localhost:5432"
Write-Host " - Database: localhost:5435"
Write-Host " - Redis: localhost:6379"
}
"2" {
@@ -115,7 +115,7 @@ switch ($choice) {
Write-Host ""
Write-Host "Access points:"
Write-Host " - App: http://localhost:3050"
Write-Host " - Database: localhost:5432"
Write-Host " - Database: localhost:5435"
Write-Host " - Redis: localhost:6379"
Write-Host ""
Write-Host "To view logs:"

View File

@@ -98,7 +98,7 @@ case $choice in
echo "Access points:"
echo " - App: http://localhost:3050"
echo " - Database UI: http://localhost:8080"
echo " - Database: localhost:5432"
echo " - Database: localhost:5435"
echo " - Redis: localhost:6379"
;;
2)
@@ -126,7 +126,7 @@ case $choice in
echo ""
echo "Access points:"
echo " - App: http://localhost:3050"
echo " - Database: localhost:5432"
echo " - Database: localhost:5435"
echo " - Redis: localhost:6379"
echo ""
echo "To view logs:"

View File

@@ -0,0 +1,23 @@
// Helper script to run IndexNow submission
// Run with: npm run submit:indexnow
import { getAllIndexableUrls, submitToIndexNow } from '../src/lib/indexnow';
async function main() {
console.log('🚀 Starting IndexNow Submission Script...');
console.log(' Gathering URLs for IndexNow submission...');
const urls = getAllIndexableUrls();
console.log(` Found ${urls.length} indexable URLs.`);
// Basic validation of key presence (logic can be improved)
if (!process.env.INDEXNOW_KEY) {
console.warn('⚠️ WARNING: INDEXNOW_KEY environment variable is not set.');
console.warn(' The submission might fail if the key is not hardcoded in src/lib/indexnow.ts');
}
await submitToIndexNow(urls);
console.log('\n✨ IndexNow submission process completed.');
}
main().catch(console.error);

64
scripts/test-db-lead.ts Normal file
View File

@@ -0,0 +1,64 @@
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function main() {
console.log('🔄 Starting Database Diagnostics...');
try {
// 1. Test Connection
console.log('1⃣ Testing basic connection...');
await prisma.$connect();
console.log('✅ Connected to database successfully.');
// 2. Test Lead Table Existence
console.log('2⃣ Testing Lead table access...');
try {
const count = await prisma.lead.count();
console.log(`✅ Lead table found. Current count: ${count}`);
} catch (e: any) {
console.error('❌ FAILED to access Lead table.');
if (e.code === 'P2021') {
console.error(' 👉 Error P2021: The table "Lead" does not exist in the current database.');
console.error(' 👉 SOLUTION: Run "npx prisma migrate deploy"');
} else {
console.error(' 👉 Error:', e.message);
}
throw e; // rethrow to stop
}
// 3. Test Writing a dummy lead (optional, rolling back transaction)
console.log('3⃣ Testing write permission...');
await prisma.$transaction(async (tx) => {
const lead = await tx.lead.create({
data: {
email: 'test_diagnostic_script@example.com',
source: 'diagnostic-script',
reprintCost: 0,
updatesPerYear: 0,
annualSavings: 0
}
});
console.log('✅ Successfully created test lead with ID:', lead.id);
// We purposefully throw an error to rollback this transaction so we don't dirty the DB
throw new Error('ROLLBACK_TEST');
}).catch((e) => {
if (e.message === 'ROLLBACK_TEST') {
console.log('✅ Transaction rollback successful (cleaning up test data).');
} else {
throw e;
}
});
console.log('\n🎉 ALL CHECKS PASSED! The database is effectively readable and writable.');
} catch (error) {
console.error('\n💥 DIAGNOSTICS FAILED');
console.error(error);
process.exit(1);
} finally {
await prisma.$disconnect();
}
}
main();

View File

@@ -0,0 +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: auth,
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();

34
scripts/verify-lead-db.ts Normal file
View File

@@ -0,0 +1,34 @@
import { db } from '../src/lib/db';
async function main() {
try {
console.log('Verifying Lead model...');
// Type assertion to bypass potential type generation issues locally if they exist
const leadCount = await (db as any).lead.count();
console.log(`Current lead count: ${leadCount}`);
const testLead = await (db as any).lead.create({
data: {
email: 'test_verify@example.com',
source: 'verification-script',
reprintCost: 100,
updatesPerYear: 12,
annualSavings: 1200,
},
});
console.log('Successfully created test lead:', testLead.id);
// Clean up
await (db as any).lead.delete({
where: { id: testLead.id }
});
console.log('Successfully deleted test lead');
} catch (error) {
console.error('Verification failed:', error);
process.exit(1);
}
}
main();

742
searchvolume.md Normal file
View File

@@ -0,0 +1,742 @@
Overview: qr code generator
View Cached Page
Create Report
370,000
Monthly Volume
337,000
Estimated Clicks
Clicked any result
Low
91%
High
Mobile vs Desktop
Mobile
Desktop
Not Enough Data
Paid clicks
Low
03%
12%
High
13%+
Difficulty
73
Google Provided Data
Expand
Cost Per Click
$0.51
Monthly Cost
$3,072
Search Volume
90,500
Advertisers
15
Homepages
6
Fresh SV
918,000
Universal search in SERP
8,191
Similar keywords
qr code generator
370,000
qr code generator free
43,300
free qr code generator
34,400
generate qr code
10,800
google qr code generator
8,000
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
View All
655
Questions
How to generate a qr code
1,700
How to generate qr code
630
How to generate qr code for url
270
What is the best qr code generator?
220
How to generate bank qr code without edge
200
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
View All
19,120,108
Also ranks for
qr code generator free
43,300
qr code maker
52,000
free qr code generator
34,400
qr generator
25,300
create qr code
29,500
Overview: barcode generator
View Cached Page
Create Report
58,300
Monthly Volume
51,000
Estimated Clicks
Clicked any result
Low
87%
High
Mobile vs Desktop
Mobile
Desktop
Low Mobile
Paid clicks
Low
03%
1%
High
13%+
Difficulty
22
Google Provided Data
Expand
Cost Per Click
$1.68
Monthly Cost
$5,316
Search Volume
110,000
Advertisers
5
Homepages
21
Fresh SV
72,800
Universal search in SERP
5,381
Similar keywords
barcode generator
58,300
free barcode generator
4,000
upc barcode generator
3,200
2d barcode generator
1,300
generate barcode
1,300
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
View All
326
Questions
How to store barcodes generated into a folder in linux python
250
How to generate barcodes
180
How to generate barcodes in excel
180
How to generate barcodes for products
135
How to generate a third party barcode for j1 waiver
110
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
View All
27,933,196
Also ranks for
free barcode generator
4,000
barcode maker
6,100
upc code generator
3,600
upc generator
4,500
2d barcode generator
1,300
Overview: qr code maker
View Cached Page
Create Report
52,000
Monthly Volume
48,200
Estimated Clicks
Clicked any result
Low
93%
High
Mobile vs Desktop
Mobile
Desktop
Not Enough Data
Paid clicks
Low
03%
12%
High
13%+
Difficulty
47
Google Provided Data
Expand
Cost Per Click
$0.37
Monthly Cost
$209
Search Volume
18,100
Advertisers
11
Homepages
32
Fresh SV
71,300
Universal search in SERP
601
Similar keywords
qr code maker
52,000
animal crossing qr code maker
2,000
free qr code maker
2,000
qr code maker free
1,900
mini qr code maker
380
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
View All
13
Questions
How to maker qr code for cia
70
How to make qr codes with brother label maker
70
How to make a qr code qr code maker
50
How to post qr codes online mii maker
40
How to get qr code watch maker
28
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
View All
84,638,180
Also ranks for
qr code generator free
43,300
free qr code generator
34,400
create a qr code
17,100
create qr code
29,500
qr generator
25,300
Overview: google qr code generator
View Cached Page
Create Report
8,000
Monthly Volume
5,100
Estimated Clicks
Clicked any result
Low
64%
High
Mobile vs Desktop
Mobile
Desktop
Low Mobile
Paid clicks
Low
03%
2%
High
13%+
Difficulty
52
Google Provided Data
Expand
Cost Per Click
$3.53
Monthly Cost
$0.00
Search Volume
2,900
Advertisers
9
Homepages
20
Fresh SV
11,500
Universal search in SERP
336
Similar keywords
google qr code generator
8,000
qr code generator google
4,800
free qr code generator google
720
qr code generator google form
440
google form qr code generator
320
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
View All
59
Questions
Does google have a qr code generator?
135
How to generate qr code for google authenticator
100
Does google have a qr code generator for contact info?
90
How to generate qr code for google form
90
How to generate a qr code for a google form
90
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
View All
27,918,916
Also ranks for
qr code generator free
43,300
qr code maker
52,000
create qr code
29,500
qr generator
25,300
free qr code generator
34,400
Overview: create qr code
View Cached Page
Create Report
29,500
Monthly Volume
26,400
Estimated Clicks
Clicked any result
Low
89%
High
Mobile vs Desktop
Mobile
Desktop
Not Enough Data
Paid clicks
Low
03%
16%
High
13%+
Difficulty
52
Google Provided Data
Expand
Cost Per Click
$3.32
Monthly Cost
$1,406
Search Volume
14,800
Advertisers
15
Homepages
25
Fresh SV
50,000
Universal search in SERP
3,223
Similar keywords
create qr code
29,500
create a qr code
17,100
How to create a qr code
9,200
create qr code free
5,500
How to create a qr code free
1,400
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
View All
1,110
Questions
How to create a qr code
9,200
How to create a qr code free
1,400
How to create qr codes
1,300
How to create qr code
1,300
How to create a qr code for a google form
1,100
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
View All
18,733,729
Also ranks for
qr code generator free
43,300
qr code maker
52,000
create a qr code
17,100
free qr code generator
34,400
qr generator
25,300
Overview: qr code with logo
View Cached Page
Create Report
1,600
Monthly Volume
1,300
Estimated Clicks
Clicked any result
Low
81%
High
Mobile vs Desktop
Mobile
Desktop
Low Mobile
Paid clicks
Low
03%
8%
High
13%+
Difficulty
48
Google Provided Data
Expand
Cost Per Click
$0.00
Monthly Cost
$0.00
Search Volume
-
Advertisers
1
Homepages
25
Fresh SV
2,900
Universal search in SERP
291
Similar keywords
qr code generator with logo
4,100
qr code with logo
1,600
create qr code with logo
440
qr code generator with logo free
400
android studio qr code generator with logo
300
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
View All
17
Questions
How to make qr code with logo
40
How to design qr code with logo
40
How to create qr code with logo
28
How to make own qr code with logo
24
How to create your own qr code with logo
24
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
View All
37,452,720
Also ranks for
qr code maker
52,000
qr code generator free
43,300
create qr code
29,500
free qr code generator
34,400
create a qr code
17,100
Overview: spotify code generator
View Cached Page
Create Report
840
Monthly Volume
630
Estimated Clicks
Clicked any result
Low
76%
High
Mobile vs Desktop
Mobile
Desktop
Not Enough Data
Paid clicks
Not Enough Data
Difficulty
21
Google Provided Data
Expand
Cost Per Click
$0.00
Monthly Cost
$0.00
Search Volume
90
Advertisers
0
Homepages
5
Fresh SV
2,400
Universal search in SERP
106
Similar keywords
spotify code generator
840
spotify premium code generator no survey
420
spotify premium codes generator
300
spotify premium code generator no survey 2017
290
spotify code generator 2019
290
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
View All
5
Questions
How to generate spotify code
90
How to get spotify premium code free generator 2018
70
How to get code for spotify premium spotify premium free code generator
24
Where is spotify pin code generator?
12
How to generate a spotify code
-
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
Log in to see all results
--
View All
82,799,750
Also ranks for
qr code maker
52,000
spotify codes
7,100
spotify code
5,700
qrcode
11,900
create qr code
29,500

506
seo-strategy.md Normal file
View File

@@ -0,0 +1,506 @@
## A) Executive summary (max 12 bullets)
* **Win fast (060 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 → heres 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**: dont “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; heres 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/` (Chromes 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)
* 24 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 3060 days
### Launch set (minimum viable topical authority)
**Week 13 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 its step-based and grounded in official Chrome documentation. ([Google Hilfe][2])
---
## F) 90-day execution roadmap (week-by-week)
### Weeks 12: 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 1020 additional `/tools/{type}/` pages (WiFi, email, SMS, etc.) only if they meet your thin-content threshold.
* Add 1020 `/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 1213: 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)
* 23 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 Chromes 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 23 “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"

743
seo_issues_new.md Normal file
View File

@@ -0,0 +1,743 @@
Issues
/
Multiple H1 tags
Why and how to fix
Submit to IndexNow
Create new issue
All URLs
Pages
Resources
Content
Links
Redirects
Indexability
Sitemaps
Ahrefs metrics
Word or phrase
URL
Advanced filter
Crawl history
Hide chart
12 Jan
13 Jan
13 Jan
14 Jan
14 Jan
0
1
2
3
4
All filter results
All filter results
3
Lost from filter results
0
Lost
0
Patches
Changes: Don't show
Columns
Export
PR
URL
Organic traffic
HTTP status code
Depth
H1
H1 length
No. of H1
Is indexable page
40
html
QR Master: Dynamic QR Generator
https://www.qrmaster.net/
0
200
0
QR Master: Dynamic QR Code Generator with Analytics
Create QR Codes That Work Everywhere
51
36
2
Yes
38
html
Pricing Plans | QR Master
https://www.qrmaster.net/pricing
0
200
0
QR Master Pricing Choose Your QR Code Plan
Choose Your Plan
44
16
2
Yes
38
html
QR Code Erstellen Kostenlos | QR Master
https://www.qrmaster.net/qr-code-erstellen
0
200
0
QR Code Erstellen Kostenloser QR Code Generator mit Tracking
Erstellen Sie QR-Codes, die überall funktionieren
62
49
2
Yes
Showing 3 of 3
Issues
/
Open Graph tags missing
Why and how to fix
Submit to IndexNow
Create new issue
All URLs
Pages
Resources
Content
Links
Redirects
Indexability
Sitemaps
Ahrefs metrics
Word or phrase
URL
Advanced filter
Crawl history
Hide chart
12 Jan
13 Jan
13 Jan
14 Jan
14 Jan
0
1
2
3
4
All filter results
All filter results
2
Lost from filter results
0
Lost
0
Patches
Changes: Don't show
Columns
Export
PR
URL
Organic traffic
Is valid Open graph
Open graph attributes
Open graph values
Depth
Is indexable page
No. of all inlinks
39
html
Login to QR Master | Access Your Dashboard
https://www.qrmaster.net/login
0
0
Yes
38
38
html
Create Free Account | QR Master
https://www.qrmaster.net/signup
0
0
Yes
37
Showing 2 of 2
Issues
/
X (Twitter) card missing
Why and how to fix
Submit to IndexNow
Create new issue
All URLs
Pages
Resources
Content
Links
Redirects
Indexability
Sitemaps
Ahrefs metrics
Word or phrase
URL
Advanced filter
Crawl history
Hide chart
12 Jan
13 Jan
13 Jan
14 Jan
14 Jan
0
1
2
3
4
All filter results
All filter results
2
Lost from filter results
0
Lost
0
Patches
Changes: Don't show
Columns
Export
PR
URL
Organic traffic
Is valid X (Twitter) card
X (Twitter) card attributes
X (Twitter) card values
Depth
Is indexable page
No. of all inlinks
39
html
Login to QR Master | Access Your Dashboard
https://www.qrmaster.net/login
0
0
Yes
38
38
html
Create Free Account | QR Master
https://www.qrmaster.net/signup
0
0
Yes
37
Showing 2 of 2
Issues
/
Slow page
Why and how to fix
Submit to IndexNow
Create new issue
All URLs
Pages
Resources
Content
Links
Redirects
Indexability
Sitemaps
Ahrefs metrics
Word or phrase
URL
Advanced filter
Crawl history
Hide chart
12 Jan
13 Jan
13 Jan
14 Jan
14 Jan
0
2
4
6
8
All filter results
All filter results
8
Lost from filter results
0
Lost
0
Patches
Changes: Don't show
Columns
Export
PR
URL
Organic traffic
HTTP status code
Size (bytes)
Time to first byte (ms)
Loading time (ms)
Depth
Is indexable page
No. of all inlinks
First found at
39
html
QR Master FAQ: Dynamic & Bulk QR | QR Master
https://www.qrmaster.net/faq
0
200
9,957
3,291
3,295
0
Yes
38
38
html
Free WhatsApp QR Code Generator | Start Chats Instantly | QR Master
https://www.qrmaster.net/tools/whatsapp-qr-code
0
200
17,196
22,105
22,108
0
Yes
36
38
html
QR Insights: Latest QR Strategies | QR Master
https://www.qrmaster.net/blog
0
200
9,739
23,152
23,153
0
Yes
36
38
html
Free PayPal QR Code Generator | Accept Payments Instantly | QR Master
https://www.qrmaster.net/tools/paypal-qr-code
0
200
17,661
16,253
16,254
0
Yes
36
38
html
Free vCard QR Code Generator | QR Master
https://www.qrmaster.net/tools/vcard-qr-code
0
200
19,120
17,305
17,328
0
Yes
36
38
html
Free Text QR Code Generator | Text zu QR Code | QR Master
https://www.qrmaster.net/tools/text-qr-code
0
200
17,089
27,995
28,036
0
Yes
36
38
html
Free Crypto QR Code Generator | Krypto QR Code Erstellen | QR Master
https://www.qrmaster.net/tools/crypto-qr-code
0
200
17,093
10,033
10,069
0
Yes
36
18
html
Newsletter Admin | QR Master | QR Master
https://www.qrmaster.net/newsletter
0
200
7,334
11,826
11,830
1
No
36
https://www.qrmaster.net/
Showing 8 of 8
Issues
/
Structured data has schema.org validation error
Why and how to fix
Submit to IndexNow
Create new issue
All URLs
Pages
Resources
Content
Links
Redirects
Indexability
Sitemaps
Ahrefs metrics
Word or phrase
URL
Advanced filter
Crawl history
Hide chart
12 Jan
13 Jan
13 Jan
14 Jan
14 Jan
0
10
20
30
40
All filter results
All filter results
12
Lost from filter results
25
Lost
1
Patches
Changes: Don't show
Columns
Export
PR
URL
Organic traffic
Schema items
Structured data issues
Is indexable page
38
html
QR Insights: Latest QR Strategies | QR Master
https://www.qrmaster.net/blog
0
BreadcrumbList
Organization
WebSite
Schema.org validation error
View issues
Yes
38
html
QR Code Tracking & Analytics - Track Scans | QR Master | QR Master
https://www.qrmaster.net/qr-code-tracking
0
BreadcrumbList
HowTo
Organization
SoftwareApplication
WebSite
Schema.org validation error
View issues
Yes
38
html
Bulk QR Code Generator | Create from Excel | QR Master | QR Master
https://www.qrmaster.net/bulk-qr-code-generator
0
BreadcrumbList
FAQPage
HowTo
Organization
SoftwareApplication
All 6
Schema.org validation error
View issues
Yes
24
html
Free vCard QR Generator: Digital Cards | QR Master
https://www.qrmaster.net/blog/vcard-qr-code-generator
0
BlogPosting
BreadcrumbList
HowTo
Organization
WebSite
Schema.org validation error
View issues
Yes
24
html
Restaurant Menu QR Codes: 2025 Guide | QR Master
https://www.qrmaster.net/blog/qr-code-restaurant-menu
0
BlogPosting
BreadcrumbList
HowTo
Organization
WebSite
Schema.org validation error
View issues
Yes
24
html
QR Code Analytics: The Complete Guide | QR Master
https://www.qrmaster.net/blog/qr-code-analytics
0
BlogPosting
BreadcrumbList
HowTo
Organization
WebSite
Schema.org validation error
View issues
Yes
24
html
Dynamic vs Static QR Codes: The Ultimate Comparison | QR Master
https://www.qrmaster.net/blog/dynamic-vs-static-qr-codes
0
BlogPosting
BreadcrumbList
Organization
WebSite
Schema.org validation error
View issues
Yes
24
html
How to Generate Bulk QR Codes from Excel | QR Master
https://www.qrmaster.net/blog/bulk-qr-code-generator-excel
0
BlogPosting
BreadcrumbList
HowTo
Organization
WebSite
Schema.org validation error
View issues
Yes
24
html
QR Code Print Size Guide: Minimum Sizes for Every Use Case | QR Master
https://www.qrmaster.net/blog/qr-code-print-size-guide
0
BlogPosting
BreadcrumbList
Organization
WebSite
Schema.org validation error
View issues
Yes
24
html
Best QR Code Generator for Small Business 2025 | QR Master
https://www.qrmaster.net/blog/qr-code-small-business
0
BlogPosting
BreadcrumbList
Organization
WebSite
Schema.org validation error
View issues
Yes
24
html
QR Code Tracking: Complete Guide 2025 | QR Master
https://www.qrmaster.net/blog/qr-code-tracking-guide-2025
0
BlogPosting
BreadcrumbList
HowTo
Organization
WebSite
Schema.org validation error
View issues
Yes
21
html
Dynamic QR Code Generator | Edit & Track QR | QR Master | QR Master
https://www.qrmaster.net/dynamic-qr-code-generator
0
BreadcrumbList
FAQPage
HowTo
Organization
SoftwareApplication
All 6
Schema.org validation error
View issues
Yes
Showing 12 of 12

68
seo_tasks.md Normal file
View File

@@ -0,0 +1,68 @@
# SEO Remaining Tasks
This document contains a list of all SEO issues identified in the Ahrefs and Seobility reports that still need to be addressed in the codebase.
## 1. Content & Metadata Issues
- [ ] **Fix Missing H1 Tags on Core Pages**
- Affected Pages: `/`, `/pricing`, `/login`, `/signup`, `/faq`, `/privacy`, `/newsletter`, `/create`.
- **Issue:** These pages are Client Side Rendered (CSR) or lack a server-side `<h1>` tag in the initial HTML payload.
- **Action:** Add an `<h1>` (visible or `sr-only`) to the Server Component or ensure the Client Component renders it immediately.
- [ ] **Fix Low Word Count / Thin Content**
- Affected Pages: `/`, `/pricing`, `/login`, `/signup`, `/faq`, `/privacy`.
- **Issue:** Crawlers see 0 words on these pages because the content is rendered via JavaScript (`use client`).
- **Action:** Implement Server Side Rendering (SSR) for the main content or add `sr-only` semantic fallbacks for crawlers.
- [ ] **Expand Meta Descriptions**
- Affected Pages: `/`, `/pricing`, `/login`, `/signup`, `/newsletter`, `/privacy`, `/faq`, `/qr-code-erstellen`, Blog entries.
- **Issue:** Meta descriptions are too short (< 80 characters) or duplicates.
- **Action:** Update `generateMetadata` in `page.tsx` files to have descriptions between 110-160 characters.
- [ ] **Fix Page Titles**
- Affected Pages: `/qr-code-erstellen`, Blog posts.
- **Issue:** Titles are too long (> 60-70 characters) or have keyword stuffing/repetition.
- **Action:** Shorten titles to be concise and click-worthy, avoiding simple concatenation of keywords.
- [ ] **Fix Duplicate Content & Titles**
- Affected Pages: `/pricing`, `/newsletter`, `/login`, `/signup`.
- **Issue:** These pages likely share the same metadata or layout without unique content in the crawler's eyes.
- **Action:** Ensure each page has unique `title` and `description` in `generateMetadata`.
## 2. Technical SEO
- [ ] **Fix 307 Redirects to 301**
- **Issue:** Blog posts and legacy URLs are redirecting with status `307` (Temporary) instead of `301` (Permanent).
- **Affected Paths:**
- `/blog/vcard-qr-code-generator` -> `/create`
- `/blog/qr-code-restaurant-menu` -> `/dynamic-qr-code-generator`
- `/blog/bulk-qr-code-generator` -> `/bulk-qr-code-generator`
- **Action:** Locate these redirects (likely in `next.config.js` or `middleware.ts` or component logic) and change status to 301.
- [ ] **Fix Indexing of Protected/Private Pages**
- **Issue:** Ahrefs is flagging `/pricing` as "Indexable" but likely encountering issues. Verify if `/pricing` should be indexed.
- **Action:** Ensure public pages like Pricing are NOT in `(app)` group which has `noindex` in layout, or override the `robots` meta in `pricing/page.tsx`.
- [ ] **Fix "No Outgoing Links"**
- **Issue:** Crawlers see pages as dead ends because links are injected via JS.
- **Action:** Ensure standard `<a>` or `Link` tags are present in the initial HTML.
## 3. Link Profile
- [ ] **Improve Internal Link Texts**
- **Issue:** "Click here" or full URL used as anchor text.
- **Action:** Use descriptive keywords for links (e.g., "See our pricing" instead of "Click here").
- [ ] **Fix Alternate Links (hreflang)**
- **Issue:** Mismatch in `hreflang` or missing self-referencing canonicals.
- **Action:** Verify `alternates` configuration in `layout.tsx` or `page.tsx` matches the actual URL structure.
## 4. Performance & Images
- [ ] **Optimize Large Images**
- **Files:** `/blog/1-boy.png`, `/blog/2-body.png` (~4MB each).
- **Action:** Convert to WebP/AVIF and resize to < 500KB.
- [ ] **Improve Page Speed**
- **Issue:** Response time for `/qr-code-erstellen` is slow.
- **Action:** Check for expensive server-side operations or optimize database queries.

22
seobility-findings.md Normal file
View File

@@ -0,0 +1,22 @@
# Seobility SEO Findings & Status
## Structure & Internal Linking
- [FIXED] **Improve Internal Link Texts**
- *Status:* Replaced "Read more" with "Read Article" in `blog/page.tsx`.
- [VERIFIED] **Pages with few internal links (9 pages)**
- *Status:* Core pages. `MarketingLayout` ensures Footer/Nav links exist on all these pages. Design choice.
## Onpage & Content
- [PARTIAL] **Problems with Page Titles (13 pages)**
- *Fixed:* Word repetition (Duplication).
- *Remaining:* "Too long" titles (e.g. `QR Code Analytics: Track...`).
- [VERIFIED] **Keywords not in text**
- *Action:* Content reviewed. Titles match page intent. Modern SEO prefers natural language over exact keyword stuffing.
- [RESOLVED] **Identical HTML Pages**
- *Status:* `privacy`, `faq`, `newsletter`. Verified as False Positives (Unique content found) or Admin Page confusion (`newsletter`).
## Technical
- [VERIFIED] **H1 Headings**
- *Status:* **False Positive in Report**. Code review confirms `<h1 className="sr-only">` tags are present on all core pages (Login, Signup, etc.). Crawlers can read this.
- [FIXED] **Duplicate Meta Descriptions**
- *Status:* Addressed by fixing metadata on core pages.

13
service_account.json Normal file
View File

@@ -0,0 +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"
}

View File

@@ -1,11 +0,0 @@
export default function AuthLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<div className="min-h-screen bg-gradient-to-br from-primary-50 to-white">
{children}
</div>
);
}

View File

@@ -1,187 +0,0 @@
'use client';
import React, { useState, useEffect } from 'react';
import { useRouter, useSearchParams } from 'next/navigation';
import Link from 'next/link';
import { Card, CardHeader, CardTitle, CardContent } from '@/components/ui/Card';
import { Input } from '@/components/ui/Input';
import { Button } from '@/components/ui/Button';
import { useTranslation } from '@/hooks/useTranslation';
import { useCsrf } from '@/hooks/useCsrf';
export default function LoginPage() {
const router = useRouter();
const searchParams = useSearchParams();
const { t } = useTranslation();
const { fetchWithCsrf, loading: csrfLoading } = useCsrf();
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const [loading, setLoading] = useState(false);
const [error, setError] = useState('');
const handleSubmit = async (e: React.FormEvent) => {
e.preventDefault();
setLoading(true);
setError('');
try {
const response = await fetchWithCsrf('/api/auth/simple-login', {
method: 'POST',
body: JSON.stringify({ email, password }),
});
const data = await response.json();
if (response.ok && data.success) {
// Store user in localStorage for client-side
localStorage.setItem('user', JSON.stringify(data.user));
// Track successful login with PostHog
try {
const { identifyUser, trackEvent } = await import('@/components/PostHogProvider');
identifyUser(data.user.id, {
email: data.user.email,
name: data.user.name,
plan: data.user.plan || 'FREE',
});
trackEvent('user_login', {
method: 'email',
email: data.user.email,
});
} catch (error) {
console.error('PostHog tracking error:', error);
}
// Check for redirect parameter
const redirectUrl = searchParams.get('redirect') || '/dashboard';
router.push(redirectUrl);
router.refresh();
} else {
setError(data.error || 'Invalid email or password');
}
} catch (err) {
setError('An error occurred. Please try again.');
} finally {
setLoading(false);
}
};
const handleGoogleSignIn = () => {
// Redirect to Google OAuth API route
window.location.href = '/api/auth/google';
};
return (
<div className="min-h-screen bg-gradient-to-br from-primary-50 to-white flex items-center justify-center p-4">
<div className="w-full max-w-md">
<div className="text-center mb-8">
<Link href="/" className="inline-flex items-center space-x-2 mb-6">
<img src="/logo.svg" alt="QR Master" className="w-10 h-10" />
<span className="text-2xl font-bold text-gray-900">QR Master</span>
</Link>
<h1 className="text-3xl font-bold text-gray-900">Welcome Back</h1>
<p className="text-gray-600 mt-2">Sign in to your account</p>
<Link href="/" className="text-sm text-primary-600 hover:text-primary-700 font-medium mt-2 inline-block border border-primary-600 hover:border-primary-700 px-4 py-2 rounded-lg transition-colors">
Back to Home
</Link>
</div>
<Card>
<CardContent className="p-6">
<form onSubmit={handleSubmit} className="space-y-4">
{error && (
<div className="bg-red-50 text-red-600 p-3 rounded-lg text-sm">
{error}
</div>
)}
<Input
label="Email"
type="email"
value={email}
onChange={(e) => setEmail(e.target.value)}
placeholder="you@example.com"
required
/>
<Input
label="Password"
type="password"
value={password}
onChange={(e) => setPassword(e.target.value)}
placeholder="••••••••"
required
/>
<div className="flex items-center justify-between">
<label className="flex items-center">
<input type="checkbox" className="mr-2" />
<span className="text-sm text-gray-600">Remember me</span>
</label>
<Link href="/forgot-password" className="text-sm text-primary-600 hover:text-primary-700">
Forgot password?
</Link>
</div>
<Button type="submit" className="w-full" loading={loading} disabled={csrfLoading || loading}>
{csrfLoading ? 'Loading...' : 'Sign In'}
</Button>
<div className="relative my-6">
<div className="absolute inset-0 flex items-center">
<div className="w-full border-t border-gray-300"></div>
</div>
<div className="relative flex justify-center text-sm">
<span className="px-2 bg-white text-gray-500">Or continue with</span>
</div>
</div>
<Button
type="button"
variant="outline"
className="w-full"
onClick={handleGoogleSignIn}
>
<svg className="w-5 h-5 mr-2" viewBox="0 0 24 24">
<path
fill="#4285F4"
d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
/>
<path
fill="#34A853"
d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
/>
<path
fill="#FBBC05"
d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
/>
<path
fill="#EA4335"
d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
/>
</svg>
Sign in with Google
</Button>
</form>
<div className="mt-6 text-center">
<p className="text-sm text-gray-600">
Don't have an account?{' '}
<Link href="/signup" className="text-primary-600 hover:text-primary-700 font-medium">
Sign up
</Link>
</p>
</div>
</CardContent>
</Card>
<p className="text-center text-sm text-gray-500 mt-6">
By signing in, you agree to our{' '}
<Link href="/privacy" className="text-primary-600 hover:text-primary-700">
Privacy Policy
</Link>
</p>
</div>
</div>
);
}

View File

@@ -1,208 +0,0 @@
'use client';
import React, { useState } from 'react';
import { useRouter } from 'next/navigation';
import Link from 'next/link';
import { Card, CardHeader, CardTitle, CardContent } from '@/components/ui/Card';
import { Input } from '@/components/ui/Input';
import { Button } from '@/components/ui/Button';
import { useTranslation } from '@/hooks/useTranslation';
import { useCsrf } from '@/hooks/useCsrf';
export default function SignupPage() {
const router = useRouter();
const { t } = useTranslation();
const { fetchWithCsrf } = useCsrf();
const [name, setName] = useState('');
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const [confirmPassword, setConfirmPassword] = useState('');
const [loading, setLoading] = useState(false);
const [error, setError] = useState('');
const handleSubmit = async (e: React.FormEvent) => {
e.preventDefault();
setLoading(true);
setError('');
if (password !== confirmPassword) {
setError('Passwords do not match');
setLoading(false);
return;
}
if (password.length < 8) {
setError('Password must be at least 8 characters');
setLoading(false);
return;
}
try {
const response = await fetchWithCsrf('/api/auth/signup', {
method: 'POST',
body: JSON.stringify({ name, email, password }),
});
const data = await response.json();
if (response.ok && data.success) {
// Store user in localStorage for client-side
localStorage.setItem('user', JSON.stringify(data.user));
// Track successful signup with PostHog
try {
const { identifyUser, trackEvent } = await import('@/components/PostHogProvider');
identifyUser(data.user.id, {
email: data.user.email,
name: data.user.name,
plan: data.user.plan || 'FREE',
signupMethod: 'email',
});
trackEvent('user_signup', {
method: 'email',
email: data.user.email,
});
} catch (error) {
console.error('PostHog tracking error:', error);
}
// Redirect to dashboard
router.push('/dashboard');
router.refresh();
} else {
setError(data.error || 'Failed to create account');
}
} catch (err) {
setError('An error occurred. Please try again.');
} finally {
setLoading(false);
}
};
const handleGoogleSignIn = () => {
// Redirect to Google OAuth API route
window.location.href = '/api/auth/google';
};
return (
<div className="min-h-screen bg-gradient-to-br from-primary-50 to-white flex items-center justify-center p-4">
<div className="w-full max-w-md">
<div className="text-center mb-8">
<Link href="/" className="inline-flex items-center space-x-2 mb-6">
<img src="/logo.svg" alt="QR Master" className="w-10 h-10" />
<span className="text-2xl font-bold text-gray-900">QR Master</span>
</Link>
<h1 className="text-3xl font-bold text-gray-900">Create Account</h1>
<p className="text-gray-600 mt-2">Start creating QR codes in seconds</p>
<Link href="/" className="text-sm text-primary-600 hover:text-primary-700 font-medium mt-2 inline-block border border-primary-600 hover:border-primary-700 px-4 py-2 rounded-lg transition-colors">
Back to Home
</Link>
</div>
<Card>
<CardContent className="p-6">
<form onSubmit={handleSubmit} className="space-y-4">
{error && (
<div className="bg-red-50 text-red-600 p-3 rounded-lg text-sm">
{error}
</div>
)}
<Input
label="Full Name"
type="text"
value={name}
onChange={(e) => setName(e.target.value)}
placeholder="John Doe"
required
/>
<Input
label="Email"
type="email"
value={email}
onChange={(e) => setEmail(e.target.value)}
placeholder="you@example.com"
required
/>
<Input
label="Password"
type="password"
value={password}
onChange={(e) => setPassword(e.target.value)}
placeholder="••••••••"
required
/>
<Input
label="Confirm Password"
type="password"
value={confirmPassword}
onChange={(e) => setConfirmPassword(e.target.value)}
placeholder="••••••••"
required
/>
<Button type="submit" className="w-full" loading={loading}>
Create Account
</Button>
<div className="relative my-6">
<div className="absolute inset-0 flex items-center">
<div className="w-full border-t border-gray-300"></div>
</div>
<div className="relative flex justify-center text-sm">
<span className="px-2 bg-white text-gray-500">Or continue with</span>
</div>
</div>
<Button
type="button"
variant="outline"
className="w-full"
onClick={handleGoogleSignIn}
>
<svg className="w-5 h-5 mr-2" viewBox="0 0 24 24">
<path
fill="#4285F4"
d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
/>
<path
fill="#34A853"
d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
/>
<path
fill="#FBBC05"
d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
/>
<path
fill="#EA4335"
d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
/>
</svg>
Sign up with Google
</Button>
</form>
<div className="mt-6 text-center">
<p className="text-sm text-gray-600">
Already have an account?{' '}
<Link href="/login" className="text-primary-600 hover:text-primary-700 font-medium">
Sign in
</Link>
</p>
</div>
</CardContent>
</Card>
<p className="text-center text-sm text-gray-500 mt-6">
By signing up, you agree to our{' '}
<Link href="/privacy" className="text-primary-600 hover:text-primary-700">
Privacy Policy
</Link>
</p>
</div>
</div>
);
}

Some files were not shown because too many files have changed in this diff Show More