Files
Kordant/tasks/web-production/25-seo-meta.md
2026-05-26 16:06:34 -04:00

2.8 KiB

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