Saturday, June 6, 2026
HomeEveryday WordPressBot traffic and dynamic endpoints in WordPress

Bot traffic and dynamic endpoints in WordPress


Bot traffic is often framed as a security problem or an SEO problem. But on WordPress hosting infrastructure, it shows up as a performance problem, specifically one concentrated in a very particular set of URLs.

Not all requests cost the same. The difference between a cached static page and a dynamic endpoint isn’t a slight performance nuance. It’s the difference between a request that costs almost nothing and one that reserves a PHP thread, triggers a full database query, and generates session overhead, regardless of whether the visitor is a real customer or a bot that never converts.

Understanding why some endpoints are far more expensive than others is what separates a bot management strategy that actually works from one that blocks too much or too little.

Not all requests are equal

When a visitor lands on a typical WordPress page, such as a blog post, a product listing, or an “about” page, the server almost always serves that response from cache.

Kinsta cache hit for static pages

Kinsta’s full-page cache handles this at the edge, so the request never triggers a server’s PHP or its database.

But when a request lands on a non-cacheable endpoint, the server has to do real work. A PHP thread is allocated and held for the entire duration of the request, and your database is queried. If the page involves cart state, user sessions, or personalized content, session handling adds another layer. None of this can be cached, because the response is unique to each request.

Kinsta cache bypass for dynamic pages
Kinsta cache bypass for dynamic pages

On a healthy site with mostly human visitors, this is fine. Your dynamic endpoints serve real customers who add items to their cart, check out, and search for products. The load is proportional to actual usage.

Bot traffic breaks this model. A crawler doesn’t add to the cart or convert, but it triggers the same server-side execution as a real customer would, at a rate no human could maintain.

The specific endpoints where this bites

On a WooCommerce store, the following URL patterns and endpoints are non-cacheable by design, and they’re exactly the ones that bot traffic tends to hit hardest.

?add-to-cart=

This is the most resource-intensive example we documented in our AI & bot traffic report. Adding a product to the cart requires PHP execution, a database write, and session creation or validation. There’s no cached version of this response, as each hit is fresh work.

To put the scale in context: Kinsta’s infrastructure data once recorded 7.67 million add-to-cart hits from five bots in a 24-hour window.

7.67M requests hit add-to-cart URLs in 24 hours
7.67M requests hit add-to-cart URLs in 24 hours

That’s about one request every 11 milliseconds, all day and all night, each demanding full PHP and database execution, each generating no meaningful output for the crawler, and none serving a customer.

/cart and /checkout

These pages are excluded from page cache by default in WooCommerce. They carry live session data, personalized cart state, and (in the case of checkout) payment processing logic.

A bot hitting /checkout repeatedly isn’t doing anything useful, but the server doesn’t know that. It processes every request as if it could be a real transaction.

?s= (Search queries)

WordPress and WooCommerce search queries run against your database on every request. There’s no cache layer that can absorb a unique search string.

A crawler working through parameterized URL variations or simply following every search link it finds can generate a long tail of unique, expensive database queries.

Faceted navigation and filter parameters

This is where the problem compounds. A typical WooCommerce product catalog generates URLs like:

/shop/?color=blue
/shop/?color=blue&size=M
/shop/?color=blue&size=M&orderby=price
/shop/?color=blue&size=M&orderby=price&paged=2

To a human, these are minor variations on the same page. To a bot following links, each one is a unique URL worth crawling, and each one requires the server to execute a filtered database query from scratch.

Google’s documentation explicitly identifies faceted navigation as a source of crawl inefficiency, where crawlers explore near-infinite variations of the same content. But the issue isn’t just that this wastes crawl budget. Each variation costs real server resources to generate.



Source link

RELATED ARTICLES
Continue to the category

LEAVE A REPLY

Please enter your comment!
Please enter your name here


Most Popular

Recent Comments