QR-master/seo_tasks.md

3.8 KiB

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