DEV Community

Shashwat Maurya
Shashwat Maurya

Posted on

Why Your Next.js Website Isn't Ranking on Google (And the 7 Fixes That Actually Work in 2026)

If you have built a beautiful Next.js application and it is getting zero
organic traffic, you are not alone. This is one of the most common problems
we solve at Synor for clients across India.

Here is the short answer: Next.js is architecturally excellent for SEO —
but only when configured correctly. Most developers ship with the wrong
rendering mode for key pages, missing metadata, no structured data, and
images outside the next/image component. Each of these individually
suppresses rankings. Together, they make your website effectively invisible
to Google.

Here are the 7 most impactful fixes:

1. Check your rendering mode — disable JavaScript and view source

The fastest audit you can run: open each key page in your browser,
disable JavaScript (DevTools > Settings > Disable JavaScript), and
refresh. If your content disappears, that page is client-side rendered
and Google is likely not indexing it correctly.

Fix: Migrate to SSG using generateStaticParams for all indexable pages.

2. Confirm metadata is in the raw HTML — not set by JavaScript

Open your page source (Ctrl+U, not DevTools inspector). Is your title
tag in the raw HTML or is it the default? If title tags are being set
via document.title in a useEffect, Google may be reading your default
title instead of your keyword-targeted one.

Fix: Migrate all metadata to Next.js Metadata API in layout.tsx or
page.tsx.

3. Add structured data to every page type

Most Next.js sites have zero JSON-LD schema. This costs you rich results
— FAQ expandable entries, article bylines, star ratings — that double
click-through rates for eligible pages.

Fix: Add at minimum — Article schema on blog posts, LocalBusiness on
homepage, FAQPage on any page with Q&A sections, Service schema on
service pages.

4. Move all images to next/image with explicit dimensions

Standard tags bypass Next.js's optimisation layer — no WebP/AVIF
conversion, no lazy loading, no layout shift prevention. This kills your
LCP and CLS scores.

Fix: Replace every with from 'next/image'. Add priority
prop to above-the-fold images.

5. Add explicit canonical tags to every page

Without explicit canonicals, Next.js often generates the same content
accessible at multiple URLs — /blog/post and /blog/post/, www and non-www,
staging domain leakage. Google splits your ranking signals across variants.

Fix: Set alternates.canonical in every page's metadata export.

6. Generate your XML sitemap dynamically

A static sitemap goes stale the moment you publish new content. Google
discovers new pages slower than it should.

Fix: Create a sitemap.ts file in the App Router that queries your CMS
or database and returns all indexable URLs with lastModified,
changeFrequency, and priority.

7. Optimise Time to First Byte on server-rendered routes

Slow TTFB on SSR routes creates crawl budget waste and affects LCP scores.

Fix: Use Promise.all for parallel data fetching in getServerSideProps
or Server Components. Add Redis caching for frequently-read data. Set
appropriate Cache-Control headers.


At Synor we build every client website with these technical SEO standards
baked into the architecture from day one — not retrofitted after launch.

If your Next.js website is live but not ranking, we offer technical SEO
audits and implementation: synor.in/digital-marketing

nextjs #seo #webdevelopment #technical-seo

Top comments (0)