SEO for Next.js Sites

GSCPilot understands Next.js conventions like metadata exports, generateMetadata(), and App Router file structure. It reads your Search Console data and opens a PR with optimized titles, descriptions, and schema.

$ gscpilot scan --framework nextjs

Detected Next.js (App Router)

Scanning src/app/**/page.tsx ...

Found src/app/blog/page.tsx

Found src/app/docs/getting-started/page.tsx

Found src/app/pricing/page.tsx

Synced 28 days of Search Console data

Identified 6 pages with CTR below 2%

Opening pull request with 6 metadata fixes...

PR #47 created: "seo: optimize metadata for 6 underperforming pages"

How GSCPilot works with Next.js

  • Detects App Router vs Pages Router and reads your src/app/**/page.tsx files automatically.
  • Understands both static metadata exports and dynamic generateMetadata() functions.
  • Cross-references your source files with 28 days of Google Search Console data to find underperforming pages.
  • Generates patches that follow your existing code patterns, so the PR looks like code you wrote.

What GSCPilot fixes

Title tags

Rewrites the title field in your metadata export to match high-intent search queries.

Meta descriptions

Adds or improves description in your metadata so Google shows a compelling snippet.

JSON-LD schema

Inserts structured data as a <script type="application/ld+json"> block in your page component.

Example pull request

A real change GSCPilot might open on your Next.js site.

src/app/blog/react-tips/page.tsx

export const metadata: Metadata = {

- title: "React Tips and Tricks for Building Better Web Applications in 2025",

+ title: "React Tips: Build Better Apps Faster | MyBlog",

description: "...",

}

Frequently asked questions

Does GSCPilot support the Next.js App Router?+
Yes. GSCPilot detects whether your project uses App Router or Pages Router and generates the correct metadata format. For App Router it writes metadata exports, and for Pages Router it updates Head components.
What files does GSCPilot modify in a Next.js project?+
GSCPilot only touches metadata. It edits the metadata export or generateMetadata() function in your page.tsx and layout.tsx files. It can also add JSON-LD structured data as a script tag.
Will GSCPilot push changes directly to my main branch?+
No. Every change ships as a pull request. You review the diff, approve it, and merge on your own terms. Nothing goes live until you decide.

Ship your first Next.js SEO fix today

Connect your Search Console, scan your Next.js repo, and get a PR with optimized metadata in minutes.

Start optimizing your site

GSCPilot connects your Google Search Console and GitHub. It finds the issues, generates code fixes, and opens a pull request. You review, merge, and track the impact.