CSSãã£ãã·ã¥æŠç¥ããã¹ã¿ãŒãããµã€ãã®èªèŸŒé床ãUXãSEOãåäžãããŸããããæ¬ã¬ã€ãã¯ãåºæ¬ããé«åºŠãªãã¯ããã¯ãŸã§ãç¶²çŸ ãããŠã§ããµã€ãã®ããã©ãŒãã³ã¹ãæé©åããŸãã
CSSãã£ãã·ã¥ã«ãŒã«ïŒã°ããŒãã«ãŠã§ãããã©ãŒãã³ã¹ã®ããã®ãã£ãã·ã¥æŠç¥å®è£ ã®å æ¬çã¬ã€ã
仿¥ã®ããžã¿ã«ç°å¢ã«ãããŠããŠã§ããµã€ãã®ããã©ãŒãã³ã¹ã¯æéèŠã§ããèªã¿èŸŒã¿ã®é ããŠã§ããµã€ãã¯ããŠãŒã¶ãŒã®äžæºãé«ãçŽåž°çããããŠæçµçã«ã¯åçã®æå€±ã«ã€ãªããå¯èœæ§ããããŸããCSSã¯ããŠã§ããµã€ãã®ããã³ããšã³ãã®éèŠãªæ§æèŠçŽ ãšããŠãäœæããã³å®éã®ããã©ãŒãã³ã¹ã«å€§ããªåœ¹å²ãæãããŸãã广çãªCSSãã£ãã·ã¥æŠç¥ãå®è£ ããããšã¯ãäžçäžã®ãªãŒãã£ãšã³ã¹ã«é«éã§ã·ãŒã ã¬ã¹ãªãŠãŒã¶ãŒäœéšãæäŸããããã«äžå¯æ¬ ã§ãã
CSSãã£ãã·ã¥ãéèŠãªçç±
ãã£ãã·ã¥ãšã¯ããã¡ã€ã«ïŒãã®å Žåã¯CSSãã¡ã€ã«ïŒã®ã³ããŒããŠãŒã¶ãŒã«è¿ãå Žæã«ä¿åããããã»ã¹ã§ãããŠãŒã¶ãŒãããªãã®ãŠã§ããµã€ãã蚪åãããšããã©ãŠã¶ã¯ãŸããã£ãã·ã¥ããã§ãã¯ããå¿ èŠãªCSSãã¡ã€ã«ããã§ã«ããŒã«ã«ã«ä¿åãããŠãããã©ããã確èªããŸããããä¿åãããŠããã°ããã©ãŠã¶ã¯ãµãŒããŒããå床ããŠã³ããŒããã代ããã«ããã£ãã·ã¥ãããã¡ã€ã«ãèªã¿èŸŒã¿ãŸããããã«ãããç¹ã«å蚪åè ã«ãšã£ãŠãèªã¿èŸŒã¿æéãå€§å¹ ã«ççž®ãããŸãã
CSSãã£ãã·ã¥ãéèŠã§ããçç±ã¯ä»¥äžã®éãã§ãïŒ
- ããŒãžèªã¿èŸŒã¿é床ã®åäžïŒ ãã£ãã·ã¥ã¯ãµãŒããŒãžã®HTTPãªã¯ãšã¹ãæ°ãæå°éã«æããçµæãšããŠããŒãžèªã¿èŸŒã¿æéãççž®ããŸããç ç©¶ã«ããã°ãããŒãžèªã¿èŸŒã¿é床ãšãŠãŒã¶ãŒãšã³ã²ãŒãžã¡ã³ãã«ã¯çŽæ¥çãªçžé¢é¢ä¿ããããŸããäŸãã°ãGoogleã®èª¿æ»ã«ãããšãã¢ãã€ã«ãµã€ã蚪åè ã®53%ã¯ãããŒãžã®èªã¿èŸŒã¿ã«3ç§ä»¥äžããããšé¢è±ããããšã瀺ãããŠããŸãã
- 垯åå¹ æ¶è²»ã®åæžïŒ ãã£ãã·ã¥ããCSSãã¡ã€ã«ãæäŸããããšã§ããµãŒããŒã䜿çšãã垯åå¹ ã®éãåæžããŸããããã¯ãç¹ã«ãã©ãã£ãã¯éã®å€ããŠã§ããµã€ãã«ãšã£ãŠãå€§å¹ ãªã³ã¹ãåæžã«ã€ãªããå¯èœæ§ããããŸãã
- ãŠãŒã¶ãŒäœéšã®åäžïŒ èªã¿èŸŒã¿æéãéããªãããšã§ãããã¹ã ãŒãºã§å¿«é©ãªãã©ãŠãžã³ã°äœéšãå®çŸãããŠãŒã¶ãŒããŠã§ããµã€ãã«é·ãæ»åšããããå€ãã®ã³ã³ãã³ããé²èЧããããä¿ããŸããããžãã£ããªãŠãŒã¶ãŒäœéšã¯ãã³ã³ããŒãžã§ã³ã®å¢å ããã©ã³ããã€ã€ã«ãã£ã®åäžããããŠå šäœçãªããžãã¹ã®æé·ã«ã€ãªãããŸãã
- SEOã©ã³ãã³ã°ã®åäžïŒ Googleã®ãããªæ€çŽ¢ãšã³ãžã³ã¯ãããŒãžèªã¿èŸŒã¿é床ãã©ã³ãã³ã°èŠå ãšããŠèæ ®ããŸããããé«éãªãŠã§ããµã€ãã¯ãæ€çŽ¢çµæã§äžäœã«ã©ã³ã¯ã€ã³ããå¯èœæ§ãé«ãããµã€ããžã®ãªãŒã¬ããã¯ãã©ãã£ãã¯ãããå€ãåŒã³èŸŒã¿ãŸãã
- ãªãã©ã€ã³ã¢ã¯ã»ã¹ïŒããã°ã¬ãã·ããŠã§ãã¢ããªïŒïŒ é©åãªãã£ãã·ã¥æŠç¥ãç¹ã«ãµãŒãã¹ã¯ãŒã«ãŒãšçµã¿åãããããšã§ããŠã§ããµã€ãã¯éå®çãªãªãã©ã€ã³äœéšãæäŸã§ããŸããããã¯ãã€ã³ã¿ãŒãããæ¥ç¶ãäžå®å®ãªå°åã®ãŠãŒã¶ãŒã«ãšã£ãŠéèŠã§ããããã¯ç¹ã«ããããã¯ãŒã¯ã«ãã¬ããžãäžå®å®ãªå¯èœæ§ã®ããçºå±éäžåœã®ã¢ãã€ã«ãŠãŒã¶ãŒã«é¢é£ããŠããŸãã
HTTPãã£ãã·ã¥ããããŒãçè§£ãã
HTTPãã£ãã·ã¥ã¯ããã©ãŠã¶ããªãœãŒã¹ããã£ãã·ã¥ãããã©ããããŸãã©ã®ãããã®æéãã£ãã·ã¥ããããæ±ºå®ããããã®ã¡ã«ããºã ã§ããããã¯ããŠã§ããµãŒããŒããéä¿¡ãããHTTPããããŒã«ãã£ãŠå¶åŸ¡ãããŸããCSSãã£ãã·ã¥ã«ãšã£ãŠæãéèŠãªããããŒã¯æ¬¡ã®ãšããã§ãïŒ
- Cache-Control: ããã¯ãã£ãã·ã¥ã®æåãå¶åŸ¡ããããã®æãéèŠãªããããŒã§ãã以äžã®ãããªæ§ã ãªãã£ã¬ã¯ãã£ããæå®ã§ããŸãïŒ
- max-age: ãªãœãŒã¹ããã£ãã·ã¥ã§ããæå€§æéïŒç§åäœïŒãæå®ããŸããäŸãã°ã`Cache-Control: max-age=31536000` ã¯ãã£ãã·ã¥ã®æå¹æéã1幎ã«èšå®ããŸãã
- public: ãªãœãŒã¹ãä»»æã®ãã£ãã·ã¥ïŒäŸïŒãã©ãŠã¶ãCDNããããã·ãµãŒããŒïŒã«ãã£ãŠãã£ãã·ã¥å¯èœã§ããããšã瀺ããŸãã
- private: ãªãœãŒã¹ããŠãŒã¶ãŒã®ãã©ãŠã¶ã«ãã£ãŠã®ã¿ãã£ãã·ã¥å¯èœã§ãããå ±æãã£ãã·ã¥ã«ã¯ãã£ãã·ã¥ãããªãããšã瀺ããŸãããŠãŒã¶ãŒåºæã®CSSã«äœ¿çšããŸãã
- no-cache: ãã©ãŠã¶ããã£ãã·ã¥ãããªãœãŒã¹ã䜿çšããåã«ããµãŒããŒã§åæ€èšŒããããšã匷å¶ããŸããããã¯ãã£ãã·ã¥ãé²ãã®ã§ã¯ãªãããã©ãŠã¶ãåžžã«æŽæ°ã確èªããããã«ããŸãã
- no-store: ãªãœãŒã¹ãäžåãã£ãã·ã¥ãããã®ãé²ããŸããããã¯éåžžãæ©å¯ããŒã¿ã«äœ¿çšãããŸãã
- must-revalidate: ãã£ãã·ã¥ããªãœãŒã¹ã䜿çšããåã«ã`max-age`ã`s-maxage`ã«åŸã£ãŠãªãœãŒã¹ããŸã æ°é®®ã§ãã£ãŠããæ¯åãªãªãžã³ãµãŒããŒã§ãªãœãŒã¹ãåæ€èšŒããªããã°ãªããªãããšãäŒããŸãã
- s-maxage: `max-age`ã«äŒŒãŠããŸãããç¹ã«CDNã®ãããªå ±æãã£ãã·ã¥åãã§ããååšããå Žåã`max-age`ãäžæžãããŸãã
- Expires: ãªãœãŒã¹ãå€ããªã£ããšèŠãªãããæ¥æãæå®ããŸãããŸã ãµããŒããããŠããŸãããããæè»ã§ãããããäžè¬çã«ã¯`Cache-Control`ãæšå¥šãããŸãã
- ETag: ãªãœãŒã¹ã®ç¹å®ã®ããŒãžã§ã³ã«å¯Ÿããäžæã®èå¥åã§ãããã©ãŠã¶ã¯ãã£ãã·ã¥ãåæ€èšŒããéã«ã`If-None-Match`ãªã¯ãšã¹ãããããŒã§ETagãéä¿¡ããŸããETagããµãŒããŒã®çŸåšã®ETagãšäžèŽããå ŽåããµãŒããŒã¯304 Not Modifiedã¬ã¹ãã³ã¹ãè¿ãããã£ãã·ã¥ãããããŒãžã§ã³ããŸã æå¹ã§ããããšã瀺ããŸãã
- Last-Modified: ãªãœãŒã¹ãæåŸã«å€æŽãããæ¥æã瀺ããŸãããã©ãŠã¶ã¯ãã£ãã·ã¥ãåæ€èšŒããéã«ã`If-Modified-Since`ãªã¯ãšã¹ãããããŒãéä¿¡ããŸããETagãšåæ§ã«ããªãœãŒã¹ã倿ŽãããŠããªãå ŽåããµãŒããŒã¯304 Not Modifiedã¬ã¹ãã³ã¹ãè¿ãããšãã§ããŸãã
广çãªCSSãã£ãã·ã¥æŠç¥ã®å®è£
以äžã«ãã°ããŒãã«ãªãŠãŒã¶ãŒããŒã¹ã«æé©ãªããã©ãŒãã³ã¹ãä¿èšŒããããã®ã广çãªCSSãã£ãã·ã¥ãå®è£ ããããã®ããã€ãã®æŠç¥ã瀺ããŸãïŒ
1. ãã£ãã·ã¥ã®æå¹æéãé·ãèšå®ãã
ãã¬ãŒã ã¯ãŒã¯ãã©ã€ãã©ãªã®CSSãã¡ã€ã«ã®ããã«ããã£ãã«å€æŽãããªãéçãªCSSãã¡ã€ã«ã«ã¯ã`Cache-Control: max-age`ãã£ã¬ã¯ãã£ãã䜿çšããŠé·ããã£ãã·ã¥æå¹æéãèšå®ããŸããäžè¬çãªæ £è¡ã¯ã`max-age`ã1幎ïŒ31536000ç§ïŒãããã¯ãã以äžã«èšå®ããããšã§ãã
äŸïŒ
Cache-Control: public, max-age=31536000
ããã¯ããã©ãŠã¶ãšäžéãã£ãã·ã¥ïŒCDNãªã©ïŒã«å¯ŸããŠãCSSãã¡ã€ã«ã1幎éãã£ãã·ã¥ããããã«æç€ºããŸããããã«ããããªãªãžã³ãµãŒããŒãžã®ãªã¯ãšã¹ãæ°ãåçã«æžå°ããŸãã
2. CSSãã¡ã€ã«ã®ããŒãžã§ãã³ã°
CSSãã¡ã€ã«ãæŽæ°ããéã«ã¯ããŠãŒã¶ãŒã®ãã©ãŠã¶ãå€ããã®ããã£ãã·ã¥ããæäŸãã代ããã«ãæ°ããããŒãžã§ã³ãããŠã³ããŒãããããã«ããå¿ èŠããããŸããæãäžè¬çãªã¢ãããŒãã¯ãããŒãžã§ãã³ã°ã䜿çšããããšã§ãã
ããŒãžã§ãã³ã°ã®æ¹æ³ïŒ
- ãã¡ã€ã«åããŒãžã§ãã³ã°ïŒ ãã¡ã€ã«åã«ããŒãžã§ã³çªå·ãããã·ã¥ã远å ããŸããäŸãã°ã`style.css`ã®ä»£ããã«`style.v1.css`ã`style.abc123def.css`ã䜿çšããŸããCSSãæŽæ°ããéã«ãããŒãžã§ã³çªå·ãããã·ã¥ã倿ŽããŸããããã«ããããã©ãŠã¶ã¯æ°ãããã¡ã€ã«ãå šãå¥ã®ãªãœãŒã¹ãšããŠæ±ããããŠã³ããŒãã匷å¶ããŸãã
- ã¯ãšãªã¹ããªã³ã°ããŒãžã§ãã³ã°ïŒ CSSãã¡ã€ã«ã®URLã«ããŒãžã§ã³çªå·ãã¿ã€ã ã¹ã¿ã³ããå«ãã¯ãšãªã¹ããªã³ã°ã远å ããŸããäŸãã°ã`style.css?v=1`ã`style.css?t=1678886400`ã§ããããã¯æ©èœããŸãããäžéšã®å€ããããã·ã§ã¯ç¡èŠãããå¯èœæ§ããããŸããäžè¬çã«ããã¡ã€ã«åããŒãžã§ãã³ã°ã®æ¹ãä¿¡é Œæ§ãé«ãã§ãã
äŸïŒãã¡ã€ã«åããŒãžã§ãã³ã°ïŒïŒ
HTMLå ïŒ
<link rel="stylesheet" href="style.v2.css">
ãµãŒããŒã®èšå®ã§ã¯ããããã®ããŒãžã§ã³ä»ãããããã¡ã€ã«ã«é·ã`max-age`ãèšå®ãã¹ãã§ãããã®ã¢ãããŒãã®å©ç¹ã¯ããã¡ã€ã«ã倿Žããéã«ã¯ãã¡ã€ã«åã倿Žããããšã«ãªããããå®è³ªçã«ãã£ãã·ã¥ãç¡å¹åã§ãããšããã£ãŠããã®ã§ããããã®ãã¡ã€ã«ã«éåžžã«é·ã`max-age`ãèšå®ã§ããããšã§ãã
3. åæ€èšŒã®ããã®ETagãšLast-ModifiedããããŒã®äœ¿çš
ããé »ç¹ã«å€æŽãããCSSãã¡ã€ã«ã«ã¯ãåæ€èšŒã®ããã«ETagãšLast-ModifiedããããŒã䜿çšããŸããããã«ããããã©ãŠã¶ã¯ãã¡ã€ã«å šäœãåããŠã³ããŒãããããšãªãããã£ãã·ã¥ãããããŒãžã§ã³ããŸã æå¹ãã©ããã確èªã§ããŸãã
ãã©ãŠã¶ãCSSãã¡ã€ã«ã®ãªã¯ãšã¹ããè¡ãéã以åã®ã¬ã¹ãã³ã¹ããåŸãETagå€ãå«ã`If-None-Match`ããããŒãéä¿¡ããŸãããµãŒããŒã®ETagããã©ãŠã¶ã®ETagãšäžèŽããå ŽåããµãŒããŒã¯304 Not Modifiedã¬ã¹ãã³ã¹ãè¿ãããã£ãã·ã¥ãããããŒãžã§ã³ããŸã æå¹ã§ããããšã瀺ããŸãã
äŸïŒãµãŒããŒèšå® - ApacheïŒïŒ
<FilesMatch "\.css$">
Header set Cache-Control "max-age=3600, public"
Header set ETag "%inode-%mtime-%filesize%"
</FilesMatch>
ãã®èšå®ã¯ãApacheã«å¯ŸããŠ`max-age`ã3600ç§ïŒ1æéïŒã«èšå®ãããã¡ã€ã«ã®inodeãæçµæŽæ°æå»ããã¡ã€ã«ãµã€ãºã«åºã¥ããŠETagãçæããããæç€ºããŸãã
4. ã³ã³ãã³ãããªããªãŒãããã¯ãŒã¯ïŒCDNïŒã®æŽ»çš
ã³ã³ãã³ãããªããªãŒãããã¯ãŒã¯ïŒCDNïŒã¯ãäžçäžã«å°ççã«åæ£ããããµãŒããŒã®ãããã¯ãŒã¯ã§ãããŠãŒã¶ãŒãããªãã®ãŠã§ããµã€ãããCSSãã¡ã€ã«ããªã¯ãšã¹ããããšãCDNã¯ãŠãŒã¶ãŒã®æåšå°ã«æãè¿ããµãŒããŒãããã¡ã€ã«ãæäŸããŸããããã«ãããç¹ã«ãªãªãžã³ãµãŒããŒããé ãé¢ããå Žæã«ãããŠãŒã¶ãŒã«ãšã£ãŠãé å»¶ãæžå°ããèªã¿èŸŒã¿æéãæ¹åãããŸãã
CSSãã£ãã·ã¥ã«CDNã䜿çšããå©ç¹ïŒ
- é å»¶ã®åæžïŒ ãŠãŒã¶ãŒã«è¿ããµãŒããŒããCSSãã¡ã€ã«ãæäŸããããšã§ãé å»¶ãæå°éã«æããŸãã
- ã¹ã±ãŒã©ããªãã£ã®åäžïŒ CDNã¯å€§éã®ãã©ãã£ãã¯ãåŠçã§ãããããããŒã¯æã§ããŠã§ããµã€ãã®å¿çæ§ãç¶æã§ããŸãã
- ä¿¡é Œæ§ã®åäžïŒ CDNã¯è€æ°ã®ãµãŒããŒãšåé·ãªãããã¯ãŒã¯æ¥ç¶ãåããé«ãå埩åãæã€ããã«èšèšãããŠããŸãã
- å°ççåæ£ïŒ CDNã¯äžçäžã§ããè¯ããã£ãã·ã¥ã«ãã¬ããžãå¯èœã«ãããã¹ãŠã®å°åã®ãŠãŒã¶ãŒãé«éãªèªã¿èŸŒã¿æéã享åã§ããããã«ããŸãã
人æ°ã®CDNãããã€ããŒã«ã¯ä»¥äžããããŸãïŒ
- Cloudflare
- Akamai
- Amazon CloudFront
- Fastly
- KeyCDN
5. CSSãã¡ã€ã«ã®çž®å°åãšå§çž®
çž®å°åïŒMinificationïŒã¯ãCSSãã¡ã€ã«ããäžèŠãªæåïŒäŸïŒç©ºçœãã³ã¡ã³ãïŒãåé€ãããã¡ã€ã«ãµã€ãºãåæžããŸããå§çž®ïŒäŸïŒGzipãBrotliã䜿çšïŒã¯ããããã¯ãŒã¯çµç±ã§éä¿¡ãããåã«ãã¡ã€ã«ãµã€ãºãããã«åæžããŸãã
CSSãã¡ã€ã«ãå°ããã»ã©ããŠã³ããŒããéããªããããŒãžèªã¿èŸŒã¿æéãæ¹åãããŸããã»ãšãã©ã®ãã«ãããŒã«ãCDNã¯ãçµã¿èŸŒã¿ã®çž®å°åããã³å§çž®æ©èœãæäŸããŠããŸãã
äŸïŒApacheã§ã®Gzipå§çž®ïŒïŒ
<FilesMatch "\.css$">
SetOutputFilter DEFLATE
</FilesMatch>
6. CSSé ä¿¡ã®æé©å
HTMLã«CSSãã©ã®ããã«å«ãããããããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
- å€éšã¹ã¿ã€ã«ã·ãŒãïŒ å€éšã¹ã¿ã€ã«ã·ãŒãã䜿çšãããšãåè¿°ã®éãããã©ãŠã¶ãCSSãã¡ã€ã«ããã£ãã·ã¥ã§ããŸãã
- ã€ã³ã©ã€ã³ã¹ã¿ã€ã«ïŒ ã€ã³ã©ã€ã³ã¹ã¿ã€ã«ã¯ãã£ãã·ã¥ã§ããªããããã§ããã ãé¿ããã¹ãã§ãã
- ã¯ãªãã£ã«ã«CSSïŒ ãã¡ãŒã¹ããã¥ãŒïŒabove-the-foldïŒã®ã³ã³ãã³ããã¬ã³ããªã³ã°ããããã«å¿ èŠãªCSSãç¹å®ãããããHTMLã«ã€ã³ã©ã€ã³åããŸããããã«ããããã©ãŠã¶ã¯ããŒãžã®å¯èŠéšåãè¿ éã«ã¬ã³ããªã³ã°ã§ããäœæããã©ãŒãã³ã¹ãåäžããŸããæ®ãã®CSSã¯éåæã§èªã¿èŸŒãããšãã§ããŸããããŒã«ã«ã¯`critical`ãªã©ãããããã®ããã»ã¹ã®èªååã«åœ¹ç«ã¡ãŸãã
- éåæèªã¿èŸŒã¿ïŒ éèŠã§ãªãCSSã¯JavaScriptã䜿çšããŠéåæã«èªã¿èŸŒã¿ãŸããããã«ãããCSSãããŒãžã®ã¬ã³ããªã³ã°ããããã¯ããã®ãé²ããŸãã
äŸïŒCSSã®éåæèªã¿èŸŒã¿ïŒïŒ
<link rel="preload" href="style.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="style.css"></noscript>
7. Browser Cache API
ããé«åºŠãªãã£ãã·ã¥ã·ããªãªãç¹ã«ããã°ã¬ãã·ããŠã§ãã¢ããªïŒPWAïŒã§ã¯ãBrowser Cache APIã䜿çšã§ããŸãããã®APIã䜿çšãããšããã©ãŠã¶å ã§ããã°ã©ã çã«ãã£ãã·ã¥ãå¶åŸ¡ã§ããã©ã®ãªãœãŒã¹ããã£ãã·ã¥ããã©ã®ããã«æŽæ°ãããããã现ããå¶åŸ¡ã§ããŸãã
PWAã®ã³ã¢ã³ã³ããŒãã³ãã§ãããµãŒãã¹ã¯ãŒã«ãŒã¯ããããã¯ãŒã¯ãªã¯ãšã¹ããååãããŠãŒã¶ãŒããªãã©ã€ã³ã®å Žåã§ããã£ãã·ã¥ãããªãœãŒã¹ãæäŸã§ããŸãã
8. ãã£ãã·ã¥æŠç¥ã®ç£èŠãšãã¹ã
CSSãã£ãã·ã¥æŠç¥ã广çã«æ©èœããŠããããšã確èªããããã«ã¯ããããç£èŠãããã¹ãããããšãäžå¯æ¬ ã§ãã以äžã®ãããªããŒã«ã䜿çšããŸãïŒ
- ãã©ãŠã¶éçºè ããŒã«ïŒ ãã©ãŠã¶ã®éçºè ããŒã«ã®ãããã¯ãŒã¯ã¿ãã«ã¯ãã©ã®ãªãœãŒã¹ããã£ãã·ã¥ãããŠãããããŸãèªã¿èŸŒã¿ã«ã©ããããã®æéãããã£ãŠãããã衚瀺ãããŸãã
- WebPageTestïŒ ããŸããŸãªå Žæããã©ãŠã¶èšå®ãããŠã§ããµã€ãã®ããã©ãŒãã³ã¹ããã¹ãã§ããç¡æã®ãªã³ã©ã€ã³ããŒã«ã§ãã
- Google PageSpeed InsightsïŒ CSSãã£ãã·ã¥ãå«ãããŠã§ããµã€ãã®ããã©ãŒãã³ã¹ãåäžãããããã®æšå¥šäºé ãæäŸããŸãã
- GTmetrixïŒ ããäžã€ã®äººæ°ã®ãããŠã§ããµã€ãããã©ãŒãã³ã¹åæããŒã«ã§ãã
ãŠã§ããµã€ãã®ããã©ãŒãã³ã¹ã宿çã«åæããå¿ èŠã«å¿ããŠãã£ãã·ã¥æŠç¥ã調æŽããŠãã ããã
é¿ããã¹ãäžè¬çãªèœãšã穎
- äžé©åãªCache-Controlãã£ã¬ã¯ãã£ãïŒ äžé©åãª`Cache-Control`ãã£ã¬ã¯ãã£ãã䜿çšãããšãäºæããªããã£ãã·ã¥ã®æåã«ã€ãªããå¯èœæ§ããããŸããäŸãã°ãé©åãªåæ€èšŒã¡ã«ããºã ãªãã§`no-cache`ã䜿çšãããšãå®éã«ã¯èªã¿èŸŒã¿æéã*å¢å *ããå¯èœæ§ããããŸãã
- é床ã«ç©æ¥µçãªãã£ãã·ã¥ïŒ é©åãªããŒãžã§ãã³ã°ãªãã§CSSãã¡ã€ã«ãé·æéãã£ãã·ã¥ãããããšããŠãŒã¶ãŒãå€ãã¹ã¿ã€ã«ãèŠãŠããŸãåå ã«ãªããŸãã
- CDNãã£ãã·ã¥ã®ç¡å¹åãç¡èŠããïŒ ãªãªãžã³ãµãŒããŒã§CSSãã¡ã€ã«ãæŽæ°ããå ŽåããŠãŒã¶ãŒãææ°ããŒãžã§ã³ãåãåããããã«ãCDNäžã®ãã£ãã·ã¥ãç¡å¹åããå¿ èŠããããŸããCDNã¯éåžžããã£ãã·ã¥ç¡å¹åã®ããã®ããŒã«ãæäŸããŠããŸãã
- ãã£ãã·ã¥æŠç¥ããã¹ãããªãïŒ ãã£ãã·ã¥æŠç¥ã®ãã¹ããæ ããšãæ°ã¥ããªããã¡ã«ããã©ãŒãã³ã¹ã®åé¡ãçºçããå¯èœæ§ããããŸãã
- é©åãªãã£ãã·ã¥ãªãã§ãŠãŒã¶ãŒãšãŒãžã§ã³ãã«åºã¥ããŠç°ãªãCSSãæäŸïŒ ãŠãŒã¶ãŒãšãŒãžã§ã³ãïŒäŸïŒã¢ãã€ã«å¯Ÿãã¹ã¯ãããã§ç°ãªãCSSïŒã«åºã¥ããŠç°ãªãCSSãæäŸããã®ã¯åä»ãªå ŽåããããŸãããªãœãŒã¹ã`User-Agent`ããããŒã«åºã¥ããŠå€åããããšã瀺ãããã«ã`Vary`ããããŒã䜿çšããããã«ããŠãã ããã
CSSãã£ãã·ã¥ã«é¢ããã°ããŒãã«ãªèæ ®äºé
ã°ããŒãã«ãªãªãŒãã£ãšã³ã¹åãã«CSSãã£ãã·ã¥æŠç¥ãå®è£ ããéã«ã¯ã以äžãèæ ®ããŠãã ããïŒ
- ã°ããŒãã«ã«ãã¬ããžãæã€CDNïŒ äžçäžã®ããŸããŸãªå°åã«ãµãŒããŒãæã€CDNãéžæãããã¹ãŠã®å Žæã®ãŠãŒã¶ãŒã«æé©ãªããã©ãŒãã³ã¹ã確ä¿ããŸãã
- VaryããããŒïŒ `Vary`ããããŒã䜿çšããŠãã©ã®ãªã¯ãšã¹ãããããŒãã¬ã¹ãã³ã¹ã«åœ±é¿ãäžããããæå®ããŸããäŸãã°ã`Accept-Language`ããããŒã«åºã¥ããŠç°ãªãCSSãæäŸããå Žåãã¬ã¹ãã³ã¹ã«`Vary: Accept-Language`ãå«ããŸãã
- ç°ãªãããã€ã¹åãã®ãã£ãã·ã¥ïŒ ããã€ã¹ã¿ã€ãïŒäŸïŒã¢ãã€ã«å¯Ÿãã¹ã¯ãããïŒã«åºã¥ããŠç°ãªãCSSãæäŸããããšãæ€èšããŸããã¬ã¹ãã³ã·ããã¶ã€ã³æè¡ã䜿çšããŠããŠã§ããµã€ããç°ãªãç»é¢ãµã€ãºãè§£å床ã«é©å¿ããããã«ããŸããCDNãé©åã«èšå®ãã`User-Agent`ãããã€ã¹åºæã®ããããŒãšãšãã«`Vary`ããããŒã䜿çšããŠããããã®ããªãšãŒã·ã§ã³ãåå¥ã«ãã£ãã·ã¥ããããã«ããŸãã
- ãããã¯ãŒã¯ç¶æ³ïŒ äžçã®ããŸããŸãªå°åã®ãŠãŒã¶ãŒã¯ãããŸããŸãªãããã¯ãŒã¯ç¶æ³ãçµéšããå¯èœæ§ããããŸãããŠãŒã¶ãŒã®ãããã¯ãŒã¯æ¥ç¶ã«åºã¥ããŠCSSã®é ä¿¡ã調æŽããããã«ãã¢ãããã£ãããŒãã£ã³ã°æè¡ãå®è£ ããŸããäŸãã°ãäœéæ¥ç¶ã®ãŠãŒã¶ãŒã«ã¯ç°¡ç¥åãããããŒãžã§ã³ã®CSSãæäŸãããããããŸããã
- ããŒã«ã©ã€ãŒãŒã·ã§ã³ïŒ ãŠã§ããµã€ããè€æ°ã®èšèªããµããŒãããŠããå ŽåãCSSãã¡ã€ã«ãé©åã«ããŒã«ã©ã€ãºãããŠããããšã確èªããŸããããã«ã¯ãèšèªããšã«ç°ãªãCSSãã¡ã€ã«ã䜿çšãããããŠãŒã¶ãŒã®èšèªã«åºã¥ããŠã¹ã¿ã€ã«ãã«ã¹ã¿ãã€ãºããããã«CSS倿°ã䜿çšãããããããšãå«ãŸããå ŽåããããŸãã
çµè«
广çãªCSSãã£ãã·ã¥æŠç¥ãå®è£ ããããšã¯ããŠã§ããµã€ãã®ããã©ãŒãã³ã¹ãæé©åããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«é«éã§ã·ãŒã ã¬ã¹ãªãŠãŒã¶ãŒäœéšãæäŸããããã«äžå¯æ¬ ã§ããHTTPãã£ãã·ã¥ããããŒãçè§£ããCSSãã¡ã€ã«ãããŒãžã§ãã³ã°ããCDNãæŽ»çšããCSSã®é ä¿¡ãæé©åããããšã§ããŠã§ããµã€ãã®èªã¿èŸŒã¿æéãå€§å¹ ã«æ¹åãã垯åå¹ ã®æ¶è²»ãåæžããSEOã©ã³ãã³ã°ãåäžãããããšãã§ããŸãã
ãã£ãã·ã¥æŠç¥ã广çã«æ©èœããŠããããšã確èªãããŠã§ããµã€ãã®é²åã«åãããŠé©å¿ãããããã«ã宿çã«ç£èŠãšãã¹ããè¡ãããšãå¿ããªãã§ãã ãããCSSãã£ãã·ã¥ãåªå ããããšã§ãäžçäžã®ã©ãã«ããŠãããŠãŒã¶ãŒã«ãšã£ãŠããéããããé åçã§ãããæåãããªã³ã©ã€ã³äœéšãåµé ããããšãã§ããŸãã