プロフィールREADMEに貼った「Most Used Languages」カードが、ある日から画像切れになった。あるいは表示はされるけど「なぜかHTMLが1位」「仕事で書いてるGoが出てこない」。この記事は、その2つをまとめて片付けるためのメモです。
先に結論から。
-
表示されない:多くの場合、共有の公開インスタンス側の問題です。
github-readme-statsは README で「no longer maintained」と明記し、後継の GitHub Stats Extended を案内しています。ドメインを差し替えるのが最短です。 - 言語がおかしい:バグではなく仕様のことが多いです。集計対象は「自分が持っているフォークでないpublicリポジトリのバイト数」だけです。
1. まず画像URLを直接開く
README上の画像を右クリックしてURLをコピーし、新しいタブで開きます。
- エラーやタイムアウト → サービス側の問題(2章へ)
- 正常に表示される → Markdownかキャッシュの問題(4章へ)
2026-10-31に試したところ、旧公開インスタンスの github-readme-stats.vercel.app/api/top-langs/?username=... は 503 を返しました。一回試しただけなので稼働率の話ではありません。ただ、画像切れの原因としては一番よくあるパターンです。
2. 表示されない時の対処
方法A:GitHub Stats Extended にドメインを差し替える
上流が後継として案内しているフォークです。

同じ日に確認した時点では 200 で表示されました。今までのパラメータがそのまま使えるかは、Stats Extended 側のドキュメントで確認してください。
方法B:GitHub Actions で静的SVGを作る
stats-organization/github-readme-stats-action を使うと、SVGを自分のリポジトリにコミットできます。表示のたびに共有サーバーへ問い合わせないので、外部が落ちても画像は残ります。そのかわり、数値はワークフローが走った時にしか更新されません。
方法C:自分でデプロイする
自分のトークンでインスタンスを立てれば、レート制限を自分で管理できます。privateリポジトリの言語も含めたい場合は、この方法か方法Bで PAT を使うしかありません。
方法D:言語ウィジェット入りのカードを別サービスで作る
利害関係を書いておくと、私は GitHubCard の開発に関わっています。プロフィールカードのジェネレーターで、Top Languages をstats・streakなどと一緒に1枚のカードに配置し、SVG/PNGで書き出せます。デフォルトカードはログイン不要で見られて、カスタムデザインを保存する時だけGitHubログインが必要です。無料のカードには小さく GitHubCard のマークが入ります。ソースは公開していないので、セルフホストはできません。パラメータをいじるより、見た目を直接触りたい人向けです。
3. 言語の割合がおかしい時
上流READMEに書かれている仕様をまとめると、こうなります。
| 症状 | 理由 | 対処 |
|---|---|---|
| 仕事やOSSで書いた言語が出ない | 他人・組織のリポジトリへのコミットは数えない | 現状APIで取れないので諦めるか、自分のリポジトリに置く |
| フォークしたリポジトリの言語が出ない | フォークは対象外 | 仕様どおり |
| privateの言語が出ない | 公開インスタンスはpublicのみ | 方法B/Cで自分のトークンを使う |
| HTML・Jupyter Notebook・CSSが上位に来る | デフォルトはバイト数だけで順位を決める |
hide か重みの変更 |
| 特定リポジトリに引っ張られる | 巨大な生成ファイルなど | exclude_repo |
使えるパラメータの例です。

-
hide:言語をカンマ区切りで非表示 -
exclude_repo:リポジトリをカンマ区切りで除外 -
size_weight/count_weight:バイト数とリポジトリ数の重み。READMEでは0.5/0.5が推奨と書かれています -
langs_count:表示数(1〜20)
なお上流READMEも書いているとおり、このカードは「GitHub上でどの言語のコードが多いか」の指標で、スキルの高さを示すものではありません。
4. URLは開けるのにREADMEで出ない時
- キャッシュ:GitHubは外部画像をcamoというプロキシ経由で表示します。直しても数分は古い画像が残ることがあります。
-
Markdownの崩れ:URLの途中に空白や全角文字が入っていないか。
hideに空白を含む言語名を入れるなら%20にします。 - ユーザー名:改名した場合、古い名前のURLは使えません。
まとめ
- 画像URLを直接開いて、サービス側かREADME側かを切り分ける
- サービス側なら Stats Extended に差し替え、確実性を取るならActions
- 言語がおかしいのは大抵仕様。
hide・exclude_repo・重みで調整 - 1枚にまとめたいなら、GitHubCard のような言語ウィジェット付きカードもあり