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.7k
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
690
iOSでSVG画像を扱う
kishikawakatsumi
0
180
퇴근 후 1억이 거래되는 서비스 만들기 | 내가 AI를 사용하는 방법
maryang
2
380
Researchlyの開発で参考にしたデザイン
adsholoko
0
110
pnpm に provenance のダウングレード を検出する PR を出してみた
ryo_manba
1
180
CSC305 Lecture 13
javiergs
PRO
0
350
Towards Transactional Buffering of CDC Events @ Flink Forward 2025 Barcelona Spain
hpgrahsl
0
120
なんでRustの環境構築してないのにRust製のツールが動くの? / Why Do Rust-Based Tools Run Without a Rust Environment?
ssssota
14
47k
Making Angular Apps Smarter with Generative AI: Local and Offline-capable
christianliebel
PRO
0
100
外接に惑わされない自システムの処理時間SLIをOpenTelemetryで実現した話
kotaro7750
0
160
contribution to astral-sh/uv
shunsock
0
580
マンガアプリViewerの大画面対応を考える
kk__777
0
450
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
33k
BBQ
matthewcrist
89
9.9k
The Pragmatic Product Professional
lauravandoore
36
7k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
A Modern Web Designer's Workflow
chriscoyier
697
190k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Making Projects Easy
brettharned
120
6.4k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
2
260
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.3k
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.