如何用Github Pages 替换 Medium 的Custom Domain?
我需要适当借鉴某些前辈的行文手法, 只讲问题本身相关的关键思路和细节.至于更细致的手把手教程,贴个相关链接就行了.过于细节,反倒让人无法准确把控和理解.
背景: 为什么不继续用 Medium?
最直接的原因就是 Medium 对自定义域名的支持不太好.基于Medium的自定义域名的网站,无法手动向Google提交页面.具体的分析,参见 如何用 robots.txt 验证工具,进一步排查无法手动往Google提交网页链接的问题?.
其他的原因, 也有考虑:
-
Medium 无法在中国访问. 虽然我不期待有太高的流量.但是因为是面向技术问题的博客站, 我希望未来确实刚好需要这些经验的人, 能无障碍地访问我的文章.
-
Medium 的有偿阅览机制, 我不喜欢. 作为商业模式, 本身无可厚非. 但是, 和我的理念,多少有些相悖. 我更喜欢开源社区那种开放,互助的精神.
-
Medium 的自定义域名, 是必须会员才能用的, 但是我的会员几个月后就要到期了. 我不太想续费.因为 Medium 给与我的帮助, 真的十分有限. 博客阅读, 我并没有在 Medium 上遇到很多对自己有太大帮助的文章.
为什么选择 Github Pages?
我权衡的关键因素,主要有:
-
必须支持能自定义博客链接. 这样,我才能保留既有的被 Google 收录的页面.
-
平台运行要稳定. 因为性能太弱的平台, Google 爬虫会降低爬取频率.
-
平台要相对可靠, 在较长时间内, 没有倒闭风险. 这一点,很容易理解. 因为我不想频繁地做博客迁移的事.
-
支持自定义 robots.txt.
-
支持自定义 sitemap.xml.
-
可选: 最好支持全球访问.即: 最好能在全球大部分地区访问.
基于这些因素, 我考虑了几种可能:
-
回归自建博客. ==> 不可行.因为家里的网络和性能, 目前没法满足爬虫高频率爬取的需求.而且家庭部署, 稳定性也没有可靠的保证.
-
wordpress.com ==> 不可行. 价格太贵了. 作为一个不以盈利为目标的网站, 我不想额外投入太多钱.
-
github pages. ==> 可行. 我权衡的各个条件都能满足.
实施: 具体的替换策略.
-
github 账户升级为付费账户. 因为我不想把博客 Repo 公开.
-
基于教程, 初始完成各种设置.详见: Quickstart for GitHub Pages.
- 将博客文章,逐篇迁移过来. 自定义博客超链接, 以保证链接与 Medium 托管时一样.
- 配置示例:
--- # slug需要和title相同,用于生成的固定链接中. layout: post title: "新的里程碑: Google收录时间缩短到12小时." slug: "新的里程碑: Google收录时间缩短到12小时." permalink: /新的里程碑-google收录时间缩短到12小时-49d2f3ef3499 ---
- 博客文件名, 我使用了最简单的策略, 如: 2024-01-12-01.md. 每篇的第一篇文章,就是 01, 第二篇就是 02.上述配置示例中的slug用于替换文件名中的 title(此处是 01).
- 我全局的默认链接地址配置是:
permalink: /:title-:year:month:day
- 配置示例:
-
配置自定义域名.本身参考: Configuring an apex domain. 我贴一下 我在cloudflare中的DNS 服务器端的配置.这一点Github文档里,写的不够直观.
- 配置 sitemap插件, 以自动生成更新 sitemap. sitemap plugin主页 写的有点绕.其实只需要在 _config.yml 中配置下就行了:
plugins:
- jekyll-feed
- jekyll-sitemap
- 提交代码, 等1分钟github更新后, 开始逐篇手动向 Google 提交页面. 舒适! 每篇都能收录. 再没遇到诡异的问题了!
效果: 替换后可以预见的提升
-
稳定. 我相信 Github 的稳定性是有保障的.
-
可扩展性强. 有很多插件和主题可供选择. 不过, 我不太像折腾. 技术博客, 更多的还是以内容为中心. 太多插件, 如果降低了文章的加载速度, 就有点得不偿失了.
-
博客加载速度,显著提高. 毕竟, 都是些静态资源.
剩余的困惑: 能秒索引, 但是无法秒搜索到.
国内的大的技术博客站, 如果更新后, 往往立即搜索, 就能看到. 但是我发现, 我的站点目前做不到.
不太确定,是因为我的标题起的太普通, 还是内容质量,又或者只是因为是新站点, Google 的信任值不够.
我会持续观察. 或许未来会有新的发现.