ãŠã§ããµã€ãã®è¡šç€ºé床ã¯ãåãªããéããã®åé¡ã§ã¯ãããŸãããããã¯ãçŽåž°çã®æ¹åãã³ã³ããŒãžã§ã³çã®åäžããããŠSEOïŒæ€çŽ¢ãšã³ãžã³æé©åïŒã«ãããè©äŸ¡ã«çŽçµãããããžãã¹æåã®ããã®æéèŠãã¡ã¯ã¿ãŒã§ããGoogleã®èª¿æ»ã«ããã°ãããŒãžã®èªã¿èŸŒã¿ã«3ç§ä»¥äžããããšã53%ã®ã¢ãã€ã«ãŠãŒã¶ãŒããµã€ããé¢è±ãããšèšãããŠããŸãã
ãã®é床ãå·Šå³ãã倧ããªèŠå ã®äžã€ããCSSïŒCascading Style SheetsïŒãã§ããCSSã¯ããŒãžã®èŠãç®ãå®çŸ©ããäžå¯æ¬ ãªååšã§ãããäžé©åãªèªã¿èŸŒã¿æ¹ã¯ãã¬ã³ããªã³ã°ãããã¯ïŒæç»ã®åŠšãïŒããåŒãèµ·ãããç»é¢ãçã£çœãªæéãé·ãããŠããŸããŸããæ¬èšäºã§ã¯ãåå¿è ã®æ¹ã«ãåããããããææ°ã®CSSæé©åæŠç¥ã培åºè§£èª¬ããŸãã
- 1. CSSã®èªã¿èŸŒã¿ããªãé床ã«åœ±é¿ããã®ã
- 2. Critical CSSïŒãã¡ãŒã¹ããã¥ãŒãæéã§è¡šç€ºãã
- 3. ãã©ã³ãæé©åïŒWOFF2ãšè¡šç€ºé å»¶ã®è§£æ¶
- 4. éåæèªã¿èŸŒã¿ïŒã¬ã³ããªã³ã°ãããã¯ãåé¿ãã
- 5. CSSã®æå°åïŒMinifyïŒãšçµåã®æè¡
- 6. ã¢ãã³ãã©ãŠã¶ã®æ©èœã掻ããïŒHTTP/2ãšããªããŒã
- 7. ãŸãšãïŒç¶ç¶çãªããã©ãŒãã³ã¹æ¹åã®ããã«
1. CSSã®èªã¿èŸŒã¿ããªãé床ã«åœ±é¿ããã®ã
ãã©ãŠã¶ããŠã§ãããŒãžã衚瀺ããéãHTMLãè§£æããŠãDOMããªãŒããäœããCSSãè§£æããŠãCSSOMããªãŒããäœããŸãããã®2ã€ãçµã¿åããã£ãŠåããŠãç»é¢ã«äœãæç»ããããæ±ºãŸããã¬ã³ããŒããªãŒãã宿ããŸãã
ããã§åé¡ãšãªãã®ãããã©ãŠã¶ã¯ããã©ã«ãã§ããã¹ãŠã®CSSãèªã¿èŸŒã¿ãè§£æãçµãããŸã§æç»ãéå§ããªãããšããæ§è³ªãæã£ãŠããç¹ã§ããããããã¬ã³ããªã³ã°ãããã¯ããšåŒã³ãŸãã巚倧ãªCSSãã¡ã€ã«ã1ã€ããã ãã§ããŠãŒã¶ãŒã¯ç»é¢ãåãåºãã®ããã£ãšåŸ ããããããšã«ãªãã®ã§ãã
ããã©ãŒãã³ã¹åäžã®ç¬¬äžæ©ã¯ããã®ãåŸ ã¡æéããããã«ççž®ãããããããã¯ãåŸ ããããŠãããšæããããªããããæŠç¥çã«èšèšããããšã«ãããŸãã
2. Critical CSSïŒãã¡ãŒã¹ããã¥ãŒãæéã§è¡šç€ºãã
ãCritical CSSïŒã¯ãªãã£ã«ã«CSSïŒããšã¯ããŠãŒã¶ãŒãããŒãžã«ã¢ã¯ã»ã¹ããéã«æåã«èŠããç¯å²ïŒãã¡ãŒã¹ããã¥ãŒããŸãã¯Above the FoldïŒãæç»ããããã«å¿ èŠãªæå°éã®ã¹ã¿ã€ã«ãæããŸãã
ã€ã³ã©ã€ã³åã®éæ³
éåžžãCSSã¯å€éšãã¡ã€ã«ãšããŠèªã¿èŸŒã¿ãŸãããCritical CSSã¯HTMLã® <head> å
ã«çŽæ¥ <style> ã¿ã°ãšããŠæžã蟌ã¿ãŸãïŒã€ã³ã©ã€ã³åïŒãããã«ãããå€éšãã¡ã€ã«ã®ããŠã³ããŒããåŸ
ã€ããšãªãããã©ãŠã¶ã¯å³åº§ã«ç»é¢ã®äžéšãæç»ã§ããŸãã
- ã¡ãªããïŒFirst Contentful PaintïŒFCPïŒæåã®ã³ã³ãã³ãã衚瀺ããããŸã§ã®æéïŒãåçã«åäžããŸãã
- ãã¡ãªããïŒHTMLã®ãµã€ãºã倧ãããªããããè©°ã蟌ã¿ããããšé广ã«ãªããŸããäžè¬çã«14KBã20KBçšåºŠã«åããã®ãçæ³ã§ãã
èªååããŒã«ã®æŽ»çš
ã©ã®CSSããã¯ãªãã£ã«ã«ãããäžã€ã²ãšã€æäœæ¥ã§å€å¥ããã®ã¯çŸå®çã§ã¯ãããŸããããCriticalãããPenthouseããšãã£ãNode.jsããŒã¹ã®ããŒã«ããWordPressã§ããã°ãWP Rocketããªã©ã®ãã©ã°ã€ã³ã䜿çšããããšã§ãèªåçã«æœåºã»ã€ã³ã©ã€ã³åãå¯èœã§ãã
3. ãã©ã³ãæé©åïŒWOFF2ãšè¡šç€ºé å»¶ã®è§£æ¶
ãããããªãŠã§ããã©ã³ãã¯ãã¶ã€ã³æ§ãé«ããŸããããã¡ã€ã«ãµã€ãºã倧ããããèªã¿èŸŒã¿ã®ããã«ããã¯ã«ãªããã¡ã§ãã
WOFF2ãã©ãŒãããã®æ¡çš
çŸåšãæãæšå¥šããããã©ã³ã圢åŒã¯WOFF2ã§ããããã¯åŸæ¥ã®WOFFãããå§çž®çãçŽ30%é«ãããã©ãŠã¶ã§ã®ãã³ãŒããé«éã§ããã¢ãã³ãã©ãŠã¶ã®ã»ãŒãã¹ãŠã察å¿ããŠãããããWOFF2ãæåªå ã§äœ¿çšããããã«èšå®ããŸãããã
font-displayããããã£ã«ããå¶åŸ¡
ãã©ã³ãã®èªã¿èŸŒã¿äžã«ããã¹ããæ¶ããŠããŸãåé¡ïŒFOITïŒFlash of Invisible TextïŒãé²ãã«ã¯ãCSSã® @font-face å
ã§ font-display: swap; ãæå®ããŸãã
font-display: swap;ãèšå®ãããšããŠã§ããã©ã³ããããŠã³ããŒãããããŸã§ã®éãOSæšæºã®ä»£æ¿ãã©ã³ãã§ããã¹ãã衚瀺ããããŠã³ããŒãå®äºåŸã«ãããšåãæ¿ããŠãããŸããããã«ããããŠãŒã¶ãŒã¯ãæåãèªããªãããšããã¹ãã¬ã¹ããè§£æŸãããŸãã
4. éåæèªã¿èŸŒã¿ïŒã¬ã³ããªã³ã°ãããã¯ãåé¿ãã
ãã¡ãŒã¹ããã¥ãŒã«é¢ä¿ã®ãªããéèŠåºŠã®äœãCSSãã¯ãããŒãžã®æç»ãçµãã£ãåŸã«ãã£ããèªã¿èŸŒãã°ååã§ãããããå®çŸããã®ãéåæèªã¿èŸŒã¿ã§ãã
media屿§ãé§äœ¿ãããã¯ããã¯
æãã·ã³ãã«ã§å¹æçãªæ¹æ³ã¯ã以äžã®ãã㪠<link> ã¿ã°ã®èšè¿°ã§ãã
<link rel="stylesheet" href="style.css" media="print" onload="this.media='all'">
ãã®ã³ãŒãã®ä»çµã¿ã¯éåžžã«ãŠããŒã¯ã§ãã
- ãŸã
media="print"ãšããããšã§ããã©ãŠã¶ã«ãããã¯å°å·çšã ãããç»é¢ã®æç»ïŒã¬ã³ããªã³ã°ïŒãæ¢ããŠãŸã§æ¥ãã§èªãå¿ èŠã¯ãªããããšæããŸãã - ãã©ãŠã¶ã¯æç»ãæ¢ããã«ããã¯ã°ã©ãŠã³ãã§ãã¡ã€ã«ãããŠã³ããŒãããŸãã
- ããŠã³ããŒããçµãã£ãç¬éïŒonloadïŒã
media="all"ã«æžãæããããšã§ãæ¬æ¥ã®ã¹ã¿ã€ã«ãšããŠé©çšãããŸãã
ããã«ãããã¬ã³ããªã³ã°ãããã¯ãå®å šã«åé¿ããªãããå¿ èŠãªã¹ã¿ã€ã«ãåŸããé©çšããããšãã§ããŸãã
5. CSSã®æå°åïŒMinifyïŒãšçµåã®æè¡
åºæ¬çãªããšã§ããããã¡ã€ã«ã®ç©ççãªãµã€ãºãåãããšãéèŠã§ãã
CSS MinifyïŒæå°åïŒ
人éãèªã¿ãããããã«å ¥ããŠããã¹ããŒã¹ãæ¹è¡ãã³ã¡ã³ããªã©ã¯ãã³ã³ãã¥ãŒã¿ã«ãšã£ãŠã¯äžèŠãªæ å ±ã§ããããããåé€ããŠäžè¡ã«åçž®ããããšã§ããã¡ã€ã«ãµã€ãºã10%ã20%ã»ã©åæžã§ããŸãã
ãã¡ã€ã«ã®çµåïŒConcatenationïŒ
ãããããŒçšãããµã€ãããŒçšããããã¿ãŒçšããšçްããåãããCSSãã¡ã€ã«ã¯ã管çã¯ããããã§ããããã®åã ãHTTPãªã¯ãšã¹ãïŒãµãŒããŒãžã®åãåããïŒãçºçããŸãã
ãã ããåŸè¿°ããHTTP/2ç°å¢äžã§ã¯ãå¿
ããããã¡ã€ã«ã1ã€ã«ãŸãšããããšãæ£è§£ã§ã¯ãªããªã£ãŠããŸããå°ããªãã¡ã€ã«ã倿°äžŠåã§èªã¿èŸŒãæ¹ãå¹ççãªå Žåãããããããããžã§ã¯ãã®ç°å¢ã«åããã倿ãå¿
èŠã§ãã
6. ã¢ãã³ãã©ãŠã¶ã®æ©èœã掻ããïŒHTTP/2ãšããªããŒã
ãµãŒããŒãšãã©ãŠã¶ã®éä¿¡ãããã³ã«ãé²åããŠããŸãã
HTTP/2ã«ãã䞊ååŠç
åŸæ¥ã®HTTP/1.1ã§ã¯ãäžåºŠã«æ°åã®ãã¡ã€ã«ããããŠã³ããŒãã§ããŸããã§ããããHTTP/2ã§ã¯æ°ååã®ãã¡ã€ã«ãåæã«äžŠåã§éåä¿¡ã§ããããã«ãªããŸããã
ããã«ãããCSSãç¡çã«1ã€ã«çµåãããæ©èœããšã«åå²ããŠèªã¿èŸŒãã§ãããã©ãŒãã³ã¹ãèœã¡ã«ãããªã£ãŠããŸããåå²ããããšã§ãã倿Žããã£ããã¡ã€ã«ã ããåããŠã³ããŒããããããšãã£ããã£ãã·ã¥å¹çã®åäžãçããŸãã
Resource HintsïŒpreloadïŒã®æŽ»çš
ããã®CSSã¯ããã«å¿
èŠã«ãªãããšãã©ãŠã¶ã«äºåããæ©èœã rel="preload" ã§ãã
<link rel="preload" href="critical.css" as="style">
ããã <head> ã®åé ã«èšè¿°ããããšã§ããã©ãŠã¶ãHTMLã®è§£æäžã«ããããã®CSSã¯å€§äºãªãã ãªããšå€æããåªå
çã«ããŠã³ããŒããéå§ããŸãã
7. ãŸãšãïŒç¶ç¶çãªããã©ãŒãã³ã¹æ¹åã®ããã«
ãŠã§ãããã©ãŒãã³ã¹ã®æé©åã¯ãäžåºŠèšå®ããŠçµããã§ã¯ãããŸãããæ°ããã³ã³ãã³ãã远å ãããããã¶ã€ã³ã倿Žããããããã³ã«ãCSSã¯è¥å€§åããŠããåŸåã«ãããŸãã
ãŸãã¯ãGoogleãæäŸããŠãããPageSpeed InsightsãããLighthouseãã䜿ã£ãŠãçŸåšã®èªãµã€ãã®ã¹ã³ã¢ã確èªããŠã¿ãŸãããã
- Critical CSSã§ååãéããã
- WOFF2ãšswapã§ãã©ã³ããæé©åããã
- éåæèªã¿èŸŒã¿ã§æç»ã®è©°ãŸããè§£æ¶ããã
- æå°åã§ç¡é§ãªããŒã¿ãåãã
ãããã®æŠç¥ãçµã¿åãããããšã§ããŠãŒã¶ãŒã«ãšã£ãŠã矜ã®ããã«è»œããå¿«é©ãªé²èЧäœéšãæäŸã§ããããã«ãªããŸããé«éãªãµã€ãã¯ããŠãŒã¶ãŒãç¬é¡ã«ããã ãã§ãªããããªãã®ããžãã¹ãæ¯ãã匷åãªè³ç£ãšãªãã¯ãã§ãã
仿¥ããã§ããå°ããªæé©åãããäžæ©ãã€å§ããŠã¿ãŸãããïŒ
â»æ¬èšäºã«å«ãŸããã³ãŒããææ³ã¯ãäžè¬çãªãŠã§ããµã€ãã§ã®å¹æãæ³å®ããŠããŸãããµã€ãã®æ§æããµãŒããŒç°å¢ïŒHTTP/3察å¿ç¶æ³ãªã©ïŒã«ãã£ãŠæé©ãªèšå®ã¯ç°ãªããããå°å
¥åã«ã¯å¿
ããã¹ãç°å¢ã§ã®æ€èšŒãããããããŸãã



ã³ã¡ã³ã