# Structured Data Validation Checklist

Quick reference for validating structured data and rich snippets after deployment.

---

## Pre-Deployment Validation

### 1. Build the Site
```bash
npm run build
```

### 2. Run Automated Validation
```bash
npm run validate:structured-data
```

**Expected Result:** ✅ All validations passed

### 3. Preview Locally
```bash
npm run preview
```

Visit http://localhost:4321 and inspect:
- View page source on homepage, blog post, about page
- Verify JSON-LD scripts are present
- Check Open Graph meta tags
- Verify Twitter Card meta tags

---

## Post-Deployment Validation

### Google Rich Results Test

**Test each page type:**

1. **Homepage** - https://workroot.in/
   - [ ] No errors
   - [ ] Organization schema valid
   - [ ] WebSite schema valid
   - [ ] FAQPage schema valid (if present)
   - [ ] SearchAction present

2. **Blog Post** - https://workroot.in/blog/[any-post]
   - [ ] No errors
   - [ ] BlogPosting schema valid
   - [ ] Author (Person) present
   - [ ] Publisher (Organization) with logo
   - [ ] BreadcrumbList valid
   - [ ] Image dimensions present

3. **About Page** - https://workroot.in/about
   - [ ] No errors
   - [ ] AboutPage schema valid
   - [ ] BreadcrumbList valid

4. **Contact Page** - https://workroot.in/contact
   - [ ] No errors
   - [ ] ContactPage schema valid

5. **Services Page** - https://workroot.in/services
   - [ ] No errors
   - [ ] Service schema valid (if implemented)
   - [ ] WebPage schema valid

**Tool:** https://search.google.com/test/rich-results

---

### Schema.org Validator

Test JSON-LD directly:

1. Visit any page on workroot.in
2. View page source (Ctrl+U / Cmd+U)
3. Copy JSON-LD script content (between `<script type="application/ld+json">` tags)
4. Paste into https://validator.schema.org/
5. [ ] No errors
6. [ ] No warnings (warnings acceptable, but review them)

---

### Open Graph Validation

#### Facebook Sharing Debugger

**URL:** https://developers.facebook.com/tools/debug/

Test each page type:
- [ ] Homepage renders with correct image
- [ ] Blog posts show featured image
- [ ] All pages have title and description
- [ ] Images are 1200x630px (optimal)
- [ ] No warnings about missing tags

#### LinkedIn Post Inspector

**URL:** https://www.linkedin.com/post-inspector/

- [ ] Pages render correctly
- [ ] Images display properly
- [ ] Title and description accurate

---

### Twitter Card Validation

**URL:** https://cards-dev.twitter.com/validator

Test pages:
- [ ] Homepage shows large image card
- [ ] Blog posts display with featured image
- [ ] Title and description correct
- [ ] @workroot site attribution present

---

### Google Search Console

After 24-48 hours of deployment:

1. **Enhancements Section**
   - [ ] Check for structured data errors
   - [ ] Review warnings (fix if critical)
   - [ ] Monitor enhancement impressions

2. **Coverage Report**
   - [ ] All pages indexed
   - [ ] No indexing errors

3. **Rich Results**
   - [ ] Monitor rich result impressions
   - [ ] Track click-through rate improvements

4. **Sitemaps**
   - [ ] Sitemap submitted and processed
   - [ ] No sitemap errors

---

## Manual Visual Inspection

### Google Search Results (after indexing)

Search for: `site:workroot.in`

Check for:
- [ ] Organization knowledge panel appears
- [ ] Sitelinks search box present
- [ ] Breadcrumbs visible in results
- [ ] Blog posts show author and date
- [ ] Star ratings appear (if applicable)

---

## Common Issues & Fixes

### Issue: "Missing required field 'image'"

**Fix:** Ensure BlogPosting schema includes image with dimensions
```json
"image": {
  "@type": "ImageObject",
  "url": "https://workroot.in/image.jpg",
  "width": 1200,
  "height": 675
}
```

### Issue: "Invalid URL"

**Fix:** Use absolute URLs, not relative
- ❌ `/images/logo.png`
- ✅ `https://workroot.in/images/logo.png`

### Issue: "Date not in ISO 8601 format"

**Fix:** Use `.toISOString()` for dates
- ❌ `"2024-03-15"`
- ✅ `"2024-03-15T10:00:00Z"`

### Issue: Open Graph image not showing

**Fix:**
1. Image must be publicly accessible (test in incognito)
2. Use HTTPS URLs
3. Recommended size: 1200x630px
4. Include og:image:secure_url

### Issue: Twitter Card not rendering

**Fix:**
1. Verify `twitter:card` is `summary_large_image`
2. Image must be < 5MB
3. Image aspect ratio 2:1 or 1:1
4. Wait for Twitter to crawl (can take a few hours)

---

## Validation Schedule

### Immediate (After Deployment)
- [ ] Run all validation tools
- [ ] Test social sharing manually
- [ ] Submit sitemap to Search Console

### Weekly (First Month)
- [ ] Check Search Console for errors
- [ ] Monitor rich result impressions
- [ ] Review indexed pages

### Monthly (Ongoing)
- [ ] Validate key pages with Rich Results Test
- [ ] Check for broken structured data
- [ ] Update aggregate ratings if needed
- [ ] Review and refresh FAQ content

### Quarterly
- [ ] Full structured data audit
- [ ] Update Organization schema (team, services)
- [ ] Validate all schema types
- [ ] Test social sharing on all platforms

---

## Quick Test Commands

```bash
# Build and validate
npm run build && npm run validate:structured-data

# Local preview
npm run preview

# Run specific Playwright tests (if created)
npm run test

# Run only SEO-related tests
npm run test -- --grep "structured data"
```

---

## Key URLs for Testing

**Live Site:**
- Homepage: https://workroot.in/
- Blog: https://workroot.in/blog
- About: https://workroot.in/about
- Contact: https://workroot.in/contact
- Services: https://workroot.in/services

**Validation Tools:**
- Google Rich Results: https://search.google.com/test/rich-results
- Schema Validator: https://validator.schema.org/
- Facebook Debugger: https://developers.facebook.com/tools/debug/
- Twitter Validator: https://cards-dev.twitter.com/validator
- LinkedIn Inspector: https://www.linkedin.com/post-inspector/

**Monitoring:**
- Google Search Console: https://search.google.com/search-console
- Google Analytics: (your GA property)

---

## Success Criteria

### Minimum Requirements (Must Pass)
- ✅ No errors in Google Rich Results Test
- ✅ Valid JSON-LD syntax (Schema.org validator)
- ✅ Organization and WebSite schemas on all pages
- ✅ Open Graph tags present on all pages
- ✅ Twitter Card tags present on all pages

### Optimal Performance (Should Pass)
- ✅ Blog posts eligible for article rich results
- ✅ FAQ rich results on homepage
- ✅ Breadcrumbs in search results
- ✅ Knowledge panel for organization
- ✅ Sitelinks search box enabled

### Excellence (Nice to Have)
- ✅ Star ratings in search results
- ✅ Featured snippets from FAQ
- ✅ Author bylines on blog posts
- ✅ Social sharing generates perfect previews
- ✅ Zero warnings in all validators

---

**Last Updated:** 2026-03-21
**Next Review:** After deployment
