Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ԆಡΈࠐΈͱͷ ਖ਼͍͖͠߹͍ํ 2019/11/21 ߴԁࣉdev @rukiadia
Slide 2
Slide 2 text
About me • Sho Yamada • @rukiadia (Twitter, Github, etc…) • Frontend Engineer at Omicale.Inc
Slide 3
Slide 3 text
ࠓͷςʔϚ ԆಡΈࠐΈͰ͢
Slide 4
Slide 4 text
ͷࣦഊஊΛฉ͍͍ͯͩ͘͞
Slide 5
Slide 5 text
ࠓճ͢͜ͱ • ϢʔβମݧΛྑ͘͠Α͏ͱͨ͠Βɺ࣮Ϣʔ βʔମݧΛଛͳ͍ͬͯͨ • ྑ͔Εͱࢥͬͯͬͨ͜ͱ͕SEO໘ͰωΨ ςΟϒͳ݁ՌΛট͍ͨ • ը૾ͷԆಡΈࠐΈʹ͍ͭͯ • ৼΓฦΓͱ·ͱΊ
Slide 6
Slide 6 text
લஔ͖ • SPAʹؔΘΔ΄ͱΜͲग़͖ͯ·ͤΜɻ • ࠓճը૾ͷΈʹཹ·Βͣɺଞͷཁૉಈత ʹੜ͍ͯ͠·͢ɻ • ࠓճͷࣦഊஊɺ·ͩશʹΓӽ͑ΒΕͯ ·ͤΜʢ2019/11/21࣌Ͱʣ
Slide 7
Slide 7 text
1. ࣮ϢʔβମݧΛ ଛͳ͍ͬͯͨέʔε
Slide 8
Slide 8 text
ϖʔδͷදࣔΛ্͛ͯ ϢʔβମݧΛྑ͘͠Α͏ʂ
Slide 9
Slide 9 text
ࠓճࢼͨ͜͠ͱ • ΧʔυUIΛྻڍ͍ͯ͠ΔϖʔδͰը໘දࣔޙʹΧʔ υUIΛੜΛͯ͠ɺը໘ͷॳճදࣔΛૣ͘͢Δɻ • ཁɺϑΝʔετϏϡʔʹऩ·Βͳ͍ͷޙ͔Β ࡞Ε͍͍ͷͰͳ͍͔ʁͱ͍͏ • ࣮ࡍͷURLʢhttps://party-calendar.net/area/ tokyoʣ
Slide 10
Slide 10 text
ˡ͔͜͜ΒԼ ࠷ॳݟ͑ͯͳ͍ɻ ˡ੨͘ͳ͍ͬͯΔ෦ "1*ܦ༝Ͱޙ͔Β࡞Δ
Slide 11
Slide 11 text
ࠓճͷΒ͔͠ϙΠϯτ ϒϥβόοΫͬͨ࣌ɺϖʔδͷεΫϩʔ ϧҐஔ͕ζϨͯ͠·͏ɻ
Slide 12
Slide 12 text
࣍ͷը໘
Slide 13
Slide 13 text
͖ͬ͞ݟͯͨͷ Ͳ͜ʁ ϒϥβόοΫ
Slide 14
Slide 14 text
ΘΓ·ͨ͠ɾɾʁ
Slide 15
Slide 15 text
Ͳ͏͍͏͜ͱͳͷ͔ʁ • ΧʔυUI͕͋Δϖʔδ͔Β࣍ͷϖʔδʹભҠ ͢Δɻ • ભҠઌ͔ΒϒϥβόοΫͰΔɻ • ཁૉͷԆಡΈࠐΈ͕࢝·Δɻ • ಡΈ͜Έ͕ऴΘΔͱɺϖʔδͷ͕͞มԽ͠ ͯ͠·͍εΫϩʔϧҐஔ͕ζϨΔɻ
Slide 16
Slide 16 text
ࠓճͷέʔεͷରࡦ • ϒϥβόοΫͨ࣌͠ɺͦͦԆಡΈ ࠐΈΛΒͳ͍ɻ • ԆಡΈࠐΈ͕ऴΘΔ·ͰμϛʔཁૉΛஔ ͓͖ͯ͠ɺੜͨ͠ཁૉΛஔ͖͑Δ͜ͱͰ ϖʔδͷ͕͞มΘΒͳ͍Α͏ʹ͢Δɻ
Slide 17
Slide 17 text
ࠓճબΜͩରࡦʮμϛʔઓ ๏ʯ • ͔͠͠ɺ͜ͷରࡦᘳͰ͋Γ·ͤΜɻ • ޙ͔Βදࣔ͢ΔཁૉͷݸAPIͷϨεϙϯε ࣍ୈͳͷͰɺ༧Ίஔ͓ͯ͘͠μϛʔཁૉͷ ΛඞཁʹԠͯ͡ม͑Δ͜ͱ͕ग़དྷ·ͤΜɻ • DOMͷߏΛม͑Δճ͕૿͑ΔͷͰɺϒϥ βͷϦϑϩʔ૿͑ͯ͠·͍·͢ɻ
Slide 18
Slide 18 text
ݱ࣮ݫ͍͠
Slide 19
Slide 19 text
2. SEOతʹωΨςΟϒͳ݁ՌΛ ট͍ͨέʔε
Slide 20
Slide 20 text
ԆಡΈࠐΈͨ͠ϖʔδ Ϋϩʔϥʔ͔ΒͲ͏ݟ͍͑ͯ Δͷ͔ʁ
Slide 21
Slide 21 text
ࠓճͷΒ͔͠ϙΠϯτ ԆಡΈࠐΈͰੜͨ͠ཁૉ͕Ϋϩʔϥʔʹ ೝࣝ͞Ε͓ͯΒͣɺΠϯσοΫε͞Ε͍ͯͳ ͔ͬͨɻ
Slide 22
Slide 22 text
SEOʹࠨӈ͞ΕΔαʔϏεʹ ͱͬͯڪාͦͷͷ
Slide 23
Slide 23 text
Կ͕ىͬͨ͜ͷ͔ʁ • ԆಡΈࠐΈ͕ऴΘΔલʹΫϩʔϥʔ͕ؼͬ ͯ͠·͏έʔε͕͋ͬͨɻ • ্ख͍͍ͬͯ͘Δϖʔδ͋ͬͨͷͰɺൃݟ ͕Εͨɻ • Ϋϩʔϥʔ͕ͲΕ͘Β͍ͬͯ͘ΕΔͷ͔ ͔Βͳ͍ɻ1͘Β͍ͬͯͯ΄͍͠ɻ
Slide 24
Slide 24 text
Ξϯνύλʔϯ • JavaScriptͷॲཧʹ͕͔͔࣌ؒΓ͍͗ͯ͢Δɻ • DOMContentLoadedͷλΠϛϯάͰ৭ʑ Γ͗ͯ͢Δύλʔϯͱ͔ • λΠϛϯάΛม͑ͨΓɺworkerʹॲཧΛಀ ͨ͠Γɻ߹ʹΑΔ͕खஈ৭ʑɻ
Slide 25
Slide 25 text
ࣄલௐࠪେࣄ • ࣮ʹIntersection ObserverΛ͍·͠ΐ͏ɻ • https://developers.google.com/search/docs/ guides/lazy-loading • ͜͜ͷղઆΛಡΉ͠ɻ • pupperterΛ༻͍࣮ͨςετՄೳɻ • Ϋϩʔϥʔ͕ೝࣝͯ͘͠ΕΔ͔Ͳ͏͔ผɻ
Slide 26
Slide 26 text
ෆ֬ఆཁૉଟ͍ͷͰ ͱ͔͘ݕূ͢Δ͜ͱ͕େࣄ
Slide 27
Slide 27 text
3. ը૾ͷԆಡΈࠐΈ
Slide 28
Slide 28 text
ը૾ΛͲ͏ද͖͔ࣔ͢ • imgཁૉͰදࣔ͢Δʁ • background-imageͰഎܠը૾ʹ͢Δʁ
Slide 29
Slide 29 text
ҰҰ͋Γ·͕͢ɺ ࠓճimgཁૉΛਪ͠·͢
Slide 30
Slide 30 text
imgཁૉͷϝϦοτ • ಡΈࠐΈʹࣦഊͨ࣌͠ͷaltଐੑ͕͑Δɻ • Ϋϩʔϥʔʹೝࣝ͞ΕΔɻ • decoding=“async”͕͑Δɻ • loading=“lazy”͕͑Δɻ
Slide 31
Slide 31 text
altଐੑ͕͑Δ • ը૾ͷಡΈࠐΈʹࣦഊͨ࣌͠ʹϢʔβͷઆ ໌͕ग़དྷΔɻ • ύϑΥʔϚϯεʹؔͳ͍Ͱ͋Δ͕ɺ ΞΫηγϏϦςΟతʹimgཁૉ͕༗རɻ
Slide 32
Slide 32 text
Ϋϩʔϥʔ͔Βೝࣝ͞ΕΔ • divཁૉͳͲͰഎܠը૾Λઃఆͯ͠ɺΫϩʔ ϥʔ͔Βը૾ͩͱೝࣝ͞Εͳ͍ɻ • ࢀߟURLɿhttps://twitter.com/konojunya/ status/1194429597309292545
Slide 33
Slide 33 text
decodingଐੑ͕͑Δ • ϒϥβʹը૾ͷσίʔυώϯτΛఏڙ͢Δ ଐੑͰɺͦͷதʹasyncͱ͍͏ଐੑ͕͋Δɻ • ʮଞͷίϯςϯπͷද͕ࣔΕͳ͍Α͏ʹɺ ը૾Λඇಉظతʹσίʔυ͠·͢ɻʯ˞MDN ͔ΒͷҾ༻ • SafariͰ͑ͳ͍ͱ͞Ε͍ͯΔ͕ɺݱࡏ
Slide 34
Slide 34 text
loadingଐੑʹ͍ͭͯ • ଐੑΛࢦఆ͓͚ͯ͠ɺϒϥβ͕ࣗಈͰ ԆಡΈࠐΈΛͬͯ͘ΕΔɻ • ࢀߟURLɿhttps://blog.jxck.io/entries/ 2019-05-20/lazyloading.html • ͪͳΈʹChromeͰ͔͑͠·ͤΜɻඪ४Խ ·ͩ͞Εͯ·ͤΜɻʢ2019/11/21࣌ʣ
Slide 35
Slide 35 text
Կ͕خ͍͠ͷ͔ʁ
Slide 36
Slide 36 text
ը૾ͷlazyloadΛ͠ͳͯ͘ࡁΉ • JavaScriptͰ࣮Λ͠ͳ͍͍ͯ͘ɻ • ʮμϛʔը૾Λຊདྷͷը૾ʹࠩ͠ସ͑Δʯͱ ͍ͬͨॲཧෆཁʹͳΔͷͰɺϒϥβʹ༏͠ ͍ɻΒͳͯ͘ࡁΉ͜ͱΒͳ͍͍ͯ͘ɻ • ※ IEΛߟྀ͢Δ߹JavaScriptͰ࣮͓ͯ͠ ͍ͨํ͕ແͰ͋Δɻ
Slide 37
Slide 37 text
ͬͯΈͯͷৼΓฦΓ
Slide 38
Slide 38 text
লͱৼΓฦΓ • ࣦഊͨ͠ͷͷɺૉૣͤͨ͘ͷෆதͷ ͍ɻࣦഊΛఆͯ͠ɺ࣮ൣғݶఆ͍ͯͨ͠ɻ • ࣮ˠݕূΛૉૣ͘ߦ͍ɺ࣮ੈքʹΠϯύΫτ༩ ͑Δͷ͕େࣄɻ1ճͷࣦഊ͘Β͍Ͱ࠳͚͍ͯΒΕ ͳ͍ɻ • ύϑΥʔϚϯεΛग़͢ͷ؆୯Ͱͳ͍ͱ࠶ೝ ࣝɻΔલগܰ͘͠ߟ͍͑ͯͨઅ͋Δɻ
Slide 39
Slide 39 text
Thanks!!