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> 中添加 -->
<link rel="canonical" href="https://example.com/blog/article-title" />
<!-- ⚠️ 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 必须使用绝对 URL(https://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(仅当算法认为对用户有帮助时才显示)
相关文档
- JavaScript SEO 与渲染优化 — JS 渲染对爬取和索引的影响
- SEO 问题排查 — 索引和爬取常见问题诊断
- Google Search Console 集成 — 索引覆盖率监控与问题排查
- 部署后 SEO 检查 — 上线后爬取与索引验证
- 内容策略与优化 — 内链策略与站点架构优化
本文档为站内渲染。原始文件本地路径:saas/source/seo-llm/skill-google-seo-skill-references-technical-seo-b6f9d4.md(仅本地保留,不入库不部署)