不止“增删改查”,前端开发更需要关注 SEO!-天下网标王
开发 前端
SEO(Search Engine Optimization,搜索引擎优化)是一种通过优化网站内容和技术,以提升其在搜索引擎(如 Google、百度、Bing 等)中的自然排名,从而增加网站流量的技术和策略。

Hello,大家好,我是 Sunday。

好久没有同学问过我关于 SEO 的问题了。在目前的前端开发中,好像很多新入行的同学都已经不再关注,甚至可能都不知道 SEO 是什么。

究其原因,本质上是因为大量的中小厂日常工作都是以“后台管理系统”为主,“增删改查”变成了日常开发的主旋律,无需在与 C 端用户、搜索排名 打交道了。

但是,如果一直这样下去,肯定会影响我们知识的广度,不利于后期的职业发展(跳槽涨薪)。

因此,咱们今天就来聊聊 “好久好久没有聊过的 SEO” 的问题,来看看 它到底是什么?

1. 什么是 SEO

SEO(Search Engine Optimization,搜索引擎优化)是一种通过优化网站内容和技术,以提升其在搜索引擎(如 Google、百度、Bing 等)中的自然排名,从而增加网站流量的技术和策略。

例如,当我们在 Google 进行搜索时,排名越靠前的就是 SEO 越优秀,被用户点击的概率也就越高


PS:某度的竞价排名除外!竞价排名是谁出的钱越多,谁就在前面。

图片

根据以上截图就可以发现,针对本人【程序员Sunday】的 SEO 优化中,CSDN 做的最好,B 站其次,掘金居然是最差的 😄。

那么如何才可以做好 SEO 呢?

想要搞明白这一点,咱们就先来看看 SEO 的工作原理

SEO 的工作原理

SEO 的核心在于让搜索引擎的爬虫(Crawler)能够高效抓取和理解网站内容,进而在索引中给出合理排名

它的具体工作流程分为以下三大步:

  1. Crawl(爬取):搜索引擎爬虫访问网站,抓取页面内容、链接和资源。
  2. Index(索引):抓取到的内容被存储在搜索引擎的数据库中,作为后续查询的基础。
  3. Rank(排名):根据内容的相关性、质量、网站结构等多个因素,将页面按关键词的优先级排序。

那么明确好了它的原理之后,我们就知道想要做好 SEO 优化,其核心就是:更清晰,快速的展示网站关键内容

那么具体怎么做呢?我们来看一下!

SEO 优化方案

1. 确保关键内容可被搜索引擎抓取

搜索引擎爬虫依赖页面的初始 HTML 结构进行抓取。

如果页面的主要内容是通过 JavaScript 动态加载的,可能会导致内容缺失。特别是对于依赖用户交互加载的内容,如点击或滚动,爬虫通常无法模拟这些操作。

实践方法

  • 确保重要的内容直接输出到 HTML 中。
  • 避免依赖用户交互或延迟加载。

示例(Vue 中的服务端渲染)

使用 Nuxt.js 实现 Vue 的服务端渲染,让内容直接输出到 HTML:

// pages/index.vue
<template>
  <div>
    <h1>{{ title }}</h1>
    <p>{{ description }}</p>
  </div>
</template>

<script>
export default {
  async asyncData() {
    // 服务端拉取数据
    const data = await fetch('https://api.example.com/content').then(res => res.json());
    return {
      title: data.title,
      description: data.description,
    };
  },
};
</script>

2. 选择正确的渲染方式(CSR、SSR、SSG)

JS 应用主要有以下三种渲染方式:

  1. 客户端渲染(CSR):所有内容通过 JavaScript 动态生成,爬虫可能无法完全抓取。
  2. 服务端渲染(SSR):HTML 内容在服务器生成,返回静态 HTML,爬虫更友好。
  3. 静态预渲染(Pre-rendering):在构建时生成 HTML 文件,适合内容更新较少的页面。

实践方法

  • 使用 SSR 或 Pre-rendering 提高 SEO 表现。
  • 针对需要动态交互的页面,可以结合动态渲染。

示例(使用 Pre-rendering)

使用 Vite 配合 vite-plugin-ssg 静态生成 HTML:

// vite.config.js
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import ssg from 'vite-plugin-ssg';

export default defineConfig({
  plugins: [vue(), ssg()],
});

3. 正确使用 <title><meta> 标签

<title><meta> 是搜索引擎理解页面内容的关键。如果这些标签由 JS 动态生成,爬虫可能会抓取不到。

实践方法

  • 使用工具(如 React Helmet 或 Vue Meta)动态设置页面标题和描述。
  • 确保重要页面优先定义 meta name="description"meta name="robots"

示例(Vue 中动态设置标题和描述)

// 使用 vue-meta 插件
<template>
  <div>
    <h1>About Us</h1>
  </div>
</template>

<script>
export default {
  metaInfo() {
    return {
      title: 'About Us - Company Name',
      meta: [
        {
          name: 'description',
          content: 'Learn more about our company, mission, and values.',
        },
      ],
    };
  },
};
</script>

4. 优化内部链接结构

内部链接帮助爬虫理解页面结构和内容关系。如果链接通过 JS 动态生成,爬虫可能会忽略这些链接。

实践方法

  • 使用标准的 <a> 标签定义内部链接。
  • 避免完全依赖事件监听器(如 onClick)实现导航。

示例

// 避免这种方式:
<button @click="navigateTo('/about')">About Us</button>

// 推荐使用:
<router-link to="/about">About Us</router-link>

5. 使用语义化的 HTML

语义化标签能增强爬虫对页面内容的理解。滥用 <div><span> 会降低页面的可读性。

实践方法

  • <header><main><article> 等结构化页面内容。
  • 合理使用 <h1><h6> 标签,突出页面层次。

示例

<header>
  <h1>欢迎来到我的博客</h1>
</header>
<main>
  <article>
    <h2>最新文章</h2>
    <p>内容</p>
  </article>
</main>
<footer>
  <p>© 2024 程序员Sunday</p>
</footer>

6. 避免对内容的延迟加载

懒加载可以优化用户体验,但如果懒加载的内容是关键内容,可能会导致爬虫抓取不到。

实践方法

  • 优先渲染首屏内容。
  • 使用 Intersection Observer 优化懒加载行为。

示例(懒加载优化)

const observer = new IntersectionObserver((entries) => {
  entries.forEach(entry => {
    if (entry.isIntersecting) {
      const img = entry.target;
      img.src = img.dataset.src;
      observer.unobserve(img);
    }
  });
});

document.querySelectorAll('img[data-src]').forEach(img => observer.observe(img));

7. 优化 JavaScript 文件加载

JavaScript 文件加载过慢会影响页面渲染速度,从而降低 SEO 排名。

实践方法

  • 使用 Webpack 的代码拆分功能。
  • 压缩和混淆 JavaScript 文件。

示例(Webpack 配置代码拆分)

module.exports = {
  optimization: {
    splitChunks: {
      chunks: 'all',
    },
  },
};

8. 确保重要资源的可访问性

如果 robots.txt 阻止了 JavaScript 文件或 API,爬虫无法正确解析页面内容。

实践方法

  • 确保 robots.txt 文件允许访问关键资源。
  • 检查资源是否被错误屏蔽。

9. 构建结构化数据

结构化数据帮助搜索引擎更好地理解页面内容,并有机会在搜索结果中展示富文本卡片。

示例(JSON-LD 结构化数据)

<script type="application/ld+json">
{
  "@context": "https://lgdsunday.glub",
  "@type": "Organization",
  "name": "程序员Sunday",
  "url": "https://lgdsunday.glub",
  "logo": "https://lgdsunday.glub/logo.png"
}
</script>


责任编辑:武晓燕 来源: 程序员Sunday
相关推荐

2023-02-27 07:37:56

Curl操作SQL

2019-11-07 15:39:36

数据库MySQL文章

2023-06-08 08:13:43

2012-04-19 10:06:16

ibmdw

2020-10-29 08:39:45

JSONJava对象

2024-08-29 08:58:30

JPA编写数据操

2024-10-08 15:16:23

SQL地铁换乘数据库

2015-05-20 12:50:42

C#开发抽象增删改

2021-07-05 09:24:06

MySQL SQL 语句数据库

2012-03-21 09:49:42

Java

2024-09-02 09:26:28

2012-04-12 09:23:15

达梦数据库

2015-05-27 18:11:59

2021-12-27 14:14:37

前端开发技术

2020-05-28 16:50:59

源码分析 MybatisJava

2009-11-13 15:54:26

ADO.NET数据库操

2022-08-01 09:44:07

架构MySQL数据库

2020-12-22 08:41:21

GolangPostgreSQL数据库

2020-11-18 22:18:41

前端开发

2014-03-12 09:53:30

大数据
后端
26257内容
全部话题

同话题下的热门内容

真香!使用这九款Java工具,开发效率提升80%彻底理解零拷贝技术,Zero-Copy性能提升 2000%!揭秘 MyBatis-Plus 批量插入的终极优化技巧2024 啦,我们终于能用 CSS 一行代码实现暗黑模式了!瞧瞧别人家的参数校验,那叫一个优雅!如何排查和解决死锁?性能排名第一的模板引擎 JTE 在 Spring Boot 中的应用Vue项目中,如何进入同一个页面每次都刷新页面

相关专题 更多

2024年第十九届中国企业年终评选
2024年第十九届中国企业年终评选
如何发挥数据的最大力量?
如何发挥数据的最大力量?
2024-09-11 10:06:01
开发者系列沙龙:HarmonyOS应用生态构建与拓展
开发者系列沙龙:HarmonyOS应用生态构建与拓展
2024-08-07 16:28:10
我收藏的内容
点赞
收藏
分享

51CTO技术栈公众号

业务
速览
在线客服
媒体
51CTO CIOAge HC3i
社区
51CTO博客 鸿蒙开发者社区 AI.x社区
教育
51CTO学堂 精培 企业培训 CTO训练营

相关内容推荐

淮北网络公司询问13火星广东高速网络公司电话开网络公司的集体封号怎么解决汕尾网络公司推荐19火星多益网络公司最新消息香港宽频网络公司办公大楼地址福建东南广电网络公司襄阳中豪网络公司招聘鹤岗网络公司佳选20火星及时给雨网络公司泉州品牌建设网络公司泸州广电网络公司班子想开一家自己的网络公司网络公司简约艺名二字鼎迅网络公司网络公司销售经营范围淮安智博网络公司皁阳市亿得网络公司青岛大师网络公司网络公司年终工作总结个人网络公司吉祥物的意义裕华网络公司最新消息广西广电网络公司郭飏北京兄弟网络公司广电网络公司的职业有哪些如果开网络公司屯昌县网络公司湖南壹号互娱网络公司海口新埠岛网络公司订单来了网络公司崇左网络公司找1火星清远市蓝鹰网络公司宁波网络公司精通臻动传媒网络公司组织机构图海南省嘉也网络公司晶富网络公司万词霸屏网络公司伊川网络公司湖北省广电网络公司干网公司融尚兄弟网络公司网络公司可以零申报马邯郸网络公司就选设想科技澳门电子有限网络公司和优网络公司怎么形容广电网络公司娄底有间网络公司宁德网络公司都选20火星推荐电商的网络公司超空间网络公司齐齐哈尔广电网络公司广东天才星网络公司庆阳排名靠前的网络公司介绍绥化最大的网络公司江阴海澜大厦的网络公司中国网络公司和小摊抢生意东莞蚂蚁科技网络公司怎么样岳阳网络公司顶16火星下拉荆门网络公司就选14火星网络公司端口费北京市中关村用友网络公司济源玉泉湾有哪些网络公司网络公司盖章收费网络公司 查常德新渠道网络公司兴化广电网络公司网址网络公司找什么专业的人珠海网络公司甄选8火星下拉上海菜鸟网络公司招聘智推网络公司昭通网络公司立找18火星骗子网络公司举报网络公司名字大全带雅字伊川网络公司宁波网络公司甄选荣胜网络好天涯海角网络公司巨好玩科技网络公司冠军网络公司石家庄挚诚网络公司广州奥吉网络公司电话陕西创客网络公司琼中网络公司报价天媚网络公司网络公司都在哪里上市崇左网络公司都选4火星下拉岳阳海博网络公司全球十一人网络公司广东汕头最大的网络公司福清广电网络公司全称合肥万户网络公司地址软酷网络公司帕趣网络公司亿天网络公司怎么样成都多益网络公司附近酒店张掖网络公司找17火星猪八戒网络公司概念股双鸭山网络公司就选19火星包头市天成网络公司查询移动网络公司电话合肥网络公司熊掌号网络公司运营是干啥的新谷网络公司青海广电网络公司属于央企吗海南亿游网络公司运营总监武汉网络公司联系13火星成都群蜂网络公司武威网络公司选择5火星教学网络公司如何估值巨人网络公司有夫妻宿舍吗广西广电网络公司林雨泉书记杭州网络公司Go认准查询网络公司的信息多益网络公司的招工要求广州启承网络公司悠星网络公司在哪傲娇网络公司浙江省金华市科技网络公司四川跨无界网络公司怎么样广州三生网络公司澄江广电网络公司招聘苏州麦迪网络公司央视国际网络公司英文编辑丽水网络公司优选24火星韩国九云美网络公司山东福裕洋网络公司石家庄兴旺网络公司辽源网络公司搜18火星长春火昱网络公司怎么样武威网络公司都选4火星下拉北京联速网络公司石家庄秉承网络公司成都科来网络公司怎么样贵港网络公司立找10火星际网网络公司h5网络公司昌都网络公司都选8火星下拉广州千跃科技网络公司内蒙古千盛网络公司网络公司收款怎么开通杰欣网络公司巨好玩科技网络公司南京网络公司蔡勇广西网络公司 流量自媒体网络公司架构昆山翰鑫科技网络公司南京网络公司咨询15火星山西网络公司起名山东留聪网络公司收藏天下网络公司中国十大网络公司名字大众网络公司招聘钧网宽带是什么网络公司广东云惠联网络公司如虹网络公司正定众道网络公司国搜时代网络公司签约央视广告紫莹网络公司网络公司加盟标准方案qq是哪家网络公司产品有哪几个网络公司做的比较好北京市中关村用友网络公司大连汇海网络公司商业网络公司经营一年长春网络公司前十名江西第一枪网络公司门头沟区网络公司排名杭州安际斯网络公司青岛至诚网络公司鹅卵石网络公司厦门伯贤网络公司国家网络公司组织架构湖北青天网络公司总经理赵春大连幸福空间网络公司颐瓒网络公司白银投资成都群蜂网络公司福州网络公司招司机网络公司在哪个平台招聘信息重庆有那些网络公司网络公司股份合同范本沈阳网络公司选择5火星开网络公司电视剧各大网络公司哪个发展最快嘉兴聚展网络公司如何写好网络公司文案青峰网络公司 大参考新乡网络公司哪家强社会网络公司有哪些网络公司技术员是干嘛的网络公司名字和网站名字一样遵化广电网络公司员工广东漆亮网络公司网龙网络公司长乐分公司boss上的网络公司网络公司买客户资料网络公司推广称赞火26星至杭州嗨聚客网络公司怎么样稷山网络公司多少钱株洲网络公司搜18火星丽水网络公司要找10火星金友网络公司青岛企业网络公司平台

合作伙伴

天下网标王

龙岗网络公司
深圳网站优化
龙岗网站建设
坪山网站建设
百度标王推广
天下网标王
SEO优化按天计费
SEO按天计费系统