EMLOG 图片 SEO 增强插件 —— 一条文章钩子,让图片同时搞定收录与 Core Web Vitals
很多站长知道给图片加alt属性利于 SEO,也知道懒加载能提速。但真正动手优化的时候,往往要面对几个棘手的问题:
- 老文章已经有几百篇了,逐个手动改alt不现实;
- 写文章时编辑器里随手插入的图片经常忘了补全 SEO 属性;
- 百度、谷歌的图片搜索收录慢,不知道除了alt还能做什么;
- LCP、CLS 总是拿不到满分,图片拖了后腿却无从下手;
- 外链图片被人盗链还在其次,隐私 Referer 泄漏才是隐患。
「图片 SEO 增强」这款 EMLOG 插件就是为了解决上面这一系列问题而生的。它不修改你的数据库、不入侵模板文件,只是在文章输出的一瞬间悄悄为图片做了一层"美颜"。
一、插件核心功能一览

插件挂载 EMLOG 的article_content_echo钩子,在文章内容即将发送给浏览器前,用正则匹配所有<img>标签,并按需补全以下 6 大属性与数据:
| 功能 | 自动添加的属性 / 数据 | 解决的问题 |
|---|---|---|
| alt 替代文本 | alt="文章标题" 或 alt="文件名"(可加前后缀) | 搜索引擎理解图片内容的最核心依据 |
| title 悬停提示 | title="文章标题" | 鼠标悬停时的友好提示,部分搜索源也会参考 |
| 懒加载 | loading="lazy" | 首屏外图片延迟加载,降低 LCP 与流量消耗 |
| 异步解码 | decoding="async" | 图片解码不阻塞主线程,提升交互响应速度 |
| 尺寸属性 | width="xxx" height="xxx"(仅本地图) | 浏览器提前预留占位,降低布局偏移 CLS |
| 结构化数据 | ImageObjectJSON-LD | 帮助搜索引擎将文章图片识别为结构化对象,增强图片搜索展示 |
| 外链保护 | referrerpolicy="no-referrer"(外链图) | 防止向第三方图片服务器泄露页面地址 |
每一项都可以在后台独立开关,想开就开,想关就关,不会互相干扰。
二、实际效果长什么样?
假设你写文章时插入了一张图片,原始 HTML 是这样的:
<p>下面是一张演示图:</p> <img src="/content/uploadfile/2026/09/photo-12345.jpg">
插件输出后,这张图片会变成:
<p>下面是一张演示图:</p>
<img src="/content/uploadfile/2026/09/photo-12345.jpg"
alt="EMLOG 图片 SEO 增强插件实测"
title="EMLOG 图片 SEO 增强插件实测"
loading="lazy"
decoding="async"
width="1200" height="800">
文章末尾还会自动追加一段不影响排版的 JSON-LD:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "EMLOG 图片 SEO 增强插件实测",
"image": [
{
"@type": "ImageObject",
"url": "https://your-site/content/uploadfile/2026/09/photo-12345.jpg",
"name": "EMLOG 图片 SEO 增强插件实测"
}
]
}
</script>
三、技术细节里的几个"加分项"
一个好插件不仅功能要对,细节也要经得起推敲。这款插件在源码里做了几件特别值得一提的事:
1. 已有属性不会被覆盖
如果图片在编辑时已经手动写了alt="好图片",插件不会再用文章标题去覆盖它。它只"补全缺失项",绝不做多余的事。这一点对已有手动优化的老文章特别重要。
2. alt 文本来源智能回退
用户可以选择 alt 来源为"文件名"。但插件考虑到了文件名可能是1389472398.jpg这种无意义哈希串,所以它会先判断:文件名是否为纯数字或 8 位以上十六进制串?如果是,就自动回退到文章标题,避免生成垃圾 alt 文本。
3. 本地图片尺寸获取有安全边界
获取本地图片尺寸时,插件会先把src转换为服务器绝对路径,然后用realpath()规范化,最后检查路径是否在EMLOG_ROOT之内。也就是说,即使src里被塞入../../../etc/passwd这种路径穿越字符串,也不会读取到站点外的文件。安全意识在线。
4. 静态缓存避免重复 IO
同一篇文章里如果有 5 张图片,都来自同一个文件路径,getimagesize()只会被调用一次,结果存在函数静态变量里复用,性能开销极低。
5. 外链图片识别与隐私保护
插件通过对比图片src的域名与BLOG_URL,判断是否为外链。外链图片除了可以选择是否应用 SEO 属性外,还会自动加上referrerpolicy="no-referrer",防止 Referer 头泄露。
6. 数据库零污染
整篇插件没有写一次数据库。所有处理都在输出时实时完成。这意味着:
- 原文章内容永远是干净的;
- 禁用插件 = 一切恢复原样;
- 更换主机、迁移数据库都不需要额外处理。
四、后台设置界面长这样
设置页面分为三个 Tab:
- 基本设置 —— 所有开关集中在这里,支持启用/禁用、alt 来源切换、前后缀自定义、是否处理外链图片等。
- 关于插件 —— 显示插件版本、作者、PHP 兼容范围等基本信息。
- 更新日志 —— 从info.json读取的版本历史。
所有设置用 EMLOG 自带的Storage::getInstance()存储,不占用额外数据表。
五、兼容性
- PHP:7.4 ~ 8.3,覆盖目前主流运行环境;
- EMLOG:遵循官方插件规范,挂载标准钩子article_content_echo,不依赖任何第三方插件;
- 浏览器:所有生成的属性(loading、decoding、referrerpolicy、JSON-LD)均为 HTML5 标准特性,现代浏览器完整支持,老浏览器也能正常降级渲染。
六、写在最后
如果你的 EMLOG 博客上已经积累了不少文章,现在又想在图片 SEO 和 Core Web Vitals 上补一补课,这款插件是一个非常轻量且安全的选择。它不会破坏你现有的任何内容,却能让搜索引擎和浏览器同时"看懂"你的图片。
插件作者「落寞」的博客地址是 https://www.cnlog.cc/,有问题或建议可以去留言。
最后提一句:SEO 插件从来不是越多越好,恰到好处的补全 + 不瞎做多余的事,才是长期稳定的优化之道。

暂无评论,快来抢沙发~