Skip to content

feat: Generative Engine Optimization (GEO)#283

Draft
Copilot wants to merge 3 commits into
mainfrom
copilot/geo-implementation-plan
Draft

feat: Generative Engine Optimization (GEO)#283
Copilot wants to merge 3 commits into
mainfrom
copilot/geo-implementation-plan

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 12, 2026

Implements the full GEO stack so AI search engines (ChatGPT, Perplexity, Gemini) and traditional crawlers can correctly discover, index, and summarize Concertivity's public content.

Crawler control

  • app/robots.ts — allows /, /u/, and legal pages; explicitly disallows all auth-gated routes (/band/, /city/, /year/, /concerts/, /api/, /admin/, etc.); points to sitemap
  • app/sitemap.ts — dynamic server-rendered sitemap: static public pages + every isPublic user profile; force-dynamic so it stays fresh without a rebuild
  • public/llms.txt — plain-text AI-crawler brief (llms.txt convention): what the app does, which URLs are public, and key facts for AI-generated answers

Metadata

  • app/layout.tsx — adds metadataBase (env-driven), title template (%s | Concertivity), root-level OG and Twitter Card defaults
  • app/page.tsx — richer title/description, canonical, OG tags
  • app/u/[username]/page.tsx — OG profile type, Twitter Card, canonical, user avatar as OG image
  • app/band/, app/city/, app/year/robots: { index: false } on all auth-protected dynamic routes

JSON-LD structured data

Page Schema
/ WebSite (with SearchAction for profile lookup) + WebApplication
/u/[username] ProfilePagePerson

All inline <script type="application/ld+json"> tags are nonce-aware, reading the per-request x-nonce header set by the CSP middleware:

const nonce = headersList.get("x-nonce") ?? undefined
// ...
<script type="application/ld+json" nonce={nonce}
  dangerouslySetInnerHTML={{ __html: JSON.stringify(websiteJsonLd) }} />

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • checkpoint.prisma.io
    • Triggering command: /opt/hostedtoolcache/node/24.14.1/x64/bin/node /opt/hostedtoolcache/node/24.14.1/x64/bin/node /home/REDACTED/work/Concertivity/Concertivity/node_modules/prisma/build/child {&#34;product&#34;:&#34;prisma&#34;,&#34;version&#34;:&#34;7.5.0&#34;,&#34;cli_install_type&#34;:&#34;local&#34;,&#34;information&#34;:&#34;&#34;,&#34;local_timestamp&#34;:&#34;2026-05-12T13:00:51Z&#34;,&#34;project_hash&#34;:&#34;b4a4e24c&#34;,&#34;cli_path&#34;:&#34;/home/REDACTED/work/Concertivity/Concertivity/node_modules/prisma/build/index.js&#34;,&#34;cli_path_hash (dns block)
    • Triggering command: /opt/hostedtoolcache/node/24.14.1/x64/bin/node /opt/hostedtoolcache/node/24.14.1/x64/bin/node /home/REDACTED/work/Concertivity/Concertivity/node_modules/prisma/build/child {&#34;product&#34;:&#34;prisma&#34;,&#34;version&#34;:&#34;7.5.0&#34;,&#34;cli_install_type&#34;:&#34;local&#34;,&#34;information&#34;:&#34;&#34;,&#34;local_timestamp&#34;:&#34;2026-05-12T13:01:38Z&#34;,&#34;project_hash&#34;:&#34;b4a4e24c&#34;,&#34;cli_path&#34;:&#34;/home/REDACTED/work/Concertivity/Concertivity/node_modules/prisma/build/index.js&#34;,&#34;cli_path_hash (dns block)
    • Triggering command: /opt/hostedtoolcache/node/24.14.1/x64/bin/node /opt/hostedtoolcache/node/24.14.1/x64/bin/node /home/REDACTED/work/Concertivity/Concertivity/node_modules/prisma/build/child {&#34;product&#34;:&#34;prisma&#34;,&#34;version&#34;:&#34;7.5.0&#34;,&#34;cli_install_type&#34;:&#34;local&#34;,&#34;information&#34;:&#34;&#34;,&#34;local_timestamp&#34;:&#34;2026-05-12T13:04:46Z&#34;,&#34;project_hash&#34;:&#34;b4a4e24c&#34;,&#34;cli_path&#34;:&#34;/home/REDACTED/work/Concertivity/Concertivity/node_modules/prisma/build/index.js&#34;,&#34;cli_path_hash r (dns block)
  • o1.ingest.sentry.io
    • Triggering command: /opt/hostedtoolcache/node/24.14.1/x64/bin/node /opt/hostedtoolcache/node/24.14.1/x64/bin/node /home/REDACTED/work/Concertivity/Concertivity/node_modules/next/dist/bin/next build (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

@vercel
Copy link
Copy Markdown

vercel Bot commented May 12, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
concertivity Ready Ready Preview May 12, 2026 1:13pm

Copilot AI linked an issue May 12, 2026 that may be closed by this pull request
Copilot AI changed the title [WIP] Plan full geo implementation for generative engine optimization feat: Generative Engine Optimization (GEO) May 12, 2026
Copilot finished work on behalf of Juuro May 12, 2026 13:10
Copilot AI requested a review from Juuro May 12, 2026 13:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

GEO

2 participants