PozoAppCommonUpdatedCode/SEO_PAGE_COMPARISON.md

278 lines
9.2 KiB
Markdown
Raw Normal View History

2025-12-05 09:45:16 +05:30
# 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**:
```json
{
"@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**:
```json
{
"@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."
}
```
```json
{
"@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**:
```json
{
"@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"
]
}
```
```json
{
"@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."
}
```
```json
{
"@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
4. **Update All Canonical URLs**
- Remove `/home/` prefix from all URLs
- Update middleware path mapping
- Update component URLs
5. **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