Next.js static export و Core Web Vitals: دليل 2026
للوصول إلى 95+ PageSpeed على الجوال في Next.js static export: استضافة الخطوط ذاتياً عبر raw @font-face، تحميل مسبق لخط LCP مع fetchPriority=high، تجنب Framer Motion above-the-fold، استخدام transform/opacity فقط للرسوم المتحركة، حجز مساحة تخطيط لمحتوى i18n، الخدمة خلف Cloudflare free tier.
بعد 12 شهراً من بيانات الإنتاج على 40+ موقع Next.js مع static export، إليك الـ playbook الدقيق الذي نطبقه للوصول إلى 95+ PageSpeed على الجوال. بدون نظرية — فقط ما يعمل بشكل قابل للقياس.
الأساس: ما يقدمه static export مجاناً
موقع Next.js static export فانيلا يسجل 95-100 موبايل لأن كل HTML مُصير مسبقاً، TTFB منخفض، بدون cold starts. عند إضافة Framer Motion، Google Fonts، الأيقونات، analytics، تنخفض إلى 70-85.
LCP: معركة ضد CSS render-blocking
تقارير PageSpeed تُظهر نفس المشكلة: ملفا CSS render-blocking يضيفان ~500ms render delay على موبايل مخنوق. هذا 100% من ميزانية LCP.
@font-face {
font-family: 'Space Grotesk';
font-weight: 500 700;
font-display: swap;
src: url('/fonts/space-grotesk-latin.woff2') format('woff2');
}استراتيجية خطوط تعمل فعلاً
- خط display (العناوين) — 1 variable font عبر raw @font-face، preload fetchPriority=high.
- خط body — next/font/google Inter مع 2 أوزان (400، 600)، latin فقط.
- Monospace — next/font/google JetBrains Mono، preload=false.
INP: فخاخ Framer Motion
// ❌ سيء
<motion.h1 initial={{ opacity: 0 }} animate={{ opacity: 1 }}>العنوان</motion.h1>
// ✅ جيد
<h1 className="ow-anim-fade-up">العنوان</h1>قواعد: لا تحرك أبداً width/height/top/left. transform/opacity فقط. حد أقصى 1-2 رسوم متحركة لكل viewport. useReducedMotion.
CLS: نمط الحجز i18n
على مواقع i18n، CLS يظهر عندما تُحمل الترجمات بعد التصيير الأولي. الحل: حجز min-height لكل breakpoint.
<div className="min-h-[280px] sm:min-h-[220px] md:min-h-[160px] lg:min-h-[130px]">
<p>{t('tldr.content')}</p>
</div>الصور: AVIF، priority، fetchPriority
images: { unoptimized: true, formats: ['image/avif', 'image/webp'] }الاستضافة: Brotli 11، HTTP/3، Early Hints
- استضافة Origin — أي استضافة ثابتة.
- Cloudflare free tier أمام — HTTP/3، Brotli 11، edge cache.
- Early Hints (103) — يلغي انتظار TTFB من critical path.
- قاعدة cache _next/static/* — Cache Everything، Edge TTL سنة.
- تفريغ cache عند النشر — wrangler أو Cloudflare API في CI.
كيفية تصحيح تراجع PageSpeed
- قارن التقارير — أي مقياس انخفض.
- Critical request chain — ما الذي يعرقل التصيير الآن.
- Chrome DevTools Performance — localhost مع throttling.
- Git diff deps — حزمة npm جديدة؟
- next build output — مسار +20KB = مشبوه.
Read next
SEO تقني لموقع ثابت Next.js: قائمة مرجعية كاملة 2026
كل ما يجب تكوينه تقنياً ليحقق موقع Next.js static export 100/100 في SEO: metadata، JSON-LD، sitemap، hreflang، robots، Speakable، schemas المتقدمة.
Next.js مقابل WordPress في 2026: ماذا تختار لشركة بلجيكية صغيرة؟
مقارنة نزيهة Next.js vs WordPress للشركات الصغيرة والمتوسطة: التكاليف الحقيقية، الأداء، SEO، الصيانة، الأمان، المرونة. متى تختار أيهما حسب ملفك.
الانتقال من WordPress إلى Next.js: دليل خطوة بخطوة 2026
خطة كاملة لترحيل موقع WordPress إلى Next.js static export دون فقدان السيو: تدقيق، تصدير المحتوى، تحويلات 301، إعادة تصميم الواجهة، قياس مكاسب الأداء.
