バックエンドで頑張るSEO/OGP対策
by
TVer Inc.
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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/