X (Twitter) は 2MB 以上ある HTML の OGP (Twitter Card) を展開してくれなさそう

2025/01/01に公開1

作ったこのサイトの URL を X にポストしても OGP が Twitter Card として展開されなくて困った。

https://mingeiinter.net/

少し前にポストのプレビューで確認したときには展開されていたのになぜ…?
思い当たる節としては、その時からデータを増やしたからページサイズが大きくなったことくらいだけれども…

不思議に思ったので OGP の内容は全く同じで <body> の中身のテキストサイズだけ変えて検証してみた。

大きい HTML の場合

でない

3MB から少しずつファイルサイズを小さくして試していくと…

2MB 未満 HTML の場合

でた!

まとめ

X のドキュメントには、明確なファイルサイズ制限については書かれていないが、実際は og:image として利用する画像などには 3MB の制限があったりするらしいので、同様にシェアするページの HTML のサイズにも制限がありそう。
今回はファイルサイズのみで検証したけれども、もしかすると DOM の深さや他の要素が影響するかもしれないので 2MB というのはあくまで目安ということで。

ちなみに Zenn や Facebook や Threads では HTML のサイズが 3MB 程度であれば問題なく OGP が展開された。

Discussion