كيف حققت درجات أداء عالية على Page Speed Insights من خلال تقسيم الكود وتحسين CSS و SSR الذكي
سعد بتوا
١٥ أبريل ٢٠٢٤
بعد أيام من تحسين تطبيق React الخاص بي، حققت أخيراً ما يحلم به كل مطور: 97 أداء، 100 إمكانية الوصول، 100 أفضل الممارسات، و100 SEO على Page Speed Insights! إليك كيف فعلتها.
تطبيق React الأولي كان لديه وظائف جيدة لكن مقاييس أداء ضعيفة:
استخدمت في البداية React.lazy() المدمج في React لتقسيم الكود، لكنه جعل تجربة المستخدم تبدو كموقع تقليدي متعدد الصفحات.
انتقلت إلى @loadable/component، الذي يوفر إمكانيات prefetching وpreloading قوية مع الحفاظ على انتقالات SPA السلسة.
تحميل ملفات CSS الكبيرة يحجب العرض. ملف CSS الخاص بي كان 180KB.
استخرجت CSS الحرج (الأنماط اللازمة للمحتوى فوق الطي) وأدرجتها inline، ثم أجلت بقية CSS.
عند مشاركة الروابط على WhatsApp أو Twitter أو Facebook، كانت تظهر عناوين عامة وبدون صور معاينة. لماذا؟ زواحف وسائل التواصل الاجتماعي تجلب HTML فقط—لا تنفذ JavaScript!
غلفت تطبيق React مع ASP.NET Core ونفذت حقن meta tags ديناميكي.
| المقياس | قبل | بعد | التحسين |
|---|---|---|---|
| الأداء | 65 | 97 | +32 |
| First Contentful Paint | 3.2 ثانية | 1.1 ثانية | -66% |
| Largest Contentful Paint | 4.8 ثانية | 1.8 ثانية | -63% |
| Time to Interactive | 5.1 ثانية | 2.2 ثانية | -57% |
| حجم الحزمة الإجمالي | 850KB | 320KB | -62% |
تحسين تطبيق React لتحقيق درجات أداء عالية ليس فقط عن اتباع قائمة تحقق. يتطلب فهم كيف تعمل المتصفحات، وكيف يتفاعل المستخدمون مع موقعك، واتخاذ مقايضات مدروسة.
الجهد يستحق—ليس فقط للدرجات، ولكن للتحسين الحقيقي في تجربة المستخدم!
© 2025، جميع الحقوق محفوظة.