GoogleBOTでJavascriptエラー

Last updated at

warning

この記事は最終更新から3年以上経っています。情報が古くなっている可能性が高いです。

起きたこと

このブログが GoogleBOT で正しくレンダリングされない

記事一覧や記事ページで外部リソースが読み込めていなかったのでfetchPromiseがないものと思い込み polyfill を追加するも変化なし

Netlify でSPA 用の Prerenderingをやってみるも効果なし(そもそも動いてるのかすら怪しい...)

polyfill.ioの CDN を入れるも GoogleBOT に読み込ませると polyfill スクリプトがエラーになり<body>のレンダリングすらされない...

<body>へのエラー出力を追加して調べてみたところfetchしたレスポンスをいじってる箇所でObject.assign is undefined...

対応したこと

面倒だったのでbabel-polyfillで対応した

npm install --save babel-polyfill

今までは手動でインポートしていたが、Webpack だとentryにモジュール名を渡すとバンドルしてくれるらしい(このとき初めて知った)

module.exports = {
  entry: ["babel-polyfill", "./src/index.js"],
  // ...
};

ちなみに...

GoogleBOT に正しくレンダリングされているかどうか確認したい場合は、Google Search Consoleの Fetch as Google を使うと確認できる