通过使用结构化数据 JSON-LD,我为网站带来了更多的流量

最近,我尝试在『玩点什么』网站上,引入了 AMP、APP Indexing,以及结构化数据 JSON-LD。其中 JSON-LD 的效果,最令人惊艳。

结构化数据

在我们了解 JSON-LD 之前,让我们先了解什么是结构化数据。

按 Google 官网的解释是,Google Search 很难理解页面的内容。 但是,您可以通过在页面上包含结构化数据,来向 Google 提供有关页面含义的明确线索来帮助我们。结构化数据是用于提供关于页面的信息并分类页面内容的标准化格式; 例如,在食谱页面上,什么是成分,烹饪时间和温度,卡路里等等。

结构化数据,简单的来说,就是我们告诉 Google 里面拥有什么内容。如对于一篇文章来说,它有标题、作者、发布时间、内容,还有可能有封面图等等。这些内容,都可以直接使用 Google 的爬虫可以理解的方式,展示给搜索引擎。

而当你决定向 Google 提供更友好的数据的时候,Google 也会为你的潜在用户提供更友好的体验。如下是一个搜索菜谱的示例:



搜索示例


Google 展示了菜谱相关的详细信息。它不仅仅包含了以前我们在 SEO 领域的,标题、描述等基本的内容,还用图形化展示了评价、图片等等的信息。

对于我们而言,所做的只是在网页上添加几个标签。就能带来更好的用户体验,何乐而不为呢?

Google Search 支持三种形式的微数据:

  • JSON-LD(Google 推荐的方式)

  • Microdata

  • RDFa(没使用过)

不友好的 MicroData

在过去的几年里,我在我的博客采用了 MicroData,这是一种相当不友好的开发体验。

如下是在 Google 上搜索 Apple 相关的内容,展示的结果:


Google 搜索 “如何重置 mac smc”


是的,我的电脑坏了。。。。。。。。。

是的,我的电脑坏了。。。。。。。。。

是的,我的电脑坏了。。。。。。。。。


其相关的数据展示如下:

Apple 微数据


MicroData 相关的关键字都嵌在 HTML 中,这会导致 HTML 中会多很多无用的标签,如下面的组织名,即 meta 标签的内容:

  
  
  1. <div itemprop="author" itemscope itemtype="http://schema.org/Organization">

  2.  <meta itemprop="name" content="Apple" />

  3. </div>

  4. <div id="sections" itemprop="articleBody">

  5. <div><h2>SMC 的功能</h2><p>在基于 Intel 的 Mac 电脑上,SMC 负责管理以下及其他低层功能:</p>

  6. <ul>

  7. ...

要使用 MicroData,就意味着需要对 HTML 进行大量的改造。

JSON-LD

JSON-LD (全称:JavaScript Object Notation for Linked Data)是一个轻量级的链接的数据格式。人们读写的很容易。它是基于已经成功的 JSON 格式,提供了一种方法,在网络规模有助于JSON数据互操作。JSON-LD 为编程环境,一个理想的数据格式,其余的Web服务,和非结构化的数据库如 CouchDB 和 MongoDB。

即,它可以用 JSON 的形式来展示相关的内容:

  
  
  1. {

  2.  "@context": "http://schema.org",

  3.  "@type": "BreadcrumbList",

  4.  "itemListElement": [

  5.    {

  6.        ...

  7.        "position": 1

  8.    },

  9.    {

  10.        ...

  11.        "position": 2

  12.    },

  13.    {

  14.        "@type": "ListItem",

  15.        "position": 3,

  16.        "item": {

  17.          "@id": "https://www.wandianshenme.com/play/amazon-echo-control-rpi-by-wemo-way-with-faxumo",

  18.          "name": "物联网智能音箱 Amazon Echo 控制 Raspberry Pi GPIO :Fauxmo 模拟 Belkin WeMo 方式",

  19.          "image": "https://www.wandianshenme.com/static/media/uploads/blog/amazon-echo-belkin.jpg"

  20.        }

  21.    }

  22.  ]

  23. }

在这个 JSON 中我们指出了这个页面所包含的数据类型,BreadcrumbList,及其所包含的层级。于是,在搜索结果页,我们就可以获得一个更用户的 URL:


BreadCrumb 示例


而,当我们把我们的文章都标成相应的类型的微数据时,Google 还会展示成这样的:

首页列表

是的,我们只需要在首页搜索相关的内容。就会展示最新 or 最热 or 最欢迎的文章。

其他:AMP

而当,我们为我们的网站添加了 AMP 的功能后,又可以变成这些酷炫的展示效果:

AMP 示例

当用户点击这些链接的时候,将快速快速快速快速快速看到一个网页。这是一些针对移动端优化的页面。

限于之前已经有相关的文章,这里就不多加介绍了。

其他:APP Indexing

对于一个拥有移动版本的网站,如果启用了 APP Indexing。那么当用户在搜索结果页,点击链接的时候,就会:

APP Indexing 示例


只需要注册相应的 URL Scheme,就可以打开相应的 APP 的链接——这又是一项工作量巨大的工作。在网页上配置好相关的 URL,然后注册 SCHEME:

  
  
  1. <data android:scheme="https" android:host="www.wandianshenme.com" />

处理打开事件,再针对不同的页面,打开 APP 上的相应 View:

  
  
  1.  Home: {

  2.    path: '/',

  3.    screen: MainScreenNavigator

  4.  },

  5.  Play: {

  6.    screen: PlayViewContainer,

  7.    path: 'play/'

  8.  },

  9.  PlayDetailView: {

  10.    path: 'play/:slug/',

  11.    screen: PlayDetailViewContainer

  12.  }

对,就是这么复杂才能串到一起。

结论

提升用户体验不是一件容易的事。

特别是你的多数用户看到的是 404,而不是 Google。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
使用json-server删除数据的步骤: 1. 发送DELETE请求,指定要删除的数据的ID。 2. 在json-server的路由配置中,指定如何处理DELETE请求。 3. 在处理函数中,根据请求中的ID,找到要删除的数据。 4. 如果找到了数据,就将其从数据列表中删除,然后返回一个删除成功的响应。 5. 如果没有找到数据,就返回一个找不到数据的错误响应。 下面是一个详细的代码示例: ```js // 安装json-server和axios npm install json-server axios // 在package.json的scripts中添加以下命令 "json-server": "json-server --watch db.json --port 3001" // 创建一个db.json文件,作为数据存储的文件 { "users": [ { "id": 1, "name": "Alice" }, { "id": 2, "name": "Bob" }, { "id": 3, "name": "Charlie" } ] } // 在json-server的路由配置中,指定如何处理DELETE请求 // 创建一个routes.json文件,内容如下 { "/api/users/:id": { "DELETE": "/users/:id" } } // 在代码中发送DELETE请求 // 创建一个deleteUser.js文件,内容如下 const axios = require('axios'); axios.delete('http://localhost:3001/api/users/2') .then(res => { console.log(res.data); }) .catch(err => { console.error(err); }); // 在处理函数中,根据请求中的ID,找到要删除的数据 // 在json-server的db.json文件中添加一些数据 { "posts": [ { "id": 1, "title": "json-server", "author": "typicode" }, { "id": 2, "title": "axios", "author": "typicode" } ], "comments": [ { "id": 1, "body": "some comment", "postId": 1 }, { "id": 2, "body": "some comment", "postId": 2 } ] } // 在处理函数中,根据请求中的ID,找到要删除的数据 // 创建一个server.js文件,内容如下 const jsonServer = require('json-server'); const server = jsonServer.create(); const router = jsonServer.router('db.json'); const middlewares = jsonServer.defaults(); server.use(middlewares); server.use(jsonServer.rewriter({ "/api/*": "/$1" })); server.use(router); // 添加DELETE请求处理函数 router.delete('/users/:id', (req, res) => { const id = parseInt(req.params.id); const users = router.db.get('users'); const index = users.findIndex(user => user.id === id); if (index !== -1) { users.splice(index, 1); res.jsonp({ success: true }); } else { res.status(404).jsonp({ error: 'User not found' }); } }); server.listen(3000, () => { console.log('JSON Server is running'); }); ``` 这样就完成了使用json-server删除数据的详细写法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

phodal_

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值