CSS `eager` ã«ãŒã«ã掻çšããŠãWeb ããã©ãŒãã³ã¹ãåäžãããCLS (Cumulative Layout Shift) ãåæžãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããæ¹æ³ãåŠã³ãŸããããå®è·µçãªå®è£ æŠç¥ãšã°ããŒãã«ãªãã¹ããã©ã¯ãã£ã¹ãæ¢æ±ããŸãã
CSS Eager Rule: Eager Loading å®è£ ã«ãã Web ããã©ãŒãã³ã¹ã®æé©å
Web éçºã®é²åãç¶ããäžã§ãWeb ããã©ãŒãã³ã¹ã®æé©åã¯äŸç¶ãšããŠéèŠãªåªå äºé ã§ããèªã¿èŸŒã¿ã®é ã Web ãµã€ãã¯ããŠãŒã¶ãŒã®ãã©ã¹ãã¬ãŒã·ã§ã³ããšã³ã²ãŒãžã¡ã³ãã®äœäžããããŠæçµçã«ã¯ã³ã³ããŒãžã§ã³çã®äœäžã«ã€ãªããå¯èœæ§ããããŸããWeb ãµã€ãã®äœæé床ãšå®éã®é床ãåäžãããããã®åŒ·åãªãã¯ããã¯ã® 1 ã€ã¯ãç¹ã« CSS `eager` ã«ãŒã«ã掻çšãã eager loading ã§ãããã®å æ¬çãªã¬ã€ãã§ã¯ã`eager` ã«ãŒã«ã®è€éããæãäžããå®è·µçãªå®è£ æŠç¥ãæäŸããã°ããŒãã«ãªã³ã³ããã¹ãã§ã®ãã®å©ç¹ãèå¯ããŸãã
Web ããã©ãŒãã³ã¹ã®éèŠæ§ã®çè§£
`eager` ã«ãŒã«ã®è©³çްã«å ¥ãåã«ãWeb ããã©ãŒãã³ã¹ã®éèŠæ§ãçè§£ããããšãäžå¯æ¬ ã§ãã仿¥ã®ããŒã¹ã®éãããžã¿ã«äžçã§ã¯ããŠãŒã¶ãŒã¯ Web ãµã€ããè¿ éãã€ã¹ã ãŒãºã«èªã¿èŸŒãŸããããšãæåŸ ããŠããŸããèªã¿èŸŒã¿ã®é ã Web ãµã€ãã¯ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«æªåœ±é¿ãåãŒããããã€ãã®æå®³ãªçµæã«ã€ãªããå¯èœæ§ããããŸãã
- çŽåž°çã®å¢å ïŒãŠãŒã¶ãŒã¯ãèªã¿èŸŒã¿ã«æéãããã Web ãµã€ããæŸæ£ããå¯èœæ§ãé«ããªããŸãã
- ã³ã³ããŒãžã§ã³çã®äœäžïŒèªã¿èŸŒã¿ã®é ã Web ãµã€ãã¯ãè³Œå ¥ããã©ãŒã ã®éä¿¡ãªã©ããŠãŒã¶ãŒãåžæããã¢ã¯ã·ã§ã³ãå®äºããããšã劚ããå¯èœæ§ããããŸãã
- SEO ãžã®æªåœ±é¿ïŒGoogle ãªã©ã®æ€çŽ¢ãšã³ãžã³ã¯ãWeb ãµã€ãã®é床ãã©ã³ãã³ã°èŠçŽ ãšããŠèæ ®ããŠããŸããèªã¿èŸŒã¿ã®é ã Web ãµã€ãã¯ãæ€çŽ¢çµæã§äžäœã«ã©ã³ã¯ãããå¯èœæ§ããããŸãã
- æªããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ïŒãã©ã¹ãã¬ãŒã·ã§ã³ãæãããŠãŒã¶ãŒã¯ãWeb ãµã€ãã«æ»ã£ãŠããå¯èœæ§ãäœãããã©ã³ãã®è©å€ãæãªãå¯èœæ§ããããŸãã
Web ããã©ãŒãã³ã¹ã®æé©åã«ã¯ãç»åæé©åãã³ãŒãã®æå°åããã£ãã·ã³ã°ãå¹ççãªãªãœãŒã¹èªã¿èŸŒã¿ãªã©ãããŸããŸãªåŽé¢ãå«ãŸããŸããCSS `eager` ã«ãŒã«ã¯ãCSS ã®èªã¿èŸŒã¿åäœãå¶åŸ¡ããããã®è²ŽéãªããŒã«ãæäŸããç¹ã« Cumulative Layout Shift (CLS) ã«å¯ŸåŠããäœæããã©ãŒãã³ã¹ãåäžãããŸãã
CSS `eager` ã«ãŒã«ã®ç޹ä»
CSS ã® `eager` ã«ãŒã«ã¯ã仿§ãžã®æ¯èŒçæ°ãã远å ã§ãããéçºè ããã©ãŠã¶ã«ã¹ã¿ã€ã«ã·ãŒãã *å³åº§ã«* èªã¿èŸŒãããã«æç€ºããããšãå¯èœã«ããŸããããã¯ãããŒãžãæåã«ã¬ã³ããªã³ã°ããããã«äžå¯æ¬ ãªã¹ã¿ã€ã«ãå«ããéèŠãªã¹ã¿ã€ã«ã·ãŒãã«ç¹ã«åœ¹ç«ã¡ãŸãã`link` èŠçŽ ã« `eager` ãæå®ããããšã«ãããéçºè ã¯ãããã®ã¹ã¿ã€ã«ã·ãŒããå¯èœãªéãè¿ éã«ããŠã³ããŒãããã³è§£æãããããã«ããããšãã§ããŸãããã®ã¢ãããŒãã¯ãCLS ãæžãããã¬ã€ã¢ãŠãã®ãããé²ããæçµçã«ã¯ããã¹ã ãŒãºãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããŸãã
`eager` ã«ãŒã«ã䜿çšããäž»ãªå©ç¹ïŒ
- Cumulative Layout Shift (CLS) ã®åæžïŒéèŠãªã¹ã¿ã€ã«ãæ©æã«èªã¿èŸŒãããšã§ããã©ãŠã¶ã¯æåã®ããŒãžã¬ã€ã¢ãŠããããæ£ç¢ºã«ã¬ã³ããªã³ã°ããäºæããªãã³ã³ãã³ãã®ãããæå°éã«æããããšãã§ããŸãã
- äœæããã©ãŒãã³ã¹ã®åäžïŒããéãæåã®ã¬ã³ããªã³ã°ã¯ãããéãèªã¿èŸŒãŸãã Web ãµã€ããšããå°è±¡ãäžãããŠãŒã¶ãŒæºè¶³åºŠãé«ããŸãã
- ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®åäžïŒããã¹ã ãŒãºã§å®å®ããããŒãžã¬ã€ã¢ãŠãã¯ããŠãŒã¶ãŒã®ãã©ã¹ãã¬ãŒã·ã§ã³ã軜æžããå šäœçãªãšã³ã²ãŒãžã¡ã³ããåäžãããŸãã
- æœåšç㪠SEO ã®ã¡ãªããïŒçŽæ¥çãªã©ã³ãã³ã°èŠçŽ ã§ã¯ãããŸããããããã©ãŒãã³ã¹ã®åäžã¯ã鿥çã«æ€çŽ¢ãšã³ãžã³ã®ã©ã³ãã³ã°åäžã«è²¢ç®ããå¯èœæ§ããããŸãã
`eager` ã«ãŒã«ã®å®è£
`eager` ã«ãŒã«ã®å®è£ ã¯ç°¡åã§ããããã¯äž»ã«ãHTML ã® `` ã¿ã°ã§ `rel="preload"` 屿§ãš `as="style"` 屿§ãäžç·ã«äœ¿çšããæ°ãã `fetchpriority` 屿§ã `high` ã«èšå®ããããšãå«ã¿ãŸãã
<link rel="preload" href="styles.css" as="style" fetchpriority="high">
ãã®äŸã§ã¯ã次ã®ããã«ãªããŸãã
- `rel="preload"`ïŒããã¯ããã©ãŠã¶ã«æå®ããããªãœãŒã¹ãããªããŒãããããã«æç€ºããŸãã
- `href="styles.css"`ïŒCSS ã¹ã¿ã€ã«ã·ãŒããžã®ãã¹ãæå®ããŸãã
- `as="style"`ïŒããªããŒãããããªãœãŒã¹ãã¹ã¿ã€ã«ã·ãŒãã§ããããšã瀺ããŸãã
- `fetchpriority="high"`ïŒããã¯éèŠãªè¿œå ã§ããããã¯ããã®ãªãœãŒã¹ãåªå 床ãé«ããã§ããã ãæ©ããã§ããããå¿ èŠãããããšããã©ãŠã¶ã«éç¥ããŸããããã«ããã"eager" åäœã广çã«å®è£ ãããŸãã
éèŠãªèæ ®äºé ïŒ
- ç¹ç°æ§ïŒããŒãžã®æåã®ã¬ã³ããªã³ã°ã« *äžå¯æ¬ ãª* ã¹ã¿ã€ã«ã·ãŒãã«ã®ã¿ `eager` ãé©çšããŸãã䜿ãããããšããã©ãŠã¶ãä»ã®å¿ èŠãªãªãœãŒã¹ã§ã¯ãªããããããã¹ãŠã®ç¹å®ã®ãªãœãŒã¹ãåªå ãããããããã©ãŒãã³ã¹ã«æªåœ±é¿ãåãŒãå¯èœæ§ããããŸãã
- ãã¹ãïŒ`eager` ã«ãŒã«ãå®è£ ããåŸãWeb ãµã€ãã培åºçã«ãã¹ãããŠãç®çã®å¹æãåŸãããŠããããšã確èªããŸããCLSãFirst Contentful Paint (FCP)ãLargest Contentful Paint (LCP) ãªã©ã®ã¡ããªã¯ã¹ãç£èŠããŠãããã©ãŒãã³ã¹ã®åäžãè©äŸ¡ããŸããGoogle ã® PageSpeed Insights ãŸã㯠WebPageTest.org ãªã©ã®ããŒã«ã䜿çšããŠãå ç¢ãªåæãè¡ããŸãã
- ãã©ãŠã¶ã®ãµããŒãïŒã¿ãŒã²ãããã©ãŠã¶ãã¹ãŠã§ãã¹ãããŠãã ãããæ¡çšãæ¥éã«é²ãã§ããŸããããŠãŒã¶ãŒã䜿çšããŠãããã¹ãŠã®ãã©ãŠã¶ã§å®è£ ã广çã«æ©èœããããšã確èªããŠãã ããã
- ãã¹ãŠã eager ã«èªã¿èŸŒãŸãªãã§ãã ããïŒéèŠãª CSS ã ãã `eager` ãšããŠããŒã¯ããŸãã*ãã¹ãŠ* ã eager ã«èªã¿èŸŒããšãæãŸããçµæãšéã®çµæãã€ãŸãèªã¿èŸŒã¿æéã®å¢å ã«ã€ãªããå¯èœæ§ããããŸãã
ã°ããŒãã«ãª Web ããã©ãŒãã³ã¹ã®ããã®ãã¹ããã©ã¯ãã£ã¹
`eager` ã«ãŒã«ä»¥å€ã«ããã°ããŒãã«èŠæš¡ã§ã® Web ããã©ãŒãã³ã¹ã®åäžã«è²¢ç®ããããã€ãã®æŠç¥ããããŸãããããã®ãã¹ããã©ã¯ãã£ã¹ã¯ãããŸããŸãªå°åãããŸããŸãªã€ã³ã¿ãŒãããé床ãããã³å€æ§ãªããã€ã¹ã®ãŠãŒã¶ãŒã«è¯å®çãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãä¿èšŒããããã«äžå¯æ¬ ã§ãã
- ç»åæé©åïŒWeb é ä¿¡çšã«ç»åãæé©åããŸããé©åãªåœ¢åŒ (äŸ: WebPãAVIF) ã䜿çšããå質ãæãªãããšãªãç»åãå§çž®ããŸããåæèªã¿èŸŒã¿æéãæ¹åããããã«ãæããããŸããç»åã®äžã§ lazy loading ãæ€èšããŠãã ãããTinyPNGãImageOptimãCloudinary ãªã©ã®ããŒã«ã¯ãç»åæé©åã«åœ¹ç«ã¡ãŸãã
- ã³ãŒãã®æå°åãšå§çž®ïŒCSSãJavaScriptãããã³ HTML ãã¡ã€ã«ãæå°åããŠããã¡ã€ã«ãµã€ãºãåæžããŸããgzip ãŸã㯠Brotli å§çž®ã䜿çšããŠã転éæéãããã«ççž®ããŸãã
- ãã£ãã·ã³ã°ïŒãã£ãã·ã³ã°ã¡ã«ããºã (äŸ: ãã©ãŠã¶ãã£ãã·ã³ã°ããµãŒããŒãµã€ããã£ãã·ã³ã°) ãå®è£ ããŠãéçã¢ã»ãããä¿åãããµãŒããŒã®è² è·ã軜æžããŸããé©å㪠`Cache-Control` ããããŒãæ§æããŸãã
- ã³ã³ãã³ãé ä¿¡ãããã¯ãŒã¯ (CDN)ïŒCDN ãå©çšããŠãWeb ãµã€ãã®ã³ã³ãã³ããå°ççã«è€æ°ã®ãµãŒããŒã«åæ£ãããŠãŒã¶ãŒãèªåã®å Žæã«æãè¿ããµãŒããŒããã³ã³ãã³ãã«ã¢ã¯ã»ã¹ã§ããããã«ããŸããäžè¬ç㪠CDN ã«ã¯ãCloudflareãAmazon CloudFrontãAkamai ãªã©ããããŸãã
- HTTP ãªã¯ãšã¹ãã®åæžïŒãã¡ã€ã«ãçµåããCSS ã¹ãã©ã€ãã䜿çšããéèŠãª CSS ãã€ã³ã©ã€ã³åããããšã«ãããHTTP ãªã¯ãšã¹ãã®æ°ãæå°éã«æããŸãã
- JavaScript ã®å®è¡ã®æé©åïŒJavaScript ãã¡ã€ã«ãé å»¶ãŸãã¯éåæçã«èªã¿èŸŒãã§ãããŒãžã®ã¬ã³ããªã³ã°ããããã¯ããªãããã«ããŸããã³ãŒãåå²ã䜿çšããŠãç¹å®ã®ããŒãžã«å¿ èŠãª JavaScript ã®ã¿ãèªã¿èŸŒã¿ãŸãã
- ããã©ãŒãã³ã¹ã®ç£èŠãšåæïŒGoogle PageSpeed InsightsãWebPageTestãGoogle Analytics ãªã©ã®ããŒã«ã䜿çšããŠãWeb ãµã€ãã®ããã©ãŒãã³ã¹ã宿çã«ç£èŠããã³åæããŸããããã«ãããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç©æ¥µçã«ç¹å®ããŠå¯ŸåŠã§ããŸãã
- ã¢ãã€ã«æé©åïŒWeb ãµã€ããã¬ã¹ãã³ã·ãã§ãããã¢ãã€ã«ããã€ã¹åãã«æé©åãããŠããããšã確èªããŸããã¢ãã€ã«ãã¡ãŒã¹ãã®ãã¶ã€ã³ã¢ãããŒããæ€èšããŠãã ãããããŸããŸãªã¢ãã€ã«ããã€ã¹ãšãããã¯ãŒã¯æ¡ä»¶äžã§ Web ãµã€ãããã¹ãããŸãã
- åœéåãšããŒã«ãªãŒãŒã·ã§ã³ (I18n & L10n)ïŒWeb ãµã€ããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«ãµãŒãã¹ãæäŸããŠããå Žåã¯ãåœéåãšããŒã«ãªãŒãŒã·ã§ã³ã®å®è·µãæ€èšããŠãã ããããããã®ãã©ã¯ãã£ã¹ã¯ãèšèªèšå®ãå°ååœ¢åŒ (äŸ: æ¥ä»ãæéãé貚)ãããã³æåçãªãã¥ã¢ã³ã¹ã«é©å¿ããã®ã«åœ¹ç«ã¡ãŸããi18nextãBabelãICU ã©ã€ãã©ãªãªã©ã®ããŒã«ã¯ãI18n ããã³ L10n ããã»ã¹ã容æã«ããããšãã§ããŸãã
- ã¢ã¯ã»ã·ããªãã£ïŒWeb ãµã€ãã身äœé害ã®ãããŠãŒã¶ãŒã«ã¢ã¯ã»ã¹å¯èœã§ããããšã確èªããŸããããã«ã¯ãç»åã®ä»£æ¿ããã¹ãã®æäŸãã»ãã³ãã£ã㯠HTML ã®äœ¿çšãååãªè²ã®ã³ã³ãã©ã¹ãã®ç¢ºä¿ãå«ãŸããŸããWCAG ã¬ã€ãã©ã€ã³ã«åŸãããšã¯å€§ãã«åœ¹ç«ã¡ãŸãã
ã±ãŒã¹ã¹ã¿ãã£ãšã°ããŒãã«ãªäŸ
`eager` ã«ãŒã«ãã©ã®ããã«é©çšã§ãããããããŠãããããããããã©ãŒãã³ã¹äžã®å©ç¹ã®å®éçãªäŸãããã€ãèŠãŠã¿ãŸãããã
äŸ 1ïŒE ã³ããŒã¹ Web ãµã€ã
e ã³ããŒã¹ Web ãµã€ããç¹ã«ã°ããŒãã«ã«è²©å£²ããŠãã Web ãµã€ãã¯ããã®éèŠãª CSS ã« `eager` ã«ãŒã«ã䜿çšããããšã§å€§ããªã¡ãªãããåŸãããŸããããã«ã¯ãããããŒãããã²ãŒã·ã§ã³ãååãªã¹ããããã³ã³ãŒã«ãã¥ã¢ã¯ã·ã§ã³ãã¿ã³ã®ã¹ã¿ã€ã«ãå«ãŸããŸãããã® CSS ãããªããŒãããŠããã«è§£æããããšã«ãããWeb ãµã€ãã¯ãã€ã³ã¿ãŒãããæ¥ç¶ãé ããŠãŒã¶ãŒããããŸã匷åã§ãªãããã€ã¹ã䜿çšããŠãããŠãŒã¶ãŒã§ãã£ãŠããããŒãžã®ã³ã¢èŠçŽ ãå¯èœãªéãè¿ éã«è¡šç€ºãããã€ã³ã¿ã©ã¯ãã£ãã«ãªãããã«ããããšãã§ããŸããããã¯ããŠãŒã¶ãŒãããŒãžããã°ããèªã¿èŸŒãŸãªãå Žåãã«ãŒããæŸæ£ããå¯èœæ§ãäœããªããããè¯å®çãªã·ã§ããã³ã°äœéšã«äžå¯æ¬ ã§ãã
äŸ 2ïŒãã¥ãŒã¹ Web ãµã€ã
ã°ããŒãã«ãªãã¥ãŒã¹ Web ãµã€ãã§ã¯ãã€ã³ã¿ãŒãããã€ã³ãã©ã¹ãã©ã¯ãã£ãç°ãªãå°åã®ãŠãŒã¶ãŒã§ãã£ãŠããèŠåºããèšäºã®æç²ãããã³äž»èŠãªããã²ãŒã·ã§ã³èŠçŽ ãè¿ éã«è¡šç€ºãããããã«ããå¿ èŠããããŸãããããã®èŠçŽ ãå¶åŸ¡ããã¹ã¿ã€ã«ã« `eager` ã«ãŒã«ãé©çšãããšãWeb ãµã€ãã¯éèŠãªã³ã³ãã³ãã®æåã®ã¬ã³ããªã³ã°ãåªå ãããšã³ã²ãŒãžã¡ã³ããé«ããçŽåž°çãæžããããšãã§ããŸããç¹ã«ãã€ã³ã¿ãŒãããæ¥ç¶ãé ãå°åã§ã¯å¹æçã§ããWeb ãµã€ãã¯ããã¥ãŒã¹èšäºã¬ã€ã¢ãŠããå®çŸ©ãããã¡ã€ã«ãªã©ãã³ã¢ CSS ãã¡ã€ã«ã« `fetchpriority="high"` ãé©çšããŸãã
äŸ 3ïŒå€èšèªããã°
è€æ°ã®èšèªã§ã³ã³ãã³ããæäŸããããã°ã¯ã`eager` ã䜿çšããããšã§ã¡ãªãããåŸãããŸããåèšèªã®ã³ã³ãã³ãã®ã¬ã€ã¢ãŠããšåºæ¬æ§é ã«å¿ èŠãªéèŠãª CSS ã¯ã`eager` ã§èªã¿èŸŒãŸããå¿ èŠããããŸããã³ã³ãã³ãèªäœã¯ç°ãªããŸãããåºç€ãšãªãæ§é ããã°ããå©çšã§ããããã«ããå¿ èŠããããŸãããã©ã³ã¹èªããã€ãèªãã¹ãã€ã³èªã§ã³ã³ãã³ããæäŸãã Web ãµã€ãã¯ãåèšèªããŒãžã§ã³ã®ã³ã¢ã¬ã€ã¢ãŠã CSS ã« `eager` ãå®è£ ããŸããããã«ãããéžæããèšèªã«é¢ä¿ãªãããŠãŒã¶ãŒã¯äžè²«ããè¿ éãªèªã¿èŸŒã¿ãšã¯ã¹ããªãšã³ã¹ã確å®ã«åŸãããŸãããŸããå¿ èŠã«å¿ããŠã¹ã¿ã€ã«ã調æŽããããã«åèšèªã«ç°ãªãã¹ã¿ã€ã«ã·ãŒãã䜿çšããããšãæ€èšããŠãã ããããã¹ãŠãé¢é£ãã CSS ã§ `eager` ã«ãŒã«ã䜿çšããªããè¡ããŸãã
Web ããã©ãŒãã³ã¹ã®ãã¹ããšç£èŠ
`eager` ã«ãŒã«ãå®è£ ããããšã¯ãæåã®ã¹ãããã«ãããŸããããã®æå¹æ§ã確ä¿ããæœåšçãªããã©ãŒãã³ã¹ã®åé¡ãç¹å®ããã«ã¯ãç¶ç¶çãªç£èŠãšãã¹ããäžå¯æ¬ ã§ããWeb ããã©ãŒãã³ã¹ãç£èŠããã³åæããããã®äž»èŠãªããŒã«ãšãã¯ããã¯ã次ã«ç€ºããŸãã
- Google PageSpeed InsightsïŒWeb ããŒãžã®ããã©ãŒãã³ã¹ãåæããæ¹åã®ããã®æšå¥šäºé ãæäŸããç¡æã®åŒ·åãªããŒã«ã§ããã¢ãã€ã«ãšãã¹ã¯ãããã®äž¡æ¹ã®ããã©ãŒãã³ã¹ãè©äŸ¡ããCLSãFCPãLCP ãå«ãããŸããŸãªããã©ãŒãã³ã¹ã¡ããªãã¯ã«é¢ããè©³çŽ°ãªæŽå¯ãæäŸããŸãã
- WebPageTest.orgïŒè©³çްãªããã©ãŒãã³ã¹ã®ãã¹ããšåæãå¯èœã«ãããããé«åºŠãªããŒã«ã§ãããã£ã«ã ã¹ããªããããŠã©ãŒã¿ãŒãã©ãŒã«ãã£ãŒããããã©ãŒãã³ã¹ã¬ããŒããªã©ãè±å¯ãªæ å ±ãæäŸããŸããããŸããŸãªãããã¯ãŒã¯æ¡ä»¶ãã·ãã¥ã¬ãŒãããããŸããŸãªå°ççãªå Žæãããã¹ãã§ããŸãã
- LighthouseïŒWeb ããŒãžã®å質ãåäžãããããã®ãªãŒãã³ãœãŒã¹ã®èªååãããããŒã«ã§ããChrome Developer Tools ã®äžéšã§ãããããã©ãŒãã³ã¹ãã¢ã¯ã»ã·ããªãã£ãããã°ã¬ãã·ã Web ã¢ããªãSEO ãªã©ã®ç£æ»ãæäŸããŸããLighthouse ã¬ããŒãã䜿çšããŠãããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ã§ããŸãã
- ãã©ãŠã¶éçºè ããŒã«ïŒãã©ãŠã¶ã®éçºè ããŒã«ã® [Network] ã¿ãã䜿çšããŠããããã¯ãŒã¯ãªã¯ãšã¹ããåæããèªã¿èŸŒã¿ã®é ããªãœãŒã¹ãç¹å®ããŸããã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ã調ã¹ããã€ã³ãæéãåæããããšãã§ããŸãã
- Real User Monitoring (RUM)ïŒRUM ããŒã«ãå®è£ ããŠãå®éã®ãŠãŒã¶ãŒããã®ããã©ãŒãã³ã¹ããŒã¿ãåéããŸããããã«ããããŠãŒã¶ãŒãå®éã« Web ãµã€ããã©ã®ããã«äœéšããŠãããã«ã€ããŠã®è²ŽéãªæŽå¯ãåŸãããŸããGoogle Analytics (æ¡åŒµæž¬å®æ©èœãæå¹ã«ããŠããå Žå)ãNew RelicãDynatrace ãªã©ã®ããŒã«ã¯ãRUM æ©èœãæäŸããŸãã
- Core Web Vitals ã®ç£èŠïŒãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã枬å®ããäž»èŠãªã¡ããªãã¯ã§ãã Core Web Vitals ã®è¿œè·¡ãšæ¹åã«çŠç¹ãåœãŠãŸãããããã«ã¯ãLCPãFID (First Input Delay)ãããã³ CLS ãå«ãŸããŸãã
ããã©ãŒãã³ã¹ã¡ããªãã¯ã宿çã«ç¢ºèªããäžèšã®ããŒã«ã䜿çšãããšãæ¹åã®äœå°ãç¹å®ããWeb ãµã€ããé«éã§é åçãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããŠããããšã確èªã§ããŸããCore Web Vitals ãå£åããå Žåã«éç¥ããã¢ã©ãŒããèšå®ããŠãååž°ãæ€åºããéããã«å¯Ÿå¿ããŸãã
çµè«ïŒããé«é㪠Web ã®ããã® `eager` ã«ãŒã«ã®æ¡çš
CSS `eager` ã«ãŒã«ã¯ãä»ã® Web ããã©ãŒãã³ã¹ã®ãã¹ããã©ã¯ãã£ã¹ãšçµã¿åãããããšã§ãWeb ãµã€ãã®èªã¿èŸŒã¿é床ãæé©åãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããããã®åŒ·åãªã¢ãããŒããæäŸããŸããéèŠãª CSS ã®èªã¿èŸŒã¿ãåªå ããããšã§ãéçºè 㯠CLS ãåæžããäœæããã©ãŒãã³ã¹ãåäžãããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«ãããã¹ã ãŒãºã§é åçãªãªã³ã©ã€ã³ãšã¯ã¹ããªãšã³ã¹ãäœæã§ããŸãã`eager` ã«ãŒã«ã¯ãããºã«ã® 1 ã€ã®ããŒã¹ã«ãããªãããšãå¿ããªãã§ãã ãããç»åæé©åãã³ãŒãã®æå°åããã£ãã·ã³ã°ãCDN ãªã©ãå«ã Web ããã©ãŒãã³ã¹æé©åãžã®å šäœçãªã¢ãããŒããæ¡çšããŠãã ããããããã®ååãæ¡çšããããšã«ãããå€èгãåªããŠããã ãã§ãªãããŠãŒã¶ãŒãã©ãã«ããããã©ã®ããã€ã¹ã䜿çšããŠãããã«é¢ä¿ãªããåªããããã©ãŒãã³ã¹ãçºæ®ãã Web ãµã€ããæ§ç¯ã§ããŸããWeb ãµã€ãã®ããã©ãŒãã³ã¹ãç¶ç¶çã«ç£èŠããã³ãã¹ãããŠãæé©ãªçµæã確ä¿ããé²åãã Web éçºã®ç¶æ³ã«é©å¿ããŠãã ããã
èŠçŽãããšã`eager` ã«ãŒã«ã¯ãææ°ã® Web éçºã«ãšã£ãŠè²ŽéãªããŒã«ã§ãããããé«éã§ããã©ãŒãã³ã¹ã®é«ã Web ãµã€ããžã®çŽæ¥çãªéãæäŸããŸãããããæ¡çšãããã¹ãããä»ã®ããã©ãŒãã³ã¹æé©åæè¡ãšçµã¿åãããŠãã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«åªãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããŸãã
ãããã質å (FAQ)
QïŒCumulative Layout Shift (CLS) ãšã¯äœã§ããïŒ
AïŒCLS ã¯ãããŒãžã®èªã¿èŸŒã¿äžã«èŠèŠçãªèŠçŽ ã®äºæããªããããæž¬å®ããŸããäœã CLS ã¹ã³ã¢ã¯æãŸãããããå®å®ãããŠãŒã¶ãŒãã¬ã³ããªãŒãªãšã¯ã¹ããªãšã³ã¹ã瀺ããŸãã
QïŒ`eager` ã«ãŒã«ã¯ãJavaScript ã® `async` ããã³ `defer` 屿§ãšã©ã®ããã«ç°ãªããŸããïŒ
AïŒ`async` ããã³ `defer` 屿§ã¯ãJavaScript ãã¡ã€ã«ã®èªã¿èŸŒã¿ãšå®è¡ãå¶åŸ¡ããŸãã`fetchpriority="high"` ã䜿çšãã `eager` ã«ãŒã«ã¯ãCSS ã¹ã¿ã€ã«ã·ãŒãã®å³æèªã¿èŸŒã¿ã«çŠç¹ãåœãŠãããŒãžã®æåã®ã¬ã€ã¢ãŠãã®ã¬ã³ããªã³ã°ã«åœ±é¿ãäžããŸãã
QïŒãã¹ãŠã® CSS ãã¡ã€ã«ã« `eager` ã«ãŒã«ã䜿çšããå¿
èŠããããŸããïŒ
AïŒããããããŒãžã®æåã®ã¬ã³ããªã³ã°ã«äžå¯æ¬ 㪠CSS ãã¡ã€ã«ã«ã®ã¿ `eager` ã«ãŒã«ãé©çšããŸãã䜿ãããããšããã¹ãŠã® CSS ãã¡ã€ã«ã«åãåªå
床ãäžãããããå
šäœçãªããã©ãŒãã³ã¹ã«æªåœ±é¿ãåãŒããä»ã®éèŠãªãªãœãŒã¹ã®èªã¿èŸŒã¿ã劚ããå¯èœæ§ããããŸããããŸããŸãª CSS ãã¡ã€ã«ã§ã® `eager` ã«ãŒã«ã®äœ¿çšã®åœ±é¿ãåžžã«ãã¹ãããŠåæããŠãã ããã
QïŒ`eager` ã«ãŒã«ã¯ SEO ã«ã©ã®ããã«åœ±é¿ããŸããïŒ
AïŒçŽæ¥çãªã©ã³ãã³ã°èŠçŽ ã§ã¯ãããŸããããWeb ãµã€ãã®èªã¿èŸŒã¿é床ã®åäž (`eager` ã«ãŒã«ã§åœ¹ç«ã¡ãŸã) ã¯ãããè¯ãæ€çŽ¢ãšã³ãžã³ã®ã©ã³ãã³ã°ã«è²¢ç®ããå¯èœæ§ããããŸããèªã¿èŸŒã¿ãéã Web ãµã€ãã¯ãéåžžãçŽåž°çãäœãããŠãŒã¶ãŒãšã³ã²ãŒãžã¡ã³ããé«ãã鿥çã« SEO ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
QïŒ`eager` ã«ãŒã«ã®ä»£æ¿ææ®µã«ã¯ã©ã®ãããªãã®ãããããã€äœ¿çšã§ããŸããïŒ
AïŒä»£æ¿ææ®µã«ã¯ã次ã®ãã®ãå«ãŸããŸãã
- Critical CSSïŒæåã®ã¬ã³ããªã³ã°ã«å¿ èŠãªéèŠãª CSS (ã¹ã¿ã€ã«) ã HTML ããã¥ã¡ã³ãã«çŽæ¥ã€ã³ã©ã€ã³åããŸãã
- CSS ã€ã³ã©ã€ã³åïŒHTML ã® `<head>` å ã«ãå°ãããéèŠãª CSS ãããã¯ãå«ããŸãã
QïŒWeb ããã©ãŒãã³ã¹ã®æé©åã«ã€ããŠè©³ããã¯ãã©ãã§åŠã¹ãŸããïŒ
AïŒWeb ããã©ãŒãã³ã¹ã®æé©åã«ã€ããŠããã«åŠã¶ããã®å€ãã®ãªãœãŒã¹ããããŸããããã€ãã®åœ¹ç«ã€æ
å ±æºã«ã¯ãGoogle ã® web.devãMDN Web DocsãCoursera ã Udemy ãªã©ã®ãã©ãããã©ãŒã ã®ãªã³ã©ã€ã³ã³ãŒã¹ãªã©ããããŸãããŸãã䜿çšããŠããç¹å®ã®ã©ã€ãã©ãªãšãã¬ãŒã ã¯ãŒã¯ã«é¢ããããã¥ã¡ã³ããåç
§ããŠãã ããã