meta name="description" 必须写在<head>里且仅出现一次,动态插入或写在<body>无效;内容长度控制在155–160 Unicode字符内,前60字需直击核心问题,避免空泛表述与特殊字符。

meta name="description" 必须写在 里,且只能出现一次
写在
里无效,Googlebot 和 Bingbot 根本不解析;用 JS 动态插入(比如document.head.appendChild())也白搭,因为主流爬虫不执行 JS。
最稳妥的位置是紧贴 <title></title> 后面。CMS 或框架模板里容易全局硬编码,结果所有页面都输出同一段 content,这会被搜索引擎识别为低质信号,直接弃用。
- 静态 HTML:手动编辑
区域,确保只有一处<meta name="description" content="..."> - Next.js:必须在
getStaticProps或getServerSideProps中传入 description,并通过next/head注入,不能靠客户端 useEffect - Hugo / Jekyll:检查 front matter 是否定义了
description字段,再确认模板是否用了{{ .Params.description }}或等效语法输出 - WordPress:禁用“自动填充 description”的 SEO 插件选项,改用 Yoast 或 Rank Math 的单页编辑框,避免模板级 fallback
content 值长度要卡在 155–160 个 Unicode 字符内
不是“150 字”,也不是“英文 160 字符 + 中文另算”——"React.memo".length 是 11,"缓存失效".length 是 4,全按 String.prototype.length 算。粘贴到控制台敲一下最准。
移动端 SERP 实际只显示约 120 字符,所以前 60 字必须直击问题核心。开头别写“欢迎访问”“本站提供”,用户扫一眼就要知道这页能解决什么具体问题。
立即学习“前端免费学习笔记(深入)”;
- ✅ 推荐:
content="React.memo 依赖数组漏写 props.callback 导致缓存失效的 3 种排查方法" - ❌ 避免:
content="前端开发教程|HTML CSS JS 入门学习网站"(堆砌、无动词、空泛) - 特殊字符如全角空格、中文标点、emoji 都算 1 字符,但部分爬虫解析失败,建议删掉
- 双引号
"和尖括号必须转义或剔除,否则破坏 HTML 结构
写了 description 却没出现在搜索结果里,常见原因有哪些
Google 从不保证使用你写的 content。它会比对搜索词、<h1></h1>、正文首段、结构化数据,选它认为“最相关的一段”作为摘要。
- 页面还没被重新抓取:新上线或刚修改,等 1–7 天再查 Google Search Console 的“URL 检查”工具
- 内容与描述严重不符:比如
content写“Python 爬虫”,正文全是“CSS Grid 布局”,Google 直接弃用 - 页面被识别为低质:分页 URL(
/page/2)、筛选参数页(?sort=price)、打印版链接,即使写了也大概率跳过 - 存在
noindex或 robots.txt 屏蔽:description 根本没机会参与展示 - CMS 插件覆盖了你的设置:比如 WordPress 的 All in One SEO 插件启用了“自动描述生成”,会忽略你手写的 meta
name="keywords" 这个标签现在还用不用
不用。Google 自 2009 年起明确忽略 <meta name="keywords" content="...">,Bing、Yandex、百度也都已弃用。它既不加分,也不惩罚,只是浪费一个 <meta> 位置。
极少数场景(如政府备案系统强制要求)可留空:<meta name="keywords" content="">,但绝不要堆砌关键词。
真正影响关键词理解的是:<title></title>、<h1></h1>、正文前 100 字、<img alt> —— 这些才是搜索引擎实际解析并加权的部分。



















