博客折腾日记 · 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 年,priority 和 changefreq 字段完全缺失。于是自己写了一个 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 | 补充属地标签样式 |
博客折腾是个坑,踩进去就出不来了。




站点网址:https://www.jiafeng.fun
站点头像:https://www.jiafeng.fun/favicon.ico
站点简介(可无):个人博客,前端技术分享