Slide 1

Slide 1 text

PWAʹऔΓ૊Ήલʹ஌͓͖͍ͬͯͨ SPAͱSEO @PWA Conference 2020/02/01

Slide 2

Slide 2 text

ؔ ݑ໵ @sekikazu01 גࣜձࣾLinc’well ΤϯδχΞ

Slide 3

Slide 3 text

PWA SEO ✖

Slide 4

Slide 4 text

PWA ֓೦తʹ͸ͦΜͳʹؔ܎ͳ͍ SEO ✖

Slide 5

Slide 5 text

18"Ͱ͸ΞϓϦϥΠΫͳମݧΛఏڙ͢ΔͨΊʹ ಈతʹίϯςϯπΛඳը͢Δ͜ͱ͕͠͹͠͹

Slide 6

Slide 6 text

18"ʹऔΓ૊Ήલʹ 4&0ͷϦεΫΛֶͼ ϏδωεΛᆝଛ͠ͳ͍ Α͏ʹ͠·͠ΐ͏ʂ

Slide 7

Slide 7 text

ຊ೔ͷ͓࿩ ࿩͢͜ͱ • SPAͷߏஙΛݕ౼͍ͯ͠Δ͜ͱΛલఏͱ͠ʮSEOͷ౔୆ͮ͘Γʯͷํ๏ʹ͍͓ͭͯ ࿩͠͠·͢ɻ • ͍ΘΏΔςΫχΧϧSEOͱݺ͹ΕΔ΋ͷͷҰ෦Ͱ͢ɻ ࿩͞ͳ͍͜ͱ • ϥϯΩϯάΛͲ͏্͍͔͛ͯ͘ͳͲ۩ମతͳSEOςΫχοΫʹ͍ͭͯ͸࿩͠·ͤΜ ·ͨɺલఏͱͯ͠ݕࡧΤϯδϯ͸ͷΈΛߟྀ͍ͯ͠·͢

Slide 8

Slide 8 text

Agenda l4&0zͱ͸ͳʹ͔ 1 41"ʹ͓͚Δ4&0ͷ՝୊ ͲΜͳղܾࡦ͕͋Δͷ͔ ཁٻύλʔϯ͝ͱͷղܾࡦͷબͼํ 2 3 4

Slide 9

Slide 9 text

“SEO”ͱ͸ͳʹ͔ 01.

Slide 10

Slide 10 text

SEO = Search Engine Optimization

Slide 11

Slide 11 text

ʮ4&0ͷ౔୆ʯͦ΋ͦ΋ͷ࿩ͱͯ͠(PPHMFCPUʹΠϯσοΫε͞ΕΔ͜ͱ ͦͷͨΊʹ͸࣍ͷ̎఺͕ඞཁ (PPHMFCPUʹΫϩʔϧ͞ΕΔ͜ͱ )5.-͕ద੾ʹղऍ͞ΕΔ͜ͱ

Slide 12

Slide 12 text

ʮ4&0ͷ౔୆ʯͦ΋ͦ΋ͷ࿩ͱͯ͠(PPHMFCPUʹΠϯσοΫε͞ΕΔ͜ͱ ͦͷͨΊʹ͸࣍ͷ̎఺͕ඞཁ (PPHMFCPUʹΫϩʔϧ͞ΕΔ͜ͱ )5.-͕ద੾ʹղऍ͞ΕΔ͜ͱ ˞͜Εʹ͍ͭͯ͸TJUFNBQͱ͔ؤுͬͯ ͘Εͬͯ࿩ͳͷͰࠓ೔͸৮Ε·ͤΜ

Slide 13

Slide 13 text

'BDFCPPL0(1 5XJUUFS$BSE 'BDFCPPLͷ0(1΍5XJUUFS$BSEͳͲ΋z4&0zͷจ຺ͰޠΒΕΔ͜ͱ͕͋Δ ࣮ࡍ͸શ͘΋ͬͯ4&0Ͱ͸ͳ͍ͷ͕ͩɺҰॹʹޠΒΕΔͷ͕౰ͨΓલͷੈͷதʹͳͬ ͯ͠·ͬͨͷͰຊτʔΫͰ͸߹Θͤͯड़΂Δɻ

Slide 14

Slide 14 text

ߏ଄Խσʔλ ݕࡧ݁ՌͰͷදࣔΛϦονʹͯ͘͠ΕΔ΋ͷ IUUQTEFWFMPQFSTHPPHMFDPNTFBSDIEPDTHVJEFTTFBSDIHBMMFSZ

Slide 15

Slide 15 text

ߏ଄Խσʔλͷྫ ".1 “ಡΈࠐΈ͕΄΅ҰॠͰ׬ྃ͠εϜʔζʹදࣔ͞Ε Δັྗతͳ΢ΣϒϖʔδΛ؆୯ʹ࡞੒Ͱ͖ΔΦʔ ϓϯιʔε ϥΠϒϥϦ” - ߴ଎Խʹͱ͜ͱΜͩ͜Θͬͨ࢓༷ - ಠࣗͷJSΛ࣮ߦͰ͖ͳ͍ͳͲͷ੍໿͕͋Δ ࢀߟIUUQTXXXBNQQSPKFDUPSHKBEPDT

Slide 16

Slide 16 text

ߏ଄Խσʔλͷྫಈը IUUQTEFWFMPQFSTHPPHMFDPNTFBSDIEPDTEBUBUZQFTWJEFP IMKB

Slide 17

Slide 17 text

·ͱΊ ʮ4&0ʯͱ͍͏ݴ༿͕࢖ΘΕΔ࣌ʹ͸࣍ͷೋͭͷจ຺͕͋Δ (PPHMFͷݕࡧ݁ՌͰΑΓ্Ґʹදࣔ͞ΕΔͨΊͷࢪࡦ 0(1΍5XJUUFS$BSEɺ".1ͳͲͷߏ଄Խσʔλͷදࣔ ˞ຊτʔΫͰ͸͜ΕҎ߱શ෦ͻͬ͘ΔΊͯʮϝλ৘ใʯͱݺͼ·͢ ஫ҰൠతͳݺͼํͰ͸ͳ͍Ͱ͢ ʮ4&0ͷ౔୆ʯΛ࡞ΔͨΊʹ͸࣍ͷ̎఺͕ඞཁ (PPHMFCPUʹΫϩʔϧ͞ΕΔ͜ͱ )5.-͕ద੾ʹղऍ͞ΕΔ͜ͱ

Slide 18

Slide 18 text

SPAʹ͓͚Δ SEOͷ՝୊ 02.

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

ͳʹ΋ରࡦ͍ͯ͠ͳ͍41"ͷૉͷ)5.-͸͜Μͳײ͡

Slide 21

Slide 21 text

՝୊λΠϜΞ΢τ ౰ͨΓલ͚ͩͲͣͬͱ଴ͬͯ͘ΕΔΘ͚Ͱ͸ͳ͍ ϦΫΤετʹ͕͔͔࣌ؒΓ͗͢Δͱͦ΋ͦ΋ΠϯσοΫεͯ͘͠Εͳ͔ͬͨΓ த్൒୺ͳͱ͜ΖͰϨϯμϦϯά͕ଧͪ੾ΒΕͯ͠·ͬͨΓ͢Δ

Slide 22

Slide 22 text

Կඵ·ͰͳΒ଴ͬͯ͘ΕΔͷ͔ʁ IUUQTNFEJVNDPN!MNVHOBJOJTQBBOETFPJTHPPHMFCPUBCMFUP SFOEFSBTJOHMFQBHFBQQMJDBUJPOGFBC ৄࡉʹݕূͯ͘͠Εͨํ͕͍ͨͷͰύΫΓ݁ՌΛ͓आΓ͠·͢ લఏ &MNͰͰ͖ͨ41"αΠτ QVTI4UBUFͰϖʔδΛมߋ͍ͯ͠Δ

Slide 23

Slide 23 text

Կඵ·ͰͳΒ଴ͬͯ͘ΕΔͷ͔ʁ ݕূ಺༰ ҎԼͷ̏ύλʔϯΛΞοϓσʔτ͢Δ͜ͱʹΑͬͯλΠϜΞ΢τʹ͔͔Δ࣌ؒͷݕূ ࣌ؒͷදه UJUMF EFTDSJQUJPO ϖʔδ಺ͷςΩετ ຖඵมԽ 5ZQF" ඵͷEFMBZΛ࣋ͬͨϦΫΤετ 5ZQF# ඵͷEFMBZޙʹϦΫΤετ

Slide 24

Slide 24 text

Կඵ·ͰͳΒ଴ͬͯ͘ΕΔͷ͔ʁ ݕূͷ֬ೝํ๏ 'FUDIBT(PPHMFͱl/BUVSBMzͳ(PPHMFͷΠϯσοΫεͰ֬ೝ͢Δ

Slide 25

Slide 25 text

Կඵ·ͰͳΒ଴ͬͯ͘ΕΔͷ͔ʁ ݁Ռ 'FUDIBT(PPHMFͰ͸໿ඵ଴ͬͯ͘ΕΔ l/BUVSBMzͳ(PPHMFCPUͰ͸໿ඵ଴ͬͯ͘ΕΔ ˞ͪͳΈʹ౰વͷ͜ͱͳ͕Β(PPHMF͕ͲΜͳ؀ڥ ճઢ଎౓΍Ϛγϯύϫʔ ͰϨϯμ Ϧϯά͍ͯ͠Δͷ͔͸ෆ໌Ͱ͢ɻ

Slide 26

Slide 26 text

Կඵ·ͰͳΒ଴ͬͯ͘ΕΔͷ͔ʁ தͷਓͷ͓ݴ༿ˏ+BWB4DSJQU4JUFTJO4FBSDI8PSLJOH(SPVQ CZ+PIO.VFMMFS

Slide 27

Slide 27 text

ٙ໰λΠϜΞ΢τͨ͠ΒΠϯσοΫεͯ͘͠Εͳ͍ͷ͔ʁ ઌ΄Ͳͷݕূ͕͍ࣔͯ͠Δ௨ΓλΠϜΞ΢τͯ͠΋ɺͦΕ·ͰʹϨϯμϦϯάͨ͠΋ ͷʹؔͯ͠͸ΠϯσοΫε͞Ε͍ͯΔɻ ͓ͦΒ͘Ұ౓1BJOUʹࢸΔ·ͰʹλΠϜΞ΢τ΍Τϥʔ͕ى͖Δͷ͕෼ذ఺ͳͷͰ͸ɻ ˞ະݕূͷԾઆͰ͢ɻࢀߟఔ౓ʹཹΊ͍ͯͩ͘͞ɻ GSBNF

Slide 28

Slide 28 text

՝୊ϝλ৘ใ͸αʔό͔Βฦ࣌͢఺Ͱ)5.- ʹؚ·Ε͍ͯΔඞཁ͕͋Δ ͦ΋ͦ΋+4Λ࣮ߦͯ͘͠Εͳ͍ͷͰɺ αʔό͔Βฦͬͯ͘Δ࣌఺Ͱ)5.-ʹؚ·Ε͍ͯͳ͍ͱղऍͯ͘͠Εͳ͍ ͪͳΈʹ".1ͩͱϝλ৘ใʹݶΒͣશͯαʔόଆͰඳը͢Δඞཁ͕͋Δ ❌

Slide 29

Slide 29 text

՝୊3FOEFS2VFVFʹΑΔΠϯσοΫεͷ஗Ԇ +4Λ࣮ߦ͢ΔαΠτ͸)5.-͚ͩͷ੩తͳαΠτͱ͸ҟͳΓɺ͙͢ʹΠϯσοΫε͞ΕΔ༁Ͱ͸ͳ͘ɺ Ұ౓3FOEFS2VFVFͱ͍͏΋ͷʹॲཧ͕Ҡৡ͞ΕΔ

Slide 30

Slide 30 text

IUUQTXXXZPVUVCFDPNXBUDI W:1U.#IZ6* ि͔͔ؒΔ͜ͱ΋ʂ ͳͷͰίϯςϯπͷߋ৽͕සൟͳαΠτͰ͸໰୊ʹͳΔ

Slide 31

Slide 31 text

ͪͳΈʹʜ͜ΕΒͷ՝୊ʹ ͸Ͳ͏ߟ͍͑ͯΔͷͰ͠ΐ͏͔ʁ

Slide 32

Slide 32 text

IUUQTXXXZPVUVCFDPNXBUDI W:1U.#IZ6*

Slide 33

Slide 33 text

ʮ3FOEFS2VFVFʹΑΔΠϯσοΫεͷ஗Ԇʯ ʹؔͯ͠͸কདྷతʹղܾ͞Εͦ͏

Slide 34

Slide 34 text

ੲͷจݙړͬͯΔͱ(PPHMFCPU͕ѻ͍ͬͯΔϨϯ μϦϯάΤϯδϯ͸$ISPNF૬౰Έ͍ͨͳ ৘ใग़ͯ͘Δͱࢥ͍·͕͢ IUUQTEFWFMPQFSTHPPHMFDPNTFBSDIEPDTHVJEFTSFOEFSJOH ˞$ISPNF͸೥݄ࠒʹग़ͨϒϥ΢β

Slide 35

Slide 35 text

˞$ISPNF͸೥݄ࠒʹग़ͨϒϥ΢β ͱݴ͏Α͏ͳ͜ͱ͕ 2019೥5݄Ҏདྷ࠷৽ͷChromeͱಉ͡όʔδϣϯ ͷػೳͰϨϯμϦϯά͢ΔΑ͏ʹͳΓ·ͨ͠ɻ https://webmasters.googleblog.com/2019/05/ the-new-evergreen-googlebot.html ͱ͸͍͑ Fetch as Google Ͱͷ
 දࣔ֬ೝ͘Β͍͸͠ͱ͍ͨํ͕҆৺͔ͳ…

Slide 36

Slide 36 text

·ͱΊ 41"Ͱ4&0ͷ౔୆Λ࡞ΔͨΊʹ͸࣍ͷ՝୊Λೝࣝ͢Δ λΠϜΞ΢τʹΑΓ ͦ΋ͦ΋ΠϯσοΫε͞Εͳ͍ ෆ׬શͳ৘ใ͕ΠϯσοΫε͞Εͯ͠·͏ ϝλ৘ใ͸αʔόଆͰϨϯμϦϯά͢Δඞཁ͕͋Δ 3FOEFS2VFVFʹΑΔΠϯσοΫεͷ஗Ԇ

Slide 37

Slide 37 text

ͲΜͳղܾࡦ ͕͋Δͷ͔ 03.

Slide 38

Slide 38 text

ϝλ৘ใ͚ͩ443 *OEFYIUNM ϒϥ΢β ϝλ৘ใͷ෦෼͚ͩ 63-ʹԠͯ͡ॻ͖׵͑ ϝλ৘ใ͑͞൓ө͞ΕΕ͹ʜͦΜͳϛχϚϜͳରԠΛ͍ͨ͋͠ͳͨʹɻ

Slide 39

Slide 39 text

%ZOBNJD3FOEFSJOH QSFSFOEFS IUUQTEFWFMPQFSTHPPHMFDPNTFBSDIEPDTHVJEFTEZOBNJDSFOEFSJOH QSFSFOEFSJP SFOEFSUSPO

Slide 40

Slide 40 text

QSFSFOEFSJPͷྫ Prerender Service Google bot ? (UserAgentͰ൑ఆ) :FT DBDIF͞Εͯͳ͍ )FBEMFTT$ISPNF DBDIF͞ΕͯΔ /P JOEFYIUNMͱ+4ฦ͢ DBDIF DBDIF͢Δ

Slide 41

Slide 41 text

%ZOBNJD3FOEFSJOH QSFSFOEFS IUUQTXXXZPVUVCFDPNXBUDI W1'X6CHWQEB2 (PPHMF*0ʹͯ ଟ෼ ॳΊͯ ʮ%ZOBNJD3FOEFSJOHʯ ͱ͍͏໊લ͕͍ͭͨɻ (PPHMF͓๽෇͖ͷख๏ɻ

Slide 42

Slide 42 text

ΫϩʔΩϯάʹ͍ͭͯ ϒϥοΫϋοτ4&0ͷҰͭɻCPUͱϢʔβʹҧ͏ίϯςϯπΛฦ͢͜ͱΛࢦ͢ όϨΔͱϖφϧςΟ͕ՊͤΒΕΔ ΢Σϒ αΠτ Google bot Ϣʔβ

Slide 43

Slide 43 text

ΫϩʔΩϯάʹ͍ͭͯ 'FUDIBT(PPHMFͰݟΕΔ௨Γ(PPHMF͸ͳΜΒ͔ͷํ๏ͰϢʔβ͕࣮ࡍʹݟΔ ը໘Λ࠶ݱ͍ͯ͠ΔɻΘ͟Θ͟(PPHMFࣗ਎͕%ZOBNJD3FOEFSJOHΛਪ͍ͯ͠ Δ͜ͱ͔Βɺ6"Ͱग़͠෼͚͍ͯͯ΋͋Δఔ౓ಉҰͳΒେৎ෉ͳ͸ͣ ଟ෼ ɻ

Slide 44

Slide 44 text

·ͩ঺հ͍ͯ͠ͳ͍ख๏΋͋Γ·͕͢ɺ ର4&0ʹؔͯ͠͸͜ͷ%ZOBNJD3FOEFSJOH͕ສೳͷιϦϡʔγϣϯͰ͢ɻ λΠϜΞ΢τ ϝλ৘ใ 3FOEFS2VFVF ˠΩϟογϡ͔Βฦ͢ͷͰແ໰୊ ˠαʔόଆͰඳը͢ΔͷͰ0, ˠ+4࣮ߦ͠ͳ͍ͷͰ3FOEFS2VFVFʹೖΒͳ͍

Slide 45

Slide 45 text

4UBUJD4JUF(FOFSBUPS ࣄલʹ)5.-Λੜ੒ 3FBDU΍7VFͳͲͷ41"ϥΠϒϥϦͰߏங

Slide 46

Slide 46 text

࣍ͷΑ͏ͳ΋ͷ͚ͩΫϥΠΞϯταΠυʹ೚ͤΔͱ͔͸Ͱ͖ΔͷͰ΢ΣϒΞϓϦʹҰ෦࢖͏ ͱ͔΋Ͱ͖Δɻ ɾϩάΠϯͨ͠ϢʔβͷΈݟΒΕΔ ɾϢʔβΧελϚΠζ͞ΕͨϨίϝϯυΛग़͢ ͋ͱͰৄࡉʹ৮ΕΔ͕ɺϢʔβମݧ΋্͛ͭͭ(FMPͷ޲্) ͦ͜·Ͱ։ൃΛେมʹͤ͞ͳ͍ͰSEOͷ৺഑΋ݮΒͤΔख๏ͱͯ͠ ͳ͔ͳ͔ے͕͍͍ͱࢥ͍ͬͯΔ

Slide 47

Slide 47 text

443 4FSWFS4JEF3FOEFSJOH ϒϥ΢β αʔόଆͰ+4Λ࣮ߦͯ͠ )5.-Λੜ੒

Slide 48

Slide 48 text

஫ҙ఺44(΍443Ͱ΋λΠϜΞ΢τ͸͋ΓಘΔ Φ΢νʔϊ༷ͷࣄྫ IUUQTEFWFMPQFSTPVDDJOPDPNFOUSZ Rails+ReactͳSPAαΠτͰSEOΛ͠Α͏ͱͯ͠Ϳ͔ͭͬͨน

Slide 49

Slide 49 text

ཁٻύλʔϯ͝ͱͷ ղܾࡦͷબͼํ 04.

Slide 50

Slide 50 text

ٕज़બఆʹؔΘΔཁૉ ʮͱΓ͋͑ͣ͜Εʹ͓͚ͯ͠͹ϤγʂʯΈ͍ͨͳۜͷ஄ؙ͸ͳ͍ɻ Ϗδωεཁٻ΋͋Ε͹ɺͦͷ૊৫ͷٕज़ྗ΍εΩϧηοτʹ΋ؔΘΔͱ͜Ζ͕ େ͖͍ͷͰɺࣗ਎ͷঢ়گΛؑΈͯద੾ͳҙࢥܾఆ͕Ͱ͖ΔΑ͏ʹ͠·͠ΐ͏

Slide 51

Slide 51 text

ߟ͑Δ͜ͱ1. සൟʹߋ৽͞ΕΔ & ͙͢ʹΠϯσοΫεͯ͠΄͍͔͠Ͳ͏͔ ͜͜ͷ৴པੑΛٻΊΔͳΒ Dynamic Rendering ͢Δ͔͠ͳͦ͞͏ - ݸਓతͳԾઆͱͯ͠͸ɺRender Queue ʹೖΕΒΕΔ͔Ͳ͏͔͸ λά ͕͋Δ͔Ͳ͏͔Ͱ൑ఆ͍ͯ͠ΔͷͰ͸ͳ͔Ζ͏͔
 ྲྀੴʹ͜Εͩͱର৅શ෦ʹͳͬͪΌ͏͔ΒϑΝΠϧαΠζͱ͔XHRϦΫΤετൃੜ͍ͯ͠Δ͔ͱ͔ ͔΋ - Ծʹ্ه͕ਅͳ৔߹ɺSSR΍SSGͰ΋ෆ҆͸࢒ΔɻDynamic Renderingͩ ͱ script λάফͤͨΓ͢ΔͷͰ৺഑͸͍Βͳ͍

Slide 52

Slide 52 text

ߟ͑Δ͜ͱ2. SSG or SSR ͢Δ͔ී௨ͷSPAͰߦ͔͘ 44(PS443 ૉͷ41" ϝϦοτ - ॳظදࣔ଎౓͕଎͘ͳΔ - SEOରࡦʹ͜ΕҎ֎ͷઃఆ͠ ͳ͍͍ͯ͘ - ։ൃ͕ൺֱ͢Δͱؾʹ͢Δ͜ ͱݮָͬͯ σϝϦοτ - ։ൃ೉қ౓্͕͕Δ - FMPͷ޲্͕಄ଧͪʹͳΔ - ϏδωεཁٻʹΑͬͯ͸ Dynamic Rendering΍Headͩ ͚SSRͳͲผ్ରԠ͕ඞཁ

Slide 53

Slide 53 text

SSG΍SSRͷ։ൃ೉қ౓ʹؔͯ͠ ΊΜͲ͍͘͞ͱ͜Ζ - ᷖᮣʹϒϥ΢βʹ͔͠ଘࡏ͠ͳ͍ΦϒδΣΫτ(windowͱ͔)࢖͏ͱϏϧυ ͕͚͜Δ(ࣗ෼͕ؾΛ෇͚͍ͯͯ΋࢖͏ϥΠϒϥϦ͕ରԠͯ͠ͳ͚ͯͯ͘͜ Πϥοͱ͖ͨΓ͢Δ) - hydration(αʔόαΠυͰඳըͨ࣌͠ͷঢ়ଶͱΫϥΠΞϯτଆͷঢ়ଶΛಉ ظͤ͞Δ)্͕ख͍͔͘ͳͯ͘༁෼͔ΒΜόάग़ͨΓ͢Δ

Slide 54

Slide 54 text

SSG΍SSRͷ։ൃ೉қ౓ʹؔͯ͠ - ϑϩϯτ։ൃ׳ΕͯΔਓ͕͍ͳ͍ͱ৭ʑΊΜͲ͍ͷͰɺϏδωεཁٻతʹ ڧ͍ඞવੑ͕͋Δ͔ɺཁٻ͕ബ͘ɺ͍Δϝϯόʔ΋ͦͦ͜͜ϑϩϯτ։ൃ ͷܦݧ͋Δ͔ΒʮͱΓ͋͑ͣ଎͘ͳΔ͠SSG or SSRͰ࡞ͬͱ͔͘ʯͱݴ ͏ͷ͕OKͳ৔߹ʹબΜͩΒ͍͍ͷͰ͸

Slide 55

Slide 55 text

ߟ͑Δ͜ͱ3. SSR ʹ͢Δ͔ SSG ʹ͢Δ͔ େମͷΞϓϦέʔγϣϯͰ͸SSGͷํ͕͍͍Μ͡Όͳ͍ʁͱࢥ͍ͬͯΔ - ։ൃ೉қ౓͕SSRͱൺֱ͢Δͱ௿͍͔Β - SSRͷ৔߹ϨϯμϦϯάαʔόʔͷεέʔϥϏϦςΟΛؾʹ͢Δඞཁ͕͋Δ ͕ɺSSGͰ͸ඞཁͳ͍ - SEO͍ͨ͠ϖʔδ -> Ϣʔβݸਓͷ৘ใͳͲಈతʹੜ੒͢Δ΋ͷͰ͸ͳ͍ (͜ͱ͕ଟ͍)ͷͰཁٻతʹ΋໰୊ͳ͍͔Β

Slide 56

Slide 56 text

ͨͩɺSSRͷํ͕ϕλʔͳέʔε΋͋ͬͯɺSEO͍ͨ͠ϖʔδ͕ಈతͳ΋ͷɻ ྫ͑͹Ϣʔβ౤ߘܕͷϒϩάαΠτͳͲ - ର৅ͷϖʔδʹมߋೖͬͨΓهࣄ͕૿͑Δ౓ʹશهࣄϏϧυ૸ΒͤΔͷ͸· ͋·͙͍͋͑ - ϦΫΤετʹԠͯ͡SSRͯ͠CDNΩϟογϡͤ͞Δํ͕ΑΓཁٻʹରͯ͠ے ͕ྑͦ͞͏

Slide 57

Slide 57 text

·ͱΊ - සൟʹߋ৽͞ΕΔ & ͙͢ʹΠϯσοΫεͯ͠΄͍͔͠Ͳ͏͔
 → Dynamic Rendering͢΂͖͔ߟ͑Δ - SSR or SSG ͢Δ͔ී௨ͷSPAͰߦ͔͘
 → Ϣʔβମݧ΍νʔϜͷεΩϧɾ΍͍͖ͬͯΛݩʹߟ͑Δ - SSR ʹ͢Δ͔ SSG ʹ͢Δ͔
 → αʔόଆͰඳը͍ͨ͠ϖʔδʹεέʔϥϏϦςΟ͕ٻΊΒΕΔ͔ɺ
 νʔϜͷεΩϧɾ΍͍͖ͬͯͳͲΛݩʹߟ͑Δ

Slide 58

Slide 58 text

CASE STUDY: ͱ͋ΔECαΠτͷྫ Next.jsΛ࢖ͬͨSSG Ͱߦ͘͜ͱʹͨ͠ - Static Rendering͸FMP͕଎͘ͳΓϢʔβମݧʹ΋ϓϥε → কདྷతʹωο τϫʔΫ͕஗͍͔΋͠Εͳ͍ւ֎ల։΋͋ΓಘΔͨΊॏཁ - ࣄલʹඳը͓͖͍ͯͨ͠ϖʔδ͕TopɺΧςΰϦৄࡉɺ঎඼ৄࡉͷΈͰɺ ঎඼ϥΠϯφοϓ͕ͦ͜·Ͱ૿͑Δ͜ͱ͸ͳ͍͜ͱ͕໌Β͔ͩͬͨͨΊɺ͜ ͜ʹର͢ΔεέʔϥϏϦςΟ͸͍Βͳ͍ -> SSR Ͱ͋Δඞཁ͸ͳ͍

Slide 59

Slide 59 text

CASE STUDY: ͱ͋ΔECαΠτͷྫ - ΠϯσοΫεͷ଎౓͸ॏཁͰ͸ͳ͍͠ɺDynamic Rendering ͱ͔΋·͋· ͋ΊΜͲ͍ͷͰɺSSGͰ࡞Δํ͕ίετ͕௿͍ͱߟ͑ͨ - ·ͩϦϦʔε͍ͯ͠ͳ͍ஈ֊Ͱײ૝ड़΂ΔͷΞϨ͕ͩɺҰ෦ͷϥΠϒϥ ϦͷSSRͷઃఆ͕ΊΜͲ͔͚ͬͨͩ͘͞Ͱී௨ͷSPA։ൃͱൺ΂ͯͦ͜ ·ͰେมͰ͸ͳ͍ - Ή͠Ζ Next.js ͷΤίγεςϜʹ৐͔ͬΕΔͳͲͷར఺΋͋Δ

Slide 60

Slide 60 text

͓ΘΓʹϢʔβʹͱͬͯʮ͍͍΋ͷʯΛ࡞͍ͬͯ͜͏ ʮFirst and foremost, we focus on the user.ʯ IUUQTXXXCMPHHPPHMFQSPEVDUTTFBSDIJNQSPWJOHTFBSDIOFYUZFBST ਆ͸Ӡͬͨɻ

Slide 61

Slide 61 text

͓ΘΓʹϢʔβʹͱͬͯʮ͍͍΋ͷʯΛ࡞͍ͬͯ͜͏ ٕज़తͳ੍໿͔ΒࠓճͷΑ͏ͳzରࡦzΛ͋Δఔ౓͠ͳͯ͘͸ͳΒͳ͍ͷ͸͔֬ Ͱ͕͢ɺͦΕҎ֎͸ʮϢʔβʹྑ࣭ͳίϯςϯπΛఏڙ͢Δ͜ͱʯ͕4&0ͷ ίΞͱͳͬͯ͘Δ͜ͱ͸ؒҧ͍ͳ͍Ͱ͠ΐ͏ɻ (PPHMFͷʮ%POUCFFWJMʯΛ৴͡·͠ΐ͏

Slide 62

Slide 62 text

Thank you for listening!!

Slide 63

Slide 63 text

6TFGVM3FTPVSDFT +4TJUFͷ4&0৘ใ <+BWB4DSJQU4JUFTJO4FBSDI8PSLJOH(SPVQ> IUUQTHSPVQTHPPHMFDPNGPSVNGPSVNKTTJUFTXH <:PV5VCF(PPHMF8FCNBTUFS> IUUQTXXXZPVUVCFDPNVTFS(PPHMF8FCNBTUFS)FMQ <ւ֎4&0৘ใϒϩάւ֎ͷ4&0ରࡦͰۃΊΔΞΫηεΞοϓज़> IUUQTXXXTV[VLJLFOJDIJDPNCMPH ͜ͷαΠτ͸ϚδͰ͍͢͝Ͱ͢ɻଚܟͱײँ͔͠ͳ͍Ͱ͢ɻ %ZOBNJD3FOEFSJOH <)FBEMFTT$ISPNFBOBOTXFSUPTFSWFSTJEFSFOEFSJOH+4TJUFTc5PPMTGPS8FC%FWFMPQFSTc (PPHMF%FWFMPQFST> IUUQTEFWFMPQFSTHPPHMFDPNXFCUPPMTQVQQFUFFSBSUJDMFTTTS

Slide 64

Slide 64 text

6TFGVM3FTPVSDFT (PPHMFͷϨϯμϦϯάࣄ৘ <(PPHMFݕࡧͰͷϨϯμϦϯάcݕࡧc(PPHMF%FWFMPQFST> IUUQTEFWFMPQFSTHPPHMFDPNTFBSDI EPDTHVJEFTSFOEFSJOH <41"BOE4&0(PPHMF (PPHMFCPU QSPQFSMZSFOEFST4JOHMF1BHF"QQMJDBUJPOBOEFYFDVUF"KBYDBMMT> IUUQTNFEJVNDPN!MNVHOBJOJTQBBOETFPJTHPPHMFCPUBCMFUPSFOEFSBTJOHMFQBHF BQQMJDBUJPOGFBC ϝλ৘ใͷ443 <("ʹͳͬͨ-BNCEB!&EHFΛ࢖ͬͯ41"Λ443ແ͠Ͱ0(1ͱ͔ʹରԠͤͯ͞ΈΔ> IUUQTRJJUBDPNLJJEB JUFNTFGGEEC <-BNCEB!&EHFr*OUFMMJHFOU1SPDFTTJOHPG)5513FRVFTUTBUUIF&EHFc"84/FXT#MPH> IUUQT BXTBNB[PODPNKQCMPHTBXTMBNCEBFEHFJOUFMMJHFOUQSPDFTTJOHPGIUUQSFRVFTUTBUUIFFEHF

Slide 65

Slide 65 text

6TFGVM3FTPVSDFT 4UBUJD4JUF(FOFSBUPS <αʔόʔαΠυͷਓʹ΋఻͍͑ͨ+".4UBDLͱ੩తαΠτͷΠϚNPUUPYCMPH> IUUQTNPUUPYDPN QPTUT OPDBDIF

Slide 66

Slide 66 text

6TFGVM3FTPVSDFT ࣄྫ <3BJMT3FBDUͳ41"αΠτͰ4&0Λ͠Α͏ͱͯ͠Ϳ͔ͭͬͨนΦ΢νʔϊ։ൃऀϒϩά> IUUQT EFWFMPQFSTPVDDJOPDPNFOUSZ <443ແ͠ͷ3FBDUɾ"OHVMBS੡ͷ41"αΠτ͸(PPHMFCPUʹͲΕ͘Β͍ೝࣝ͞ΕΔͷ͔ʁจܥϓϩάϥϚʹΑ Δ5*14ϒϩά> IUUQTXXXCVOLFJQSPHSBNNFSOFUFOUSZ <αʔόϨεΞʔΩςΫνϟ41"Ͱ443ͳ͠ͷ4&0ରࡦͨ͠࿩4QFBLFS%FDL> IUUQT TQFBLFSEFDLDPNNBUTOPXTBCBSFTVBLJUFLVUJZBQMVTTQBEFTTSOBTJGBMTFTFPEVJDFTJUBIVB TMJEF