Conversation
Implements the recommendations in the brand SEO/AEO report. - layout.tsx: metadataBase (fixes OG image resolution), a real default title + template, description, canonical, OG/Twitter defaults — replacing the generic sitewide "Raid Guild" / "Elite Raiders" tags. - Home (page.tsx): JSON-LD Organization block (name, url, logo, foundingDate 2019, sameAs GitHub/X/Discord). - Join (join/page.tsx): unique title, description, canonical, OG. - robots.ts -> /robots.txt (was 404) pointing at the sitemap. - sitemap.ts -> /sitemap.xml (/ and /join). llms.txt already shipped separately (#96); left as-is. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Deployment failed with the following error: View Documentation: https://vercel.com/docs/accounts/team-members-and-roles |
📝 WalkthroughWalkthroughThe changes update site and join-page SEO metadata, add Organization structured data to the homepage, force dynamic homepage rendering, and add robots and sitemap metadata routes for the RaidGuild site. ChangesSEO and discovery
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
src/app/join/page.tsx (1)
17-23: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueUse a relative URL for Open Graph.
Since
metadataBaseis configured in the root layout, you can use a relative URL here to remain consistent with howalternates.canonicalis configured. Next.js will automatically resolve it to the full absolute URL.🛠️ Proposed refactor
openGraph: { title: "Join a RaidGuild Cohort — 4-Week Web3 Proving Ground", description: "A free monthly cohort for intermediate+ developers, designers, and operators. Build a real Web3 project with experienced guild members.", - url: "https://www.raidguild.org/join", + url: "/join", type: "website", },🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/app/join/page.tsx` around lines 17 - 23, Update the openGraph.url value in the page metadata to use the relative join path instead of the absolute domain URL, relying on the root layout’s metadataBase for resolution and keeping it consistent with alternates.canonical.src/app/sitemap.ts (1)
5-19: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winAvoid using the current time for
lastModified.Using
new Date()causes the sitemap to report the build or request time as the modification date for all pages. Search engines recommend updatinglastModifiedonly when the underlying content has actually changed, and they may begin to ignore this field if it updates continuously without meaningful modifications.Consider omitting
lastModifiedentirely for these mostly static routes, or hardcoding the date of the last meaningful update.🛠️ Proposed refactor
- const lastModified = new Date(); - return [ { url: `${base}/`, - lastModified, changeFrequency: "weekly", priority: 1, }, { url: `${base}/join`, - lastModified, changeFrequency: "weekly", priority: 0.8, }, ];🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/app/sitemap.ts` around lines 5 - 19, Remove the dynamic `new Date()` assignment from the sitemap route entries and omit `lastModified` for these mostly static pages, or replace it with a fixed date representing the last meaningful content update. Keep the existing URLs and other sitemap metadata unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/app/layout.tsx`:
- Line 16: Remove the root-level alternates.canonical definition from the layout
metadata so it is not inherited by other pages. Add homepage-specific Metadata
in the page module and set its alternates.canonical to "/" there.
---
Nitpick comments:
In `@src/app/join/page.tsx`:
- Around line 17-23: Update the openGraph.url value in the page metadata to use
the relative join path instead of the absolute domain URL, relying on the root
layout’s metadataBase for resolution and keeping it consistent with
alternates.canonical.
In `@src/app/sitemap.ts`:
- Around line 5-19: Remove the dynamic `new Date()` assignment from the sitemap
route entries and omit `lastModified` for these mostly static pages, or replace
it with a fixed date representing the last meaningful content update. Keep the
existing URLs and other sitemap metadata unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 901953b2-460e-4c99-9fe5-d058231f4b37
📒 Files selected for processing (5)
src/app/join/page.tsxsrc/app/layout.tsxsrc/app/page.tsxsrc/app/robots.tssrc/app/sitemap.ts
| }, | ||
| description: | ||
| "A builder-owned collective shipping smart contracts, dApps, AI systems, and DAO tooling since 2019. Clients include Gitcoin, Gnosis, Pocket Network, and Unlock Protocol.", | ||
| alternates: { canonical: "/" }, |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Remove the root-level canonical URL.
Defining canonical: "/" in the root layout sets this as the default canonical URL for all pages that do not explicitly override it. This causes search engines to mistakenly treat any non-overridden pages as duplicates of the homepage.
It is recommended to remove this from the root layout and instead define it directly in the homepage's src/app/page.tsx metadata.
🕷️ Proposed fix for `layout.tsx`
- alternates: { canonical: "/" },🕷️ Proposed follow-up for `src/app/page.tsx`
You can apply the canonical URL explicitly to the homepage by adding this to src/app/page.tsx:
import type { Metadata } from "next";
export const metadata: Metadata = {
alternates: { canonical: "/" },
};📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| alternates: { canonical: "/" }, |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/app/layout.tsx` at line 16, Remove the root-level alternates.canonical
definition from the layout metadata so it is not inherited by other pages. Add
homepage-specific Metadata in the page module and set its alternates.canonical
to "/" there.
* Add SEO/AEO metadata: per-page titles, robots, sitemap, JSON-LD (#97) Implements the recommendations in the brand SEO/AEO report. - layout.tsx: metadataBase (fixes OG image resolution), a real default title + template, description, canonical, OG/Twitter defaults — replacing the generic sitewide "Raid Guild" / "Elite Raiders" tags. - Home (page.tsx): JSON-LD Organization block (name, url, logo, foundingDate 2019, sameAs GitHub/X/Discord). - Join (join/page.tsx): unique title, description, canonical, OG. - robots.ts -> /robots.txt (was 404) pointing at the sitemap. - sitemap.ts -> /sitemap.xml (/ and /join). llms.txt already shipped separately (#96); left as-is. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> * Remove the root-level canonical URL --------- Co-authored-by: Suede <101133311+Suede0619@users.noreply.github.com> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
- join/page.tsx: openGraph.url now relative ("/join"), resolved via
metadataBase for consistency with alternates.canonical.
- sitemap.ts: drop lastModified. new Date() reported build/request
time on every request for mostly-static routes, which crawlers may
learn to ignore if it changes with no real content update.
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Ships the recommendations from the brand SEO/AEO report.
What changed
/joinnow have unique, plain-language titles and descriptions instead of the sitewide generic "Raid Guild" / "Elite Raiders Conquering the Web3 Realm" — which named no service anyone would search for.metadataBaseset (fixes OG image resolution; also clears the build warning).Organizationon the homepage (name, url, logo, foundingDate 2019, sameAs GitHub/X/Discord).robots.ts→/robots.txt— was a 404; now points at the sitemap.sitemap.ts→/sitemap.xml—/and/join.llms.txtalready shipped in #96; left untouched.Verified
bun run buildclean; dev server confirms unique<title>, description, canonical, JSON-LD on both pages, and/robots.txt+/sitemap.xmlrender correctly.Summary by CodeRabbit