那么,您是一名想要创建博客的开发人员吗?在本指南中,我将指导您运行自己的博客网站,从域名和网站创建到搜索引擎优化和联合组织。
目录
如果您想在建立自己的网站之前先热身一下,最简单的事情就是开始写作并将您的作品贡献到现有的博客平台。
最终,博客最难的事情是实际写作 - 至少,对于我们开发人员来说通常是这样!因此,先感受一下它,看看你是否喜欢它,这并没有什么坏处。此外,正如我们稍后将看到的,即使/当您建立自己的单独博客网站时,这些仍然很有用。
您可能已经听说过dev.to - 它仍然是最大的开发者博客平台,我建议您从这里开始。您可以使用其简单的 Markdown 编辑器轻松开始写作,并且它拥有大量读者,因此您的作品会立即受到很多关注。
它具有出色的内置分析功能,可以帮助您了解有多少人正在阅读您的帖子,甚至他们是如何找到它们的 - 例如,Reddit 或 Twitter。这可以帮助您了解共享工作时最有效的方法。
它的设计包含很多社交媒体风格的元素,包括对帖子的点赞和反应,以及留言板风格的讨论线程。 (这可能是优点也可能是缺点,具体取决于你的口味。)
如果有任何疑问,请从这里开始!
Hashnode是一个较新的开发博客网站。在我看来,它比 dev.to 更有专业感。它感觉比 dev.to 更面向博客,而不像社交媒体网站;它为您提供了一个单独的博客子域,使您的博客在网站内具有自己独立的身份。
如果您愿意,您甚至可以将其连接到您自己的私人域名。
但遗憾的是,它的受欢迎程度远不如 dev.to,而且根据我的经验,我几乎没有通过它获得任何流量。如果您喜欢其简洁的风格,可能值得一看,但需要做更多的跑腿工作才能让您的帖子受到关注。
HackerNoon与 dev.to 和 Hashnode 非常不同,您在那里提交的任何文章都必须经过与您合作的人工编辑,以确保您的文章在发布之前处于最佳状态。但是,他们可能选择根本不发表您的文章。
这有其权衡;一方面,这是一次很棒的学习经历,但另一方面,它限制了您在何时何地发布您想要的内容的自由。因此,我建议将作品提交给 HackerNoon 以获得学习经验,但请考虑将博客的主要主页保留在其他地方。
遗憾的是,创建自己的博客涉及最可怕的开发人员任务之一 - 命名事物!虽然从纯粹的技术角度来看并不是很困难,但值得预先研究和思考;在设置网站时请仔细考虑。
这里有两个主要选择:
以您自己的名字命名您的博客
使用单独的名称为您的博客提供自己的身份
我对每个问题都有不同的看法;对于我自己的博客,我只是以自己的名字命名。我的想法是,如果您使用博客来帮助宣传您的名字,为什么不在博客中使用您的名字呢?
无论您选择什么,请记住,更改您的域名有点痛苦,因此值得花时间找到一个您有信心的域名。但是,如果您想要的域名已被占用,您可能需要重新考虑或调整您的域名,因此在您下定决心之前请先检查该域名是否可用。
您可能已经听说过许多域名注册商,例如BlueHost 、 Hostinger 、 GoDaddy和Namecheap 。
然而,值得关注的一个关键是Google Domains ,因为这是唯一一家销售.dev
域名的注册商。我的建议是,如果你能得到一个, .com
仍然是最好的,所以如果有你喜欢的可用,那就去吧,但如果没有,那么.dev
可能是一个很好的选择。
请注意,域名的价格各不相同,而且您必须每年付费才能保留它们。域名的价格可以低至每年 10 美元,因此,除非您出于商业目的购买域名,否则在购买昂贵的域名之前请三思。
静态站点生成器(或 SSG)将为网站生成模板并生成内容,以便可以将其作为 Web 服务器上保存的静态文件提供。
设置网站的主要结构(例如主页、帖子索引、“关于”页面等)后,您只需添加 Markdown 文件即可生成完整的页面。
简而言之,SSG
为您提供快速网站
让您使用GitOps工作流程进行发布
是安全的(没有数据库可以侵入!)
让您充分利用您的技术技能,而不是局限于平台可以提供的功能
作为开发人员,我们几乎每天都会使用一些功能非常相似的东西:GitHub。在我们的代码存储库中,我们将用 markdown 编写自述文件和其他文档,GitHub 会很好地对其进行格式化,以便在网页上查看。
SSG 可以让您为自己的博客遵循几乎相同的 GitOps 工作流程。当我开始在 dev.to 上写作时,我在 Git 存储库中管理我的草稿。在想要发布之前这一切都很好,此时我需要将内容传输到他们的网络编辑器中。
这很好,但当我发现 SSG 可以让您使用与更新 GitHub 中的自述文件相同的工作流程时,这足以让我想要了解更多信息。
设置博客的常见方法是使用 WordPress 之类的工具;这肯定有很多优点,但它将所有内容存储在数据库中。静态生成的网站不需要它,一方面这意味着它会快得多。
当然,速度并不是一切,但Google 关心您网站的加载速度,那么为什么不利用 SSG 生成的网站可以为您提供的速度呢?
对于创建静态站点,我推荐Hugo 。简而言之,这是因为它很受欢迎、支持良好、速度快,并且允许您使用预制模板快速启动和运行。
(有关替代 SSG 的详细信息,请参阅附录中的比较 SSG 部分。)
Hugo 官方文档的快速入门页面很好地描述了如何设置基本的 Hugo 站点。按照它提供的步骤进行操作,但是当您到达其“创建站点”命令时,我建议将它们更改为以下内容:
hugo new site quickstart cd quickstart git init echo "/public/" >> .gitignore echo "/resources/_gen/" >> .gitignore echo ".hugo_build.lock" >> .gitignore git clone https://github.com/leafee98/hugo-theme-flat themes/flat rm -rf themes/flat/.git/ themes/flat/.github/ echo "theme = flat" >> hugo.toml hugo server
这与官方指南有以下差异:
.gitignore
文件
创建 GitHub 存储库时,将其设为私有- 这是出于 SEO 原因,我们稍后将对此进行探讨。
一旦您按照指南操作,您就可以准备托管一个网站了!此时,您很可能想要更改网站的某些方面。但是,您不必因此而阻止您获得托管服务。
您以后要避免更改的主要内容是您的 URL ;其他一切都可以稍后更改。
正如 Hugo 文档的托管和部署部分所述,由于您有一个静态站点,因此它几乎可以托管在任何地方,而且几乎肯定是免费的。
当然,基于 WordPress 的网站也有很多免费/便宜的主机,但任何特定的主机只能为您提供有限的带宽;一般来说,静态站点可以为您提供更多带宽,即使您实际上没有交出任何钱。
Hugo 的托管指南列出了很多可能性,但就我个人而言,我同意Bryce Wray 的建议,即使用CloudFlare Pages ;它的免费套餐可能是最快的,而且易于使用。
只需按照他们的指南从“设置 GitHub 存储库”开始即可。此时,您的网站将上线!但是您将拥有一个丑陋的域名,例如my-blog-xyz.pages.dev
。只需按照CloudFlare 设置自定义域的指南即可让您的网站在您之前购买的域上运行。
虚荣的虚荣,一切都是虚荣!
— 传道书 1:2
现在,严格来说,这是一个可选步骤,但此时,值得为您的网站设置分析。也许我只是自负,但对我来说,写博客的很多乐趣在于能够看到人们真正看到并关心你所写的内容。
设置静态站点的一个限制是您无法自己托管分析,因为这需要某种数据库。但这并不是什么大问题,因为有很多优秀的第三方分析提供商可用。
您可能听说过的最大的一个是 Google Analytics。
与第三方提供商建立分析通常涉及
设立账户
添加 javascript 片段或链接到您的页面。
在我推荐的 Hugo 模板中,您只需将类似以下内容添加到head.html
模板文件中:
{{/* Include analytics, but only in production */}} {{- if hugo.IsProduction | or (eq site.Params.env "production") }} <script defer data-domain="yourdomain.com" src="/link/to/script.js"></script> {{- end }}
如果你想为你的网站设置GA,请遵循Google的官方文档。
我使用的分析提供商是Plausible 。遗憾的是,它不是免费的 - 大约每月 9 美元 - 但它易于使用、轻量级(脚本小于 1kb)并且尊重隐私,因此在我看来值得一看。
如果你盖了,他们会来的
- 梦想之地
上述引述有一定道理;您不需要做太多的事情就可以让您的博客出现在 Google 上,值得庆幸的是,关键字填充恶作剧的时代已经结束了;最终重要的是写出好的内容,这对于我们这样的独立博主来说是个好消息。
也就是说,您可以采取一些措施来确保您的网站符合搜索引擎的要求。
Google 的网络爬虫最终会找到您的网站,但这肯定有助于让 Google 领先并在Google 搜索控制台上设置您的网站。您需要执行以下操作:
sitemap.xml
的 URL。值得庆幸的是,Hugo 会在https://yourdomain.com/sitemap.xml
为您生成一个。
完成此操作后,Google 将(在接下来的几天内的某个时刻)开始抓取您的网站。请注意,搜索控制台有几天的延迟。
查看网站上索引内容的最可靠方法是使用site:
查询进行谷歌搜索,例如site:yourdomain.dom
。
在搜索控制台上进行设置的另一个有用的好处是,在“页面”选项卡下,您可以看到任何报告的有关 Google 无法或不会为您的页面编制索引的问题。
Hugo 和我们使用的模板应该涵盖良好 SEO 实践的大部分基础。不过,使用Google 的 PageSpeed Insights 工具检查您的网站也没什么坏处。 (如果/当您开始通过调整模板文件使您的网站更符合您自己的喜好时,这一点将变得更加重要。)
这将使您对页面的性能、可访问性和任何 SEO 问题(例如缺少元标记)有一个很好的概述。
作为博主理解的一个关键 SEO 概念是规范化和规范 URL 。基本上,这个想法是可以通过不同的 URL 访问相同的内容,但您不希望 Google 将单个页面的页面排名拆分为多个 URL。
因此,您可以让页面声明搜索引擎应将哪些 URL 视为该页面的URL 。
请记住,CloudFlare 还会在您的自定义域旁边生成一个“丑陋”的域,例如my-blog-xyz.pages.dev
。大多数(如果不是全部)托管提供商不允许您关闭此基本域,但只要您在网页上设置了规范网址,这就不成问题 - Google 只会在您的自定义域下列出,不是“丑”的那个。
我推荐 Hugo 的 Flat 主题的原因之一是(与 Ananke 推荐的默认主题不同)它已经包含了规范链接。但是,如果您想使用不同的主题,您可以简单地将其添加到标题模板中,如下所示:
<link rel="canonical" href="{{ .Permalink }}" />
您可以通过在上面提到的 PageSpeed Insights 工具中检查它来检查任何给定页面的设置是否正确;您将看到页面是否具有规范 URL 作为“SEO”部分下的清单项。
我们将在下面的重新发布部分进一步探讨规范化。
您可能还记得之前您已将 GitHub 存储库设为私有。这是因为(在撰写本文时)您无法将规范 URL或noindex 标签添加到 Markdown 文档中,因此这成为另一个微妙的代码重复问题。私人仓库可以解决这个问题。
您可能听说过,Google 对网站进行排名的因素之一是有多少其他网站链接到该网站;这称为域权限,在这种情况下从一个站点到另一个站点的此类链接称为反向链接。
我不会谈论如何“种植”反向链接以使您的博客在 Google 上排名更高;一方面,谷歌已经明智地了解了此类计划,此外,创建自己的网站的好处之一是您可以帮助使网络变得更好,而不是进一步用这种混蛋填充它。
主要的结论是,你需要一段时间才能在谷歌上获得良好的排名;一开始您不会拥有太多域权限,但随着时间的推移,域权限会不断增长。与以往一样,您的重点应该只是尽力写出最好的帖子。
只有当广告宣扬邪恶的事物时,广告才是邪恶的。
— 大卫·奥格维
尽管我很想说 Google 能够找到您的博客就足够了,但实际上,做一些自我宣传并在线分享您的帖子确实很有帮助。
最好的方法是在 Reddit 上发布您文章的链接。在社交媒体上发帖不会有什么坏处,但 Reddit 的关键优势在于它的投票系统意味着好的帖子(我相信你的帖子也会如此)可以在 Reddit 子版块的首页上停留一段时间,而不是立即被席卷沿着时间线向下。
发布到特定的 Reddit 子版块,例如您正在撰写的编程语言或技术。 Reddit 子版块越大,看到您的帖子的人就越多,但问题是,像/r/programming
这样的大型子版块通常会让很多人策略性地对好的帖子投否决票,只是为了埋葬它们,以帮助保留自己的帖子。顶部。
相反,坚持使用适用于您的帖子的最具体的 Reddits,您会获得更多运气;这些社区更有可能关心和阅读您的帖子,并且更容易接受自我宣传。
如果您不熟悉 Reddit 子版块,请务必在发帖前检查其社区规则。每个 Reddit 子版块都有不同的规则,特别是对链接到您自己的文章的不同容忍度。
这可能会有所不同,包括完全禁止自我宣传、期望您不要过多地自我发布,或者根本没有限制。
另一个需要注意的关键规则是不受欢迎的帖子主题,可能会重定向到更合适的 Reddit 子版块。例如, /r/programming
的规则要求您将技术问题重定向到r/learnprogramming
,类似地将职位列表重定向到/r/forhire
。
无论您提交的 Reddit 子版块的规则如何,成为社区的一部分总是一个好主意,而不是仅仅将 Reddit 用作达到您自己目的的工具。发布您喜欢的其他博客的链接,参与讨论,享受乐趣。
偶尔通读一下“Reddiquette” ,检查您是否以负责任的方式参与其中。
尽管拥有自己的独立博客很有价值,但在 dev.to 等开发博客平台上重新发布帖子仍然很有用。您可能想知道为什么我们在花时间建立您自己的博客后又绕了一圈又回来了。
最终,最重要的是让其他开发人员阅读和欣赏您的想法,而重新发布只需添加另一种方式让人们了解您的作品即可帮助您做到这一点。
另一个主要好处是,它可以帮助您通过反向链接为自己的博客建立域权限 - 但为了使您的网站获得这些反向链接,您需要以正确的方式重新发布。
还记得我们之前讨论过的规范 URL 的概念吗?在其他地方重新发布文章时,理想情况下,您只想在允许您表明文章的规范版本是您的博客上的版本的网站上发布。
这样,您可以获得重新发布的曝光收益,但任何由此产生的反向链接都会建立您自己博客的域权威。
正如dev.to 的编辑器指南中详细介绍的,您只需将canonical_url
属性添加到帖子的“front Matter”属性即可添加规范 URL。
您可以在“您正在重新发布吗?”下的 Hashnode 文章上设置规范 URL。文章的“文章设置”视图上的部分。 (有关更多详细信息,请参阅他们的文档。)
正如HackerNoon 的文档中所述,您可以在帖子设置的“首次出现位置”中设置规范 URL。
正如这篇 Hashnode 文章所指出的,在 FreeCodeCamp 上重新发布您的作品之前请三思,因为他们不允许您设置规范的 URL。事实上, 这篇 dev.to 帖子详细介绍了这对某些博主造成的负面影响。
重新发布的另一个好处是,在 Reddit 和其他社交媒体上分享您的作品的一些跑腿工作通常会为您完成。
为特定社区策划文章的机器人和博主通常会通过博客平台上的特定标签找到您的作品,并在社交媒体上分享。
然而,重新发布并非没有一些成本:
因此,值得考虑在发布原始版本后一段时间(例如一两周,但这取决于您)重新发布。这样做有以下好处:
值得庆幸的是,敏捷意味着软件开发很少像以前的时代那样涉及生成大量文档,我认为钟摆已经朝另一个方向摆得太远了,所以好的文档有助于向新人介绍遗憾的是,系统或存储库被忽视了。
随着您作为开发人员职业生涯的进步,您将越来越需要提炼您的思维并以清晰简洁的方式解释复杂的概念和系统。
博客为您提供了练习这些技能的好方法。尤其是,拥有观众是一个很大的激励因素!
在简历中列出您所了解的技术是一回事;通过链接到你写的文章来证明你真正理解它们是另一回事,这些文章清楚地表明你对自己的手艺了如指掌。
Jeff Atwood 部分通过他的博客Coding Horror认识了 Joel Spolsky,然后他们继续创建了一个名为 Stack Overflow 的小东西。
你不能保证仅仅通过创建博客就会发生这样的事情,但这当然也没有坏处。尤其是在利基技术领域,您可能会发现您的名字可能会通过他们过去读过您的文章的人而引人注目。
以下是我对一些流行的 SSG 的看法,以及我如何选择 Hugo。请参阅jamstack.org以获取更大的列表。
Jekyll曾经很受欢迎,但现在已经不那么受欢迎了。它为 GitHub 页面提供支持,并且非常面向博客。我最初考虑过它,但因其严格的 URL 结构而推迟,该结构坚持要求博客页面在 URL 中嵌入日期组件,这是我自己的博客想要避免的事情。
可以通过将撰写帖子作为更抽象的“集合”类型的一部分来避免这种情况,但这会失去在自己的博客帖子抽象中工作的许多好处。
Eleventy 是一个非常受欢迎的 SSG。它由node.js提供支持,非常灵活;您可以自定义模板引擎和 Markdown 渲染器,甚至允许您对同一站点内的不同页面使用不同的选项。
我发现的主要缺点是它没有任何内置模板,因此您无法轻松地直接生成开箱即用的博客。另外值得注意的是,它运行在node上,使其安装更加复杂;无论如何都不会破坏交易,但不像 Hugo 那样方便。
盖茨比最近也变得很受欢迎。但是,它生成基于反应的单页应用程序而不是静态站点。这是一个有效的选项;在创建博客时,我想要纯 HTML 和 CSS 的简单性。
而且,我看到这位作者使用它的体验很差,推荐使用Hugo。
最后,我们来谈谈 Hugo,我在自己的博客中使用的 SSG。它是用 Go 编写的,这意味着使用它意味着安装单个二进制文件。从托管的角度来看,这具有优势;您只需在我的提供程序上指定 Hugo 版本,您就可以确定它的行为方式与本地的行为方式相同。
它的速度非常快。虽然当您的博客仅包含几篇文章时这没什么区别,但很高兴知道随着您的网站的增长,构建时间将保持可靠的快速。
它是最受欢迎的 SSG (根据 GitHub 星数判断) ,这意味着它得到了广泛使用和记录,并且几乎受到所有静态站点托管平台的良好支持。
最重要的是,它具有帮助您入门的模板。尽管您可能希望在某些时候创建自己的模板(或者至少根据自己的喜好修改它们),但它至少为您提供了一些开箱即用的东西。
它的主要缺点是它使用 Go 的模板语言;无论如何,它并不可怕,但与某些语言相比,它有点笨重,如果您热衷于另一种模板语言,那么您在这里就不走运了。如果这对您来说是个问题,那么 Eleventy 可能值得一看。