明確にさせておきますが、ご指摘の課題はクローラーと API リクエストでのみ発生しているのでしょうか。
Google のドキュメント によると:
さらに、クローラーはリクエストヘッダーに
Accept-Languageを設定せずに HTTP リクエストを送信します。
Google は Accept-Language ヘッダーを設定しないため、このアプローチでは Google に関する課題を解決することはできません。
html タグの lang 属性は、常にサイトのデフォルトロケールに設定されます。これは、ユーザーが設定ページからサイトのデフォルトロケール以外のロケールを選択した場合も同様です。