mirror of
https://github.com/Luchexx/wacrm.git
synced 2026-11-02 09:19:51 +00:00
Brings the site from bare-bones metadata to production-ready SEO. Covers technical crawlability, rich-result eligibility, social sharing, and duplicate-content prevention. Added: - src/lib/seo/site-config.ts — single source of truth for base URL, brand, description, keywords. Referenced by every consumer so a domain / rename is a one-file edit. - src/lib/seo/faq-data.ts — FAQ Q&A extracted from the component so the UI and the FAQPage JSON-LD render the same content. - src/lib/seo/structured-data.ts — builders for WebSite, Organization, SoftwareApplication, and FAQPage JSON-LD nodes. FAQPage is eligible for Google's FAQ rich result; SoftwareApplication with a free Offer can earn a "Free" badge on SERP. - src/components/seo/json-ld.tsx — emits one <script type="application/ld+json"> per node (Google's preferred shape). - src/app/opengraph-image.tsx — Next auto-generates a 1200×630 PNG for the landing page's OG / Twitter previews. - src/app/sitemap.ts — lists only public, indexable pages. - src/app/robots.ts — Allow /, Disallow every app / auth route, references the sitemap. Updated: - src/app/layout.tsx — metadataBase, title template (%s — WaCRM), default OpenGraph + Twitter Cards (inherited everywhere), canonical, icons config, viewport (themeColor + colorScheme=dark for browser chrome on mobile). - src/app/page.tsx — injects the 4 JSON-LD blocks, sets explicit canonical for /, overrides the title. - src/app/(auth)/layout.tsx — noindex+nofollow for login / signup / forgot-password (no SEO value; would compete with landing page). - src/app/(dashboard)/layout.tsx — split into thin server layout (exports noindex metadata) + DashboardShell client component. App routes won't be indexed even if a URL leaks. - src/components/landing/faq.tsx — consumes the shared FAQ data module (no more drift between UI and JSON-LD). Verified end-to-end against the running dev server: - GET / HTML contains: canonical, description, keywords, robots, og:title/url/image/type, twitter:card/title, theme-color, + 4 JSON-LD blocks (WebSite, Organization, SoftwareApplication, FAQPage). - GET /opengraph-image → 200 OK, content-type image/png. - GET /login HTML contains <meta name="robots" content="noindex, nofollow, nocache">. - GET /sitemap.xml serves valid XML with /. - GET /robots.txt serves Allow /, Disallow all app + auth paths, sitemap reference. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| app | ||
| components | ||
| hooks | ||
| lib | ||
| types | ||
| middleware.ts | ||