バックエンドで頑張るSEO/OGP対策
by
TVer Inc.
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
όοΫΤϯυͰؤுΔSEO/OGPରࡦ גࣜձࣾ TVer / ҏ౻ ૱ଡ 2023/11/15 Media-JAWS ୈ14ճ
Slide 2
Slide 2 text
ࣗݾհ ● ҏ౻૱ଡ(@sou_world) ● גࣜձࣾTVer αʔϏεϓϩμΫτຊ෦ Τ ϯδχΞϦϯάλεΫ ● ೖࣾͯ͠Ұ͘Β͍ ● झຯԻָ(DTM)ͱͨ·ʹήʔϜ ● ॳΊͯͷొஃ
Slide 3
Slide 3 text
ΞδΣϯμ ● TVerʹ͍ͭͯ ● TVerͷSEOͷ՝ ● SEOରࡦʹ͍ͭͯ ● TVerͷOGPͷ՝ ● OGPରԠʹ͍ͭͯ ● ·ͱΊ
Slide 4
Slide 4 text
ΞδΣϯμ ● TVerʹ͍ͭͯ ● TVerͷSEOͷ՝ ● SEOରࡦʹ͍ͭͯ ● TVerͷOGPͷ՝ ● OGPରԠʹ͍ͭͯ ● ·ͱΊ
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
ΞδΣϯμ ● TVerʹ͍ͭͯ ● TVerͷSEOͷ՝ ● SEOରࡦʹ͍ͭͯ ● TVerͷOGPͷ՝ ● OGPରԠʹ͍ͭͯ ● ·ͱΊ
Slide 14
Slide 14 text
TVerͷSEOͷ՝ ϦχϡʔΞϧͰൃੜͨ͠՝ 1. TVer͕ΠϯσοΫε͞Εͳ͍ 2. metaλά͕ෆશͳ
Slide 15
Slide 15 text
TVerͷSEOͷ՝ ϦχϡʔΞϧͰൃੜͨ͠՝ 1. TVer͕ΠϯσοΫε͞Εͳ͍ ○ WebΞϓϦͷ࠷దԽ͕ߦΘΕ͍ͯͳ͍ ■ SPA࠾༻ʹΑΔॳظඳըίετͷ૿Ճ ○ GoogleSearchConsoleͷςετෆ߹֨ ○ Ϋϩʔϥʔ͕८ճͯ͠ΠϯσοΫεొ❌ ■ ݕࡧ্Ґʹग़ͯ͜ͳ͍
Slide 16
Slide 16 text
TVerͷSEOͷ՝ ϦχϡʔΞϧͰൃੜͨ͠՝ 2. metaλά͕ෆશͳ ○ ͲͷϖʔδͰશͯಉҰͷmetaλάΛ༻ ○ ϒϥβʹ֤ϖʔδͷׂΛୡͰ͖ͳ͍ ○ ൪໊Ͱݕࡧͯ͠͏·͘දࣔ͞Εͳ͍ ■ ্Ґʹग़ͨͱͯ͠ϖʔδ༰͕ਖ਼֬ʹΘΒͳ͍ ■ ্ͦͦҐʹग़ͯ͜ͳ͍͚ΕͲ......
Slide 17
Slide 17 text
TVerͷSEOͷ՝ ݕࡧදࣔճ70% ˍ ΫϦοΫ50%μϯ
Slide 18
Slide 18 text
TVerͷSEOͷ՝ ૣٸͳରԠ͕ඞཁ!!!
Slide 19
Slide 19 text
ΞδΣϯμ ● TVerʹ͍ͭͯ ● TVerͷSEOͷ՝ ● SEOରࡦʹ͍ͭͯ ● TVerͷOGPͷ՝ ● OGPରԠʹ͍ͭͯ ● ·ͱΊ
Slide 20
Slide 20 text
SEOରࡦʹ͍ͭͯ ΰʔϧͱ੍ ● ΰʔϧ ○ Ϋϩʔϥʔ८ճ࣌ʹΠϯσοΫεొ͞ΕΔ͜ͱ ○ ൪໊ͳͲͰݕࡧ্ҐʹTVer͕ग़ͯ͘Δ͜ͱ ● ੍ ○ ظؒͰղܾ͍ͨ͠(େମ1ʙ2ϲ݄) ○ όοΫΤϯυͷϦιʔεͷΈͰղܾ͢Δ͜ͱ ■ Webϑϩϯτ·ͩԽͰ͖͍ͯͳ͍ɾɾɾ
Slide 21
Slide 21 text
SEOରࡦʹ͍ͭͯ WebϑϩϯτͰ࠷దԽ͢Δʹ ● αʔόʔαΠυϨϯμϦϯά(SSR) ● ελςΟοΫαΠτδΣωϨʔγϣϯ(SSG)
Slide 22
Slide 22 text
SEOରࡦʹ͍ͭͯ WebϑϩϯτͰ࠷దԽ͢Δʹ ● αʔόʔαΠυϨϯμϦϯά(SSR) ○ ϦΫΤετ࣌ʹαʔόଆͰಈతͳใΛඳը ■ SPAΫϥΠΞϯτଆͰશͯඳը ■ සൟʹมߋ͞ΕͨΓɺύʔιφϥΠζΛ͢ΔಈతͳWebα Πτʹ࠷ద ○ ϑϩϯτΤϯυʹखΛೖΕͳ͍ͱ͍͚ͳ͍ ○ ࠓճ͑ͳ͍
Slide 23
Slide 23 text
SEOରࡦʹ͍ͭͯ WebϑϩϯτͰ࠷దԽ͢Δʹ ● ελςΟοΫαΠτδΣωϨʔγϣϯ(SSG) ○ Ϗϧυ࣌ʹ੩తHTMLΛ࡞ ■ ϢʔβϦΫΤετ࣌ʹܾ·ͬͨHTMLΛฦ͢͜ͱ͕Ͱ͖Δɻඳը ίετ͕ͱ͍ͯܰɻ ■ ϒϩάυΩϡϝϯταΠτͳͲͷසൟͳߋ৽ͷͳ͍WebαΠτʹ ࠷ద ○ ࣅͨΑ͏ͳ͜ͱΛόοΫΤϯυͰͰ͖ͦ͏ ■ GoͰ֤ϖʔδͷ੩తHTMLΛ࡞Γ͍ͨ
Slide 24
Slide 24 text
SEOରࡦʹ͍ͭͯ ੩తHTMLʹΑΔSEOରࡦ 1. ؆қతͳΫϩʔϥʔͷ࣮ 2. ΫϩʔϥʔఆͱΞΫηε੍ޚ
Slide 25
Slide 25 text
SEOରࡦʹ͍ͭͯ ੩తHTMLΛੜ͢Δ 1. ؆қతͳΫϩʔϥʔͷ࣮ ○ TVerͷ֤ϖʔδΛ८ճ ■ ඳը͕ྃͨ͠ϖʔδΛHTMLͰऔಘ ■ HTMLΛՃͯ͠S3 ○ ECSλεΫͰఆظ࣮ߦ ○ ࣮Go
Slide 26
Slide 26 text
SEOରࡦʹ͍ͭͯ
Slide 27
Slide 27 text
SEOରࡦʹ͍ͭͯ HTMLͷऔಘͱฤू 1. ରͷϖʔδΞΫηε͠HTMLΛऔಘ 2. औಘͨ͠HTMLΛ੩తղੳͯ͠ฤू 3. ฤूͨ͠HTMLΛS3Ξοϓϩʔυ
Slide 28
Slide 28 text
SEOରࡦʹ͍ͭͯ HTMLͷऔಘͱฤू 1. ରͷϖʔδΞΫηε͠HTMLΛऔಘ ○ ChromeͷDevToolsΛར༻ ■ github.com/chromedp ○ ରϖʔδͷURLࣄલʹܾΊͰ༻ҙ ■ DB͔Βऔ͖ͬͯͨΓϋʔυίʔσΟϯάͨ͠Γ...... ○ ඳը͕ऴΘΔ·Ͱͭඞཁ͋Γ ■ ΞΫηεͯ͠ඵSleep💤 ○ ݁ߏటष͍......
Slide 29
Slide 29 text
SEOରࡦʹ͍ͭͯ HTMLͷऔಘͱฤू 2. औಘͨ͠HTMLΛ੩తղੳͯ͠ฤू ○ औಘͨ͠HTMLՃ͢Δඞཁ͕͋Δ ■ metaλάͷ࠷దԽ ■ ෆཁͳjsͷআ ○ ੩తղੳͯ͠τϥόʔε ■ https://techblog.tver.co.jp/entry/s-ito/intro-go-html-parser- package
Slide 30
Slide 30 text
SEOରࡦʹ͍ͭͯ HTMLͷऔಘͱฤू 3. ฤूͨ͠HTMLΛS3Ξοϓϩʔυ ○ ΫϩʔϥʔͱϢʔβΞΫηεͰৼΓ͚ ■ Ϋϩʔϥʔఆ͞ΕͨͷHTMLΛݟΔΑ͏ʹ
Slide 31
Slide 31 text
SEOରࡦʹ͍ͭͯ ੩తHTMLʹΑΔSEOରࡦ 2. ΫϩʔϥʔఆͱΞΫηε੍ޚ ○ CloudFront FunctionsΛར༻ ■ ϢʔβʹSPAΛ,Ϋϩʔϥʔʹੜͨ͠੩త HTMLΛฦ͢
Slide 32
Slide 32 text
SEOରࡦʹ͍ͭͯ CloudFront Functions ● Τοδϩέʔγϣϯ্Ͱ࣮ߦ ○ Lambda@EdgeΑΓ Ϣʔβʔʹۙ ͍ ● ϥϯλΠϜJavaScript ● ܰྔͷॲཧΛߦ͏ͷʹ࠷ద ○ ࠓճΫϩʔϥʔఆ/ɹɹɹɹɹɹɹɹɹɹɹɹɹURLม ߋʹར༻(ϏϡʔϫʔϦΫΤετ)
Slide 33
Slide 33 text
SEOରࡦʹ͍ͭͯ ݁Ռ ● ੩తHTMLΛͬͯॳظඳըίετΛݮ ○ ΠϯσοΫεొ͞ΕΔΑ͏ʹͳͬͨ ● metaλάΛਖ਼ͨ͘͠͠ ○ ݕࡧ࣌ͷද͕ࣔਖ਼͘͠ͳͬͨ ݕࡧ࣌ͷදࣔճϦχϡʔΞϧલҎ্ʹʂʂ
Slide 34
Slide 34 text
SEOରࡦʹ͍ͭͯ ରԠ։࢝ ‼︎ ֓ͶରԠྃ ‼︎
Slide 35
Slide 35 text
ΞδΣϯμ ● TVerʹ͍ͭͯ ● TVerͷSEOͷ՝ ● SEOରࡦʹ͍ͭͯ ● TVerͷOGPͷ՝ ● OGPରԠʹ͍ͭͯ ● ·ͱΊ
Slide 36
Slide 36 text
TVerͷOGPͷ՝ ϦχϡʔΞϧ࣌ͷOGPରԠͱͦͷ՝ ● OGPରԠ ○ LP(ϥϯσΟϯάϖʔδ)Λ༻ҙͯ͠ରԠ ■ SEOͷ՝ͱಉ༷ʹmetaλά͕ෆશͩͬͨ ● ՝ ○ ຊདྷͷϖʔδͱLPͰURL͕ҟͳ͍ͬͯͨ ■ Ϣʔβ͕ϦϯΫΛίϐϖ͢Δͱදࣔ❌ ■ Ϣʔβମݧ͕ଛͳΘΕͨঢ়ଶ
Slide 37
Slide 37 text
TVerͷOGPͷ՝ SEOରࡦͷΈ͑Δͷ͔ ● ͔݁Βݴ͑͑ͨ͠ ○ LPͰͳ͍URLͰදࣔՄೳʹͳͬͨ ■ SEOରࡦ࣌ʹmetaλάΛਖ਼ͨͨ͘͠͠Ί ○ ఆରԠͱͯ͠ेͳঢ়ଶ ○ 1ͭॏཁͳཁ݅Λຬͨͤͳ͔ͬͨ
Slide 38
Slide 38 text
TVerͷOGPͷ՝ ɹ ϦΞϧλΠϜੑʂʂʂ
Slide 39
Slide 39 text
TVerͷOGPͷ՝ OGPಛ༗ͷཁ݅ ● ϦΞϧλΠϜੑ ○ SNSࠂॏཁ ■ SEOରࡦͷख๏Λྲྀ༻͢Δͱϥά͕ൃੜ ■ OGPରԠͰ͜ͷϥάΛڐ༰ͨ͘͠ͳ͍ ○ LPͰ͜ͷཁ݅ຬ͍ͨͯͨ͠
Slide 40
Slide 40 text
TVerͷOGPͷ՝ OGPಛ༗ͷཁ݅ ● ϦΞϧλΠϜੑ ○ SNSࠂॏཁ ■ SEOରࡦͷख๏Λྲྀ༻͢Δͱϥά͕ൃੜ ■ OGPରԠͰ͜ͷϥάΛڐ༰ͨ͘͠ͳ͍ ○ LPͰ͜ͷཁ݅ຬ͍ͨͯͨ͠ LPΛΘͣʹϦΞϧλΠϜੑΛ୲อ͍ͨ͠ʂ
Slide 41
Slide 41 text
ΞδΣϯμ ● TVerʹ͍ͭͯ ● TVerͷSEOͷ՝ ● SEOରࡦʹ͍ͭͯ ● TVerͷOGPͷ՝ ● OGPରԠʹ͍ͭͯ ● ·ͱΊ
Slide 42
Slide 42 text
OGPରԠʹ͍ͭͯ ϦΞϧλΠϜੑ୲อͷͨΊʹ 1. OGP༻ͷHTMLΛฦ͢APIΛ༻ҙ 2. Lambda@Edgeܦ༝ͰAPIΛୟ͍ͯHTMLΛฦ͢
Slide 43
Slide 43 text
OGPରԠʹ͍ͭͯ ϦΞϧλΠϜੑ୲อͷͨΊʹ 1. OGP༻ͷHTMLΛฦ͢APIΛ༻ҙ ○ OGPʹඞཁͳใΛ٧ΊࠐΜͩ࠷খݶͷHTML ○ ϦΞϧλΠϜੑΛ୲อ ○ OGP BotͷΞΫηε࣌ʹ͜ͷใΛฦͤΕྑ͍ ■ Lambda@Edge/CloudFront FunctionsͰରԠ
Slide 44
Slide 44 text
OGPରԠʹ͍ͭͯ ϦΞϧλΠϜੑ୲อͷͨΊʹ 2. Lambda@Edgeܦ༝ͰAPIΛୟ͍ͯHTMLΛฦ͢ ○ ΦϦδϯϦΫΤετͰಛఆURLͰAPIΛୟ͘Α͏ʹ ■ Ωϟογϡར༻ ■ ΤϥʔϋϯυϦϯάਖ਼͘͠ ○ OGP BotఆCloudFront FunctionsΛར༻ ■ SEOରࡦͱಉ༷
Slide 45
Slide 45 text
OGPରԠʹ͍ͭͯ LambdaˏEdge ● ϦʔδϣϯΤοδͰ࣮ߦ ● ϥϯλΠϜNode.js/Python ● CloudFront Functionsʹൺͯ؇੍͍ݶ ○ ൺֱతॏ͍ॲཧʹରͯ͠༏Ґ ○ ࠓճAPIΛୟ͍ͯϨεϙϯεΛੜ͢Δͷʹར༻
Slide 46
Slide 46 text
OGPରԠʹ͍ͭͯ
Slide 47
Slide 47 text
OGPରԠʹ͍ͭͯ ͍ͭͰʹΩϟογϡઓུ ● max-ageͰҰఆظؒΩϟογϡ ● stale-if-errorͰαʔόෆௐͷࡍͷΩϟογϡར༻ ● stale-while-revalidateࠓճݟૹΓ ○ ϨεϙϯεͷΛ༏ઌ ○ ΞΫηε͕ͦͦͦ͜·Ͱͳ͍ ○ APIαʔόଆͰෛՙରࡦΛ͍ͯ͠Δ
Slide 48
Slide 48 text
OGPରԠʹ͍ͭͯ ݁Ռ ● Lambda@EdgeͰϦΞϧλΠϜੑΛ୲อ ○ ެ։͔ΒԆͳ͘SNSࠂͰ͖ΔΑ͏ʹͳͬͨ ● CloudFront FunctionsͰBotఆͱৼΓ͚ ○ ֤ϖʔδͱಉ͡URLͰγΣΞͰ͖ΔΑ͏ʹͳͬͨ LPͳ͠ͰԆͳ͘γΣΞͰ͖ΔΑ͏ʹͳͬͨʂʂ
Slide 49
Slide 49 text
ΞδΣϯμ ● TVerʹ͍ͭͯ ● TVerͷSEOͷ՝ ● SEOରࡦʹ͍ͭͯ ● TVerͷOGPͷ՝ ● OGPରԠʹ͍ͭͯ ● ·ͱΊ
Slide 50
Slide 50 text
·ͱΊ SEOରࡦ ● ؆қతͳΫϩʔϥʔΛ࣮ ● ࣮ࡍʹTVer८ճͯ͠੩తHTMLΛੜ ● ֤ࣾͷΫϩʔϥʔ੩తHTMLΛݟΔΑ͏ʹ ○ CloudFront FunctionsΛར༻ ● ΠϯσοΫεొ͞Εݕࡧ݁ՌදࣔղܾͰ͖ͨ ○ ϦχϡʔΞϧલҎ্ͷঢ়ଶʹͳͬͨ
Slide 51
Slide 51 text
·ͱΊ OGPରԠ ● ֤OGP༻metaλάΛਖ਼͘͠ฦ͢APIΛ༻ҙ ● ֤ࣾͷOGP Bot͜ͷAPI͔ΒฦΔHTMLΛར༻ ○ CloudFront FunctionsͰOGP Botఆ ○ Lambda@EdgeͰAPIΛୟ͍ͯHTMLฦ٫ ● ֤ϖʔδͱಉURLͰϦΞϧλΠϜͳใΛฦͤͨ ○ LPͳͯ͘ྑ͍ঢ়گʹͳͬͨ ○ SNSͰͷϢʔβମݧ্͕ͨ͠
Slide 52
Slide 52 text
·ͱΊ ࠓޙ ● LP͕ແͯ͘ྑ͍ঢ়ଶʹ ○ Ұ෦·ͩLPΛར༻͍ͯ͠Δ ○ LPͷURLͰͷաڈͷγΣΞͷରԠ ● վमίετͷݮ ○ metaλάͷจݴมߋͳͲվमίετ͕݁ߏߴ͍ ■ ಛʹSEOରࡦͷ੩తHTMLॻ͖ग़͠ͳ͓͞ͳ͍ͱ͍͚ͳ ͍
Slide 53
Slide 53 text
·ͱΊ ͓·͚ ● 2023/10 X(چTwitter)ͷOGPͰ༷มߋ ○ ৭ʑදࣔͷ༷͕มΘͬͨ ○ ࠓޙmetaλάͷมߋ͋Δ͔͠Εͳ͍ ○ 😇😇😇
Slide 54
Slide 54 text
https://tver.co.jp/recruit/