VuePress 博客之 SEO 優化(三)標題、鏈接優化

来源:https://www.cnblogs.com/yayujs/archive/2022/03/18/16021198.html
-Advertisement-
Play Games

前言 在 《一篇帶你用 VuePress + Github Pages 搭建博客》中,我們使用 VuePress 搭建了一個博客,最終的效果查看:TypeScript 中文文檔。 本篇講講 SEO 中的一些細節優化。 1. 設置全局的 title、description、keywords // co ...


前言

《一篇带你用 VuePress + Github Pages 搭建博客》中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档

本篇讲讲 SEO 中的一些细节优化。

1. 设置全局的 title、description、keywords

// config.js
module.exports = {
    title: "title",
    description: 'description',
    head: [
        ['meta', { name: 'keywords', content: 'keywords'}]
    ]
}

关于标题如何写,参照老旧的 《百度搜索引擎优化指南2.0》:

我们建议网页标题可以这样描述:

首页:网站名称 或者 网站名称_提供服务介绍or产品介绍

频道页:频道名称_网站名称

文章页:文章title_频道名称_网站名称

也可以参考这篇《百度搜索网页标题规范》里的规范。

关于描述:

Meta description是对网页内容的精练概括。如果description描述与网页内容相符,百度会把description当做摘要的选择目标之一,一个好的description会帮助用户更方便的从搜索结果中判断你的网页内容是否和需求相符。Meta description不是权值计算的参考因素,这个标签存在与否不影响网页权值,只会用做搜索结果摘要的一个选择目标。

关于关键词,注意 keywords 使用英文逗号分隔,中文逗号则会被认为是长句。

我们直接看一个百度百科词条的设置:

image.png

2. 自定义页面 title、description、keywords

通过 Front Matter 自定义:

---
title: title
description: description
meta:
  - name: keywords
    content: super duper SEO
---

3. 图片添加 alt 属性

根据 Google 的新手 SEO 指南

使用 alt 属性

为图片提供说明性文件名和 alt 属性说明。alt 属性使您能够为图片指定替代文本,在图片由于某种原因不能显示时起到救场的作用。

为什么使用此属性?如果用户使用屏幕阅读器等辅助技术查看您的网站,则 alt 属性的内容会提供关于照片的信息。

另一个原因是,如果您将图片用作链接,则该图片的替代文本会等同于文字链接的定位文字。但是,如果文字链接可以起到相同的作用,我们建议不要在网站的导航中使用太多图片作为链接。最后,优化图片文件名和替代文本可使图片搜索项目(如 Google 图片)更好地理解您的图片。

4. 精简 url

参照《百度搜索引擎优化指南2.0》

URL尽量短,长URL不仅不美观,用户还很难从中获取额外有用的信息。另一方面,短url还有助于减小页面体积,加快网页打开速度,提升用户体验。

参照 Google 搜索中心的《SEO 新手指南》

简洁网址易于传达内容信息

为网站上的文档创建描述准确的类别和文件名,不仅可以帮助您更好地组织网站,而且可以为希望链接到您的内容的用户创建更简单、易于使用的网址。如果网址极为冗长、含义模糊,并且包含很少的可识别字词,访问者可能会望而却步。

下面的网址可能会造成困惑且不易于使用:
https://www.brandonsbaseballcards.com/folder1/22447478/x2/14032015.html

如果您的网址有明确的含义,则该网址在不同上下文中都可能会更实用且更易于理解。
https://www.brandonsbaseballcards.com/article/ten-rarest-baseball-cards.html

像我文档的地址是:https://ts.yayujs.com/learn-typescript/handbook/TheBasics.html

其实其中的 learn-typescript 就是没有必要的,之所以会有这个,是因为之前使用 GitHub Pages,这是我对应的 GitHub 的仓库名,但如果是自己建站,其实就没有必要写这个了,我们直接修改 config.js 中的 base 配置:

module.exports = {
  	base: ''
}

但是如果你的地址已经对外发出去了呢?亦或者已经被收录了,这个时候你可以通过 Nginx 的 301 重定向来实现:

    server {
        listen 443 ssl;
        server_name ts.yayujs.com;
  			// ...
        location ^~ /learn-typescript/ {
    				rewrite ^/learn-typescript/(.*)$ https://yayujs.com/$1 permanent;
    				alias /home/www/website/ts/;
        }
  			// ...
   }

此时你再访问 https://ts.yayujs.com/learn-typescript/handbook/EverydayType.html,就会跳转到 https://yayujs.com/handbook/EverydayType.html

5. 链接加上 nofollow

搜索引擎基本的 PageRank 算法,其基本假设是:更重要的页面往往更多地被其他页面引用。所以我们可以使用 nofollow 来告知 Google 不要跟踪链接到的网页,这样就不会分走我们页面的权重。

那为什么会有 nofollow 这种方法存在呢?这也很好理解,就比如一些你在你的博客发表了一个垃圾网站的评论,为了提醒他人,加了这个网站的链接,你当然不希望这个网站因为你的声誉而获益。这时候就非常适合使用 nofollow。

使用 nofollow,我们只用在链接上加上 nofollow 属性即可:

<a href="http://www.example.com" rel="nofollow">Anchor text here</a>

根据 VuePress 的官方文档,我们知道:

image.png

VuePress 博客默认的链接属性是 noopener noreferrer,我们修改下 config.js,添加上 nofollow:

    
module.exports = {
  	markdown: {
      externalLinks: { target: '_blank', rel: 'nofollow noopener noreferrer' }
    }
}

我们再检查下 DOM 元素,就会发现带上了 nofollow 属性:

image.png

6. 多页文章

参考 Google 搜索中心的“遵循抓取和索引编制最佳做法”:

多页文章:如果您的文章分为几个页面,请确保有可供用户点击的下一页和上一页链接,并且这些链接是可抓取的链接。您只需这样做,Google 就可以抓取这种网页集。

这里不需要我们特别做什么,别觉得有了侧边栏,就把上下篇文章的链接干掉就行。

7. robots.txt

robots.txt 文件规定了搜索引擎抓取工具可以访问你网站上的哪些网址, 此文件主要用于避免网站收到过多请求。

但是要注意:robots.txt 不是一个好的阻止搜索引擎抓取某个网页的机制,假如 robots.txt 规定了某个文件不应该被访问,但是否被执行,完全看搜索引擎是否按照 robots.txt 的规范来执行,当然像 Google 等搜索引擎会按照规范正规抓取,其他的搜索引擎就不一定了。又比如网页被其他公开的网页引用了,仍可能会找到该网页并收录。

若要正确阻止网址出现在 Google 搜索结果中,应该为服务器上的文件设置密码保护使用 noindex 元标记或响应标头,或者彻底移除网页。

对于我这样一个允许完全访问的站点来说,更多的作用是告诉搜索引擎我的 sitemap 地址。

由于 robots.txt 文件应该位于网站的根目录下,因此,我们可以直接在 .vupress/public下新建一个 robots.txt 文件,文件内容写入:

Sitemap: https://ts.yayujs.com/sitemap.xml

User-agent: *

具体 robots.txt 可以设置的字段可以参阅「创建 robots.txt 文件」

除了直接创建,也可以使用 vuepress-plugin-robots 插件,这里就不多叙述了。

8. 404 页面

参照 「搜索引擎优化 (SEO) 新手指南」

显示实用的 404 页面

用户偶尔会因点击损坏的链接或输入错误的网址而转到您网站上不存在的网页。使用自定义 404 页面能够有效引导用户返回到您网站上的正常网页,从而大幅提升用户的体验。不妨考虑添加返回根网页的链接,并提供指向您网站上热门内容或相关内容的链接。您可以使用 Google Search Console 找出导致“未找到”错误的网址来源。

vuepress-theme-reco 这个主题的 404 页面默认用的是腾讯公益:

image.png

如果你想关闭:

module.exports = {
  theme: 'reco',
  themeConfig: {
    noFoundPageByTencent: false
  }  
}

样式会变成这样:

image.png

如果你想要修改这里的文案,可以直接在源码里修改,目录为 node_modules/vuepress-theme-reco/layouts/404.vue

image.png

9. 移动端设置

module.exports = {
  	head: [
      ['meta', { name: 'viewport', content: 'width=device-width, initial-scale=1' }],
    ]
}

此标记可告知浏览器如何在移动设备上呈现网页。该标记的存在可向 Google 表明该网页适合移动设备。

10. 测试与优化工具

10.1 Lighthouse

Google Lighthouse 是一种用于衡量网页质量的开源自动化工具。它可以针对任何公共或要求身份验证的网页运行。Google Lighthouse 会对网页的性能,可访问性和搜索引擎优化进行审核。它还包括测试渐进式 Web 应用程序是否符合标准和最佳实践的功能。

我们安装下 Lighthouse 扩展程序,然后在需要审查的网站上,点击 Lighthouse 插件,再点击「Generate report」:

image.png

等待一段时间,就会生成一个报告:

image.png

我们可以查看 Performance、Accessibility、Best Practices、SEO、PWA 五个方面的分数和修改建议,根据这个建议进行调整,尽可能的优化就好了。

10.2 web.dev

官网地址:https://web.dev/measure/,你可以理解为网页版的 Lighthouse,只用在网页上输出你的地址就行,背后还是用的 Lighthouse

10.3 Page Speed Insights

Google 提供的页面速度测试工具,地址:https://pagespeed.web.dev/

输入地址后,就可以进行分析,会出现分数和优化建议:

image.png

系列文章

博客搭建系列是我至今写的唯一一个偏实战的系列教程,预计 20 篇左右,讲解如何使用 VuePress 搭建、优化博客,并部署到 GitHub、Gitee、私有服务器等平台。本篇为第 29 篇,全系列文章地址:https://github.com/mqyqingfeng/Blog

微信:「mqyqingfeng」,加我进冴羽唯一的读者群。

如果有错误或者不严谨的地方,请务必给予指正,十分感谢。如果喜欢或者有所启发,欢迎 star,对作者也是一种鼓励。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在一些內部OA或者流轉的文件,或者給一些客戶的報價文件、合同,或者一些醫院出示的給保險機構的病歷資料等,有時候可能都希望快速的使用電子簽章的處理方式來給文件蓋上特定的印章,本篇隨筆介紹基於Vue&Element的前端項目採用第三方組件vue-drag-resize和圖片轉換Base64的方式實現圖片... ...
  • 基於級聯變數的CSS自定義屬性,已經出來很多年了。 雖然有less、sass等預處理器大行其道,但是自定義屬性也有它的特點和用處,諸如在js中讀寫、作用域設置等等,在處理UI主題切換等功能上也發揮著很大的作用。 自定義屬性 CSS自定義屬性(Custom Properties),在一個css選擇器內 ...
  • 經過前面三天的學習,Node.js的基礎知識已逐漸掌握,今天繼續學習緩存區和文件操作,並稍加整理加以分享,如有不足之處,還請指正。 ...
  • 前言 在 《一篇帶你用 VuePress + Github Pages 搭建博客》中,我們使用 VuePress 搭建了一個博客,最終的效果查看:TypeScript 中文文檔。 本篇講講 SEO 優化中的 Open Graph protocol。 meta 標簽 如果我們打開思否任意一篇文章,比如 ...
  • 語義化是指使用恰當語義的html標簽,讓頁面具有良好的結構和含義。 比如p標簽就代表段落;article代表正文內容等。 語義化的好處有以下兩點: 開發者友好:使用語義類標簽增強了可讀性,開發者也能夠清晰地看出網頁的結構,也更為便於團隊的開發和維護; 機器友好:帶有語義的文字表現力豐富,更適合搜索引 ...
  • 本人是重度書簽使用者,多年收藏積累的書簽有4萬多。 雖然我對書簽的文件夾進行了結構化的整理,但是每當添加新的書簽時候,還是很難快速的找到相關的文件夾。 因此開發這個小插件可以快速的對書簽進行添加和整理。 ...
  • 開源項目其實有一個成熟周期,這個周期大概是三年左右,自React框架在2013年發佈並引爆了前端框架的大潮,這個屬於前端的周期就此開始了。之後在2015年5月開源的React Native又開啟了屬於Web移動前端的周期,15-16年,18-19年,21-22年正好就是屬於移動前端的三個爆發點。 ...
  • 描述: 本篇文章為了記錄日常生活中或者項目中經常使用到的JS方法,會長期記錄... 數組中的方法 1.map和forEach方法 map 參數為回調函數,得到一個新數組 forEach 修改原數組,不會產生新數組 2.pop和push方法(棧結構) push 向數組末尾添加一個元素或者多個元素,會改 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...