ShipDesk
Task Manager
ShipDesk
Progress
02

Public Pages — SEO Critical

Home, About, Pricing, Team — must render on server and be fully crawlable

Week 25 daysEstimated: 20h totalHighest Priority
This is what the entire migration is for
After this phase, Google, Claude, GPT, Perplexity and every other crawler will see your full page content.
Root Layout — app/layout.jsx
Create app/layout.jsxwraps every page. Add Navbar, Footer, Sonner Toaster.
2 hrs
Add global metadata exportsite title template, description, OG defaults
30 min
Pages to Create — All Server Components
app/page.jsx — HomeNo 'use client'. Add metadata.
4 hrs
app/about/page.jsxAdd MedicalOrganization JSON-LD schema.
3 hrs
app/pricing/page.jsxAdd Offer schema JSON-LD.
4 hrs
app/team/page.jsxAdd Person JSON-LD schema.
2 hrs
app/not-found.jsxCustom 404 page.
1 hr
SEO Files
Create public/robots.txtallow GPTBot, ClaudeBot, Google-Extended
20 min
Create next-sitemap.config.jsauto-generates sitemap.xml at every build
15 min
next-sitemap.config.js
/** @type {import('next-sitemap').IConfig} */
module.exports = {
  siteUrl: process.env.NEXT_PUBLIC_APP_URL || 'https://medicare.com',
  generateRobotsTxt: true,
  changefreq: 'weekly',
  priority: 0.7,
  sitemapSize: 5000,
  exclude: ['/dashboard/*', '/doctor/*', '/admin/*', '/founder/*'],
  robotsTxtOptions: {
    additionalSitemaps: [],
    policies: [
      { userAgent: '*', allow: '/' },
      { userAgent: '*', disallow: ['/dashboard', '/doctor', '/admin', '/founder'] },
      { userAgent: 'GPTBot', allow: '/' },
      { userAgent: 'ClaudeBot', allow: '/' },
      { userAgent: 'Google-Extended', allow: '/' },
    ],
  },
}
public/robots.txt
User-agent: *
Allow: /
Disallow: /dashboard
Disallow: /doctor
Disallow: /admin
Disallow: /founder

# AI Crawlers — Allow them to index public pages
User-agent: GPTBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: Google-Extended
Allow: /

Sitemap: https://medicare.com/sitemap.xml
Previous
Phase 01Project Configuration
Next
Phase 03Authentication Pages