Skip to content

Performance

Keep-Alive is already on, stop buying it

Confirm Keep-Alive on LiteSpeed with curl, then ignore plugins that sell a header you already send.

Updated Aug 29, 20263 min read21 reads
Keep-Alive is already on, stop buying it
Keep-Alive is already enabled on LiteSpeed

Keep-Alive is already on for your site. Our shared hosting runs LiteSpeed, which reuses connections by default, so you do not need a plugin or add-on that claims to “enable Keep-Alive.” That feature was useful years ago on servers that closed every request; it is standard behavior here. Check the response headers yourself, then spend your time on images, scripts, and caching instead of buying another header pack.

bash
curl -sI https://example.com | grep -i connection

On HTTP/1.1 you should see Connection: keep-alive, not close. On HTTP/2 the old Connection header is often absent or unremarkable, because the protocol already multiplexes many requests on one connection. Use curl -sI --http1.1 when you specifically want the HTTP/1.1 view. If you see close on HTTP/1.1 from LiteSpeed, something in front of the origin—or a plugin—is overriding it, and that is worth a support ticket. If you already see keep-alive and a plugin still says it enabled the feature, turn off that plugin’s header options and keep only the parts that still help.

How Keep-Alive fits with HTTP/2

Keep-Alive is a hop-by-hop signal. A CDN or reverse proxy can change what the browser finally sees. An origin that sends keep-alive on HTTP/1.1 and serves HTTP/2 is doing its job. Many page-speed plugins still bundle “enable Keep-Alive,” gzip, and expires headers as if those were missing. On our stack, LiteSpeed already handles persistent connections, and HTTP/2 is the default on shared hosting. Advice that tells you to enable Keep-Alive and HTTP/2 in .htaccess usually comes from a different server and a different decade; those flags often do nothing here.

Connection reuse does not shrink a huge hero image. It does not fix render-blocking scripts or a cache-busting cookie. If time to first byte already looks fine and the page still feels heavy, you are dealing with bytes and paint time, not with the Connection header. Measure with HTTP/2 enabled, then work on the assets that actually move the needle.

What the plugin is really changing

Open the plugin’s server or headers tab and read what it wants to inject. If LiteSpeed already sends keep-alive, compression, and expires on static files, the plugin is duplicating policy. Sometimes it wins the wrong fight—for example by adding a restrictive Cache-Control value on HTML you meant to cache. On staging, disable only the header module, run curl -sI again, and compare. Keep image optimization or minify features if those are the only reason you installed the plugin.

When to contact support

If HTTP/1.1 responses from your LogicWeb site show Connection: close and you are not running an extra proxy, open a ticket with the curl output. We can check whether a plugin, custom rule, or upstream hop is forcing the connection closed. You do not need to purchase a separate “Keep-Alive” product; the server already provides it.

Share

Send this article

Need someone else to do this? Send them the link — the commands are in the article.

Was this article helpful?

Be the first to rate this article.