明明在页面里写了 description,搜索时显示的却是从正文里抓的一段话,或者干脆只有标题没有描述。遇到这种情况,很多人以为平台不认自己写的描述,其实多数问题出在标签写法或页面状态上。逐条排查下面几个细节,基本能找到原因,不用一遍遍重写文案。
一、先确认标签本身写对了
现象:源码里看着有 description,实际平台抓不到。
原因:常见错误有三类。一是 name 属性写成了 description 之外的名字,比如 desc 或 description2;二是 content 外面用了错误的引号,或者中英文引号混用导致标签被截断;三是标签没放在 head 区域里,被放到了 body 中间,抓取时可能被忽略。任何一种写法错误,都等于没写。
做法:按标准写法核对——meta 标签放在 head 内,name 必须是小写 description,content 用成对的双引号包住文字,标签自闭合。用下面这段脚本抓取页面,把 description 标签原样打出来,缺的、写错的会直接显示出来,省去肉眼翻源码。
# 检查页面的 meta description 是否规范
import urllib.request, re
PAGE = "https://www.example.com/post/desc.html" # 改成要检查的页面
html = urllib.request.urlopen(
urllib.request.Request(PAGE, headers={"User-Agent": "Mozilla/5.0"}), timeout=10
).read().decode("utf-8", "ignore")
m = re.search(r'<meta[^>]*name=["\']description["\'][^>]*>', html, re.I)
if not m:
print("未找到 description 标签(name 可能写错或不在 head 里)")
else:
tag = m.group(0)
c = re.search(r'content=["\'](.*?)["\']', tag, re.I | re.S)
print("标签:", tag[:120])
print("描述内容:", c.group(1) if c else "content 缺失或引号不匹配")
print("字数:", len(c.group(1)) if c else 0)
跑完看输出:提示“未找到”的多半是 name 写错或标签不在 head 里;能读到内容但字数明显偏离正常范围的,说明 content 被截断或混进了多余字符。先把标签改规范,再谈内容写得好不好。
二、标签写对了也可能被平台重写
现象:脚本能读到描述,搜索结果显示的却是另一段文字。
原因:平台会判断你写的描述和页面内容是否匹配。描述里堆满与正文无关的词、或者整段照抄标题、或者长度明显超标,都可能被判定为不贴合,于是改用正文里的片段当摘要。这在平台侧是正常行为,不算“不认”你的描述。
做法:让描述和正文主题一致,核心词在正文里确实出现;不要写与页面无关的营销句;长度控制在七十到九十字。改完等平台重新抓取该页后再看,描述被替换会有一个周期,不是当天改当天生效。
三、页面本身的问题
现象:描述怎么写都不显示,页面上其他信息也搜不到。
原因:如果这个页面根本没被收录,或者被 robots.txt 挡住了抓取,或者页面被设置了 noindex,那么讨论描述显示没有意义——页面压根没进索引。
做法:先搜页面标题看该页是否被收录,再检查 robots.txt 里有没有挡住这个目录,最后看页面头部有没有 noindex。三样里任何一样拦住了,先解决抓取和收录问题,描述的事排到后面。站点地图里提交过该地址也能帮助确认它有没有被发现。
四、同站描述重复导致的弱化
现象:单页描述没问题,但全站几十页用的是同一句话,搜索时这些页显示的描述一模一样。
原因:重复描述让页面之间没有区分度,平台更倾向于按各页正文重新生成摘要,你写的那句就“不出现了”。
做法:给每页写独有的描述,至少保证核心内容不同。批量检查时把重复的描述挑出来,优先改有流量的页面。改完后观察两到三周,看搜索结果里的摘要是否逐步变成你写的内容,同时对比百度统计里的点击率变化,两个数都在动,说明这轮修改是有效的。
描述不显示,先查标签写法、再查与正文是否匹配、然后确认页面被收录、最后看全站是否重复;四步过完,剩下的就交给重新抓取的周期。
相关阅读:
申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!



