feat: implement blog infrastructure, add SEO keyword planning, and create footer component
This commit is contained in:
51
public/blog/teams-qr-code.svg
Normal file
51
public/blog/teams-qr-code.svg
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<svg width="1600" height="900" viewBox="0 0 1600 900" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="1600" height="900" rx="48" fill="url(#bg)"/>
|
||||||
|
<circle cx="1320" cy="160" r="220" fill="#7C7DFF" fill-opacity="0.18"/>
|
||||||
|
<circle cx="1260" cy="720" r="260" fill="#4F52D9" fill-opacity="0.16"/>
|
||||||
|
<rect x="84" y="88" width="1432" height="724" rx="36" fill="#FFFFFF" fill-opacity="0.88"/>
|
||||||
|
<rect x="132" y="136" width="660" height="628" rx="32" fill="#F6F7FF"/>
|
||||||
|
<rect x="180" y="188" width="118" height="118" rx="28" fill="#6264A7"/>
|
||||||
|
<path d="M214 218H284V236H258V320H240V236H214V218Z" fill="white"/>
|
||||||
|
<rect x="330" y="194" width="250" height="28" rx="14" fill="#1E293B"/>
|
||||||
|
<rect x="330" y="242" width="178" height="18" rx="9" fill="#64748B"/>
|
||||||
|
<rect x="180" y="350" width="564" height="150" rx="28" fill="white"/>
|
||||||
|
<rect x="212" y="382" width="214" height="86" rx="20" fill="#EEF2FF"/>
|
||||||
|
<rect x="454" y="382" width="258" height="18" rx="9" fill="#334155"/>
|
||||||
|
<rect x="454" y="416" width="210" height="16" rx="8" fill="#94A3B8"/>
|
||||||
|
<rect x="454" y="448" width="182" height="16" rx="8" fill="#CBD5E1"/>
|
||||||
|
<rect x="180" y="532" width="564" height="184" rx="28" fill="#1E1B4B"/>
|
||||||
|
<rect x="216" y="568" width="200" height="112" rx="24" fill="#312E81"/>
|
||||||
|
<rect x="452" y="568" width="228" height="20" rx="10" fill="white"/>
|
||||||
|
<rect x="452" y="606" width="194" height="16" rx="8" fill="#C7D2FE"/>
|
||||||
|
<rect x="452" y="638" width="152" height="16" rx="8" fill="#A5B4FC"/>
|
||||||
|
<rect x="852" y="136" width="616" height="628" rx="32" fill="#F8FAFC"/>
|
||||||
|
<rect x="916" y="200" width="488" height="488" rx="36" fill="white"/>
|
||||||
|
<rect x="964" y="248" width="112" height="112" rx="18" fill="#0F172A"/>
|
||||||
|
<rect x="984" y="268" width="72" height="72" rx="10" fill="white"/>
|
||||||
|
<rect x="1244" y="248" width="112" height="112" rx="18" fill="#0F172A"/>
|
||||||
|
<rect x="1264" y="268" width="72" height="72" rx="10" fill="white"/>
|
||||||
|
<rect x="964" y="516" width="112" height="112" rx="18" fill="#0F172A"/>
|
||||||
|
<rect x="984" y="536" width="72" height="72" rx="10" fill="white"/>
|
||||||
|
<rect x="1112" y="248" width="44" height="44" rx="8" fill="#0F172A"/>
|
||||||
|
<rect x="1176" y="248" width="44" height="44" rx="8" fill="#0F172A"/>
|
||||||
|
<rect x="1112" y="312" width="44" height="44" rx="8" fill="#0F172A"/>
|
||||||
|
<rect x="1176" y="312" width="108" height="44" rx="8" fill="#0F172A"/>
|
||||||
|
<rect x="1112" y="392" width="44" height="44" rx="8" fill="#0F172A"/>
|
||||||
|
<rect x="1176" y="392" width="44" height="108" rx="8" fill="#0F172A"/>
|
||||||
|
<rect x="1240" y="392" width="44" height="44" rx="8" fill="#0F172A"/>
|
||||||
|
<rect x="1304" y="392" width="44" height="44" rx="8" fill="#0F172A"/>
|
||||||
|
<rect x="1112" y="456" width="108" height="44" rx="8" fill="#0F172A"/>
|
||||||
|
<rect x="1304" y="456" width="44" height="44" rx="8" fill="#0F172A"/>
|
||||||
|
<rect x="1112" y="520" width="44" height="44" rx="8" fill="#0F172A"/>
|
||||||
|
<rect x="1240" y="520" width="108" height="44" rx="8" fill="#0F172A"/>
|
||||||
|
<rect x="1112" y="584" width="172" height="44" rx="8" fill="#0F172A"/>
|
||||||
|
<rect x="1304" y="584" width="44" height="44" rx="8" fill="#0F172A"/>
|
||||||
|
<rect x="916" y="712" width="252" height="20" rx="10" fill="#334155"/>
|
||||||
|
<rect x="916" y="744" width="188" height="16" rx="8" fill="#94A3B8"/>
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="bg" x1="160" y1="96" x2="1464" y2="804" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#4F46E5"/>
|
||||||
|
<stop offset="1" stop-color="#0F172A"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.4 KiB |
127
seo-keywords.csv
Normal file
127
seo-keywords.csv
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
Keyword,Cluster,Typ,Volumen_Min,Volumen_Max,Wettbewerb,CPC_Low_EUR,CPC_High_EUR,YoY_3M,YoY_12M
|
||||||
|
dynamic qr code,A_Dynamic,Eingabe,1000,10000,Mittel,1.39,10.72,0%,0%
|
||||||
|
dynamic qr code generator,A_Dynamic,Eingabe,1000,10000,Mittel,2.17,13.15,0%,0%
|
||||||
|
dynamic qr code free,A_Dynamic,Eingabe,100,1000,Hoch,1.45,4.67,0%,0%
|
||||||
|
editable qr code,A_Dynamic,Eingabe,100,1000,Mittel,0.92,5.78,0%,0%
|
||||||
|
qr code that can be changed,A_Dynamic,Eingabe,10,100,Hoch,2.01,12.55,0%,0%
|
||||||
|
qr code redirect,A_Dynamic,Eingabe,100,1000,Mittel,1.10,5.81,0%,-90%
|
||||||
|
dynamic qr code generator free,A_Dynamic,Idee,100,1000,Hoch,1.42,5.09,0%,0%
|
||||||
|
best dynamic qr code generator,A_Dynamic,Idee,100,1000,Hoch,2.90,23.86,0%,0%
|
||||||
|
create dynamic qr code,A_Dynamic,Idee,1000,10000,Mittel,2.17,13.15,0%,0%
|
||||||
|
dynamic qr,A_Dynamic,Idee,100,1000,Mittel,1.46,9.35,0%,0%
|
||||||
|
create a dynamic qr code,A_Dynamic,Idee,10,100,Hoch,2.60,11.29,0%,-90%
|
||||||
|
static qr codes,A_Dynamic,Idee,1000,10000,Mittel,0.84,3.55,+900%,+900%
|
||||||
|
best free dynamic qr code generator,A_Dynamic,Idee,10,100,Mittel,1.25,4.21,0%,0%
|
||||||
|
dynamic qr code tracking,A_Dynamic,Idee,10,100,Mittel,1.55,16.76,0%,0%
|
||||||
|
editable qr code generator,A_Dynamic,Idee,10,100,Mittel,2.18,8.50,0%,0%
|
||||||
|
cheapest dynamic qr code generator,A_Dynamic,Idee,10,100,Mittel,1.88,8.33,0%,0%
|
||||||
|
create dynamic qr code free,A_Dynamic,Idee,100,1000,Hoch,1.42,5.09,0%,0%
|
||||||
|
best dynamic qr code,A_Dynamic,Idee,10,100,Hoch,1.84,15.00,0%,0%
|
||||||
|
dynamic qr code pricing,A_Dynamic,Idee,10,100,Mittel,2.84,12.13,0%,0%
|
||||||
|
bitly dynamic qr code,A_Dynamic,Idee,10,100,Gering,2.08,9.47,+900%,+900%
|
||||||
|
dynamic qr generator,A_Dynamic,Idee,1000,10000,Mittel,2.17,13.15,0%,0%
|
||||||
|
unlimited dynamic qr codes,A_Dynamic,Idee,10,100,Hoch,5.71,30.70,0%,0%
|
||||||
|
buy dynamic qr code,A_Dynamic,Idee,10,100,Mittel,5.53,25.95,0%,0%
|
||||||
|
dynamic qr code cost,A_Dynamic,Idee,10,100,Mittel,0.81,5.56,0%,0%
|
||||||
|
dynamic qr code maker,A_Dynamic,Idee,10,100,Mittel,3.35,13.31,0%,0%
|
||||||
|
dynamic qr code creator,A_Dynamic,Idee,1000,10000,Mittel,2.17,13.15,0%,0%
|
||||||
|
make a dynamic qr code,A_Dynamic,Idee,10,100,Hoch,0.85,6.52,0%,0%
|
||||||
|
dynamic qr code generator google,A_Dynamic,Idee,10,100,Mittel,3.22,4.17,0%,0%
|
||||||
|
best dynamic qr code service,A_Dynamic,Idee,10,100,Hoch,6.22,29.63,0%,0%
|
||||||
|
create a dynamic qr code free,A_Dynamic,Idee,10,100,Mittel,2.22,5.72,0%,0%
|
||||||
|
dynamic qr code generators,A_Dynamic,Idee,10,100,Gering,3.13,12.86,0%,0%
|
||||||
|
make dynamic qr code,A_Dynamic,Idee,10,100,Hoch,1.91,11.76,0%,0%
|
||||||
|
generate dynamic qr codes,A_Dynamic,Idee,1000,10000,Mittel,2.17,13.15,0%,0%
|
||||||
|
dynamic url qr code,A_Dynamic,Idee,10,100,Hoch,2.95,9.40,0%,0%
|
||||||
|
free editable qr code generator,A_Dynamic,Idee,10,100,Hoch,1.53,3.37,0%,0%
|
||||||
|
qr code generator editable,A_Dynamic,Idee,10,100,Mittel,1.54,5.43,0%,0%
|
||||||
|
free dynamic qr code generator with logo,A_Dynamic,Idee,10,100,Hoch,1.91,4.46,0%,0%
|
||||||
|
dynamic qr code for free,A_Dynamic,Idee,10,100,Hoch,0.98,2.53,0%,0%
|
||||||
|
edit a qr code,A_Dynamic,Idee,100,1000,Mittel,0.92,5.78,0%,0%
|
||||||
|
free dynamic qr code creator,A_Dynamic,Idee,100,1000,Hoch,1.42,5.09,0%,0%
|
||||||
|
dynamic vcard qr code generator,A_Dynamic,Idee,10,100,Mittel,0.84,5.88,0%,0%
|
||||||
|
qr code redirect to website,A_Dynamic,Idee,10,100,Mittel,1.23,4.04,0%,0%
|
||||||
|
generate dynamic qr code free,A_Dynamic,Idee,10,100,Hoch,0.75,2.85,0%,0%
|
||||||
|
dynamic qr code software,A_Dynamic,Idee,10,100,Gering,,,0%,0%
|
||||||
|
free dynamic qr,A_Dynamic,Idee,100,1000,Hoch,1.45,4.67,0%,0%
|
||||||
|
free dynamic qr generator,A_Dynamic,Idee,100,1000,Hoch,1.42,5.09,0%,0%
|
||||||
|
redirect a qr code,A_Dynamic,Idee,100,1000,Mittel,1.10,5.81,0%,-90%
|
||||||
|
can you change the link of a qr code,A_Dynamic,Idee,10,100,Mittel,1.92,6.32,0%,0%
|
||||||
|
dynamic qr code canva,A_Dynamic,Idee,10,100,Gering,3.16,12.20,0%,0%
|
||||||
|
redirect existing qr code,A_Dynamic,Idee,10,100,Gering,0.85,3.22,0%,0%
|
||||||
|
adobe dynamic qr code generator,A_Dynamic,Idee,10,100,Mittel,1.74,9.45,0%,0%
|
||||||
|
dynamic link qr code,A_Dynamic,Idee,10,100,Hoch,,, +∞,0%
|
||||||
|
dynamic codes,A_Dynamic,Idee,100,1000,Gering,1.97,7.91,0%,0%
|
||||||
|
can i change the url of a qr code,A_Dynamic,Idee,10,100,Mittel,0.59,3.62,0%,0%
|
||||||
|
can you change the url of a qr code,A_Dynamic,Idee,10,100,Mittel,1.80,6.29,0%,0%
|
||||||
|
can you change qr code link,A_Dynamic,Idee,10,100,Mittel,0.85,6.19,0%,0%
|
||||||
|
canva dynamic qr code,A_Dynamic,Idee,10,100,Gering,3.02,11.26,0%,-90%
|
||||||
|
free qr code editor,A_Dynamic,Idee,10,100,Hoch,1.18,3.24,0%,0%
|
||||||
|
can i change a qr code link,A_Dynamic,Idee,10,100,Mittel,0.93,2.73,0%,0%
|
||||||
|
google dynamic qr code generator,A_Dynamic,Idee,10,100,Hoch,2.00,6.75,0%,0%
|
||||||
|
dynamic qr code meaning,A_Dynamic,Idee,10,100,Mittel,0.58,6.17,0%,0%
|
||||||
|
bulk qr code generator,B_Bulk,Eingabe,1000,10000,Gering,0.54,2.61,0%,0%
|
||||||
|
qr code generator excel,B_Bulk,Eingabe,100,1000,Gering,1.17,3.66,+900%,0%
|
||||||
|
generate multiple qr codes,B_Bulk,Eingabe,100,1000,Mittel,0.71,3.49,0%,0%
|
||||||
|
mass qr code generator,B_Bulk,Eingabe,1000,10000,Gering,,,0%,0%
|
||||||
|
qr code tracking,C_Analytics,Eingabe,1000,10000,Mittel,1.73,18.53,+900%,0%
|
||||||
|
qr code analytics,C_Analytics,Eingabe,100,1000,Mittel,2.31,16.39,0%,0%
|
||||||
|
track qr code scans,C_Analytics,Eingabe,100,1000,Mittel,2.22,18.66,+900%,0%
|
||||||
|
trackable qr code,C_Analytics,Idee,100,1000,Mittel,4.81,34.25,0%,0%
|
||||||
|
qr code generator with tracking,C_Analytics,Idee,100,1000,Mittel,3.68,25.65,0%,0%
|
||||||
|
qr code generator and tracker,C_Analytics,Idee,100,1000,Mittel,,,0%,0%
|
||||||
|
qr code menu restaurant,D_Restaurant,Eingabe,100,1000,Mittel,1.83,8.30,0%,-90%
|
||||||
|
restaurant qr code,D_Restaurant,Eingabe,100,1000,Mittel,2.04,12.47,0%,0%
|
||||||
|
digital menu qr code,D_Restaurant,Eingabe,10,100,Gering,,,0%,0%
|
||||||
|
qr code food menu,D_Restaurant,Eingabe,10,100,Mittel,2.12,9.85,0%,0%
|
||||||
|
contactless menu qr,D_Restaurant,Eingabe,10,100,Gering,,,0%,0%
|
||||||
|
custom qr code generator,E_Custom,Eingabe,1000,10000,Gering,1.68,6.06,0%,0%
|
||||||
|
qr code with logo,E_Custom,Eingabe,1000,10000,Hoch,1.20,4.78,0%,0%
|
||||||
|
branded qr code,E_Custom,Eingabe,100,1000,Mittel,1.91,8.85,0%,0%
|
||||||
|
custom qr code with image,E_Custom,Eingabe,100,1000,Mittel,1.23,4.13,0%,0%
|
||||||
|
qr code design,E_Custom,Eingabe,1000,10000,Hoch,0.91,3.27,+900%,0%
|
||||||
|
colored qr code,E_Custom,Eingabe,1000,10000,Gering,0.91,2.99,0%,0%
|
||||||
|
qr code print size,S2_PrintTools,Eingabe,10,100,Gering,,,-90%,0%
|
||||||
|
minimum qr code size,S2_PrintTools,Eingabe,1000,10000,Gering,0.16,3.42,0%,0%
|
||||||
|
qr code poster size,S2_PrintTools,Eingabe,10,100,Gering,,,-100%,0%
|
||||||
|
wifi qr code generator,S2_Tools,Eingabe,1000,10000,Mittel,0.30,1.54,0%,0%
|
||||||
|
vcard qr code generator,S2_Tools,Eingabe,1000,10000,Mittel,0.95,4.16,0%,0%
|
||||||
|
whatsapp qr code generator,S2_Tools,Eingabe,100,1000,Mittel,0.49,2.28,0%,0%
|
||||||
|
email qr code generator,S2_Tools,Eingabe,1000,10000,Gering,0.40,2.34,0%,0%
|
||||||
|
event qr code generator,S2_Tools,Eingabe,10,100,Mittel,1.35,5.36,0%,0%
|
||||||
|
instagram qr code generator,S2_Tools,Eingabe,100,1000,Mittel,0.90,3.15,0%,0%
|
||||||
|
youtube channel qr code,S2_Tools,Eingabe,100,1000,Mittel,0.84,2.52,0%,0%
|
||||||
|
vcard qr code,S2_Tools,Idee,1000,10000,Hoch,0.81,3.51,0%,0%
|
||||||
|
qr code for instagram,S2_Tools,Idee,1000,10000,Mittel,1.25,3.93,+900%,0%
|
||||||
|
vcard generator,S2_Tools,Idee,1000,10000,Mittel,1.01,3.62,+900%,0%
|
||||||
|
contact card qr code,S2_Tools,Idee,100,1000,Hoch,1.99,5.07,0%,0%
|
||||||
|
qr code generator instagram,S2_Tools,Idee,100,1000,Gering,0.53,2.40,0%,0%
|
||||||
|
free vcard qr code generator,S2_Tools,Idee,100,1000,Hoch,1.28,3.92,0%,0%
|
||||||
|
vcard qr,S2_Tools,Idee,1000,10000,Hoch,0.81,3.51,0%,0%
|
||||||
|
create qr code for wifi,S2_Tools,Idee,1000,10000,Mittel,0.30,1.54,0%,0%
|
||||||
|
vcard qr code free,S2_Tools,Idee,100,1000,Hoch,0.71,2.39,0%,-90%
|
||||||
|
create qr code for instagram,S2_Tools,Idee,100,1000,Hoch,1.78,4.16,0%,0%
|
||||||
|
create vcard qr code,S2_Tools,Idee,1000,10000,Mittel,0.95,4.16,0%,0%
|
||||||
|
best qr code generator,S3_Commercial,Eingabe,1000,10000,Hoch,1.85,8.55,0%,0%
|
||||||
|
best qr code generator free,S3_Commercial,Eingabe,1000,10000,Hoch,0.92,3.44,0%,0%
|
||||||
|
qr code generator online,S3_Commercial,Eingabe,10000,100000,Mittel,0.47,2.19,0%,0%
|
||||||
|
qr code generator for business,S3_Commercial,Eingabe,100,1000,Gering,2.24,7.83,0%,0%
|
||||||
|
free qr code generator,S3_Commercial,Eingabe,100000,1000000,Hoch,1.10,3.53,0%,0%
|
||||||
|
qr code maker,S3_Commercial,Eingabe,10000,100000,Mittel,0.52,2.09,0%,0%
|
||||||
|
qr code generator with analytics,S3_Commercial,Eingabe,100,1000,Mittel,3.80,25.54,0%,-90%
|
||||||
|
qr code generator bulk,S3_Commercial,Eingabe,1000,10000,Gering,0.54,2.61,0%,0%
|
||||||
|
qr code pricing,S3_Commercial,Eingabe,100,1000,Mittel,0.81,4.40,0%,0%
|
||||||
|
qr code generator,S3_Commercial,Idee,1000000,10000000,Mittel,0.57,2.69,+900%,+900%
|
||||||
|
create a qr code,S3_Commercial,Idee,10000,100000,Hoch,1.37,4.45,0%,0%
|
||||||
|
free qr code,S3_Commercial,Idee,10000,100000,Hoch,1.08,3.37,0%,0%
|
||||||
|
create qr code free,S3_Commercial,Idee,100000,1000000,Hoch,0.99,3.61,0%,0%
|
||||||
|
qr maker,S3_Commercial,Idee,1000,10000,Mittel,0.44,1.84,0%,0%
|
||||||
|
create a qr code for a url,S3_Commercial,Idee,1000,10000,Hoch,1.18,4.48,0%,-90%
|
||||||
|
qr code generator with logo,S3_Commercial,Idee,1000,10000,Mittel,1.49,5.08,0%,0%
|
||||||
|
qr generator free,S3_Commercial,Idee,1000,10000,Hoch,0.78,3.04,0%,0%
|
||||||
|
qr code maker free,S3_Commercial,Idee,1000,10000,Hoch,0.73,2.64,0%,0%
|
||||||
|
qr code generator free online,S3_Commercial,Idee,10000,100000,Gering,,,0%,+900%
|
||||||
|
qr code generator comparison,S3_Comparison,Eingabe,10,100,Mittel,2.06,11.42,0%,0%
|
||||||
|
qr code generator review,S3_Comparison,Eingabe,100,1000,Mittel,1.60,6.57,0%,0%
|
||||||
|
qr code for google reviews,S3_Comparison,Idee,1000,10000,Hoch,0.88,3.18,0%,0%
|
||||||
|
qr code generator for google reviews,S3_Comparison,Idee,1000,10000,Gering,,,0%,+900%
|
||||||
|
420
seo-plan-april.md
Normal file
420
seo-plan-april.md
Normal file
@@ -0,0 +1,420 @@
|
|||||||
|
# SEO Plan April 2026 — qrmaster.net
|
||||||
|
**Bewertung aktuell: 89/100 → Ziel mit Ergänzungen: 93–95/100**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Übersicht
|
||||||
|
|
||||||
|
Basis: Google Keyword Planner Daten (vollständig in `seo-keywords.csv`).
|
||||||
|
|
||||||
|
Drei Cluster mit stärkstem Potenzial:
|
||||||
|
- **Cluster 1 – Dynamic QR**: 1k–10k/mo, Mittel competition, CPCs bis €30
|
||||||
|
- **Cluster 2 – Analytics/Tracking**: 1k–10k/mo, +900% YoY Trend, höchste CPCs im Datensatz (€34 für "trackable qr code")
|
||||||
|
- **Cluster 3 – Custom QR + vCard**: 1k–10k/mo per Keyword, teils Gering competition, alle Tools bereits live
|
||||||
|
|
||||||
|
Sechs Strategien:
|
||||||
|
- **A** – Interne Verlinkung fixen (6 Dateien, 0 neue Seiten)
|
||||||
|
- **B** – 3 fehlende Seiten erstellen
|
||||||
|
- **C** – Structured Data für `/reprint-calculator` (einzige kritische Lücke)
|
||||||
|
- **D** – SERP-Differenzierung (unique angle pro Seite)
|
||||||
|
- **E** – Post-Launch Measurement
|
||||||
|
- **F** – Authority Support pro neue Seite
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Keyword-Daten nach Cluster und Seite
|
||||||
|
|
||||||
|
### Cluster 1 — Dynamic QR (`/dynamic-qr-code-generator`)
|
||||||
|
|
||||||
|
| Keyword | Vol/Mo | Wettbewerb | CPC Low | CPC High | Trend YoY |
|
||||||
|
|---------|--------|-----------|---------|---------|-----------|
|
||||||
|
| dynamic qr code generator | 1k–10k | Mittel | €2,17 | €13,15 | 0% |
|
||||||
|
| create dynamic qr code | 1k–10k | Mittel | €2,17 | €13,15 | 0% |
|
||||||
|
| dynamic qr generator | 1k–10k | Mittel | €2,17 | €13,15 | 0% |
|
||||||
|
| generate dynamic qr codes | 1k–10k | Mittel | €2,17 | €13,15 | 0% |
|
||||||
|
| dynamic qr code creator | 1k–10k | Mittel | €2,17 | €13,15 | 0% |
|
||||||
|
| dynamic qr code | 1k–10k | Mittel | €1,39 | €10,72 | 0% |
|
||||||
|
| static qr codes | 1k–10k | Mittel | €0,84 | €3,55 | **+900%** |
|
||||||
|
| best dynamic qr code generator | 100–1k | Hoch | €2,90 | €23,86 | 0% |
|
||||||
|
| unlimited dynamic qr codes | 10–100 | Hoch | €5,71 | €30,70 | 0% |
|
||||||
|
| best dynamic qr code service | 10–100 | Hoch | €6,22 | €29,63 | 0% |
|
||||||
|
| buy dynamic qr code | 10–100 | Mittel | €5,53 | €25,95 | 0% |
|
||||||
|
|
||||||
|
**Target meta keywords:** `dynamic qr code generator, create dynamic qr code, editable qr code, dynamic qr code free, best dynamic qr code generator`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Cluster 2 — Analytics/Tracking
|
||||||
|
|
||||||
|
> ⚠️ **KANNIBALISIERUNGSRISIKO** — `/qr-code-tracking` und `/qr-code-analytics` sind thematisch nah. Klare Positionierung ist Pflicht (Tabelle unten).
|
||||||
|
|
||||||
|
| Keyword | Ziel-Seite | Vol/Mo | Wettbewerb | CPC High | Trend |
|
||||||
|
|---------|-----------|--------|-----------|---------|-------|
|
||||||
|
| qr code tracking | `/qr-code-tracking` | 1k–10k | Mittel | €18,53 | **+900%** |
|
||||||
|
| track qr code scans | `/qr-code-tracking` | 100–1k | Mittel | €18,66 | **+900%** |
|
||||||
|
| trackable qr code | `/qr-code-tracking` | 100–1k | Mittel | **€34,25** | 0% |
|
||||||
|
| qr code generator with tracking | `/qr-code-tracking` | 100–1k | Mittel | €25,65 | 0% |
|
||||||
|
| qr code analytics | `/qr-code-analytics` | 100–1k | Mittel | €16,39 | 0% |
|
||||||
|
| qr code generator with analytics | `/qr-code-analytics` | 100–1k | Mittel | **€25,54** | -90% |
|
||||||
|
|
||||||
|
#### Positionierung zur Kannibalisierungsvermeidung
|
||||||
|
|
||||||
|
| | `/qr-code-tracking` | `/qr-code-analytics` |
|
||||||
|
|--|--------------------|--------------------|
|
||||||
|
| **Fokus** | Scan-Erfassung, Campaign-Tracking | Dashboard, Interpretation, ROI |
|
||||||
|
| **Kernbotschaft** | "Wir erfassen jeden Scan mit Kontext" | "Wir helfen dir Scans zu verstehen und zu optimieren" |
|
||||||
|
| **Keywords** | track qr code scans, trackable qr code, qr code tracking, scan by location/device | qr code analytics, qr reporting, performance insights, campaign attribution |
|
||||||
|
| **Unique Angle** | "Was du tatsächlich tracken kannst (und was nicht)" | "Welche Metriken wichtig sind und welche Vanity sind" |
|
||||||
|
|
||||||
|
→ In Content, Title, H1, FAQ und internen Anchor-Texten konsequent durchhalten.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Cluster 3 — Custom QR + vCard
|
||||||
|
|
||||||
|
| Keyword | Vol/Mo | Wettbewerb | CPC High | Trend YoY |
|
||||||
|
|---------|--------|-----------|---------|-----------|
|
||||||
|
| custom qr code generator | 1k–10k | **Gering** | €6,06 | 0% |
|
||||||
|
| qr code design | 1k–10k | Hoch | €3,27 | **+900%** |
|
||||||
|
| qr code with logo | 1k–10k | Hoch | €4,78 | 0% |
|
||||||
|
| colored qr code | 1k–10k | **Gering** | €2,99 | 0% |
|
||||||
|
| vcard qr code | 1k–10k | Hoch | €3,51 | 0% |
|
||||||
|
| vcard generator | 1k–10k | Mittel | €3,62 | **+900%** |
|
||||||
|
| qr code for instagram | 1k–10k | Mittel | €3,93 | **+900%** |
|
||||||
|
| email qr code generator | 1k–10k | **Gering** | €2,34 | 0% |
|
||||||
|
| wifi qr code generator | 1k–10k | Mittel | €1,54 | 0% |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Neue Seiten — Keyword-Potenzial
|
||||||
|
|
||||||
|
#### B3: `/blog/static-vs-dynamic-qr-code` — NEUE PRIORITÄT 1
|
||||||
|
|
||||||
|
| Keyword | Vol/Mo | Wettbewerb | CPC High | Trend |
|
||||||
|
|---------|--------|-----------|---------|-------|
|
||||||
|
| static qr codes | 1k–10k | Mittel | €3,55 | **+900%** |
|
||||||
|
| edit a qr code | 100–1k | Mittel | €5,78 | 0% |
|
||||||
|
| redirect a qr code | 100–1k | Mittel | €5,81 | 0% |
|
||||||
|
| can you change a qr code link | 10–100 | Gering | €3,98 | 0% |
|
||||||
|
| can you change the url of a qr code | 10–100 | Mittel | €6,29 | 0% |
|
||||||
|
| can i change the url of a qr code | 10–100 | Mittel | €3,62 | 0% |
|
||||||
|
| dynamic qr code meaning | 10–100 | Mittel | €6,17 | 0% |
|
||||||
|
|
||||||
|
Stützt direkt Dynamic QR, Reprint Calculator und Tracking. Nimmt ~15 FAQ-Long-Tail-Keywords mit einem einzigen Artikel mit. Zentrale Pflichtliteratur für das Produkt.
|
||||||
|
|
||||||
|
#### B1: `/tools/google-review-qr-code` — PRIORITÄT 2
|
||||||
|
|
||||||
|
| Keyword | Vol/Mo | Wettbewerb | CPC High | Trend |
|
||||||
|
|---------|--------|-----------|---------|-------|
|
||||||
|
| qr code for google reviews | 1k–10k | Hoch | €3,18 | 0% |
|
||||||
|
| qr code generator for google reviews | 1k–10k | **Gering** | — | **+900%** |
|
||||||
|
|
||||||
|
Goldene Kombination: 1k–10k Volumen + Gering Wettbewerb + +900% YoY Trend. Keine vergleichbare Seite im Projekt. Tool (URL QR) ist bereits live — nur Landing Page fehlt.
|
||||||
|
|
||||||
|
#### B2: `/qr-code-print-size-guide` — PRIORITÄT 3
|
||||||
|
|
||||||
|
| Keyword | Vol/Mo | Wettbewerb | CPC High | Trend |
|
||||||
|
|---------|--------|-----------|---------|-------|
|
||||||
|
| minimum qr code size | 1k–10k | **Gering** | €3,42 | 0% |
|
||||||
|
| qr code print size | 10–100 | Gering | — | -90% |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## A: Interne Verlinkung
|
||||||
|
|
||||||
|
### Was fehlt
|
||||||
|
|
||||||
|
| Von | Linkt aktuell zu | Fehlt |
|
||||||
|
|-----|-----------------|-------|
|
||||||
|
| `/dynamic-qr-code-generator` | use-cases (4 Links) | `/qr-code-tracking`, `/qr-code-analytics`, `/reprint-calculator` |
|
||||||
|
| `/qr-code-analytics` | /signup, /use-cases, 2 use-case slugs, 1 blog | `/qr-code-tracking`, `/dynamic-qr-code-generator`, `/reprint-calculator`, `/pricing` |
|
||||||
|
| `/qr-code-tracking` | real-estate/feedback/coupon use-cases, /dynamic-qr-code-generator | `/qr-code-analytics`, `/reprint-calculator` |
|
||||||
|
| `/custom-qr-code-generator` | use-cases (4 Links), /signup, /pricing | `/dynamic-qr-code-generator`, `/tools/vcard-qr-code` |
|
||||||
|
| `/tools/vcard-qr-code` | RelatedTools component | `/custom-qr-code-generator`, `/dynamic-qr-code-generator` |
|
||||||
|
| `/reprint-calculator` | **keine** (komplett isoliert) | `/dynamic-qr-code-generator`, `/qr-code-tracking`, `/pricing` |
|
||||||
|
|
||||||
|
### Anchor-Text-System
|
||||||
|
|
||||||
|
Nicht überall "Learn more" oder "Explore" — semantisch korrekte Anchor-Texte pro Ziel:
|
||||||
|
|
||||||
|
| Ziel-Seite | Erlaubte Anchor-Texte |
|
||||||
|
|-----------|----------------------|
|
||||||
|
| `/dynamic-qr-code-generator` | "dynamic qr code generator", "create dynamic qr code", "editable qr codes" |
|
||||||
|
| `/qr-code-tracking` | "qr code tracking", "track qr code scans", "trackable qr code" |
|
||||||
|
| `/qr-code-analytics` | "qr code analytics", "qr analytics dashboard", "qr performance analytics" |
|
||||||
|
| `/reprint-calculator` | "reprint cost calculator", "calculate qr reprint savings", "qr code reprint cost" |
|
||||||
|
| `/pricing` | "view pricing", "compare plans", "plan limits" |
|
||||||
|
|
||||||
|
### Implementierung — 6 Dateien
|
||||||
|
|
||||||
|
**Datei 1: `src/app/(main)/(marketing)/dynamic-qr-code-generator/page.tsx`**
|
||||||
|
`relatedUseCaseLinks` Array (~Zeile 256) — 2 Einträge ergänzen:
|
||||||
|
```tsx
|
||||||
|
{
|
||||||
|
href: '/qr-code-tracking',
|
||||||
|
title: 'Track Every QR Code Scan',
|
||||||
|
description: 'See device, time, and location context for every scan. Understand which placements drive real activity.',
|
||||||
|
ctaLabel: 'Track your QR scans',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
href: '/reprint-calculator',
|
||||||
|
title: 'QR Code Reprint Cost Calculator',
|
||||||
|
description: 'Calculate how much static QR reprints cost vs one active dynamic QR code.',
|
||||||
|
ctaLabel: 'Calculate reprint savings',
|
||||||
|
},
|
||||||
|
```
|
||||||
|
|
||||||
|
**Datei 2: `src/app/(main)/(marketing)/qr-code-analytics/page.tsx`**
|
||||||
|
`GrowthLinksSection` nach UseCasePageTemplate ergänzen (UseCasePageTemplate-Interface prüfen ob `relatedLinks` Prop existiert, sonst eigene Section):
|
||||||
|
- `/qr-code-tracking` — ctaLabel: "track qr code scans"
|
||||||
|
- `/dynamic-qr-code-generator` — ctaLabel: "create dynamic qr code"
|
||||||
|
- `/reprint-calculator` — ctaLabel: "reprint cost calculator"
|
||||||
|
- `/pricing` — ctaLabel: "compare plans"
|
||||||
|
|
||||||
|
**Datei 3: `src/app/(main)/(marketing)/qr-code-tracking/page.tsx`**
|
||||||
|
`relatedUseCaseLinks` Array (~Zeile 222) — 2 Einträge ergänzen:
|
||||||
|
```tsx
|
||||||
|
{
|
||||||
|
href: '/qr-code-analytics',
|
||||||
|
title: 'QR Code Analytics Dashboard',
|
||||||
|
description: 'Go deeper into placement-level reporting and offline campaign attribution.',
|
||||||
|
ctaLabel: 'Explore QR analytics',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
href: '/reprint-calculator',
|
||||||
|
title: 'QR Code Reprint Cost Calculator',
|
||||||
|
description: 'See how much dynamic QR codes save vs reprinting static codes each campaign.',
|
||||||
|
ctaLabel: 'Calculate reprint savings',
|
||||||
|
},
|
||||||
|
```
|
||||||
|
|
||||||
|
**Datei 4: `src/app/(main)/(marketing)/custom-qr-code-generator/page.tsx`**
|
||||||
|
`relatedUseCaseLinks` Array (~Zeile 300) — 2 Einträge ergänzen:
|
||||||
|
```tsx
|
||||||
|
{
|
||||||
|
href: '/dynamic-qr-code-generator',
|
||||||
|
title: 'Dynamic QR Code Generator',
|
||||||
|
description: 'Add tracking and updatable destinations to your branded QR codes.',
|
||||||
|
ctaLabel: 'Create dynamic QR',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
href: '/tools/vcard-qr-code',
|
||||||
|
title: 'vCard QR Code Generator',
|
||||||
|
description: 'Turn your brand identity into a scannable digital business card.',
|
||||||
|
ctaLabel: 'Create vCard QR',
|
||||||
|
},
|
||||||
|
```
|
||||||
|
|
||||||
|
**Datei 5: `src/app/(main)/(marketing)/tools/vcard-qr-code/page.tsx`**
|
||||||
|
`RelatedTools` component — Interface prüfen, folgende Tools ergänzen:
|
||||||
|
- `/custom-qr-code-generator` — "Custom QR with logo and brand colors"
|
||||||
|
- `/dynamic-qr-code-generator` — "Dynamic QR with tracking"
|
||||||
|
|
||||||
|
**Datei 6: `src/app/(main)/(marketing)/reprint-calculator/page.tsx`**
|
||||||
|
`GrowthLinksSection` nach den Value Props hinzufügen:
|
||||||
|
- `/dynamic-qr-code-generator` — ctaLabel: "Create dynamic QR code"
|
||||||
|
- `/qr-code-tracking` — ctaLabel: "Track your QR scans"
|
||||||
|
- `/pricing` — ctaLabel: "Compare plans"
|
||||||
|
|
||||||
|
Außerdem Reprint Calculator als Conversion Bridge ausbauen (Strategie D):
|
||||||
|
- Ergebnis-CTA nach Berechnung: "Switch to dynamic QR" → `/signup`
|
||||||
|
- Sharable result state via URL params
|
||||||
|
- Optional: "Email me my savings" für Lead-Capture
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## B: Neue Seiten
|
||||||
|
|
||||||
|
### B3 (Prio 1): `/blog/static-vs-dynamic-qr-code`
|
||||||
|
|
||||||
|
**Keywords:** `static qr codes` (1k–10k, +900%) + ~15 Long-Tail "can you change a qr code link" Keywords (je 10–100/mo)
|
||||||
|
|
||||||
|
**Unique Angle:** Einziger Artikel der echte Reprint-Kosten mit konkreten Zahlen zeigt (z.B. "500 Flyer × 3 Reprints = €X") — direkt verlinkt auf `/reprint-calculator`. Andere Seiten haben nur Erklärungen, keine Zahlen.
|
||||||
|
|
||||||
|
**Datei:** Blog-Eintrag im bestehenden Blog-System unter `/blog/static-vs-dynamic-qr-code`
|
||||||
|
|
||||||
|
**Pflicht-Sektionen:**
|
||||||
|
- H1: "Static vs Dynamic QR Code: What's the Difference and Which Do You Need?"
|
||||||
|
- Quick Summary oben (≤3 Sätze, AI-zitierbar)
|
||||||
|
- Vergleichstabelle (5–7 Features inkl. Kosten)
|
||||||
|
- Wann Static nutzen / Wann Dynamic nutzen
|
||||||
|
- Echte Reprint-Kosten-Beispiele → Link auf `/reprint-calculator`
|
||||||
|
- FAQ (min. 7 Items für alle "can you change / edit / redirect a qr code" Queries)
|
||||||
|
- GrowthLinksSection → `/dynamic-qr-code-generator`, `/reprint-calculator`, `/qr-code-tracking`
|
||||||
|
|
||||||
|
**Schema:** Article + FAQPage + BreadcrumbList
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### B1 (Prio 2): `/tools/google-review-qr-code`
|
||||||
|
|
||||||
|
**Keywords:** `qr code generator for google reviews` (1k–10k, **Gering**, **+900%**) + `qr code for google reviews` (1k–10k, Hoch)
|
||||||
|
|
||||||
|
**Unique Angle:** "How to find your Google Review link" mit konkretem Step-by-Step Screenshot-Flow. Das hat kaum eine andere QR-Tool-Seite.
|
||||||
|
|
||||||
|
**Dateien:**
|
||||||
|
- `src/app/(main)/(marketing)/tools/google-review-qr-code/page.tsx`
|
||||||
|
- `src/app/(main)/(marketing)/tools/google-review-qr-code/GoogleReviewGenerator.tsx`
|
||||||
|
|
||||||
|
**Muster:** `/tools/url-qr-code/page.tsx` (inline JSON-LD Pattern)
|
||||||
|
|
||||||
|
**Pflicht-Sektionen:**
|
||||||
|
- H1: "Google Review QR Code Generator — Free"
|
||||||
|
- AnswerFirstBlock (Was es ist, Wann nutzen, 3 Schritte)
|
||||||
|
- Schritt-für-Schritt Anleitung: Eigenen Google Review Link finden (Google Maps → Teilen → Link kopieren)
|
||||||
|
- Use Cases: Restaurant, Hotel, Klinik, Einzelhandel
|
||||||
|
- FAQ (min. 5 Items)
|
||||||
|
- GrowthLinksSection → `/qr-code-for/restaurants`, `/qr-code-for/hotels`, `/dynamic-qr-code-generator`, `/qr-code-tracking`
|
||||||
|
|
||||||
|
**Schema:** SoftwareApplication + HowTo + FAQPage + BreadcrumbList
|
||||||
|
|
||||||
|
**Local Business Cluster-Verbindung (Strategie F):**
|
||||||
|
- Von dieser Seite linken: `/qr-code-for/restaurants`, `/qr-code-for/hotels`, `/qr-code-for/clinics`
|
||||||
|
- Diese Seiten zurück linken: "Manage your Google reviews with a QR code"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### B2 (Prio 3): `/qr-code-print-size-guide`
|
||||||
|
|
||||||
|
**Keywords:** `minimum qr code size` (1k–10k, **Gering**), `qr code print size` (10–100, Gering)
|
||||||
|
|
||||||
|
**Unique Angle:** "Recommended size by scan distance" Tabelle — Visitenkarte (5cm, Abstand 15cm) vs. Poster (10cm, Abstand 1m) vs. Billboard (20cm+, Abstand 5m+). Konkrete Information die nirgends gut dokumentiert ist.
|
||||||
|
|
||||||
|
**Datei:** `src/app/(main)/(marketing)/qr-code-print-size-guide/page.tsx`
|
||||||
|
|
||||||
|
**Format: Utility Content Hybrid** (kein reiner Guide):
|
||||||
|
- Schnell-Antwort-Tabelle: Größe nach Oberfläche + Scan-Abstand
|
||||||
|
- Visuelle Größentabelle (CSS/SVG)
|
||||||
|
- DPI-Anforderungen für Print
|
||||||
|
- Downloadable Cheat Sheet (PDF oder druckbare Tabelle) als Share-Hook
|
||||||
|
- FAQ (min. 5 Items)
|
||||||
|
- GrowthLinksSection → `/reprint-calculator`, `/dynamic-qr-code-generator`, `/custom-qr-code-generator`
|
||||||
|
|
||||||
|
**Schema:** Article + FAQPage + BreadcrumbList
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## C: Structured Data
|
||||||
|
|
||||||
|
### Einzige kritische Lücke: `/reprint-calculator/page.tsx`
|
||||||
|
|
||||||
|
Alle anderen Commercial Pages nutzen `SeoJsonLd` oder `UseCasePageTemplate` (rendert Schemas intern). Der Reprint Calculator hat **null Structured Data**.
|
||||||
|
|
||||||
|
**Hinzufügen zu `src/app/(main)/(marketing)/reprint-calculator/page.tsx`:**
|
||||||
|
|
||||||
|
```tsx
|
||||||
|
import SeoJsonLd from '@/components/SeoJsonLd';
|
||||||
|
import Breadcrumbs, { BreadcrumbItem } from '@/components/Breadcrumbs';
|
||||||
|
import { breadcrumbSchema } from '@/lib/schema';
|
||||||
|
import { GrowthLinksSection } from '@/components/marketing/GrowthLinksSection';
|
||||||
|
|
||||||
|
const softwareSchema = {
|
||||||
|
'@context': 'https://schema.org',
|
||||||
|
'@type': 'WebApplication',
|
||||||
|
'@id': 'https://www.qrmaster.net/reprint-calculator#app',
|
||||||
|
name: 'QR Code Reprint Cost Calculator',
|
||||||
|
applicationCategory: 'BusinessApplication',
|
||||||
|
operatingSystem: 'Web Browser',
|
||||||
|
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
||||||
|
description: 'Calculate the cost of reprinting static QR codes vs switching to dynamic QR codes that never need reprinting.',
|
||||||
|
};
|
||||||
|
|
||||||
|
const howToSchema = {
|
||||||
|
'@context': 'https://schema.org',
|
||||||
|
'@type': 'HowTo',
|
||||||
|
name: 'How to calculate QR code reprint costs',
|
||||||
|
step: [
|
||||||
|
{ '@type': 'HowToStep', position: 1, name: 'Enter print run size', text: 'Enter how many QR codes you print per campaign.' },
|
||||||
|
{ '@type': 'HowToStep', position: 2, name: 'Enter reprint cost', text: 'Enter your cost per reprint campaign.' },
|
||||||
|
{ '@type': 'HowToStep', position: 3, name: 'See annual savings', text: 'The calculator shows how much dynamic QR codes save annually.' },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
const breadcrumbs = [
|
||||||
|
{ name: 'Home', url: '/' },
|
||||||
|
{ name: 'Reprint Calculator', url: '/reprint-calculator' },
|
||||||
|
];
|
||||||
|
|
||||||
|
// Ganz oben im JSX return:
|
||||||
|
<SeoJsonLd data={[softwareSchema, howToSchema, breadcrumbSchema(breadcrumbs)]} />
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## D: SERP-Differenzierung
|
||||||
|
|
||||||
|
Für jede Kernseite festlegen: Was hat diese Seite, das andere nicht haben?
|
||||||
|
|
||||||
|
| Seite | Unique Differentiator |
|
||||||
|
|-------|----------------------|
|
||||||
|
| `/dynamic-qr-code-generator` | Static vs Dynamic Vergleichstabelle + Reprint-Kosten-Verbindung |
|
||||||
|
| `/qr-code-tracking` | "What you can and cannot actually track" — ehrliche Grenzen statt Marketing-Sprache |
|
||||||
|
| `/qr-code-analytics` | "Which metrics matter and which are vanity" — konkrete Entscheidungshilfe |
|
||||||
|
| `/reprint-calculator` | Sharable result URL + Email-my-savings Lead-Capture |
|
||||||
|
| `/tools/google-review-qr-code` | Screenshot-Flow "How to find your Google Review link" |
|
||||||
|
| `/qr-code-print-size-guide` | "Recommended size by scan distance" Tabelle |
|
||||||
|
| `/blog/static-vs-dynamic-qr-code` | Echte Reprint-Kosten mit konkreten Zahlen |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## E: Post-Launch Measurement
|
||||||
|
|
||||||
|
| Zeitpunkt | Metrik | Tool |
|
||||||
|
|-----------|--------|------|
|
||||||
|
| +7 Tage | Seite indexiert? | Google Search Console |
|
||||||
|
| +14 Tage | Impressions, avg. Position | Google Search Console |
|
||||||
|
| +30 Tage | Clicks, CTR, Position-Entwicklung | Google Search Console |
|
||||||
|
| Laufend | Klicks auf /signup + /pricing | PostHog (im Stack) |
|
||||||
|
| Laufend | Rich Result Appearance | Google Rich Results Test |
|
||||||
|
| +90 Tage | Externe Mentions / Citations | manuell oder Ahrefs |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## F: Authority Support pro neue Seite
|
||||||
|
|
||||||
|
| Seite | Distribution-Modul |
|
||||||
|
|-------|-------------------|
|
||||||
|
| `/blog/static-vs-dynamic-qr-code` | Reddit Post in r/smallbusiness ("When should you NOT use static QR codes?") + 2–3 ältere Blogposts intern verlinken |
|
||||||
|
| `/tools/google-review-qr-code` | LinkedIn/X Post für Restaurant/Retail-Zielgruppe + Outreach an 3 lokale Marketing-Blogs |
|
||||||
|
| `/qr-code-print-size-guide` | "Downloadable QR Size Cheat Sheet" als Share-Hook + Roundup-Pitch an "Best QR resources" Listen |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Prioritätsreihenfolge
|
||||||
|
|
||||||
|
| Prio | Strategie | Aufgabe | Datei(en) | Top-Keyword | Effort |
|
||||||
|
|------|-----------|---------|-----------|------------|--------|
|
||||||
|
| 1 | C | Reprint Calculator: Schema + GrowthLinks | `reprint-calculator/page.tsx` | — | 30 Min |
|
||||||
|
| 2 | A | Dynamic QR → Tracking + Reprint (+ Anchor-Texte) | `dynamic-qr-code-generator/page.tsx` | 1k–10k | 20 Min |
|
||||||
|
| 3 | A | Tracking → Analytics + Reprint | `qr-code-tracking/page.tsx` | 1k–10k +900% | 20 Min |
|
||||||
|
| 4 | A | Analytics → Tracking + Dynamic + Reprint | `qr-code-analytics/page.tsx` | €34 CPC | 20 Min |
|
||||||
|
| 5 | A | Custom QR + vCard cross-links | 2 Dateien | 1k–10k Gering | 20 Min |
|
||||||
|
| 6 | B3 | Static vs Dynamic Blog Post | Blog-Eintrag | 1k–10k +900% | 2 Std |
|
||||||
|
| 7 | B1 | Google Review QR Tool Page | 2 neue Dateien | 1k–10k Gering +900% | 4 Std |
|
||||||
|
| 8 | B2 | Print Size Guide | 1 neue Datei | 1k–10k Gering | 3 Std |
|
||||||
|
|
||||||
|
**Gesamtaufwand Prio 1–5:** ~2 Stunden (schnelle Wins, bestehende Seiten)
|
||||||
|
**Gesamtaufwand Prio 6–8:** ~9 Stunden (neue Seiten)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Verification-Checkliste
|
||||||
|
|
||||||
|
### A — Interne Verlinkung
|
||||||
|
- [ ] Alle 6 Dateien geändert und neue `<a href=...>` Tags im Browser sichtbar
|
||||||
|
- [ ] Cluster-Pfad walkthrough: dynamic-qr → tracking → analytics → reprint-calculator → pricing
|
||||||
|
|
||||||
|
### B — Neue Seiten
|
||||||
|
- [ ] `npm run dev` — alle 3 neuen Routen erreichbar
|
||||||
|
- [ ] Page Source: `<script type="application/ld+json">` vorhanden
|
||||||
|
- [ ] Google Rich Results Test pro Seite bestanden
|
||||||
|
|
||||||
|
### C — Structured Data Reprint Calculator
|
||||||
|
- [ ] `/reprint-calculator` im Rich Results Test: WebApplication + HowTo ohne Fehler
|
||||||
|
|
||||||
|
### D — Differenzierung
|
||||||
|
- [ ] Jede neue Seite hat ihren Unique Differentiator aus Tabelle D implementiert
|
||||||
|
|
||||||
|
### E — Measurement
|
||||||
|
- [ ] Google Search Console: Alle neuen Seiten nach 7 Tagen indexiert
|
||||||
|
- [ ] PostHog: Conversion-Events auf /signup und /pricing nach 30 Tagen auswertbar
|
||||||
@@ -115,11 +115,17 @@ export default function BlogPostPage({ params }: { params: { slug: string } }) {
|
|||||||
)}
|
)}
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
{post.heroImage && (
|
{post.heroImage && (
|
||||||
<div className="relative aspect-video w-full rounded-2xl overflow-hidden shadow-lg mb-10">
|
<div className="relative aspect-video w-full rounded-2xl overflow-hidden shadow-lg mb-10">
|
||||||
<Image src={post.heroImage} alt={post.imageAlt || post.title} fill className="object-cover" />
|
<Image
|
||||||
</div>
|
src={post.heroImage}
|
||||||
)}
|
alt={post.imageAlt || post.title}
|
||||||
|
fill
|
||||||
|
unoptimized={post.heroImage.endsWith('.svg')}
|
||||||
|
className="object-cover"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
{/* AEO BLOCK: ANSWER */}
|
{/* AEO BLOCK: ANSWER */}
|
||||||
<div className="max-w-3xl mx-auto">
|
<div className="max-w-3xl mx-auto">
|
||||||
|
|||||||
@@ -92,15 +92,16 @@ export default function BlogPage() {
|
|||||||
{publishedPosts.map((post) => (
|
{publishedPosts.map((post) => (
|
||||||
<Link key={post.slug} href={`/blog/${post.slug}`}>
|
<Link key={post.slug} href={`/blog/${post.slug}`}>
|
||||||
<Card hover className="h-full overflow-hidden shadow-md hover:shadow-xl transition-all duration-300">
|
<Card hover className="h-full overflow-hidden shadow-md hover:shadow-xl transition-all duration-300">
|
||||||
<div className="relative h-56 overflow-hidden">
|
<div className="relative h-56 overflow-hidden">
|
||||||
<Image
|
<Image
|
||||||
src={post.image}
|
src={post.image}
|
||||||
alt={post.imageAlt || `${post.title} - QR code guide`}
|
alt={post.imageAlt || `${post.title} - QR code guide`}
|
||||||
width={800}
|
width={800}
|
||||||
height={600}
|
height={600}
|
||||||
className="w-full h-full object-cover transition-transform duration-500 hover:scale-110"
|
unoptimized={post.image.endsWith('.svg')}
|
||||||
/>
|
className="w-full h-full object-cover transition-transform duration-500 hover:scale-110"
|
||||||
</div>
|
/>
|
||||||
|
</div>
|
||||||
<CardHeader className="pb-3">
|
<CardHeader className="pb-3">
|
||||||
<div className="flex items-center justify-between mb-3">
|
<div className="flex items-center justify-between mb-3">
|
||||||
<Badge variant="info">{post.category}</Badge>
|
<Badge variant="info">{post.category}</Badge>
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ export function Footer({ variant = 'marketing', t }: FooterProps) {
|
|||||||
<div>
|
<div>
|
||||||
<h3 className={`font-semibold mb-4 ${isDashboard ? 'text-gray-900' : ''}`}>{translations.product}</h3>
|
<h3 className={`font-semibold mb-4 ${isDashboard ? 'text-gray-900' : ''}`}>{translations.product}</h3>
|
||||||
<ul className={`space-y-2 ${isDashboard ? 'text-gray-500' : 'text-gray-400'}`}>
|
<ul className={`space-y-2 ${isDashboard ? 'text-gray-500' : 'text-gray-400'}`}>
|
||||||
<li><Link href="/#features" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>{translations.features}</Link></li>
|
<li><Link href="/features" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>{translations.features}</Link></li>
|
||||||
<li><Link href="/about" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>About</Link></li>
|
<li><Link href="/about" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>About</Link></li>
|
||||||
<li><Link href="/press" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>Press</Link></li>
|
<li><Link href="/press" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>Press</Link></li>
|
||||||
<li><Link href="/testimonials" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>Testimonials</Link></li>
|
<li><Link href="/testimonials" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>Testimonials</Link></li>
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ export const blogPosts: BlogPost[] = [
|
|||||||
authorName: "Timo Knuth",
|
authorName: "Timo Knuth",
|
||||||
authorTitle: "QR Code & Marketing Expert",
|
authorTitle: "QR Code & Marketing Expert",
|
||||||
readTime: "8 Min",
|
readTime: "8 Min",
|
||||||
image: "/blog/teams-qr-code.png",
|
image: "/blog/teams-qr-code.svg",
|
||||||
heroImage: "/blog/teams-qr-code.png",
|
heroImage: "/blog/teams-qr-code.svg",
|
||||||
imageAlt: "Microsoft Teams meeting room with QR code displayed on screen",
|
imageAlt: "Microsoft Teams meeting room with QR code displayed on screen",
|
||||||
keywords: ["microsoft teams qr code", "teams meeting qr code", "teams qr code", "join teams meeting qr", "teams besprechung qr code"],
|
keywords: ["microsoft teams qr code", "teams meeting qr code", "teams qr code", "join teams meeting qr", "teams besprechung qr code"],
|
||||||
quickAnswer: `<p>Copy your Teams meeting URL → paste it into <a href="/tools/teams-qr-code">QR Master's free Teams QR generator</a> → download the code → display it in your meeting room or invitation. Attendees scan once to join instantly — no link typing needed.</p>`,
|
quickAnswer: `<p>Copy your Teams meeting URL → paste it into <a href="/tools/teams-qr-code">QR Master's free Teams QR generator</a> → download the code → display it in your meeting room or invitation. Attendees scan once to join instantly — no link typing needed.</p>`,
|
||||||
|
|||||||
Reference in New Issue
Block a user