# 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.
