PozoAppCommonUpdatedCode/SEO_PAGE_COMPARISON.md

9.2 KiB

SEO Requirements vs Implementation - Page-by-Page Comparison

🏠 HOME PAGE (/ or /home/)

Title Tag

Required: Retail ERP & POS for Indian MSMEs | POZO Implemented: MATCHES

  • Location: server/seo-middleware.js line 168
  • Also in: src/PozoApp/Pages/HomePage.jsx line 326

Meta Description

Required: Fast billing, smart inventory, GST-ready POS. POZO helps kirana, mini-supermarkets & retail chains speed checkout, connect weighing scales, and manage multi-store ops. Implemented: MATCHES

  • Location: server/seo-middleware.js line 169

⚠️ Canonical URL

Required: https://www.pozo.app/home/ (change to https://www.pozo.app/ after migration) Implemented: ⚠️ PARTIAL

  • Currently generates: Dynamic based on request path
  • Issue: Uses /home/ currently, needs to change to / after migration
  • Location: server/seo-middleware.js lines 463-475
  • Action: Update after migration to use root / instead of /home/

OG/Twitter Tags

Required:

  • og:title: Retail ERP & POS for Indian MSMEs | POZO
  • og:description: Fast billing, smart inventory, GST-ready POS for kirana & supermarkets.
  • og:url: https://www.pozo.app/home/
  • og:image: https://www.pozo.app/static/og/pozo-home.jpg
  • twitter:card: summary_large_image

Implemented: MOSTLY MATCHES

  • Location: server/seo-middleware.js lines 610-631
  • Issues:
    • og:description uses full description (not shortened version)
    • og:image uses /og/home.jpg (not /static/og/pozo-home.jpg)
    • Action: Update image path to /static/og/pozo-home.jpg if that's the correct asset

JSON-LD (Organization + Website + WebPage)

Required:

{
  "@context":"https://schema.org",
  "@graph":[
    {
      "@type":"Organization",
      "name":"POZO",
      "url":"https://www.pozo.app/",
      "logo":"https://www.pozo.app/static/brand/logo.png",
      "foundingDate":"2019",
      "sameAs":[]
    },
    {
      "@type":"WebSite",
      "name":"POZO",
      "url":"https://www.pozo.app/",
      "potentialAction":{
        "@type":"SearchAction",
        "target":"https://www.pozo.app/search?q={query}",
        "query-input":"required name=query"
      }
    },
    {
      "@type":"WebPage",
      "url":"https://www.pozo.app/home/",
      "name":"Retail ERP & POS for Indian MSMEs | POZO",
      "isPartOf":{"@id":"https://www.pozo.app/"},
      "description":"Fast billing, smart inventory, GST-ready POS. POZO helps kirana, mini-supermarkets & retail chains speed checkout, connect weighing scales, and manage multi-store ops."
    }
  ]
}

Implemented: MATCHES (with minor differences)

  • Location: server/seo-middleware.js lines 553-596
  • Also in: src/PozoApp/Pages/HomePage.jsx lines 291-321
  • Differences:
    • Logo path: Uses /src/Images/PozoAppFavicon.png instead of /static/brand/logo.png
    • WebPage URL: Uses dynamic pageUrl (currently /home/ but will be / after migration)
    • Action: Update logo path to /static/brand/logo.png if that's the correct asset

📝 BLOG PAGE (/blog or /home/blog)

Title Tag

Required: POZO Blog — Retail ERP, POS & Grocery Billing Guides Implemented: MATCHES

  • Location: server/seo-middleware.js line 196

Meta Description

Required: Practical guides on POS billing, weighing-scale integration, GST e-invoices, multi-store ERP & inventory control for Indian retailers. Implemented: MATCHES

  • Location: server/seo-middleware.js line 197

⚠️ Canonical URL

Required: https://www.pozo.app/home/blog (later → /blog) Implemented: ⚠️ PARTIAL

  • Currently generates: Dynamic based on request path
  • Issue: Uses /home/blog currently, needs to change to /blog after migration
  • Action: Update after migration

JSON-LD (CollectionPage + Breadcrumbs)

Required:

{
  "@context":"https://schema.org",
  "@type":"WebPage",
  "@id":"https://www.pozo.app/home/blog",
  "name":"POZO Blog — Retail ERP, POS & Grocery Billing Guides",
  "isPartOf":{"@id":"https://www.pozo.app/"},
  "description":"Practical guides on POS billing, weighing-scale integration, GST e-invoices, multi-store ERP & inventory control for Indian retailers."
}
{
  "@context":"https://schema.org",
  "@type":"BreadcrumbList",
  "itemListElement":[
    {"@type":"ListItem","position":1,"name":"Home","item":"https://www.pozo.app/home/"},
    {"@type":"ListItem","position":2,"name":"Blog","item":"https://www.pozo.app/home/blog"}
  ]
}

Implemented: MISSING

  • Current State:
    • Blog page uses generic WebPage schema from middleware (lines 587-593)
    • No CollectionPage type
    • No BreadcrumbList for blog page
  • Location: src/AdminPanel/Blog/Blog.jsx - No JSON-LD found
  • Action Required:
    • Add CollectionPage schema to blog page
    • Add BreadcrumbList schema to blog page
    • Update middleware to detect blog page and inject proper schemas

💰 PRICING PAGE (/pricing or /home/pricing-pozoapp)

Title Tag

Required: Pricing - Retail ERP & POS Plans | POZO Implemented: MATCHES

  • Location: server/seo-middleware.js line 182
  • Also in: src/PozoApp/Components/PricingPozoApp.jsx line 708

Meta Description

Required: Simple plans for MSMEs. Fast billing, inventory, GST e-invoice, weighing-scale integration, WhatsApp e-bills & multi-store controls. Book a demo. Implemented: MATCHES

  • Location: server/seo-middleware.js line 183

⚠️ Canonical URL

Required: Should be https://www.pozo.app/pricing (after migration) Implemented: ⚠️ PARTIAL

  • Currently: Dynamic based on request path
  • Action: Update after migration

JSON-LD (SoftwareApplication + WebPage + Breadcrumbs)

Required:

{
  "@context":"https://schema.org",
  "@type":"SoftwareApplication",
  "name":"POZO",
  "applicationCategory":"BusinessApplication",
  "operatingSystem":"Web",
  "url":"https://www.pozo.app/home/pricing-pozoapp",
  "offers":{
    "@type":"Offer",
    "priceCurrency":"INR",
    "availability":"https://schema.org/InStock"
  },
  "featureList":[
    "Fast POS billing","Inventory & purchase","GST e-invoice",
    "Weighing-scale integration","WhatsApp e-bill","Multi-store ERP"
  ]
}
{
  "@context":"https://schema.org",
  "@type":"WebPage",
  "@id":"https://www.pozo.app/home/pricing-pozoapp",
  "name":"Pricing — Retail ERP & POS Plans | POZO",
  "description":"Simple plans for MSMEs with POS billing, inventory, GST e-invoice & multi-store controls."
}
{
  "@context":"https://schema.org",
  "@type":"BreadcrumbList",
  "itemListElement":[
    {"@type":"ListItem","position":1,"name":"Home","item":"https://www.pozo.app/home/"},
    {"@type":"ListItem","position":2,"name":"Pricing","item":"https://www.pozo.app/home/pricing-pozoapp"}
  ]
}

Implemented: MATCHES (with minor URL difference)

  • Location: src/PozoApp/Components/PricingPozoApp.jsx lines 670-703
  • Differences:
    • URL uses /pricing instead of /home/pricing-pozoapp (will be correct after migration)
    • All other fields match exactly
  • Note: Pricing page has proper JSON-LD in component, but middleware also injects generic schema

📊 Summary

Fully Implemented

  1. Home Page: Title, Meta Description, OG Tags, JSON-LD (with minor path differences)
  2. Blog Page: Title, Meta Description
  3. Pricing Page: Title, Meta Description, JSON-LD (SoftwareApplication + WebPage + Breadcrumbs)

⚠️ Needs Updates

  1. Home Page:

    • Canonical URL (change /home/ to / after migration)
    • Logo path (update to /static/brand/logo.png)
    • OG image path (update to /static/og/pozo-home.jpg)
  2. Blog Page:

    • Canonical URL (change /home/blog to /blog after migration)
    • MISSING: CollectionPage JSON-LD
    • MISSING: BreadcrumbList JSON-LD
  3. Pricing Page:

    • Canonical URL (already uses /pricing in component, but middleware may override)

🔧 Action Items

Immediate Fixes (Before Migration)

  1. Update Home Page JSON-LD Logo Path

    • File: server/seo-middleware.js line 560
    • Change: /src/Images/PozoAppFavicon.png/static/brand/logo.png
  2. Update Home Page OG Image Path

    • File: server/seo-middleware.js line 171
    • Change: /og/home.jpg/static/og/pozo-home.jpg (if asset exists)
  3. Add Blog Page CollectionPage Schema

    • File: src/AdminPanel/Blog/Blog.jsx
    • Add: CollectionPage JSON-LD schema
    • Add: BreadcrumbList JSON-LD schema

After Migration

  1. Update All Canonical URLs

    • Remove /home/ prefix from all URLs
    • Update middleware path mapping
    • Update component URLs
  2. Verify OG Image Assets

    • Ensure /static/og/pozo-home.jpg exists
    • Update all OG image paths if needed

🎯 Implementation Status

Page Title Meta Desc Canonical OG Tags JSON-LD Status
Home ⚠️ ⚠️ ⚠️ 80%
Blog ⚠️ 60%
Pricing ⚠️ 90%

Overall: 77% Complete


Last Updated: 2025-01-27