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

` tag in the initial HTML payload. - **Action:** Add an `

` (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 `` 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.