」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Next.js 應用程式中安裝和使用「next-sitemap」:逐步指南

如何在 Next.js 應用程式中安裝和使用「next-sitemap」:逐步指南

發佈於2024-11-08
瀏覽:101

How to Install and Use `next-sitemap` in a Next.js App: A Step-by-Step Guide

如果您使用 Next.js 建立網站,您可能希望搜尋引擎能夠有效地發現您的頁面並為其建立索引。改進此過程的一種方法是建立網站地圖。網站地圖是一個列出您網站上所有網址的文件,可協助 Google 等搜尋引擎更快地抓取您的網站並將其編入索引。

在本指南中,我們將逐步介紹如何在 Next.js 專案中安裝和設定 next-sitemap。我們還將介紹擁有網站地圖的好處,並包含帶有「Hello World」Next.js 應用程式的範例程式碼以說明其工作原理。

使用下一個網站地圖的好處

在我們深入了解安裝過程之前,讓我們先簡單討論一下使用 next-sitemap 的主要好處:

  1. 改進 SEO:結構良好的網站地圖可幫助 Google 等搜尋引擎更有效地發現您的頁面,從而實現更好的索引和潛在的更高搜尋排名。

  2. 更快的抓取:透過向搜尋引擎提供您網站的路線圖,您可以讓他們更快地抓取您的頁面並為其建立索引。

  3. 處理動態路由:對於具有動態路由的網站,下一個網站地圖可以輕鬆產生動態內容的 URL,確保您的所有頁面都可被發現。

  4. 自訂網站地圖:下一個網站地圖可讓您使用設定優先順序、變更頻率甚至排除某些頁面等選項來自訂網站地圖。

第 1 步:安裝下一個站點地圖

首先,您需要在 Next.js 專案中安裝 next-sitemap 套件。在終端機中執行以下命令:

npm install next-sitemap

或者,如果您使用的是 Yarn:

yarn add next-sitemap

步驟2:建立next-sitemap.js設定檔

安裝套件後,下一步是在專案的根目錄下建立一個名為 next-sitemap.config.js 的設定檔。該文件將包含用於生成網站地圖的設定。

這是一個基本配置:

// next-sitemap.config.js
module.exports = {
  siteUrl: process.env.SITE_URL || 'http://localhost:3000', // Your website's URL
  generateRobotsTxt: true, // (Optional) Generates a robots.txt file
  sitemapSize: 7000, // Number of URLs per sitemap file
}

在上面的程式碼中,我們使用 siteUrl 指定您網站的基本 URL。 generateRobotsTxt 選項會在網站地圖旁邊產生一個 robots.txt 文件,而 sitemapSize 則確定要包含在每個網站地圖檔案中的 URL 數量。

步驟 3:使用 Sitemap 腳本更新 package.json

現在,您需要在 package.json 檔案中新增一個腳本,以便在建立專案時產生網站地圖。

具體操作方法如下:

{
  "scripts": {
    "build": "next build",
    "postbuild": "next-sitemap"
  }
}

這將確保每次建置後,都會根據您的配置自動產生網站地圖。

第 4 步:建立並產生網站地圖

現在一切都已設定完畢,運行以下命令來建立專案並產生網站地圖:

npm run build

或使用紗線:

yarn build

建置完成後,將在專案的 public/ 資料夾中產生 sitemap.xml 檔案(以及可選的 robots.txt 檔案)。這些檔案將包含您的 Next.js 應用程式的所有 URL,可供搜尋引擎抓取。

範例:帶有 next-sitemap 的“Hello World”Next.js 應用程式

為了示範 next-sitemap 的工作原理,讓我們建立一個簡單的「Hello World」Next.js 應用程式。這是一個基本的 Next.js 頁面:

// pages/index.js
export default function Home() {
  return (
    

Hello World

Welcome to my Next.js app!

); }

現在,像這樣設定你的 next-sitemap.config.js:

// next-sitemap.config.js
module.exports = {
  siteUrl: process.env.SITE_URL || 'http://localhost:3000',
  generateRobotsTxt: true,
};

接下來,將以下內容加入 package.json 中:

{
  "scripts": {
    "build": "next build",
    "postbuild": "next-sitemap"
  }
}

在執行 npm run build 後,您將在 public/ 目錄中找到您的網站地圖,其中包含「Hello World」主頁的 URL。

現場演示

我的網站 https://rajeshkumaryadav.com 正在使用此套件在建置過程中自動產生網站地圖。以下是包含 sitemap.xml

的 robots.txt

https://rajeshkumaryadav.com/robots.txt
https://www.rajeshkumaryadav.com/sitemap.xml
https://www.rajeshkumaryadav.com/sitemap-0.xml

結論

透過遵循本指南中概述的步驟,您現在已將 next-sitemap 整合到您的 Next.js 專案中。該工具提供了一種生成網站地圖和robots.txt檔案的簡單方法,可顯著提高您網站的SEO並確保搜尋引擎可以有效地發現您的所有內容。

透過此設置,您就可以讓您的 Next.js 應用程式對搜尋引擎更加友善並建立更好的索引!

版本聲明 本文轉載於:https://dev.to/rajeshkumaryadavdotcom/how-to-install-and-use-next-sitemap-in-a-nextjs-app-a-step-by-step-guide-114l?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • Next.js 中間件簡介:它如何運作並帶有範例
    Next.js 中間件簡介:它如何運作並帶有範例
    我們來談談Nextjs中的路由。今天,我們來談談最強大的事物中間件之一。 Nextjs 中的中間件提供了一種強大且靈活的方法來攔截來自伺服器的請求並控制請求流(重定向、URL 重寫)並全域增強身份驗證、標頭、cookie 持久性等功能。 建立中介軟體 讓我們建立 Middlewar...
    程式設計 發佈於2024-11-08
  • 道具基礎:第 1 部分
    道具基礎:第 1 部分
    這是一個關於如何使用道具的初學者友好教學。在閱讀之前了解什麼是解構以及如何使用/創建元件非常重要。 Props,properties的縮寫,props允許我們從父元件向子元件發送訊息,還需要注意的是它們可以是任何資料類型。 必須了解為任何元件建立 prop 的語法。在 React 中,您必須使用...
    程式設計 發佈於2024-11-08
  • Hibernate 與 Spring Boot 有何不同?
    Hibernate 與 Spring Boot 有何不同?
    Hibernate 與 Spring Boot 有何不同? Hibernate 和 Spring Boot 都是 Java 生態系中流行的框架,但它們有不同的用途並具有不同的功能。 休眠 Hibernate 是一個物件關聯映射 (ORM) 框架,它允許開發人員使用...
    程式設計 發佈於2024-11-08
  • C++ 如何處理十進位資料型別?
    C++ 如何處理十進位資料型別?
    C 中的十進位資料型別 C 提供了各種資料型別來處理數值,但令人驚訝的是,十進位資料型別本身不支援。在處理精確的十進制值或與使用十進制格式的系統互動時,這可能是一個限制。 實作選項雖然 C 不提供內建十進位類型,但有兩種與他們合作的方法:1。 C Decimal TR 擴充:某些編譯器(例如gcc)...
    程式設計 發佈於2024-11-08
  • 為什麼我的 Python 中的凱撒密碼函數只顯示最後一個移位的字元?
    為什麼我的 Python 中的凱撒密碼函數只顯示最後一個移位的字元?
    Python 中的凱撒密碼函數:加密字串在Python 中實作凱撒密碼函數時,會出現一個常見問題,即最終的加密文字僅顯示最後移動的字元。要解決此問題,有必要了解導致此行為的問題。 在提供的程式碼中,循環迭代明文中的每個字元。對於字母字符,它根據提供的移位值來移位字符的 ASCII 代碼。但是,每個移...
    程式設計 發佈於2024-11-08
  • 4 快速​​部署PHP
    4 快速​​部署PHP
    Servbay 已成為輕鬆配置開發環境的首要工具。在本指南中,我們將示範如何快速、安全地部署 PHP 8.2,強調 Servbay 致力於簡化部署流程。 先決條件 開始之前,請確保您的裝置上安裝了 Servbay。您可以直接從Servbay官方網站下載。安裝直覺;只需按照提示操作,...
    程式設計 發佈於2024-11-08
  • AngularJS 指令中的 Replace 屬性何時被棄用?
    AngularJS 指令中的 Replace 屬性何時被棄用?
    為什麼AngularJS 已棄用指令中的替換屬性AngularJS 指令中的替換屬性由於其複雜性和更好的出現而被棄用替代方案。根據官方 AngularJS API 文檔,在未來的版本中它將預設為 false。 棄用的原因AngularJS 團隊發現了替換屬性的幾個問題:困難的語義: 它導致了屬性合併...
    程式設計 發佈於2024-11-08
  • 如何在 JavaScript 和 jQuery 中無縫存取 PHP 變數?
    如何在 JavaScript 和 jQuery 中無縫存取 PHP 變數?
    在JavaScript 或jQuery 中存取PHP 變數:避免Echo 過載許多開發人員遇到在JavaScript 和jQuery 中存取PHP 變數的挑戰。傳統方法涉及回顯 PHP 標籤內的變量,例如:<?php echo $variable1; ?> <?php echo $...
    程式設計 發佈於2024-11-08
  • 釋放 Claude AI:用於經濟實惠且靈活的 AI 整合的非官方 API
    釋放 Claude AI:用於經濟實惠且靈活的 AI 整合的非官方 API
    由 Anthropic 開發的 Claude AI 以其令人印象深刻的能力在人工智慧界掀起了波瀾。然而,官方 API 對於許多開發人員和小型企業來說可能過於昂貴。這就是我們的非官方 Claude AI API 的用武之地,它提供了一個更實惠、更靈活的解決方案,將 Claude 的力量整合到您的專案中...
    程式設計 發佈於2024-11-08
  • 如何使用時間包確定 Go 中一個月的最後一天?
    如何使用時間包確定 Go 中一個月的最後一天?
    使用Time.Time 確定給定月份的最後一天處理基於時間的資料時,通常需要確定指定月份的最後一天。無論該月有 28 天、29 天(閏年)還是 30 天或 31 天,這都會使這成為一項具有挑戰性的任務。 時間包解決方案Go 時間包其日期函數提供了一個方便的解決方案。 Date 的語法為:func D...
    程式設計 發佈於2024-11-08
  • 如何在不支援的瀏覽器中實現“背景濾鏡”效果?
    如何在不支援的瀏覽器中實現“背景濾鏡”效果?
    CSS:為不可用的背景過濾器提供替代方案CSS 中的背景過濾器功能在大多數現代瀏覽器中仍然無法訪問。雖然我們預計其未來的支持,但發現替代解決方案勢在必行。 實現類似效果的一種方法是採用具有微妙透明度的背景。下面的 CSS 程式碼示範了這個方法:/* Slightly transparent fall...
    程式設計 發佈於2024-11-08
  • Python 的 len() 函數對於不同的資料結構有多有效率?
    Python 的 len() 函數對於不同的資料結構有多有效率?
    理解Python內建資料結構中len()函數的成本Python中內建len()函數是決定各種資料結構長度的重要工具。它的效率至關重要,尤其是在處理大型資料集時。本文深入研究了 len() 對於不同內建資料類型(例如列表、元組、字串和字典)的計算成本。 O(1) 跨內建類型的複雜性關鍵要點是 len(...
    程式設計 發佈於2024-11-08
  • 如何在 Python 中存取 Windows 剪貼簿文字?
    如何在 Python 中存取 Windows 剪貼簿文字?
    在 Python 中存取 Windows 剪貼簿文字從 Windows 剪貼簿檢索文字是程式設計中的常見任務。本文探討如何使用 Python 的 win32clipboard 模組來實現此目的。 pywin32 和 win32clipboardwin32clipboard 模組是 pywin32 的...
    程式設計 發佈於2024-11-08
  • 如何修復 CentOS 5 上由於檔案權限問題導致的 Nginx 403 Forbidden 錯誤?
    如何修復 CentOS 5 上由於檔案權限問題導致的 Nginx 403 Forbidden 錯誤?
    Nginx 403 Forbidden:文件存取權限故障排除當在Nginx 中遇到令人沮喪的「403禁止」錯誤時,確定根本原因可以是一個挑戰。此錯誤通常表示對檔案或目錄的存取被拒絕。在該特定場景中,使用者在 CentOS 5 上使用 PHP-FPM 配置了 Nginx,但無法提供指定來源目錄中的任何...
    程式設計 發佈於2024-11-08
  • React 中的函數和類別元件與 TypeScript
    React 中的函數和類別元件與 TypeScript
    在使用 TypeScript 的 React 中,我們可以使用兩種主要方法來建立元件:功能元件和類別元件。兩種方法都允許使用 props 和 state,但使用的範例略有不同。 TypeScript 透過提供靜態類型進一步增強了開發安全性,這使我們能夠精確定義 props 和 state 的形狀。 ...
    程式設計 發佈於2024-11-08

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3