Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
FirebaseでSPAするときのSEO/OGP対応もうこれでいいんじゃないですか20...
Search
o_tomomichi
April 02, 2018
Programming
1
7.6k
FirebaseでSPAするときのSEO/OGP対応もうこれでいいんじゃないですか2018暫定版
o_tomomichi
April 02, 2018
Tweet
Share
More Decks by o_tomomichi
See All by o_tomomichi
個人開発からのんびり育てる意識低いWebサービス開発の話 / Easy going web development
tomomichi
0
2.1k
個人開発を支える何も作らない技術 / No Devs No Bugs
tomomichi
3
1.1k
Herokuの無料プランで月間100万PVをさばく(さばかない)話
tomomichi
3
8.8k
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
360
奥深くて厄介な「改行」と仲良くなる20分
oguemon
1
520
実用的なGOCACHEPROG実装をするために / golang.tokyo #40
mazrean
1
270
基礎から学ぶ大画面対応(Learning Large-Screen Support from the Ground Up)
tomoya0x00
0
430
旅行プランAIエージェント開発の裏側
ippo012
2
900
モバイルアプリからWebへの横展開を加速した話_Claude_Code_実践術.pdf
kazuyasakamoto
0
320
Cache Me If You Can
ryunen344
2
700
Laravel Boost 超入門
fire_arlo
3
210
OSS開発者という働き方
andpad
5
1.7k
アプリの "かわいい" を支えるアニメーションツールRiveについて
uetyo
0
260
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
430
Performance for Conversion! 分散トレーシングでボトルネックを 特定せよ
inetand
0
140
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Embracing the Ebb and Flow
colly
87
4.8k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
What's in a price? How to price your products and services
michaelherold
246
12k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
BBQ
matthewcrist
89
9.8k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
A Tale of Four Properties
chriscoyier
160
23k
Transcript
FirebaseでSPAするときの SEO/OGP対応 もうこれで いいんじゃないですか 2018暫定版
自己紹介 • なんちゃってWebエンジニア • ぼっちWebサービス開発 • NOT SO BAD, LLC.
おおにし @kame_f_no7
簡単・便利なトーナメント表作成サービス
課題感
THE TOURNAMENTの話
うれしみ つらみ 無料枠が大きい 認証が簡単すぎ Functionsが便利すぎ まだ障害も多い 管理画面が弱い バックアップできない 初回表示が重い SEOが弱くなった
SPAのSEO/OGPあるある • Googleにインデックスされない • SNSシェアにOGPが反映されない botの進化で解決したのでは…?
None
ダメでした\(^o^)/ ※使用するフレームワークなどにもよるようです。
対応策
こういうのがありますよね • SSR • プリレンダリング • metaタグだけ入ったhtmlを返す ◦ botにだけ別ページ表示 ◦
URLを分けてリダイレクト
今回の方針としては • シンプルで対応工数少ないの希望 • SEOペナルティは避けたい • パフォーマンス改善は目をつぶる
やったこと 1. Functionsでindexのmetaタグ差替 2. FunctionsでRSSフィード配信 3. スプレッドシートでsitemap公開
① Functionsで index.htmlの metaタグ差し替え
firebase.json
None
事例見かけないので不安。 なにか罠あります?
心配になるところ • Functions使いすぎるのでは? • パフォーマンス落ちるのでは?
心配ポイント①:Functions使いすぎ問題 でもFunctionsのレスポンスは CDNにキャッシュできる
None
• コンテンツ部分は結局クライアント側で レンダリングしてる(のでキャッシュされ ない) • キャッシュしてるのはガワだけなので、 保存期間長くしてもよさそう 心配ポイント①:Functions使いすぎ問題
心配ポイント②:パフォーマンス問題 中央値:200~300ms
まぁいいか \(^o^)/
② Functionsで 超お手軽にRSSフィード配信
/feed でxml形式のRSSフィードを出力する
Firestoreから最新のコンテンツn件をxmlで返す
キャッシュは長めがハッピー
None
めっちゃ簡単 \(^o^)/
③ スプレッドシートで 超お手軽にsitemap配信
クロールしてもらうために sitemapも用意しないと。。 でも面倒くさい
• XMLじゃなくて改行テキストでOK →実はCSV形式でもOK • 外部ドメインに置いてもOK • スプレッドシートはCSV形式で公開でき る あまり知られてないsitemapの話
つまり?
いつからこれがsitemapではないと錯覚していた…?
None
robots.txt
更新はどうするの?
None
RSSが更新されたら自動でシートに追記
実際クロールされるの?
来すぎてquota超えた(先にblazeにしましょう)
まとめ
改めて、やったこと再掲 1. Functionsでindexのmetaタグ差替 2. FunctionsでRSSフィード配信 3. スプレッドシートでsitemap公開
Functions最高 \(^o^)/
CM
FirestoreのGUI管理アプリ作りかけです https://notsobad-jp.github.io/sequelFIRE/
Thank you.