NetlifyのPrerenderingを使うとクローラにレンダリング済みのHTMLを返せる
どういうこと?
code:bash
https://gyazo.com/aa8b85381ce8987b18037e541bf84dc6
ユーザーエージェントがクローラだとレンダリング済みのHTMLを返却するようになっている。
Prerenderingを有効にする方法
Settings > Build & Deploy > Prerenderingにあるチェックボックスにチェックする。
https://gyazo.com/0e5e1cbcccf8f67384e0bb8af1276acd
実際にどれぐらいレンダリングできているか?
まず、いかが実際のブラウザでのレンダリング。
https://gyazo.com/982dc961c88fd2447db5894f1c6d3fe0
https://gyazo.com/bd0c33bb7fd5fc5b365b1d439feb3514
重要な文字がだいぶレンダリングされている。Vueのプロジェクトで以下の"Piping UI"や"Send", "Get"や"Drop a file here"など全てJavaScriptが(Vueが)動かないと表示されないがちゃんとHTMLにその情報が載っていることがわかる。 クローラが見るのでデザインが多少崩れていることは問題ない。検索キーワードでヒットするために大事な文字がクローラに伝わる。
おまけ
上記ではJavaScriptで<meta name="description" content="...">を書き換える処理をしてそれがちゃんとGoogle検索結果に乗ることを検証した。 Cloudflareなどのコンテンツをキャッシュする系のサービスを使うとこの効果を発揮できなかったり、最悪のケースとして逆にブラウザユーザーにクローラ用のHTMLを渡してしまいそう。キャッシュするサービス側にユーザーエージェントを見てキャッシュ使うか決めるような細かい設定がないこの機能を有効にしづらいかもしれない。