嘿,開發人員!
因此,我最近一直致力於一些以 SEO 為重點的專案,我想我應該向 Next.js 開發人員分享一些我在這一過程中學到的最佳實踐和策略。
目錄
使用next/head
元件包含標題、描述和規範標籤等元資料( Next.js Head 文件)。
優化元資料對於 SEO 至關重要,因為它可以提高點擊率,為搜尋引擎提供有關頁面的上下文,並有助於在搜尋結果中對相關內容進行更高的排名。
頁面路由器範例:
import Head from 'next/head'
export default function Page() {
return (
<Head>
<title>Page Title</title>
<meta name="description" content="Page Description" />
<link rel="canonical" href="https://example.com/page" />
</Head>
)
}
使用頁面路由器的方法簡單且易於實現。
應用路由器範例:
export const metadata = {
title: 'Page Title',
description: 'Page Description',
}
App Router 方法我們使用佈局或頁面檔案中的metadata
屬性( Next.js 元資料 API )。
實作乾淨、描述性和分層的 URL(例如, /blog/seo-checklist
而不是/blog?id=123
)。
簡潔的 URL 使它們更易於閱讀和記憶,從而改善用戶體驗,並且它們可以幫助搜尋引擎更有效地理解網站的結構,從而增強可發現性。
使用 Next.js 動態路由進行更好的 URL 控制(動態路由指南)。
避免在 URL 中深度嵌套,以保持用戶友好。
# Good URL Structure
| root
|--- app
|------ blog
|--------- seo-checklist
# Bad URL Structure
| root
|--- app
|------ blog
|--------- 2022
|------------ 01
|--------------- 01
|------------------ seo-checklist
研究關鍵字並將其自然地包含在內容中( Google 關鍵字規劃師)。
避免關鍵字堆砌;專注於提供價值。將關鍵字控制在總內容的1-3%範圍內。
定期更新內容以保持新鮮度和相關性。
相關參考: SEO 中的關鍵字類型、關鍵字密度檢查器。
優化字體、使用預先載入並避免較大的佈局變更。閱讀有關優化字體和圖像的更多資訊。
使用WebPageTest等工具來分析效能並辨識瓶頸。
使用 Next.js Image
元件進行自動影像最佳化(影像元件文件)。
提供具有適當sizes
和srcSet
屬性的響應式影像。
包括用於輔助功能和圖像 SEO 的描述性alt
文字( W3C 輔助功能指南)。
網站地圖是一個列出網站上所有 URL 的檔案。它可以幫助搜尋引擎更有效地發現您的內容並為其建立索引。
建立 XML 網站地圖並提交給 Google 等搜尋引擎( Google Search Console 網站地圖提交)。
有關透過next-sitemap
NPM 套件產生網站地圖的影片
有關為 CMS/DB 資料生成動態網站地圖的影片
robots.txt
檔案告訴搜尋引擎抓取工具他們可以或不能從您的網站請求哪些頁面或檔案。擁有一個結構良好的robots.txt
檔案來指導搜尋引擎爬蟲非常重要。
設定robots.txt
檔案來引導搜尋引擎爬蟲( Robots.txt Guide )。
您一定在瀏覽器標籤、書籤和行動應用程式中看到過圖示。它們是幫助用戶辨識您的網站的網站圖示。
包含網站圖示以獲得更好的使用者體驗和品牌推廣。使用Favicon IO等工具產生 favicon。這個很棒的工具,因為它提供了不同大小和格式的網站圖示以及manifest.json
檔案。
# Example of favicon
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="manifest" href="/site.webmanifest" />
專業建議我使用 linkMap 來管理專案中的內部連結。它是一個簡單的鍵值對物件,我用它來管理專案中的所有內部連結。這樣我就可以輕鬆地在一個地方更新連結,它將反映在整個專案中。
// linkMap.js
export const linkMap = {
home: '/',
about: '/about',
services: '/services',
contact: '/contact',
}
根據內容要求( Next.js 資料取得)選擇適當的渲染方法( getServerSideProps
、 getStaticProps
或ISR
)。
將 SSR 用於頻繁變更的動態內容。
對具有靜態或半靜態內容的頁面使用 SSG 或 ISR,以獲得更好的效能和 SEO。
有關 App Router SSR 和 SSG 的影片
有關頁面路由器 SSR 和 SSG 的影片
使用 JSON-LD 格式新增結構化資料以獲得豐富的結果( Google 的結構化資料測試工具)。
根據您的內容( Schema.org 文件),包括Breadcrumb
、 Article
、 Product
或FAQ
等模式類型。
使用NPM
套件(例如next-seo
或schema-dts
來輕鬆實現架構。閱讀有關 JSON-LD 架構的Next-SEO和架構 DTS 的更多資訊。
什麼是規範標籤?規範標記是一種元標記,它告訴搜尋引擎您希望將哪個 URL 版本視為主要版本。這有助於防止重複內容問題。
就像您的主頁可以從多個 URL 存取一樣,例如https://example.com
、 https://example.com/index.html
、 https://example.com/home
等。
您可以使用規範標籤告訴搜尋引擎https://example.com
是主要 URL。閱讀有關規範 URL 指南的更多資訊。
根據目前路由在<head>
部分動態設定規範 URL。
<link rel="canonical" href="https://example.com/page" />
og:title
、 og:description
、 og:image
)以進行社交分享(開放圖譜協定)。import Head from 'next/head'
export default function Page() {
return (
<Head>
<meta property="og:title" content="Page Title" />
<meta property="og:description" content="Page Description" />
<meta property="og:image" content="https://example.com/image.jpg" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://example.com/page" />
<meta name="twitter:card" content="summary_large_image" />
</Head>
)
}
export const metadata = {
openGraph: {
title: 'Page Title',
description: 'Page Description',
images: [
{
url: 'https://example.com/image.jpg',
width: 800,
height: 600,
alt: 'Image description',
},
],
type: 'website',
url: 'https://example.com/page',
},
twitter: {
card: 'summary_large_image',
title: 'Page Title',
description: 'Page Description',
images: ['https://example.com/image.jpg'],
},
}
使用pages/404.js
和pages/500.js
建立自訂404 和500 頁面( Next.js 錯誤頁面文件)。
確保它們內容豐富並引導使用者返回功能頁面。
// pages/404.js
export default function Custom404() {
return <h1>404 - Page Not Found</h1>
}
// pages/500.js
export default function Custom500() {
return <h1>500 - Server-Side Error</h1>
}
使用 CDN 提供靜態檔案 ( Vercel Edge Network )。
透過程式碼分割和樹搖動最小化和捆綁 JavaScript( Webpack 優化指南)。
實現映像和元件的延遲載入。
啟用next.config.js
設置,例如compression
和reactStrictMode
( Next.js 配置)。
這些設定有助於更快的頁面載入和更好的使用者體驗。
// next.config.js
module.exports = {
reactStrictMode: true,
compress: true,
images: {
domains: ['example.com'], // Add domains for optimized images
},
}
整合 Google Analytics 或其他追蹤工具( Next.js Analytics Integration )。
使用 Google Search Console 監控索引、搜尋效能和錯誤( Search Console 指南)。
這些工具有助於監控使用者行為並確定 SEO 改進的潛在領域,例如高跳出率或表現不佳的頁面。
如果您想要精簡設置,請使用這些
UMAMI - 一個簡單、易於使用、自架的網頁分析工具。
Google Web Master Tools - Google Search Console 是 Google 提供的免費服務,可協助您監控和維護您的網站在 Google 搜尋結果中的存在。
我更喜歡在我的個人專案中使用 Umami + Google Web Master Tools( Chakra Framer )
專注於搜尋意圖:了解並解決使用者的需求和查詢。讓您的內容與受眾正在尋找的問題和需求保持一致。
語音搜尋優化:透過在頁面上合併結構化常見問題和直接答案來優化長尾對話查詢。
SEO 的 A/B 測試:定期進行 A/B 測試元描述、標題或內容變體,以確定哪些內容能引起使用者共鳴並增加流量。
我希望這些技巧可以幫助您建立下一個價值十億美元的應用程式。快樂編碼!
原文出處:https://dev.to/thesohailjafri/the-must-have-seo-checklist-for-developers-192i