Announcement

👇Official Account👇

Welcome to join the group & private message

Article first/tail QR code

Skip to content

未索引页面修复方案

分析时间: 2025年12月9日
问题页面总数: 48个
目标: 将索引率从 51.5% 提升至 75%+


📋 问题分类统计

根据 Google Search Console 分析,48个未索引页面分为以下6类:

问题类型数量优先级状态
已抓取 - 尚未编入索引28🔴 高待修复
未找到 (404)7🟠 中待修复
重定向错误5🟠 中待修复
备用网页(有适当的规范标记)4🟡 低待修复
网页会自动重定向3🟠 中待修复
重复网页,用户未选定规范网页1🟡 低待修复

🔍 详细问题分析

1. 已抓取 - 尚未编入索引 (28个) - 最大问题

问题页面示例:

  • https://friday-go.icu/sitemap.xml - sitemap.xml 不应该被索引
  • https://friday-go.icu/Tools/AutoGen in Financial Data Analysis: Automating Workflows with AI Agents.html - 带 .html 后缀的旧 URL
  • https://pnav.friday-go.icu/prompts/writing-creative-writing/ - 子域名 URL
  • https://friday-go.icu/?tag=test-driven development - 带参数的 URL
  • http://friday-go.icu/Tools/Make-CLI-Tools-Brand-New-with-Golang-and-Color - HTTP 协议(应该是 HTTPS)
  • https://friday-go.icu/golang/mastering-go-testing-advanced-techniques - 正常页面但未索引

根本原因:

  1. sitemap.xml 被索引 - robots.txt 中虽然允许 sitemap.xml,但应该明确禁止索引
  2. HTTP 到 HTTPS 重定向问题 - 部分旧链接仍使用 HTTP 协议
  3. 带 .html 后缀的旧 URL - 需要重定向到 clean URLs
  4. 子域名 URL - 需要确保 robots.txt 正确排除
  5. 带参数的 URL - 虽然 robots.txt 中禁止,但可能仍有问题
  6. 正常页面未索引 - 可能缺少内容质量或外部链接

2. 未找到 (404) - 7个页面

需要检查这些页面是否:

  • 已被删除但仍有外部链接指向
  • URL 格式错误
  • 需要设置 301 重定向到新位置

3. 重定向错误 - 5个页面

可能的问题:

  • 重定向链过长
  • 重定向到无效页面
  • 需要优化重定向规则

4. 备用网页(有适当的规范标记) - 4个页面

这是正常情况,但可以:

  • 确保规范标记指向正确的页面
  • 合并重复内容

5. 网页会自动重定向 - 3个页面(失败)

需要修复重定向配置,确保:

  • 使用 301 永久重定向
  • 重定向到正确的目标页面

6. 重复网页 - 1个页面

需要:

  • 明确设置 canonical 标签
  • 选择主要版本进行索引

✅ 修复方案

⚠️ 重要说明:GitHub Pages 限制

本项目使用 GitHub Pages 部署,不支持:

  • .htaccess 文件(Apache 配置)
  • 服务器端重定向(301/302)
  • 自定义 HTTP 响应头

解决方案

  1. ✅ HTTP 到 HTTPS:GitHub Pages 自动处理(自定义域名时)
  2. ✅ JavaScript 客户端重定向:通过 404.html 页面处理
  3. ✅ Sitemap 优化:在构建时过滤问题 URL
  4. ✅ robots.txt:正常支持

修复 1: 改进 sitemap 生成逻辑 - 严格过滤问题 URL

问题: sitemap 可能包含不应该索引的页面

解决方案: 改进 scripts/process-sitemap.mjs,严格过滤:

  • ❌ sitemap.xml 本身
  • ❌ 带 .html 后缀的 URL(应使用 clean URLs)
  • ❌ 子域名 URL(pnav.friday-go.icu 等)
  • ❌ 带查询参数的 URL(?tag=, ?type= 等)
  • ❌ HTTP 协议的 URL(应全部使用 HTTPS)
  • ❌ 404 页面

修复文件: scripts/process-sitemap.mjs ✅ 已修复


修复 2: 在 404.html 中添加 .html 重定向逻辑

问题: 带 .html 后缀的旧 URL 需要重定向到 clean URLs

解决方案: 在 docs/public/404.html 中添加 JavaScript 重定向逻辑:

  • 检测 URL 是否以 .html 结尾
  • 自动重定向到不带 .html 的 clean URL

修复文件: docs/public/404.html ✅ 需要修复


修复 3: 更新 robots.txt - 明确禁止索引 sitemap.xml

问题: sitemap.xml 被索引了

解决方案:

  • robots.txt 中允许访问 sitemap.xml(用于提交)
  • 通过改进 sitemap 生成确保不包含 sitemap.xml 本身
  • 注意:GitHub Pages 无法设置 HTTP 响应头,但可以在 Google Search Console 中手动请求移除

修复文件: docs/public/robots.txt ✅ 已更新

修复 6: 检查并修复 404 页面

问题: 7个页面返回 404

解决方案:

  1. 导出 Google Search Console 中的 404 页面列表
  2. 检查这些页面是否应该存在
  3. 如果已删除,设置 301 重定向到相关页面
  4. 如果 URL 错误,修复 URL

修复 7: 优化重定向规则

问题: 5个重定向错误

解决方案:

  1. 检查重定向链,确保不超过 2 次重定向
  2. 使用 301 永久重定向(不是 302)
  3. 确保重定向目标页面存在且可访问

🛠️ 具体修复步骤

步骤 1: 修复 robots.txt

✅ 已修复 - 见下面的修复代码

步骤 2: 修复 .htaccess 重定向规则

✅ 需要添加:

  • HTTP 到 HTTPS 强制重定向
  • .html 后缀移除重定向
  • 确保子域名被正确排除

步骤 3: 改进 sitemap 处理脚本

✅ 需要改进 scripts/process-sitemap.mjs 以:

  • 确保 sitemap.xml 本身不在 sitemap 中
  • 过滤所有不应该索引的 URL

步骤 4: 检查并提交更新

  1. 重新构建网站

    bash
    pnpm build

    这将运行 scripts/process-sitemap.mjs 自动清理 sitemap

  2. 验证修复

    bash
    # 检查 sitemap 是否包含问题 URL
    cat docs/.vitepress/dist/sitemap.xml | grep -E "(\.html|pnav\.|http://|\?)"
    # 应该没有输出,如果有,说明仍有问题 URL
  3. 提交到 GitHub

    bash
    git add .
    git commit -m "fix: 优化 SEO 和索引问题 - 改进 sitemap 过滤和 404 重定向"
    git push
  4. 在 Google Search Console 中操作

    • 重新提交 sitemap: https://friday-go.icu/sitemap.xml
    • 对于重要但未索引的页面,使用 "请求编入索引" 功能
    • 对于问题页面(如 sitemap.xml、带 .html 的 URL),可以请求移除
  5. 等待并监控

    • 等待 1-2 周观察索引率变化
    • 每周检查 Search Console 的索引报告
    • 追踪未索引页面数量的变化

📊 预期效果

修复完成后,预期:

  • ✅ sitemap.xml 不再出现在索引列表中
  • ✅ 所有 HTTP URL 重定向到 HTTPS
  • ✅ 带 .html 的 URL 重定向到 clean URLs
  • ✅ 404 错误减少(通过重定向修复)
  • ✅ 索引率从 51.5% 提升至 75%+

🔄 后续监控

  1. 每周检查 Google Search Console 的索引报告
  2. 每月分析 未索引页面的新问题
  3. 持续优化 内容质量和内部链接
  4. 定期提交 sitemap 更新

最后更新: 2025年12月9日

Last updated: