GANKUDADIZ
BACK_TO_BLOG
TECH_LOG :: 2026.04.15

做博客几个月,我终于了解了这些站长工具

Avatar
By Gankudadiz · 1 min read · 101 views

博客上线快半年了,一直以来我以为只要写好文章、搭个 RSS 订阅,就够了。最近把博客提交到了 Bing Webmaster Tools 和 Google Search Console,才发现"让搜索引擎找到你的网站"这件事,远比想象中复杂。

记录一下这段时间学到的东西。

Sitemap:网站的目录页

Sitemap(站点地图)这个名字很直白,就是给搜索引擎看的网站目录。

我的博客用的是动态生成的方式,访问 sitemap.xml 会返回所有已发布的文章列表和标签列表。代码大概是这样:

public function index(): Response
{
    $posts = Post::publiclyVisible()->latest('updated_at')->get();
    $tags = Tag::query()->whereHas('posts', fn ($query) => $query->publiclyVisible())->get();

    return response()->view('front.sitemap', [
        'posts' => $posts,
        'tags' => $tags,
    ])->header('Content-Type', 'text/xml; charset=UTF-8');
}

只返回对外可见的文章,草稿和归档文章不会出现在里面。

然后在 robots.txt 里声明一下位置:

User-agent: *
Disallow:

Sitemap: https://blog.gankudadiz.com/sitemap.xml

这样搜索引擎爬虫来抓网站的时候,就能通过 robots.txt 知道 sitemap 在哪,顺着就能发现你所有的文章。

robots.txt:爬虫的入场须知

robots.txt 是一个简单的文本文件,放在网站根目录下。它告诉搜索引擎:哪些页面你可以抓,哪些你不可以。

我的配置很宽松,所有都允许:

User-agent: *
Disallow:

一个典型的小博客这么做没什么问题。但如果你的后台管理页面不想被索引(比如 /admin),就应该加一条:

User-agent: *
Disallow: /admin

这是最基础的理解:robots.txt 是一个"礼貌性"的协议,恶意爬虫不会遵守,但正常搜索引擎都会遵守。

IndexNow:让搜索引擎"即时"知道页面变了

这是让我觉得最有意思的东西。

传统的流程是:搜索引擎定期来抓你的网站,发现有新内容就收录。但这个"定期"可能是几天甚至几周。

IndexNow 是一种主动通知机制。当你的文章发布、修改或删除时,你的网站主动告诉搜索引擎:"嘿,我这里有变化,过来看看。"

我用的是 ymigval/laravel-indexnow 这个包,配置好了以后,在 PostObserver 里自动触发:

public function created(Post $post): void
{
    if (! $post->isPubliclyVisible()) {
        return;
    }

    $this->submitIndexNowUrls([
        $this->currentPostUrl($post),
    ]);
}

规则写得比较细:

  • 新建文章:提交新 URL
  • 修改文章且 slug 没变:只提交当前 URL
  • 修改文章且 slug 变了:同时提交旧 URL 和新 URL(因为内容迁移了)
  • 删除文章:提交被删除的 URL

这个逻辑搞了好一会儿,主要是想清楚各种状态变化组合。

目前配置的是通用的 IndexNow 协议,Bing、Yandex 这些主流搜索引擎都支持。Google 虽然有自己的一套(Indexing API),但 IndexNow 提交一次能通知多个引擎,效率更高。

Search Console 和 Webmaster Tools:站长的仪表盘

这两个是搜索引擎提供的站长工具,听起来名字很唬人,其实功能挺朴实。

主要能做的事情:

  • 提交 sitemap:让搜索引擎知道你的站点结构
  • 查看索引状态:哪些页面被收录了,哪些没有被收录
  • 检测爬虫错误:搜索引擎来抓的时候遇到了什么问题
  • 性能数据:搜索结果中的点击率、曝光量

说实话我目前用得还比较浅,就是提交 sitemap、看看有没有报错。但光是"知道搜索引擎是怎么看我的站"这件事,就已经值了。

之前以为 RSS 就够了,太天真了

RSS 解决的是"让用户主动订阅内容"的问题。用户装一个 RSS 阅读器,订阅了我的博客,有新文章就会推过来。

但 RSS 不解决"让搜索引擎找到你"的问题。搜索引擎不知道你的 RSS 地址,它也不会去读你的 RSS 来更新搜索结果。

这是一个认知盲区:开发者习惯用技术手段解决问题(搭 RSS、做 API),但搜索引擎是另一套逻辑——它需要你主动告诉它你的站点结构、页面变化。

Sitemap、IndexNow、robots.txt 这些东西,本质上都是在"说搜索引擎能听懂的话"。

总结

这段时间折腾下来,最大的感受是:做网站不只是写代码

域名解析、SSL 证书、SEO 优化、站长工具……这些都是开发之外的东西。好在都不算难,踩一遍就懂了。


写完感觉有点像笔记,但这就是我现在的理解水平。等过一年再回头看,大概会觉得幼稚吧——但那就是进步了。

评论 (6)

允赫先森
允赫先森 3 天前
博客很漂亮~已添加友链,常来往~
干枯大地z
干枯大地z 站长 / 管理员回复 3 天前
感谢,可是为什么我打不开你的博客呢?提示我IP被封了,难道是因为我开着梯子的原因。
允赫先森
允赫先森 3 天前
拦截海外ip的
MuXiaoChen
MuXiaoChen 3 天前
评论区建议加一个昵称和邮箱的缓存,不然每次进来都得重新输入。
干枯大地z
干枯大地z 站长 / 管理员回复 3 天前
收到,下次更新加上。
感谢提出宝贵的优化建议。
MuXiaoChen
MuXiaoChen 3 天前
我的站点被必应收录后又给我干掉了,反反复复的,已经不想倒腾了。

[DRAFT_RESTORED]

已恢复你上次未提交的评论草稿。

草稿仅保留在当前标签页;提交成功后会清空,关闭标签页后会自动失效。

ACTION: