Files
kunstenkamp/.agents/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md
2026-02-24 11:35:17 +01:00

924 B

title, impact, impactDescription, tags
title impact impactDescription tags
Defer Non-Critical Third-Party Libraries MEDIUM loads after hydration bundle, third-party, analytics, defer

Defer Non-Critical Third-Party Libraries

Analytics, logging, and error tracking don't block user interaction. Load them after hydration.

Incorrect (blocks initial bundle):

import { Analytics } from "@vercel/analytics/react";

export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        {children}
        <Analytics />
      </body>
    </html>
  );
}

Correct (loads after hydration):

import dynamic from "next/dynamic";

const Analytics = dynamic(() => import("@vercel/analytics/react").then((m) => m.Analytics), {
  ssr: false,
});

export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        {children}
        <Analytics />
      </body>
    </html>
  );
}