A Next.js SEO audit that ends in code.
I check every page template of your Next.js site for SEO problems, then fix them in a pull request. The audit is €2,500 for up to 5 pages, and each fix is €500 a page.
fix(seo): serve canonicals from the real domain
Search Console is telling you where to look.
These are the Next.js SEO problems I find most often, and the code behind each one.
- The page loads its content in a client component, so the first HTML Google gets is a loading state with little to index.
- No page sets its own canonical, or the root layout sets one that every route inherits.
metadataBaseis built fromVERCEL_URL, so canonicals point at a preview deploy instead of your domain.- A missing page calls
notFound()after streaming starts, so the server still answers 200. - The hero image loads late, or a
'use client'boundary high in the tree sends the page as JavaScript.
What I check and fix on each page.
The audit finds the problems on every page template. The SEO fix changes the code for the pages you pick.
| On each page | Audit | SEO fix, €500 a page |
|---|---|---|
| Title, meta description, canonical, and robots tags | Audit: Checked | Fix: generateMetadata and metadataBase set up for the template |
| Open Graph and social previews | Audit: Checked | Fix: Open Graph and Twitter tags added |
| JSON-LD structured data | Audit: Checked | Fix: Article, Product, FAQ, or Breadcrumb schema for the page type |
| Rendering | Audit: Is the content in the HTML Google gets? | Fix: Main content rendered on the server with SSR, SSG, or ISR |
| Status codes, redirects, and internal links | Audit: Checked | Fix: Broken redirects and wrong status codes fixed |
| Sitemap and Search Console indexing status | Audit: Checked | Fix: Page added to sitemap.ts, stray noindex removed |
| Headings and image alt text | Audit: Checked | Fix: Fixed in the template |
| hreflang for other languages | Audit: Checked | Fix: Quoted on the call |
| Core Web Vitals: LCP, INP, CLS | Audit: Diagnosed | Fix: Speed fix, from €500 a page |
| What you get | Audit: A ranked ticket list for each page | Fix: A pull request per page or group of pages, and 30 days of fix support |
The speed fix covers LCP (hero image, next/image priority, and fonts), CLS (reserved space for images and embeds), and INP (deferring heavy client JavaScript and third-party scripts). You get before and after numbers from Lighthouse and field data.
Work out your price.
You pay for the pages you pick. Count your page templates, then choose how many to fix.
How it works.
Free 30-minute call
Send me the URL. We count your page templates together and pick the ones worth fixing.
Fixed quote
You get the pages, the price, and the dates in writing. Nothing is billed before you accept.
Audit, then the fix
You get a ranked ticket list for each page. Pages you chose to fix arrive as pull requests.
Who does the work.

Adeel Imran
One engineer, not an agency. The person on the call reads your code and writes the pull request. The checklist above comes from my Next.js SEO guide, applied to your codebase.
“He was integral in keeping our design system on track. His relentless focus on testing and code quality significantly improved our transition to trunk-based development, which was crucial in our fast-paced, frequent-release environment.”
Ondrej Barta