从事 SEO 12 年的大佬总结的要点

SEO

从事 SEO 12 年的大佬总结的要点

从事 SEO 12 年后,以下是我能想到的所有 SEO 技巧: 1. 在 H1、H2 和 URL 部分中使用主要关键词。 2. 停止追逐虚荣指标。流量固然重要,但转化率才是最重要的。 3. 内部链接可以将“几乎完成”的页面转变为表现最佳的页面。 4. 定期检查你的网站是否有坏链接,这是一个简单的 SEO 胜利。 5. Google Search Console 是您最好的朋友,使用它来重新优化排名在第 3-7 位的页面。 6. 90% 的反向链接应来自相关的高权威网站。 7. 速度决定一切——或许应该说,速度不足会扼杀一切。确保加载时间在 2 秒以内。 8. 持续更新内容将帮助你的页面保持更高的排名。 9. 使用 NLP

Pnpm 构建 Monorepo

技术总结

Pnpm 构建 Monorepo

最近开始搭建 monorepo 的项目,了解到以下方案: * lerna 有强大完善的依赖管理和构建、打包发布流程,而且 v5 版本将 nx 与 lerna 整合了,提升了性能和速度 * 业界大多使用 lerna + yarn workspace 的方式来管理,yarn 用来管理依赖,lerna 用于管理发布 之前简单使用过 lerna ,不过再加上 yarn workspace , 学习容多、配置多又得折腾,太费劲🤪,暂时搁置。 最终尝试使用单一的 pnpm workspace + changesets 的方式来构建 monorepo,本身我就使用 pnpm 作为包管理工具,目前我的场景简单,pnpm 就已足够。 本文记录自己使用 pnpm workspace 搭建 monorepo

HTTP Web 缓存总结

技术总结

HTTP Web 缓存总结

友情提示:缓存什么的,是完全依赖相关http header头信息来标记和判断的 缓存读取顺序: 首先读取本地缓存,如果条件满足就取本地缓存,否则往后走代理缓存,同理,条件满足就是从代理缓存取资源(可能存在多级代理缓存) 如果一条链路上的资源都不符合,那么就去源服务器获取 缓存优先级:Cache-Control > Expires > Etag > Last-Modified 缓存的分类和优先级 * 强缓存 状态码 200 (比如 200 (from cache)) * Expires 服务器下发的绝对时间,而判断的时候以浏览器时间为准,客户端和服务器有可能会不一样 * Cache-Control 相对时间,以客户端相对时间为准 * 协商缓存 状态码 304 * Last-Modified If-Modified-Since * Etag If-None-Match 强缓存优先级高于协商缓存,强缓存不会询问服务器,直接使用缓存。协商缓存会询问服务器关于文件的可用性 对于传输过程中的中间节点,本文都称为代理服务器,包括proxy、

关于 Webpack 使用 Babel 与 Vite 使用 ESBuild 的一些思考

技术总结

关于 Webpack 使用 Babel 与 Vite 使用 ESBuild 的一些思考

虽然 Vite 是基于 esbuild 构建的,并且 esbuild 在构建速度上有显著优势,但 Webpack 目前并没有直接使用 esbuild 构建的原因涉及多个方面,主要是 架构设计差异、功能需求 和 兼容性 等问题。下面是一些关键的原因: 1. Webpack 的复杂性与扩展性 • Webpack 的高度可扩展性:Webpack 的设计目标是一个 高度可配置和可扩展的打包工具。它提供了丰富的插件和 loader 机制,支持各种复杂的构建需求(如代码分割、热更新、各种资源处理等)。这些功能要求 Webpack 必须具备更细粒度的控制能力,而 esbuild 的设计理念相对简化,主要关注高速构建和基本的模块转换功能。 • Loader 和 Plugin 系统:Webpack 的强大之处在于其 loader 和

Dokploy 一键部署 Plausible

Dokploy

Dokploy 一键部署 Plausible

Plausible 是一款与 Google Analytics 类似的 Web 流量分析工具,相比 Google Analytics 对比如下: * 功能复杂度:GA 功能更强大,适合需要深入分析的用户;Plausible 提供基础的流量分析,简单易用。 * 自托管:Plausible 可以自托管,GA 不支持;GA 存储数据在 Google 服务器上。 * 性能:Plausible 更轻量,只有几 KB,加载更快;GA 可能影响网站性能。 * 隐私保护:Plausible 更注重隐私,不追踪用户数据;GA 会使用 cookies 并可能共享数据给 Google。 我是用 Plausible 来监控我的个人的一些站点,这里使用 Dokploy 来一键部署

Dokploy 托管你的全栈应用

Dokploy

Dokploy 托管你的全栈应用

我是一名开发者,平时会用到以下场景,都可以交由 Dokploy 托管: * 反向代理,之前用 Nginx,现在交给 Dokploy ,用 Traefik 托管 * 常规网站静态部署,比如打包一个 React 项目部署到服务器静态目录 * Nextjs 项目部署,之前依赖 Vercel,现在改为 Dokploy 托管 * NestJS 后端项目托管,直接将服务 Docker 化交给 Dokploy,之前我是用 Railway 托管或者直接在服务器进行 Docker 管理,现在也交给 Dokploy,并且用 Docker 替代 PM2 * 数据库安装与备份,如 Mysql,Postgresql,MongoDB, Redis * 其他: 如 Sentry

Dokploy 部署 Ghost 博客

Dokploy

Dokploy 部署 Ghost 博客

我的博客站点是基于 Ghost 开源部署的,最初是用 Nginx + Docker 进行部署管理,后来接触到了 Dokploy,就把所有的服务都统一交由 Dokploy 部署了,体验很丝滑,本文介绍使用 Dokploy 部署 Ghost 博客的详细操作。 首先在 Dokploy 面板,创建一个 Project 因为 Ghost 直接就在 Dokploy 的模板市场里面,所以直接 Create Service -> Template 在模板市场,搜索 Ghost,然后创建 创建完成之后,可以看到已经展示在 Service 列表了,点击进入 直接点击 Deploy 即可,如果需要更改配置,在 Raw 里面进行

Latest

Ghost 博客数据迁移

Ghost 博客数据迁移

数据迁移导出 我的博客是基于 Ghost 部署的,开源免费,部署在个人服务器的,但是有时候会迁移或者重置服务器,就涉及到博客内容的迁移了。 迁移主要涉及两块,博文内容的导出,以及图片等资源文件的导出。 博文内容导出 在管理后台的 Advanced -> Import/Export -> Migration tools -> Export 里面,点击 Export content,会导出一个 JSON 文件,这个文件里面就是你的博文内容了。 图片媒体资源导出 对于博文里面的图片,视频等媒体文件,主题配置之类的,需要到存放这些内容的目录进行导出。 因为我之前是通过 Docker 部署的 Ghost,在 Docker 配置中可以看到挂载的内容目录。 然后从服务器上对应位置,把资源下载到本地备份 在服务器上先将 content-volumes 目录压缩

Obsidian, Typora 图床自动上传 By Cloudflare R2 + Picgo

Obsidian, Typora 图床自动上传 By Cloudflare R2 + Picgo

我主要是为了写博客,以及内容同步到其他平台时,无需迁移图片资源,而且能分担服务器带宽压力,图片直接通过 Picgo 上传到 Cloudflare R2,然后在 Obsidian 或者 Typora 写完文章,复制 Markdown 文本到我的博客直接发布即可,我的博客是使用 Ghost 部署的,地址 meepo.me。 Cloudflare R2 Cloudflare 一直被称为赛博活佛,R2 10G 的 Storage,用不完,根本用不完,而且不用搞备案验证(你们知道我在说什么) 创建 API Token R2 是 Cloudflare 的对象存储服务,首先需要注册 Cloudflare,注意开通 R2 需要绑定信用卡,不用担心,并不是绑定就扣费。 首先进入

从零搭建 ubuntu 服务器及 nodejs项目部署

从零搭建 ubuntu 服务器及 nodejs项目部署

大概好几年前写的了,现在搬到博客上,防止丢失😄 **目标:**nodejs服务器配置及本地项目部署到线上的每一个业务流程,把本地可以跑通的nodejs项目,无论是微信小程序的后台,微信公众号的后台,还是手机app的后台,或是网站后台,都可以部署到线上,如果依赖的有数据库(mongodb),以及支持https服务,都可以做到! **服务器版本:**阿里云ECS ubuntu 14.04 64位,1核1G大概能提供2-3w的请求量 服务器地址: 60.205.249.111 服务器用户: captainjack 一、流程 * 域名: 购买域名 -> 域名备案 * 购买服务器 -> 阿里云ECS -> 服务器版本选择ubuntu 14.04 64位 * 配置新用户,禁用root及默认端口 * 配置ssh本地到服务器之间链接(为了不泄露个人信息,

Mac 本机配置远程服务器的免密 SSH 登录

Mac 本机配置远程服务器的免密 SSH 登录

在本地电脑上针对服务器进行远程登录配置,是非常必要的操作,不仅可以快速登录服务器,而且在使用 Datagrip 连接远程数据库时,也可以通过 SSH 配置文件的方式,快速进行认证并且连接。  id_ed25519 作为 SSH 密钥对是一种更安全且现代的认证方式,相比传统的 RSA 密钥,它在性能和安全性上都更好。 首先,在阿里云控制台上,进入 ECS -> 网络与安全 -> 安全组,确保它允许来自你 IP 地址的 22端口(TCP) 访问。 生成 SSH 密钥对(id_ed25519) 1. 打开终端,输入以下命令生成 SSH 密钥对: ssh-keygen -t ed25519 -C "

关于微信支付千二、千六手续费

关于微信支付千二、千六手续费

申请微信支付,需要先进入微信商户平台开通微信商户,而这里面涉及到一个交易手续费的关键环节。 一般自己注册商户平台时,交易手续费很多都是千6,也就是入账 1000块,就得给微信 6 块钱,如图,通过服务商注册,会能提供千 2 的账号,差距惊人。 我之前有朋友花了 6 万块,让小程序公司给上架了一个商城,也是千 6 的手续费,其实很多人是不知道这里面的细节的。 千二非常普遍,只要通过服务商给你开,千六到千二区间随便调整,而且服务商注册没有任何门槛,只是调整到千二的话,服务商就没有任何佣金了,不过行业里面大家现在基本都是默认千二。 需要注意的是,服务商帮忙开千二,实际上没什么成本,如果他们要收取昂贵的手续费,那么就有些不地道了。 千二代开需要哪些资料 1、营业执照照片, 2、法人身份证正反面 3、商户名称 4、公司对公户账号及具体位置开户行 5、手机号一个(能接验证码的) 6、邮箱号一个(

🤗不上班之后,收获很大

🤗不上班之后,收获很大

首先不再想着通过一个产品暴富,这种虽然很吸引人,但很多人都没看到成功者背后的努力,市面上很多产品都有竞品,为什么是他成功了呢 很多拿到结果的独立开发者也好,卖课的也好,他们付出了非常多的努力,并不是如表面所说“割韭菜”那么简单,很多人在很早之前就非常牛逼了,单纯的依靠运气起飞,我现在已经不信了,大力出奇迹,才是王道。 不再想着别人非常需要一个程序员的代码,代码就是快消品,不再执着于细节,不如等到产品有用户了,再为了优化用户真实的体验而开发。 要做产品的话,遍地都是点子,去 X 看一天,你能收获一年都做不完的产品的点子,至于是否能挣钱,另说 将自己当做一个销售,将产品卖给用户,才是最屌的,我彻底摆脱掉了程序员觉得自己技术牛逼就则怎么怎么滴的想法了 坚定的做个人 IP,水滴石穿,持续输出有价值的内容,积累粉丝,是这个时代,每个人都应该做的事情 处理好家庭关系,稳定的家庭关系,是一切事业开始的基础。 保持乐观,这点很难,国内教育,感觉根本没有教人们如何放松,反正我感觉是没学会,因为我这边房子不贵,我在没有房贷压力的情况下,

Plausible 开源版本部署

Plausible 自部署

Google Analytics 用起来不是太习惯,就弄个 Plausible 在自己的 VPS 上部署一下。 官方部署文档可以参考: community-edition ,官方文档是使用 Let's Encrypt 生成证书的,我这里使用的是 Nginx 配置自己的 SSL 证书,记录一下过程。 $ git clone -b v2.1.4 --single-branch https://github.com/plausible/community-edition plausible-ce ​ $ cd plausible-ce ​ $ touch .env ​ $ echo "BASE_URL=https://plausible.domain" >> .env

数据库 Migration

数据库 Migration

记录一下最近开发项目时,使用 typeorm + postgresql 开发业务,用版本化的方式来管理数据库结构的变化,这样数据进行更新时才会安全可控,而且还可以回滚迁移。 typeorm 是如何跟踪这些变化的呢,所有的变动都能通过 migrate 的方式记录下来,主要是依赖数据库自身底层的机制,尤其是二进制日志,即 Binary Log,简称 binlog 记录结构变更(DDL): 当执行 CREATE TABLE、ALTER TABLE、DROP TABLE 等数据定义语言(DDL)语句时,都会被 binlog 详细记录下来 记录数据变更(DML): 当执行 INSERT、UPDATE、DELETE 等数据操作语言(DML)语句时,binlog 也会记录修改前和修改后的数据 我使用 typeorm 来执行这些 migrate,

Ghost 博客部署,我的最爱

Ghost 博客部署,我的最爱

♥️ 强烈推荐 Ghost 博客,我的最爱,之前断断续续瞎折腾过几个博客,始终没有找到合适的,中间还一度自己做了个博客的版本,直到我用上了 Ghost blog,我就停止了折腾。 1️⃣ 主题市场很精美且丰富,超过绝大部分竞品 2️⃣ 开源: 可以在自己的 VPS 上直接部署,完全可控 3️⃣ 性能强大,博客编辑,后台设置,功能非常丰富 4️⃣ SEO 友好,支持 Code 嵌入,三方插件集成,如 Stripe, Zapier 等 5️⃣ 邮件订阅支持,Stripe 支付接入,可以对订阅收费 优点 Ghost 是非常完善的博客系统,也是基于 Nodejs 开发的,不仅提供了 Cloud 版本,