知识库首页 seo-llm 资料 technical-seo.md

technical seo

本地来源:seo-llm/skill/google-seo-skill/references/technical-seo.md

技术 SEO — 爬虫控制与索引优化

1. Sitemap(站点地图)

<!-- /public/sitemap.xml -->
<!-- ⚠️ Google 忽略 <priority> 和 <changefreq>,不要使用 -->
<!-- 限制:每个 sitemap ≤ 50,000 URL、≤ 50MB 未压缩、UTF-8 编码 -->
<!-- URL 必须使用绝对路径 -->
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com/</loc>
    <lastmod>2025-10-27</lastmod>
  </url>
  <url>
    <loc>https://example.com/about</loc>
    <lastmod>2025-10-20</lastmod>
  </url>
  <url>
    <loc>https://example.com/blog/article-1</loc>
    <lastmod>2025-10-15</lastmod>
  </url>
</urlset>

Sitemap 提交方式(按推荐顺序): 1. Google Search Console(推荐,可追踪状态) 2. robots.txt 中声明:Sitemap: https://example.com/sitemap.xml 3. Search Console API 4. WebSub(RSS/Atom feed)

Next.js 动态生成 Sitemap:

// app/sitemap.ts
import { MetadataRoute } from 'next'

export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
  const baseUrl = 'https://example.com'

  // 静态页面
  // ⚠️ Google 忽略 changeFrequency 和 priority,可省略
  const staticPages = ['', '/about', '/contact'].map(route => ({
    url: `${baseUrl}${route}`,
    lastModified: new Date(),
  }))

  // 动态内容(从数据库获取)
  const posts = await fetchPosts()
  const dynamicPages = posts.map(post => ({
    url: `${baseUrl}/blog/${post.slug}`,
    lastModified: new Date(post.updatedAt),
  }))

  return [...staticPages, ...dynamicPages]
}

Sitemap 验证要点: - lastmod 日期必须反映实际内容变更时间,非自动生成的当前时间 - 仅包含可索引 URL(无 noindex、无 4xx/5xx 页面) - 大型站点使用 sitemap index 文件,每个 sitemap 最多 50,000 个 URL - ⚠️ Google 明确忽略 <changefreq><priority> 标签,不要使用;lastmod 是唯一有效的时间信号

图片 Sitemap

<!-- 图片 Sitemap — 提升图片搜索排名(约20%提升) -->
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://example.com/blog/article-1</loc>
    <image:image>
      <image:loc>https://example.com/images/hero-banner.jpg</image:loc>
      <!-- ⚠️ image:title、image:caption、image:geo_location 已废弃(Google 不再使用) -->
      <!-- 许可证信息请使用结构化数据(ImageObject + license 属性)替代 image:license -->
    </image:image>
    <!-- 每个 URL 最多 1,000 张图片 -->
    <image:image>
      <image:loc>https://example.com/images/diagram.png</image:loc>
    </image:image>
  </url>
</urlset>
image_sitemap_tips:
  - "每个 <url> 最多包含 1,000 张图片"
  - "image:loc 是唯一必需标签(image:title/caption/geo_location 已废弃)"
  - "许可证信息使用 ImageObject 结构化数据的 license 属性替代"
  - "图片 URL 必须可被 Googlebot 抓取(不被 robots.txt 阻止)"
  - "支持 JPEG、PNG、GIF、BMP、WebP、SVG 格式"
  - "CDN 图片也可以包含,但需确保在 robots.txt 中允许"

视频 Sitemap

<!-- 视频 Sitemap — 让视频出现在 Google 视频搜索结果中 -->
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
  <url>
    <loc>https://example.com/tutorials/seo-guide</loc>
    <video:video>
      <video:thumbnail_loc>https://example.com/thumbnails/seo-guide.jpg</video:thumbnail_loc>
      <video:title>SEO 完全指南 2025</video:title>
      <video:description>从零开始学习 SEO,包含技术 SEO、内容优化和链接建设</video:description> <!-- ≤ 2048 字符 -->
      <!-- 必填:内容位置或播放器位置至少提供一个 -->
      <video:content_loc>https://example.com/videos/seo-guide.mp4</video:content_loc>
      <video:player_loc>https://www.youtube.com/embed/VIDEO_ID</video:player_loc>
      <!-- 推荐字段 -->
      <video:duration>1800</video:duration> <!-- 秒,有效范围 1-28800 -->
      <video:publication_date>2025-10-01T08:00:00+08:00</video:publication_date>
      <video:family_friendly>yes</video:family_friendly>
      <video:tag>SEO</video:tag>
      <video:tag>搜索引擎优化</video:tag>
      <video:category>教程</video:category>
    </video:video>
  </url>
</urlset>

新闻 Sitemap

<!-- 新闻 Sitemap — 仅适用于 Google 新闻收录的网站 -->
<!-- 重要:新闻文章必须在发布后 48 小时内提交 -->
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
  <url>
    <loc>https://news.example.com/2025/tech-industry-update</loc>
    <news:news>
      <news:publication>
        <news:name>示例新闻网</news:name>
        <news:language>zh-CN</news:language>
      </news:publication>
      <news:publication_date>2025-10-27T10:30:00+08:00</news:publication_date>
      <news:title>科技行业最新动态</news:title>
      <!-- 可选:关键词(Google 建议不超过 10 个) -->
      <news:keywords>科技, AI, 搜索引擎</news:keywords>
    </news:news>
  </url>
</urlset>
news_sitemap_rules:
  - "仅包含最近 48 小时内发布的文章(过期文章自动移除)"
  - "最多包含 1,000 个 URL"
  - "publication_date 必须精确到时分秒"
  - "需先在 Google 新闻出版商中心注册"
  - "每篇文章的 URL 必须唯一且永久"

多语言/多版本 Sitemap(hreflang)

<!-- 多语言内容使用 xhtml:link 声明替代版本 -->
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://example.com/zh/page</loc>
    <xhtml:link rel="alternate" hreflang="zh" href="https://example.com/zh/page" />
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/page" />
    <xhtml:link rel="alternate" hreflang="ja" href="https://example.com/ja/page" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/page" />
  </url>
  <url>
    <loc>https://example.com/en/page</loc>
    <xhtml:link rel="alternate" hreflang="zh" href="https://example.com/zh/page" />
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/page" />
    <xhtml:link rel="alternate" hreflang="ja" href="https://example.com/ja/page" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/page" />
  </url>
</urlset>

Sitemap Index(大型站点)

<!-- 当 URL 数量超过 50,000 或文件大小超过 50MB 时使用 -->
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://example.com/sitemap-pages.xml</loc>
    <lastmod>2025-10-27</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap-blog.xml</loc>
    <lastmod>2025-10-26</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap-products.xml</loc>
    <lastmod>2025-10-25</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap-images.xml</loc>
    <lastmod>2025-10-27</lastmod>
  </sitemap>
</sitemapindex>
// Next.js 动态生成 Sitemap Index
// app/sitemap.ts(使用 generateSitemaps)
export async function generateSitemaps() {
  const totalProducts = await getProductCount()
  const sitemapsNeeded = Math.ceil(totalProducts / 50000)

  return Array.from({ length: sitemapsNeeded }, (_, i) => ({ id: i }))
}

export default async function sitemap({ id }: { id: number }): Promise<MetadataRoute.Sitemap> {
  const start = id * 50000
  const products = await getProducts({ start, limit: 50000 })

  return products.map(product => ({
    url: `https://example.com/products/${product.slug}`,
    lastModified: product.updatedAt,
    changeFrequency: 'weekly',
    priority: 0.7,
  }))
}
sitemap_best_practices_summary:
  mandatory:
    - "所有 URL 使用绝对路径(含协议和域名)"
    - "lastmod 反映真实内容变更时间"
    - "仅包含可索引的规范 URL(200 状态码 + 无 noindex)"
    - "在 robots.txt 中声明 sitemap 位置"
    - "提交到 Google Search Console"

  recommended:
    - "按内容类型拆分 sitemap(页面、博客、产品、图片)"
    - "图片 sitemap 提升图片搜索排名约 20%"
    - "新闻内容在 48 小时内提交到新闻 sitemap"
    - "多语言站点使用 hreflang 声明替代版本"
    - "使用 gzip 压缩大型 sitemap 文件"

  avoid:
    - "❌ 在 sitemap 中包含被 robots.txt 阻止的 URL"
    - "❌ 使用自动生成的当前时间作为 lastmod"
    - "❌ 在 sitemap 中包含重定向 URL"
    - "❌ 单个 sitemap 超过 50,000 个 URL 或 50MB"

2. robots.txt

# /public/robots.txt

# 允许所有爬虫
User-agent: *
Allow: /

# 禁止爬取特定路径
Disallow: /api/
Disallow: /admin/
Disallow: /_next/
Disallow: /private/

# 指定 Sitemap 位置
Sitemap: https://example.com/sitemap.xml

# ⚠️ Google 忽略 Crawl-delay 指令,不要对 Googlebot 设置
# Google 仅识别 user-agent / allow / disallow / sitemap 四个字段
# robots.txt 文件大小上限 500KiB,必须 UTF-8 编码

# 禁止特定爬虫
User-agent: BadBot
Disallow: /

Next.js 动态生成 robots.txt:

// app/robots.ts
import { MetadataRoute } from 'next'

export default function robots(): MetadataRoute.Robots {
  return {
    rules: [
      {
        userAgent: '*',
        allow: '/',
        disallow: ['/api/', '/admin/', '/_next/', '/private/'],
      },
      // ⚠️ 不要为 Googlebot 设置 crawlDelay,Google 会忽略此指令
    ],
    sitemap: 'https://example.com/sitemap.xml',
  }
}

验证要点: - 确保 robots.txt 不会阻止 CSS/JS 等关键渲染资源 - 使用 Google Search Console 的 robots.txt 测试工具验证

robots.txt HTTP 状态码处理

状态码 Google 处理方式
2xx 正常解析 robots.txt 规则
3xx 跟踪最多 5 次重定向,超出视为 404
4xx(非 429) 视为无 robots.txt,允许抓取所有内容
429 特殊处理,暂停抓取(与其他 4xx 不同!)
5xx 前 12 小时停止抓取;30 天内使用缓存版本

robots.txt 缓存与通配符: - Google 最多缓存 24 小时,可通过 max-age Cache-Control 头调整 - 支持通配符:*(匹配任意字符)和 $(匹配 URL 末尾) - 冲突规则时采用"限制性最弱的规则",路径越长优先级越高


3. 规范化 URL (Canonical URLs)

// app/blog/[slug]/page.tsx
import { Metadata } from 'next'

interface PageProps {
  params: { slug: string }
  searchParams: { [key: string]: string | string[] | undefined }
}

export async function generateMetadata({ params }: PageProps): Promise<Metadata> {
  const canonicalUrl = `https://example.com/blog/${params.slug}`

  return {
    alternates: {
      canonical: canonicalUrl,
    },
    // 其他 metadata...
  }
}

HTML 实现:

<!-- 在 <head> 中添加 -->
&lt;link rel=&quot;canonical&quot; href=&quot;https://example.com/blog/article-title&quot; /&gt;

<!-- ⚠️ rel="prev/next" 已于 2019 年废弃,Google 不再使用 -->
<!-- 分页页面各自 canonical 指向自身即可 -->

Canonical 信号强度排序(Google 综合判断): 1. 301/308 重定向 — 最强信号 2. rel="canonical" 标签 — 强信号 3. Sitemap 收录 — 弱信号 4. 辅助信号:HTTPS 优先于 HTTP、hreflang 聚类内的 URL 优先、更简洁规范的 URL 结构优先

Canonical 规则: - 每个页面必须有 canonical 标签(自引用或指向规范版本) - canonical URL 必须使用绝对 URLhttps://example.com/path),不能用相对路径(/path) - canonical URL 必须是可访问的(200 状态码) - HTML link、HTTP header、sitemap 中的 canonical 必须保持一致 - 避免 canonical 链(A → B → C,应直接 A → C) - ⚠️ 内容联合发布(syndication):不应在合作伙伴重发内容上使用 cross-domain canonical,因内容通常差异较大;合作方应使用 noindex - 注意 cross-domain canonical 被恶意注入风险(被黑站点可能被注入指向恶意 URL 的 canonical) - 禁止使用 robots.txt 做规范化(Google 明确禁止) - 禁止使用网址移除工具做规范化 - Google 自动偏好 HTTPS 而非 HTTP,偏好 hreflang 集群中的 URL - 非 HTML 文件(PDF 等)使用 HTTP Link 头:Link: <https://example.com/doc>; rel="canonical" - 非 HTML 文件使用 X-Robots-Tag HTTP 头控制索引:X-Robots-Tag: noindex


4. 重定向管理

重定向链检测

确保重定向链最多 1 跳,无循环重定向:

# 检测重定向链
curl -sI -L "https://example.com/old-page" 2>&1 | grep -i "location:"

# 批量检测(从 sitemap 提取 URL)
curl -s https://example.com/sitemap.xml | grep -oP '<loc>\K[^<]+' | while read url; do
  status=$(curl -s -o /dev/null -w "%{http_code}" "$url")
  if [ "$status" != "200" ]; then
    echo "[$status] $url"
  fi
done

重定向类型与 Google 处理方式

类型 状态码 Google 信号强度 用途
永久重定向 301/308 强信号:目标 URL 被索引 页面永久迁移
临时重定向 302/307 弱信号:可能索引源或目标 临时维护、A/B 测试
  • Google 爬虫最多跟踪 10 跳重定向,超出视为错误
  • JavaScript 重定向(window.location)也会被 Google 识别,但不如服务端重定向可靠
  • meta refresh 立即重定向(0 秒)被视为永久重定向;延迟重定向被视为临时重定向

重定向最佳实践

// next.config.js - 301 永久重定向
module.exports = {
  async redirects() {
    return [
      {
        source: '/old-path',
        destination: '/new-path',
        permanent: true, // 301
      },
      {
        source: '/old-blog/:slug',
        destination: '/blog/:slug',
        permanent: true,
      },
    ]
  },
}

5. 404/Broken Links 检测

内链 broken links 检测

# 使用 curl 批量检测站内链接状态
curl -s https://example.com/sitemap.xml | grep -oP '<loc>\K[^<]+' | while read url; do
  status=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "$url")
  if [ "$status" -ge 400 ]; then
    echo "[${status}] ${url}"
  fi
done

Soft 404 检测

Soft 404 是返回 200 状态码但实际显示"页面未找到"内容的页面。检查方法: - Google Search Console → Coverage → "Soft 404" 报告 - 检查所有动态路由是否正确处理不存在的参数

自定义 404 页面

// app/not-found.tsx
export default function NotFound() {
  return (
    <main>
      <h1>页面未找到</h1>
      <p>您访问的页面不存在或已被移动。</p>
      <a href="/">返回首页</a>
    </main>
  )
}

6. URL 结构规范

URL 规则

  • 全部小写
  • 使用连字符分隔单词(非下划线)
  • 简短且包含关键词
  • 无特殊字符、session ID、多余参数
  • 统一尾斜杠策略(有或无,保持一致)

重复内容合并

确保以下 URL 变体统一到一个规范版本: - http:// vs https:// → 301 到 HTTPS - www. vs 非 www. → 301 到其中一个 - 尾斜杠 /page/ vs /page → 统一一种 - 大小写 /Page vs /page → 统一小写 - 查询参数 /page?ref=abc vs /page → canonical 指向无参数版本 - UTM 参数 /page?utm_source=... → 确保 canonical 不包含 UTM - 排序/筛选参数 /products?sort=price&color=red → 用 canonical 或 robots meta 处理

参数分类处理策略

不同类型的查询参数需要不同的处理方式:

参数类型 示例 推荐方案 原因
追踪参数 utm_source, fbclid, gclid canonical 标签(推荐)或 301 重定向 不改变页面内容
排序/筛选 sort=price, color=red canonical 指向无参数版本(推荐),或对无独特价值的组合页 noindex 仅改变展示顺序,内容实质相同
分页参数 page=2, offset=20 每页自引用 canonical(Google 2019 年已废弃 rel="prev/next" 每页有独立内容,不应合并
功能参数 lang=en, currency=usd 各自独立 canonical(如果内容不同) 实际产生不同内容

方案一:canonical 标签(推荐)

优点:不影响分析工具读取 UTM 参数,GA4/百度统计等正常工作。

// app/layout.tsx 或页面组件中
import { headers } from 'next/headers'

export async function generateMetadata(): Promise<Metadata> {
  const headersList = await headers()
  const url = new URL(headersList.get('x-url') || headersList.get('x-forwarded-url') || '')

  // 移除追踪参数,生成干净的 canonical URL
  const canonicalUrl = new URL(url.pathname, url.origin)

  return {
    alternates: {
      canonical: canonicalUrl.toString(),
    },
  }
}

方案二:middleware 301 重定向

优点:彻底消除重复 URL,对爬虫最友好。 注意:301 发生在服务端,需确认分析工具能从 Referer 头或首次请求中捕获 UTM 参数。GA4 通常能正常工作,但自建分析系统可能丢失数据。

// middleware.ts
import { NextResponse } from 'next/server'
import type { NextRequest } from 'next/server'

const TRACKING_PARAMS = [
  'utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',
  'fbclid', 'gclid', 'ref', 'mc_cid', 'mc_eid'
]

export function middleware(request: NextRequest) {
  const url = request.nextUrl.clone()
  let hasTrackingParam = false

  TRACKING_PARAMS.forEach((param) => {
    if (url.searchParams.has(param)) {
      url.searchParams.delete(param)
      hasTrackingParam = true
    }
  })

  if (hasTrackingParam) {
    return NextResponse.redirect(url, 301)
  }
}

export const config = {
  // 只对页面路由生效,排除 API 和静态资源
  matcher: ['/((?!api|_next/static|_next/image|favicon.ico).*)'],
}

方案三:robots.txt 和 sitemap 配合

注意:Google 于 2022 年 4 月废弃并移除了 Search Console 的 URL Parameters 工具。不要再依赖它来处理参数问题。

替代做法: - robots.txt:用 Disallow 阻止爬虫抓取大量无价值的参数组合 URL(如 /products?sort=*&color=*&size=*) - XML Sitemap:仅在 sitemap 中包含干净的规范 URL,不包含任何追踪参数 - Clean Internal Links:站内链接统一使用无追踪参数的 URL,UTM 参数仅用于外部推广链接

实际建议:方案一(canonical 标签)是 Google 官方最推荐的做法,不会破坏任何分析工具,同时告诉 Google 哪个是规范 URL。对于分面导航产生的大量参数组合,配合 robots.txt 限制爬取范围。只在确认分析兼容性后才考虑方案二的 301 重定向。


7. 爬虫陷阱防范

常见爬虫陷阱及解决方案:

crawl_traps:
  faceted_navigation:
    problem: "筛选组合产生无限 URL"
    solution: "对筛选参数页添加 noindex 或 canonical 指向基础页"

  session_ids:
    problem: "URL 中包含 session ID 导致重复"
    solution: "从 URL 移除 session ID,使用 cookie 代替"

  calendar_pages:
    problem: "日历组件产生无限未来/过去日期 URL"
    solution: "限制可爬取的日期范围,使用 robots.txt 阻止"

  search_results:
    problem: "站内搜索结果页被索引"
    solution: "搜索结果页添加 noindex 标签"

  pagination:
    problem: "无限分页"
    solution: "设置合理的分页上限,对深层分页 noindex"

8. 孤立页面检测

孤立页面是没有任何内链指向的页面,Google 难以发现。

检测方法: 1. 对比 sitemap 中的 URL 与站内爬取发现的 URL 2. sitemap 中有但爬取未发现的 = 孤立页面 3. 为孤立页面添加内链(导航、相关内容、面包屑等)


URL 结构最佳实践

url_structure:
  format:
    - "使用连字符(-)分词,不用下划线(_):my-page ✅ / my_page ❌"
    - "URL 大小写敏感,统一使用小写"
    - "非 ASCII 字符使用 percent-encoding"
    - "遵循 IETF STD 66 标准"

  avoid:
    - "session ID 放在 URL 中(改用 cookies)"
    - "过多过滤参数产生大量相似 URL"
    - "动态日历生成无限 URL(添加 nofollow)"
    - "父级相对路径(../)— 使用根相对路径(/path)"
    - "URL fragment (#) 区分内容 — Google 不识别,改用 History API"

  best:
    - "简短、描述性、包含关键词"
    - "使用用户语言(德语用户看德语 URL、日语用户看日语 URL)"
    - "结构反映站点层级"

抓取预算管理(大型站点)

crawl_budget:
  who_needs:
    - "1M+ 独立页面且每周有内容更新"
    - "10K+ 独立页面且每日有变更"
    - "大量 URL 在 Search Console 显示'已发现 - 未索引'"

  optimization:
    reduce_waste:
      - "robots.txt 阻止低价值路径(搜索结果页、过滤页、标签组合页)"
      - "合并重复内容(canonical、301 重定向)"
      - "已删除页面返回 404/410 而非 soft 404"
      - "减少重定向链(最多 1 跳)"
    improve_efficiency:
      - "提升服务器响应速度(更快的 TTFB = 更多页面被抓取)"
      - "修复 5xx 错误(Google 遇到 5xx 会降低抓取速率)"
      - "使用 sitemap 引导 Google 关注重要页面"
      - "支持 HTTP 条件请求头(If-Modified-Since / If-None-Match),304 响应节省带宽和抓取资源"
      - "⚠️ 503/429 状态码:Googlebot 约 2 天后重试,连续数天返回会导致永久降低抓取速率"

网站迁移(含 URL 变更)

site_migration:
  strategy:
    - "分阶段迁移(大站分模块迁移,而非一次全部)"
    - "同一时间只改一个要素(域名/CMS/布局分步进行)"
    - "选择低流量时段迁移"

  redirects:
    type: "301 或 308"
    duration: "至少保留 1 年"
    rules:
      - "旧 URL 一对一映射到新 URL"
      - "避免链式重定向(超过 3-5 跳)"
      - "更新 canonical 标签指向新 URL"
      - "更新内链指向新 URL"

  post_migration:
    - "提交新 sitemap 到 Search Console"
    - "移除临时 noindex 和 robots.txt 阻止"
    - "确保服务器有足够容量应对 Googlebot 增加的抓取量"
    - "预期排名波动(重新抓取和索引期间正常)"
    - "监控 Search Console 索引覆盖率和性能数据"

Sitelinks(站点链接)优化

Sitelinks 是 Google 搜索结果中显示在主结果下方的子页面快捷链接,完全由 Google 算法自动生成,没有结构化数据可以直接控制

优化策略

### 提升 Sitelinks 出现概率
- [ ] 页面标题信息丰富、相关且精简,避免堆砌关键词
- [ ] 网站结构清晰合理,层级分明(首页 → 分类 → 详情页)
- [ ] 重要页面有充足的内部链接指向,锚文本简明且相关
- [ ] 避免内容重复,每个页面有独特价值
- [ ] 导航菜单逻辑清晰,反映网站核心功能/内容分区

### 移除不需要的 Sitelink
- [ ] 删除该页面,或添加 `noindex` 元标记阻止索引
- [ ] 注意:无法通过 Search Console 手动指定或排除特定 Sitelink

### 常见误区
- ❌ 试图通过结构化数据控制 Sitelinks(不支持)
- ❌ 混淆 Sitelinks 和已废弃的 Sitelinks Search Box(SearchAction,2024.11 废弃)
- ❌ 认为小型网站一定会显示 Sitelinks(仅当算法认为对用户有帮助时才显示)

相关文档

本文档为站内渲染。原始文件本地路径:saas/source/seo-llm/skill-google-seo-skill-references-technical-seo-b6f9d4.md(仅本地保留,不入库不部署)