Tutorial
Next.js Performance Tips: Från 3s till 0.5s laddningstid
·6 min läsning
Next.js Performance Tips: Från 3s till 0.5s laddningstid
Performance är inte bara en "nice to have" - det påverkar direkt din konvertering, SEO och användarupplevelse. Här är mina bästa tips för att optimera Next.js-appar.
1. Image Optimization
Före:
<img src="/hero.jpg" alt="Hero" />
Efter:
import Image from 'next/image'
<Image
src="/hero.jpg"
alt="Hero"
width={1200}
height={600}
priority
placeholder="blur"
blurDataURL="data:image/jpeg;base64,..."
/>
Resultat: -60% bildstorlek, lazy loading gratis!
2. Font Optimization
// app/layout.tsx
import { Inter } from 'next/font/google'
const inter = Inter({
subsets: ['latin'],
display: 'swap', // Viktigt!
})
Detta ger dig:
- Automatisk font optimization
- Ingen layout shift
- Self-hosting (ingen extra request till Google)
3. Code Splitting
// Ladda komponenter lazy
import dynamic from 'next/dynamic'
const HeavyChart = dynamic(() => import('@/components/HeavyChart'), {
loading: () => <p>Laddar...</p>,
ssr: false // Om komponenten inte behövs för SEO
})
4. Caching Strategies
// app/api/data/route.ts
export async function GET() {
const data = await fetchData()
return Response.json(data, {
headers: {
'Cache-Control': 'public, s-maxage=3600, stale-while-revalidate=86400'
}
})
}
5. Database Queries
Före:
const posts = await db.post.findMany()
const users = await db.user.findMany()
Efter:
const [posts, users] = await Promise.all([
db.post.findMany(),
db.user.findMany()
])
Parallella queries = halva väntetiden!
6. Bundle Analysis
npm install @next/bundle-analyzer
# next.config.js
const withBundleAnalyzer = require('@next/bundle-analyzer')({
enabled: process.env.ANALYZE === 'true',
})
module.exports = withBundleAnalyzer(nextConfig)
Kör ANALYZE=true npm run build för att se vad som tar plats.
Resultat
Efter att ha implementerat dessa tips på ett projekt:
- Lighthouse Score: 65 → 98
- First Contentful Paint: 3.2s → 0.5s
- Time to Interactive: 5.1s → 1.2s
- Bundle Size: 450kb → 180kb
Takeaway
Performance optimization är inte en engångsgrej - det är en kontinuerlig process. Börja med det som ger mest bang for the buck (images och fonts), mät, och fortsätt förbättra!
Vill du ha hjälp med att optimera din Next.js app? Kontakta mig!