画像ファイル名 最短ルール(SEOとALTの役割分担を10行で)
画像最適化の議論で軽視されがちなのが命名規則です。画質や形式よりも即効性は目立ちませんが、命名の揺れはレビュー差分肥大・重複アセット・検索漏れ・ALT乱立といった隠れコストを生みます。ルールが曖昧だと“微妙に違う別バージョン” が積み上がり、後からの一括移行(例: AVIF化)で工数爆増の温床になります。
そこで本稿では、実務で“これ以上細かくしてもリターンが薄い” という境界に収まる10行ルールを提示し、ALTとの役割分担を明確化します。意図は 探索性(検索/grepしやすさ)・差分安定性・再利用容易性 の3点を最大化することです。
1. 命名10行
- 英小文字のみ・拡張子はそのまま
- ハイフン区切り(アンダースコア/スペース禁止)
- 用途語+識別子(例: hero-lp, card-product-a)
- 冗長語削除(image/img/photo等は不要)
- 撮影日/版数などは末尾(hero-lp-v2)
- 数字連番は避ける(意味ない順序)
- サイズ/解像度を名前に埋め込まない
- 言語混在禁止(romanizeする)
- person-xxx など個人特定語避ける
- ALTは“文脈説明”で別に書く
“短く+用途” だけで後から grep しやすくなり、画像差し替え時の影響調査コストが下がります。
2. NG例 → 改善
NG | 改善 |
---|---|
IMG_2025_0099.PNG | hero-lp.png |
bannerNewFinal2.jpg | banner-sale-v2.jpg |
スクリーンショット 2025-01-01.png | ui-modal-example.png |
productA_final_final.png | product-a.png |
“final_final” はレビュープロセスの不透明さを表すシグナルです。版数は -v2
のように単調増加で記録し、不要化したバージョンは削除して履歴(Git)に任せます。
3. 再命名バッチの基本
# PowerShell例 (空白→ハイフン / 大文字→小文字) Get-ChildItem *.png | ForEach-Object { $n = $_.Name.ToLower() -replace ' +','-' -replace '_','-' Rename-Item $_ $n }
大量一括リネームは “参照更新漏れ” リスクがあります。運用では git mv
を使い差分を明示しつつ、参照(HTML/MDX/TSX) を grep で確認 → lint スクリプト化する流れが安全です。
4. 公開前チェック(5項目)
- 命名ルール10行をすべて満たす
- 文脈はALTに適切に記述
- 個人情報/位置推定語が含まれない
- 迷う語はチーム用語集へ反映
- 差分レビューで不要リネームを避ける
ALT は “その画像で伝わるべき最小情報” に集中し、ファイル名と重複させないことで読み上げ冗長化を防ぎます。
5. まとめ
“短く・用途語+識別子・英小文字・ハイフン” を守り ALT に文脈を書く —— この単純セットが 長期の画像運用コストを恒常的に下げる最小装置 です。細かい派生ルールは導入効果が測定できた段階で初めて追加します。
付録: FAQ
- Q. 数量の多いEC商品画像はどうする?
- 用途語 + SKU のように既存一意キーを末尾に添付 (例:
product-main-12345.jpg
)。SKU自体が無意味なら語源を整理。 - Q. hero-lp-v2 の v2 を何度も増やしたくない
- “一時差し替え” は Git 履歴で追えるため v3 以降が連続する兆候は承認フロー改善のサインです。枝分かれ用途ならサフィックスを意図語 (
-spring
等 ) に。 - Q. ALT も同じ語を入れればSEOに強くなる?
- 重複は冗長で読み上げ体験を損ねます。ファイル名=識別、ALT=文脈説明 と役割分離してください。