How to Create SEO-Friendly Web3 Websites That Actually Rank
Technical SEO for Web3 sites with Next.js: metadata, sitemaps, schema markup, article strategy, internal linking, AI search optimization, and Core Web Vitals.
Why most Web3 websites fail at SEO
The majority of Web3 products are client-side SPAs that render blank HTML to search engines. Google sees an empty div and a JavaScript bundle. No content, no rankings, no organic traffic. Meanwhile, competitors using Next.js with server-rendered pages capture every search query in their niche.
Web3 SEO is not different from traditional SEO — it is just rarely done well in this industry.
Technical SEO basics in Next.js
Use the App Router with server components for all public pages. Every page needs unique metadata, a canonical URL, and crawlable HTML content.
// app/tools/gas-tracker/page.tsx
import type { Metadata } from 'next';
export const metadata: Metadata = {
title: 'Ethereum Gas Tracker — Live Gas Prices',
description: 'Check current Ethereum gas prices in real-time. See base fee, priority fee, and estimated transaction costs.',
alternates: { canonical: '/tools/gas-tracker' },
openGraph: {
title: 'Ethereum Gas Tracker',
description: 'Live gas prices for Ethereum mainnet',
type: 'website',
},
};
export default async function GasTrackerPage() {
const gasData = await fetchGasPrices();
return (
<main>
<h1>Ethereum Gas Tracker</h1>
<p>Current base fee: {gasData.baseFee} gwei</p>
{/* Server-rendered content Google can index */}
</main>
);
}Metadata, sitemap, and robots.txt
// app/sitemap.ts
import { articles } from '@/data/articles';
export default function sitemap() {
const articleUrls = articles.map((a) => ({
url: `https://yoursite.com/blog/${a.slug}`,
lastModified: new Date(),
changeFrequency: 'monthly' as const,
priority: 0.7,
}));
return [
{ url: 'https://yoursite.com', lastModified: new Date(), priority: 1 },
{ url: 'https://yoursite.com/blog', lastModified: new Date(), priority: 0.8 },
...articleUrls,
];
}// app/robots.ts
export default function robots() {
return {
rules: { userAgent: '*', allow: '/', disallow: '/api/' },
sitemap: 'https://yoursite.com/sitemap.xml',
};
}Schema markup
Add JSON-LD structured data for articles, tools, and organization info. This helps Google and AI search engines understand your content.
// components/ArticleSchema.tsx
export function ArticleSchema({ article }: { article: Article }) {
const schema = {
'@context': 'https://schema.org',
'@type': 'Article',
headline: article.title,
description: article.description,
author: { '@type': 'Person', name: 'Your Name' },
datePublished: article.date,
keywords: article.keywords?.join(', '),
};
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>
);
}Article strategy for Web3 tools
Every tool page should have a companion article. A gas tracker needs "How to Read Ethereum Gas Prices." A token converter needs "How to Convert Between ERC-20 Tokens." These articles capture long-tail search traffic and establish expertise.
Write for developers and founders, not for search engines. Answer real questions with practical code examples. Google rewards experience-based content.
Internal linking
Link between related articles, tool pages, and your portfolio. Use descriptive anchor text ("learn how to batch RPC calls" not "click here"). Every blog article should link to 2–3 related articles and your contact/hire page.
AI search optimization
AI search engines (ChatGPT, Perplexity, Google AI Overviews) favor clear structure, direct answers, FAQ sections, and authoritative content. Use semantic HTML headings (h1, h2, h3). Write FAQ sections with specific questions and concise answers. Include author credentials and publication dates.
Performance and Core Web Vitals
Google ranks fast pages higher. Use next/image, next/font, lazy-loaded charts, and edge-cached API routes. Target LCP under 2.5s, CLS under 0.1, and INP under 200ms.
FAQ
**Do Web3 apps need SEO?** If you want organic traffic for landing pages, tools, docs, or blog content — yes. Pure dApps accessed via direct links need less SEO but still benefit from shareable metadata.
**Should I use a CMS?** For high-volume content sites, yes (Sanity, Contentful). For developer portfolios with occasional articles, markdown/TypeScript content files work well.
**How many articles do I need?** Start with 5–10 high-quality articles targeting specific keywords. Consistency matters more than volume.
**Does client-side rendering hurt SEO?** Yes. Google can render JavaScript but it is slower and less reliable than server-rendered HTML. Always SSR public content.
Want to work together? I build Web3 dashboards and DeFi interfaces.