StabilityNexus / StabilityNexus/StableViewpoints
[FEATURE]: SEO & SEM optimization sitemap, robots.txt, per-article metadata, and structured data
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 9
- Forks
- 34
- PR merge metrics
- No merged PRs in 30d
Description
Feature and its Use Cases
Since Stable Viewpoints is a blogging platform, SEO is pretty much the lifeline for organic traffic. Right now the site is missing some fundamental pieces that prevent search engines from properly indexing and ranking the articles.
I checked the live site and found these gaps:
- No
sitemap.xml:viewpoints.stability.nexus/sitemap.xmlreturns 404. Google literally can't discover our articles. - No
robots.txt:viewpoints.stability.nexus/robots.txtalso 404. No crawl instructions for any bot. - Every article shows the same title and description in search results : The
<title>tag on all article pages just says "Stable Viewpoints" instead of the actual article title. Same issue with meta descriptions. This is becauseapp/a/[slug]/page.tsxdoesn't export agenerateMetadatafunction. - Canonical URLs on all articles point to the homepage (
/) : This makes Google think every article is a duplicate of the homepage. Huge ranking penalty. - No JSON-LD structured data : No
BlogPostingorWebSiteschema, so we'll never get rich results (article cards, breadcrumbs, etc.) in search. - No Google Search Console verification : We can't even monitor how Google sees the site.
What needs to be done
- Add
app/sitemap.ts: Generate sitemap fromarticles-index.jsonwith all article URLs, dates, and priorities - Add
app/robots.ts: Allow all crawlers, link to sitemap - Add
generateMetadata()toapp/a/[slug]/page.tsx: Per-article title, description, OG tags, Twitter cards, and canonical URL - Add JSON-LD structured data :
WebSite+Organizationon homepage,BlogPostingschema on each article page - Add Google Search Console verification tag in
app/layout.tsx - Add
public/manifest.jsonand link it in layout
How users (and the project) benefit
- Articles actually show up in Google search with proper titles and descriptions
- Each article gets its own rich preview when shared on Twitter/LinkedIn/Discord
- GSC gives us data on impressions, clicks, and indexing issues
- Sitemap lets Google discover new articles automatically after deploy
I'd suggest splitting this into 2-3 PRs by priority. happy to pick some of these up.
Additional Context
I used my own portfolio https://atharvanaik.me as a reference : it's built with the same stack (Next.js 15, App Router, static export) and has all of these implemented. Here are the specific files for reference:
- sitemap.ts : dynamic sitemap generation from content
- robots.ts : multi-bot rules with sitemap link
- layout.tsx : JSON-LD schema, GSC verification, manifest
- posts/page.tsx : per-page metadata + CollectionPage schema
Useful tools for validation after implementation:
Code of Conduct
- I have joined the Discord server and will post updates there
- I have searched existing issues to avoid duplicates
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading app/a/[slug]/page.tsx, app/layout.tsx, and the articles-index.json data source, then review the existing static-export setup. Implement the sitemap, robots rules, per-article metadata, structured data, verification tag, and manifest described in the issue, splitting the work if needed. Done means the listed routes and page metadata exist and the supplied Rich Results, Search Console, and PageSpeed tools can validate the result.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- next.js, typescript
- Domain
- frontend, web-dev
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100