get to prod tasks
This commit is contained in:
83
tasks/web-production/25-seo-meta.md
Normal file
83
tasks/web-production/25-seo-meta.md
Normal file
@@ -0,0 +1,83 @@
|
||||
# 25. Sitemap, Robots.txt & Open Graph
|
||||
|
||||
meta:
|
||||
id: web-production-25
|
||||
feature: web-production
|
||||
priority: P2
|
||||
depends_on: []
|
||||
tags: [seo, marketing, production]
|
||||
|
||||
objective:
|
||||
- Implement SEO fundamentals including sitemap, robots.txt, and Open Graph meta tags for all pages
|
||||
|
||||
deliverables:
|
||||
- Dynamic sitemap.xml generation
|
||||
- robots.txt configuration
|
||||
- Open Graph meta tags on all pages
|
||||
- Twitter Card meta tags
|
||||
- Canonical URLs
|
||||
|
||||
steps:
|
||||
1. Create dynamic sitemap:
|
||||
- Route: /sitemap.xml
|
||||
- Include all public pages: /, /about, /features, /pricing, /blog/*
|
||||
- Include auth pages: /login, /signup
|
||||
- Exclude admin pages and user-specific pages
|
||||
- Set priorities and change frequencies
|
||||
- Auto-update when blog posts published
|
||||
2. Create robots.txt:
|
||||
- Allow: all public pages
|
||||
- Disallow: /(admin)/*, /api/*, /billing/*, /auth/*
|
||||
- Sitemap reference
|
||||
- Crawl-delay for respectful crawling
|
||||
3. Add Open Graph tags to all pages:
|
||||
- og:title matching page title
|
||||
- og:description from meta description
|
||||
- og:image with branded preview image (1200x630)
|
||||
- og:url with canonical URL
|
||||
- og:type (website, article for blog)
|
||||
- og:site_name: Kordant
|
||||
4. Add Twitter Card tags:
|
||||
- twitter:card: summary_large_image
|
||||
- twitter:title, twitter:description, twitter:image
|
||||
5. Add canonical URLs:
|
||||
- Prevent duplicate content issues
|
||||
- Use absolute URLs with https
|
||||
- Handle query parameters correctly
|
||||
6. Create branded OG image:
|
||||
- Design 1200x630px image with Kordant branding
|
||||
- Include logo, tagline, and shield icon
|
||||
- Generate dynamically for blog posts (optional)
|
||||
7. Add structured data:
|
||||
- Organization schema on homepage
|
||||
- WebSite schema with SearchAction
|
||||
- Article schema for blog posts
|
||||
- SoftwareApplication schema for app
|
||||
|
||||
tests:
|
||||
- Unit: Test sitemap XML generation
|
||||
- Integration: Verify meta tags on all pages
|
||||
- SEO: Test with Facebook Sharing Debugger and Twitter Card Validator
|
||||
|
||||
acceptance_criteria:
|
||||
- Sitemap accessible at /sitemap.xml with all public pages
|
||||
- robots.txt accessible at /robots.txt with correct directives
|
||||
- Open Graph tags present on all public pages
|
||||
- Twitter Card tags present on all public pages
|
||||
- Canonical URL on every page
|
||||
- Branded OG image displaying correctly in social shares
|
||||
- Structured data valid per schema.org (test with Google Rich Results)
|
||||
- Blog posts have Article schema
|
||||
|
||||
validation:
|
||||
- `curl /sitemap.xml` → valid XML with all routes
|
||||
- `curl /robots.txt` → correct allow/disallow directives
|
||||
- Facebook Sharing Debugger → OG image and title display correctly
|
||||
- Google Rich Results Test → structured data valid
|
||||
- View page source → all meta tags present
|
||||
|
||||
notes:
|
||||
- SolidJS MetaProvider already in use — extend with OG tags
|
||||
- Use @solidjs/meta for dynamic meta tags per route
|
||||
- Consider using @vercel/og or similar for dynamic OG images
|
||||
- Blog sitemap should update automatically on publish
|
||||
Reference in New Issue
Block a user