2026-3-22 博客优化日记


博客折腾日记 · 2026年3月22日


今天断断续续折腾了一整天博客,把几个早就想做的事情都一并搞定了,记录一下。


一、SEO 优化

这是今天动工的第一件事。博客建起来一段时间了,搜索引擎的收录一直不理想,于是趁着今天系统地做了一次 SEO 优化。

主要做了三件事:

1. 创建 robots.txt

以前博客根本没有这个文件,爬虫进来完全是懵的。这次新建了 robots.txt,禁止搜索引擎爬取 /admin//install.php、搜索页等无意义路径,同时针对百度蜘蛛(Baiduspider)做了专项优化,并在文件末尾声明了 Sitemap 地址。

2. 增强 header.php

这是改动最多的地方。为文章页新增了:

  • <meta name="description">:自动抓取文章前 150 个字作为搜索结果摘要
  • <meta name="keywords">:自动取文章标签作为关键词
  • <link rel="canonical">:防止重复内容,明确告知搜索引擎权威 URL
  • Twitter Card 标签:分享到社交平台时自动显示大图预览
  • JSON-LD 结构化数据(BlogPosting):让 Google 展示富结果

首页也补充了:

  • 站点描述的 <meta description>
  • 首页的 <link rel="canonical">
  • JSON-LD(WebSite + SearchAction):让 Google 搜索框直接出现在搜索结果中

3. 开发 SitemapPro 插件

原来博客用的 Typecho 自带的 sitemap.xml 年久失修,日期还停留在 2023 年,prioritychangefreq 字段完全缺失。于是自己写了一个 SitemapPro 插件,实现:

  • 首页优先级 1.0,文章 0.8,分类/标签 0.6
  • 各页面类型独立设置更新频率
  • <lastmod> 使用文章真实修改时间,实时生成

二、评论区 IP 属地显示

发现博客后台能看到每条评论的 IP,但前端评论区完全没有属地信息,用户看不到任何地区标识。这个功能在很多博客上都有,感觉挺有意思的,就顺手实现了。

虽然博客里已经装了 LopwonIP 插件,但实测发现它根本没法在当前 Typecho 版本激活(API 太旧了,不兼容),所以直接在主题里自己实现:

  • Context.php 中新增 getIpLocation() 函数,调用 pconline 公开 API 查询 IP 归属地,查询结果写入本地文件缓存,避免每次请求都重复调用外部接口
  • comment.php 的浏览器/系统图标后面插入属地标签
  • style.php 补充属地标签的 CSS 样式,视觉上与其他信息保持统一

效果:每条评论下方会显示评论者的 IP 归属地,例如「广东」「北京」之类。

小结

今天总共改动了:

项目修改内容
robots.txt新建,规范爬虫行为
header.php新增 description / keywords / canonical / Twitter Card / JSON-LD
SitemapPro/Plugin.php全新插件,动态生成带优先级的 Sitemap
Context.php新增 getIpLocation() IP 属地查询函数
comment.php评论区插入属地标签
style.php补充属地标签样式

博客折腾是个坑,踩进去就出不来了。


打赏
评论区
头像

本网站由提供CDN加速/云存储服务