Sitemap 和 Robots.txt 优化指南

Sitemap 和 Robots.txt 是网站搜索引擎优化(SEO)的关键工具,帮助搜索引擎更好地理解和索引网站内容。

Sitemap

什么是 Sitemap?

Sitemap 是网站上所有页面的结构化列表,通常以 XML 格式呈现。它告诉搜索引擎网站的结构和重要页面。

创建 Sitemap

对于 Next.js 项目,可以使用 next-sitemap 库:

npm install next-sitemap

配置 next-sitemap.config.js

module.exports = {
  siteUrl: 'https://yourwebsite.com',
  generateRobotsTxt: true,
  sitemapSize: 7000,
  exclude: ['/server-sitemap.xml'],
  robotsTxtOptions: {
    policies: [
      { userAgent: '*', allow: '/' }
    ]
  }
}

Sitemap XML 示例

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://yourwebsite.com/page1</loc>
    <lastmod>2024-01-18</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://yourwebsite.com/page2</loc>
    <lastmod>2024-01-17</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>
</urlset>

Robots.txt

什么是 Robots.txt?

Robots.txt 是一个文本文件,指示搜索引擎爬虫哪些页面可以或不可以抓取。

Robots.txt 示例

User-agent: *
Allow: /
Disallow: /private/
Disallow: /admin/

Sitemap: https://yourwebsite.com/sitemap.xml

配置规则

  • User-agent: * 适用于所有搜索引擎
  • Allow: / 允许抓取所有页面
  • Disallow: /private/ 禁止抓取特定目录

SEO 最佳实践

  1. 保持 Sitemap 更新
  2. 使用语义化的 URL
  3. 添加 lastmodchangefreqpriority
  4. 排除不重要的页面
  5. 使用规范化 URL

动态生成 Sitemap

对于动态网站,可以自动生成 Sitemap:

export async function getServerSideProps(context) {
  const posts = await fetchPosts();
  const sitemap = generateSitemap(posts);
  
  return {
    props: { sitemap }
  };
}

监控和分析

  • Google Search Console
  • Bing Webmaster Tools
  • 分析爬虫访问日志

结论

正确配置 Sitemap 和 Robots.txt 可以显著提高网站的搜索引擎可见性和索引效率。定期更新和优化这些文件对于网站的 SEO 至关重要。