作成日: 2023-4-23
更新日: 2023-9-28
SPAとはシングルページアプリケーションの略です。ページは遷移しないけど、中身が動的に変わるため、リアルタイムな更新が特徴の一つです。
あらかじめユーザ側にはデータの入っていないHTMLを渡しておき、データだけはjavascriptを使って渡して表示させています。
例えば、Twitterでいいねを押すとハートが赤くなりますよね。あれはjavasciptによって画面の一部を書き換えることで実現しています。
javascriptを使わない場合、ページが真っ白になってリロードされた後にハートが赤くなります。
ユーザ目線で見るとかなり使いづらいですよね。
以下にSPAの仕組みの図解を載せておきます。
Googleはクローラーを使ってWebサイトを巡回しています。つまり皆さんと同じくWebサイトに訪問しているのです。
SPAはデータを後から取得する必要があり、若干時間がかかります。クローラーはせっかちだからデータの取得なんか待ってられません。
結果としてデータが取得されていないページを読み取ってしまうため、コンテンツが充実していないページと認識してしまいます。
コンテンツが充実していないページは検索結果上位に表示されることはないので、SPAはその仕組み上、SEOに弱いと言われています。
SSRとはサーバーサイドレンダリングの略になります。
文字通りサーバー側でレンダリングを行います。
このレンダリング方法のメリットは、
が挙げられます。
CSRと違い、クローラーもWebページを正確に読み取ることができるため、SEOに強いと言われています。
デメリットとしては、
が挙げられます。
SSGとはスタティックサイトジェネレーションの略です。
こちらはビルド時にデータを取得し、HTMLの生成を行い、Webサーバー上にキャッシュさせておきます。
ユーザからリクエストを受けた時にキャッシュから生成しておいたHTMLを返却します。
このレンダリング方法メリットは、
が挙げられます。
デメリットとしては、
が挙げられます。
なお、Next.js側が推しているのは、SSGになります。
サイトの表示速度のパフォーマンスはSSGの方が優れているからです。
Next.jsのSSR、SSG、SPAについてSEOの観点からまとめました。
SSR、SSGがSEOに強いと言われる理由が理解できたかと思います。
次回は、Next.jsのリンクタグの設定方法について解説します。