如何使用 Next.js 制作 SEO 友好的动态页面

阅读时长 7 分钟读完

前言

SEO(搜索引擎优化)是一个相对于前端而言比较陌生的一个概念。它可以使得网站更容易被搜索引擎识别和收录,从而提高网站的曝光率和流量。

在开发动态页面时,我们通常需要注意以下几点来实现 SEO 友好:

  • 静态化网站内容
  • 手动提供元数据
  • 选用合适的 URL 路径
  • 确保 HTML 结构合法且语义正确
  • 为页面设置合适的标题和描述

Next.js 是一个流行的 React.js 框架,它可以使得我们在开发时轻松地实现以上点。在本文中,我们将学习如何使用 Next.js 制作 SEO 友好的动态页面。

静态化网站内容

通常,搜索引擎检索的是静态 HTML 页面,而非动态页面。因此,我们需要将我们的网站内容静态化。

在 Next.js 中可以使用 getStaticProps 来获取动态数据,并生成静态 HTML。例如:

-- -------------------- ---- -------
------ ----- -------- ---------------- -
  ----- --- - ----- --------------------------------------
  ----- ----- - ----- ----------

  ------ -
    ------ -
      ------
    --
  -
-

上面的代码将获取到的数据 posts 保存在静态 HTML 页面中。进行这个操作后,这个页面将不再依赖数据库以及服务端的其他环境设置,从而符合搜索引擎的检索条件。

手动提供元数据

搜索引擎使用元数据来显示摘要、标题及其他信息。你可以使用 Head 组件为你的页面提供元数据。例如:

-- -------------------- ---- -------
------ ---- ---- -----------

-------- ------ -
  ------ -
    -----
      ------
        -----------------
        ----- ------------------ ---------------------------
      -------

      ------------------
    ------
  -
-

------ ------- ----

这个 Head 组件将会向客户端返回如下 HTML:

选用合适的 URL 路径

搜索引擎针对 URL 的结构也有自己的检索策略。一个合适的 URL 路径可以让你的页面更容易被搜索引擎识别和收录。在 Next.js 中,你可以使用 getStaticPaths 方法与 getStaticProps 方法一起使用来生成静态路径:

-- -------------------- ---- -------
------ ----- -------- ---------------- -
  ------ -
    ------ -
      - ------- - --- --- - --
      - ------- - --- --- - --
      - ------- - --- --- - --
    --
    --------- ------
  -
-

------ ----- -------- ---------------- ------ -- -
  ----- -- - ---------

  ----- --- - ----- --------------------------------------------
  ----- ---- - ----- ----------

  ------ -
    ------ -
      -----
    --
  -
-

在上面的代码中,getStaticPaths 方法返回的 paths 数组包含了所有可能的 URL 路径。由于 fallback 参数被设置成了 false,任何其他的 URL 路径将会被 404。

确保 HTML 结构合法且语义正确

虽然搜索引擎对于 HTML 结构的要求并不如以前那样苛刻,但是它们仍然会优先选择那些 HTML 结构合法且语义正确的页面。在 Next.js 中,你可以使用 React 的 semantic HTML 来保证 HTML 结构具有语义性。例如:

-- -------------------- ---- -------
-------- ---------- ---- -- -
  ------ -
    ---------
      ---------------------
      ---- ---------------- ---------------- --
      ---------------------------------
    ----------
  -
-

------ ------- --------

在上面的代码中,我们使用了 semantic HTML 来区分了页面中的头部、主体和页脚。这个语义性,使得我们的页面更容易被搜索引擎理解。

为页面设置合适的标题和描述

在上面的代码中,我们已经为我们的页面设置了标题和描述。但是,如果我们的页面是动态生成的,那么我们就需要动态地设置标题和描述。在 Next.js 中,我们可以动态设置标题和描述,例如:

-- -------------------- ---- -------
------ - --------- - ---- -------------
------ ---- ---- -----------

-------- ---------- ---- -- -
  ----- ------ - -----------

  ------ -
    -----
      ------
        ---------------------------
        ----- ------------------ ----------------------------------
      -------

      ---------------------
      ---- ---------------- ---------------- --
      ---------------------------------
    ------
  -
-

------ ----- -------- ---------------- ------ -- -
  ----- -- - ---------

  ----- --- - ----- --------------------------------------------
  ----- ---- - ----- ----------

  ------ -
    ------ -
      -----
    --
  -
-

------ ----- -------- ---------------- -
  ----- --- - ----- --------------------------------------
  ----- ----- - ----- ----------

  ----- ----- - -------------- -- -
    ------ -
      ------- - --- ------- --
    -
  --

  ------ -
    ------
    --------- ------
  -
-

------ ------- --------

在上面的代码中,我们从 API 获取了文章 post,并在 Head 中动态设置了文章 titlemeta 标签。

总结

在本文中,我们学习了如何使用 Next.js 制作 SEO 友好的动态页面。我们了解到了静态化页面、手动提供元数据、选用合适的 URL 路径、确保 HTML 结构合法且语义正确,以及为页面设置合适的标题和描述,这些操作可以使得我们的页面更容易被搜索引擎识别和收录。希望本文能够帮助你更好地了解如何使用 Next.js 制作 SEO 友好的动态页面。

参考资料

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6485b3ff48841e9894471634

纠错
反馈