feat(seo): structured data, FAQ, blog (12 posts) + on-page SEO - #9
Merged
Conversation
Improve organic discoverability for "marriage biodata", "biodata maker" and related queries: - Add JSON-LD structured data on the home page (Organization, WebSite, free WebApplication, and FAQPage) so Google can render rich results and the "free" badge. Built from site constants in a pure, unit-tested helper (src/lib/seo.ts). - Add a visible FAQ section whose answers mirror the FAQPage schema (Google requires on-page text to match), targeting long-tail queries. - Give /create its own title/description/canonical via a server-component layout (the page is a client component and can't export metadata). - Wire optional Google Search Console verification via env var. - Fix manifest icon (referenced a non-existent /favicon.ico → /icon.svg). lint, test (50 passing, incl. 7 new), and build all green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
pythonsst
added a commit
that referenced
this pull request
Jun 28, 2026
feat(blog+seo): 12-post blog, 14 FAQs, hero tagline (missed by PR #9 merge)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Goal
Help SnapBiodata rank for searches like marriage biodata, biodata maker, biodata format, shaadi/rishta biodata and many long-tail variants — using legitimate, durable SEO (no spammy tricks).
What's in this PR
Structured data (JSON-LD)
Organization,WebSite, freeWebApplication(price 0 /isAccessibleForFree), andFAQPage.Blog; each post:Article+BreadcrumbList.src/lib/seo.ts,src/lib/blog.ts).Content
FAQPageschema), written around real queries./blog— how-to, biodata format, photo tips, biodata for girl/boy, shaadi format, biodata vs resume, family details, mistakes, WhatsApp sharing, Word vs online. Each is statically generated, internally links to/create, and targets short- + long-tail keywords.Metadata & crawlability
/createnow has its own title/description/canonical (via a server-component layout — it's a client page).articlemetadata;/blogcanonical./blogand all 12 posts.GOOGLE_SITE_VERIFICATIONenv./favicon.ico).Privacy-respecting feedback
Implementation notes
react-markdownat build time in server components → zero client JS added. Styled via a Tailwind component map (no typography plugin).Quality gates
npm run lint✅npm test✅ — 61 passing (18 new: SEO + blog, incl. an integrity check that every in-body blog link resolves to a real route)npm run build✅ — all 12 posts prerendered as static HTMLOwner to-do (not code — SEO needs these)
GOOGLE_SITE_VERIFICATIONin Vercel; verify the domain in Google Search Console and submitsitemap.xml.🤖 Generated with Claude Code