作者easy0519 (Easy)
看板Blog
标题[Blogger] 文章搬家且不遗失排行索引记录
时间Fri Jan 20 00:26:42 2017
因为需求要将部份文章搬到另一个位置,
且要保留 Google 索引排名 (Google rank) 的搬家笔记。
感想:
1. 建置部落格有买网域,使用自订网域才能如此搬
2. 建置部落格先想好主题…
3. 搬家保留 Google rank 很累,下次不要如此尝试
4. 需要对 HTTP 很熟悉才能如此做 (需要个工程师朋友)
图文并茂网志版本
http://dev.twsiyuan.com/2017/01/blogger-move-without-losing-google-rank.html
以下纯文字
---
注意:这仅适用於已经使用自定义网域的部落格,并不适用於要迁移已存在的部落格到刚
购买的新网域。
搬移部落格需求
自从开始看一些部落格教学後,从中重新思考为什麽要写部落格,更重要的是,思考部落
格主题是什麽。审视目前的部落格,主要分成两大块主题,一大部分是自己的生活,另一
块是软体开发的笔记。从那些部落格教学材料中,了解有明确主题是比较好的,因此开始
考虑将一部分的软体开发文章,转移到另一个部落格去。
一个重要需求是,搬文章且保留搜寻引擎的索引排行 (Google rank),某些文章已经拥有
些重要关键字索引权重,若只是单纯复制原有的文章到另外的部落格,原本部落格的文章
删除,那麽索引排行会全部遗失,从搜寻引擎来的流量,将会一切归零重来,虽然对目前
自己没什麽流量的部落格来说,这一点都不重要吧。
搬移部落格计画
整个计画再开一个部落格,继续选用 Blogger 服务,放置软体开发的文章,图片不打算
重新上传,仍然使用 Blogspot 空间。然後建置一个网站服务,将该些软体开发主题的文
章从旧的部落格空间导入到这新开的部落格。
- 使用 Blogger 工具汇出所有文章
- 开另一个 Blogger,使用工具汇入刚刚汇出的文章档案
- 手动保留软体开发的文章,其他文章以及草稿则是删除
- 其他设定则是按照需求调整,例如版型说明等等
- 特别是搜寻引擎使用的爬虫文件 robots.txt,按照之前的文章设置
Blogger 汇入系统没办法正确汇入旧文章的自订文章网址,也没有保留额外的搜寻说明
(description)。幸好目前文章数不到百篇,先手动从旧部落格把这些资讯复制到新的部
落格文章中
- 图片则是不处理,继续放在原本的图片空间
- 文章留言采用 Disqus 系统,则是到该系统後台搬移
接着是比较麻烦的部分,保留搜寻引擎索引的方法,按照 webmaster 文章的建议,搬家
最好使用 HTTP 301 转址,而不是使用 <meta refresh> 或是任何 JavaScript 的方式转
址,但是 Blogger 可能因为某些安全机制问题 (例如被用来作为恶意广告用途),没有提
供 HTTP 301 转到其他的网域的功能……。
使用 HTTP 301 的转址服务
既然 Blogger 不支援,那自己弄套服务来做这件事情吧。原先的架构如下,当用户
(client) 向 blog.twsiyuan.com 要求文章时,先向域名系统 (Domain name system,
DNS) 要求该域名的 IP,该 IP 指向 Blogger 伺服器,建立连线取得伺服器的内容,呈
现文章结果。
弄套服务,将架构改成以下,当用户端向 blog twsiyuan.com 要求,从域名系统拿到的
不再是 Blogger 系统的 IP,而是架设在 AWS 伺服器的位置,建立与该伺服器连线要求
文章内容,该伺服器再向 Blogger 伺服器要求文章内容,把内容做些调整後,再将修改
後的内容回应给用户端。
如果发现用户要求是软体主题的文章,则是送出 HTTP 301,并设定 header Location,
让用户浏览器自动跳转 (see RFC7231) 到新的部落格中。
特别注意是 robots.txt,该架在 AWS 的伺服器特别准备一份设定,而非向 Blogger 拿
旧有的部落格的设定。因为为了避免旧部落格不再使用自订网域後,其部落格在
Blogger 上的位置 twsiyuan.blogspot.com 会被搜寻引擎建立另一份索引,所以其
robots.txt 将设定为拒绝建立索引的状态。
- 在 AWS 建立部落格转址服务
- 移除原先的 CName record,并建立 A record,确保 blog.twsiyuan.com 指向架在 AWS
的伺服器 IP 位置
- 移除旧 Blogger 的自订网域设定
- 修改旧 Blogger 上的 robots.txt 设定,拒绝建立索引 ***Disallow: * ***
可能的问题
- Blogger 系统内部统计资料会失效
- 热门文章会受到影响,将无法「正确」显示
用户端不再直接跟 Blogger 系统拿内容,而是透过类似代理方式取得,且实作又不
处理 Cookies,会造成此问题
- 由於部落格已经改采用 Goolge analysis 来统计流量,所以 Blogger 内部统计
就不管了,热门文章页面则是放弃从部落格中移除不再显示
- 文章的站内文章连结问题
- 部分未搬移文章中,有连结到搬移到另一部落格的文章,若没办法长期维持这服务,
连结是有可能失效
- 之後手动调整文章连结,这应该也是大工程吧
至於其他可能的问题,之後注意到再纪录。
实作 HTTP 301 转址服务
概念想法很简单,怎麽实作比较困难。由於工作上使用 Golang 来开发服务应用,且
Golang 相当适合写这种简单的服务架构,因此采用 Golang 来实作。
专案程式码已经放置在 Github 上,可以点 Github连结查看。为了求开发简单,除了转
址文章对应表写在外部档案外,其他位置设定以及 robots.txt 都直接写死在程式中。
https://github.com/twsiyuan/blogger-migration-temporary-service
唯一注意的是,建立 http.Request 向 Blogger 要求回来的内容,必须经过转换处理,
将内容连结 twsiyuan.blogspot.com 以及 twsiyuan.blogspot.co.jp(因为服务架设在
日本,拿到日本的位置),文字取代成 blog.twsiyuan.com。
後来想想,如此简单的服务应该可以使用 AWS Lambda (serverless service),自己租台
伺服器 EC2 似乎有点太浪费了,且安全性好似不是很稳,被攻击可能一下就炸了。
搬家後感想
一开始想好部落格主题,就不用如此麻烦,幸好之前就使用自定义的网域,才能如此这样
搞。想想流量又没有这麽多,也没有建立广告营收,何必这麽费功夫,一切重来就可以了
呢。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 211.23.144.23
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Blog/M.1484843206.A.565.html
1F:推 strellson: 好专业 01/20 11:31