2018年今現在の所感ですが、いろいろな方面で考えてみます
追記:2024年では8000文字ぐらいまでは各社ブラウザベンダー対応してれていそう 2024年7月時点のRFCの仕様を鑑みると、URLの文字数は8000文字まで対応されている - コード日進月歩
各視点ごとの見解
RFC定義としての見解
3.2.1 一般構文
HTTP プロトコルでは、URI の長さにどんな制限も設けていない。 サーバは、自身が持つどんなリソースの URI も扱えなければならないし、もしそのような URI を生成する GET ベースのフォームを用意するなら、無制限の長さの URI を扱えるべきである。 もし、その URI がサーバが処理できるものよりも長ければ、サーバは 414 (Request-URI Too Long) ステータスを返すべきである (section 10.4.15 参照)。
HTTP2.0だとどうなのよという話はありますが、HTTP2.0のRFCであるRFC7540には特段URIに関しての記載がないのでHTTP1.1と変わらないと思われる。
ブラウザ実装としての見解
InternetExplorerは2083文字と公式で案内している。
このご時世だと気にするべきはEdgeだとは思うんですが、Edgeに関してはオフィシャルな情報が存在しない。
他のブラウザは明言されていないが特に大量の文字を扱うことに関しては問題ないという見解がググるとちらほら出てくる
SEOとしての見解
Googleの方が2000文字ぐらいであるといいという見解を出したこともあったが、当時の話なので今なおそれが有益かはわからない。(詳しくは関連リンク参照)
SEOという観点では上記とは別にサイトマップに登録の仕様に関して考慮する必要がある。
サイトマップの <loc>
に仕様には以下のように書かれている。
ページの URL です。 ウェブ サーバーによっては、http などのプロトコルから始め、末尾にスラッシュを含める必要があります。 この値は 2,048 文字以下で指定する必要があります。
上記の記述からSEO観点では2048文字以下が望ましいと考えられる。
3つの見解を踏まえると
2048文字以下が適当な長さと考えたほうが良さそう。クエリストリングのご利用は計画的に。