iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
Slow time to first byte (TTFB) on a PrestaShop store usually means the request is waiting on Nginx, the PHP-FPM pool, the database, or application code before the first response byte is generated. Start by measuring dynamic pages, then verify the Nginx-to-PHP-FPM path and check whether PHP-FPM workers are saturated. Only after that should you tune application code or add caching.
FastCGI caching can make anonymous catalog pages respond much faster, but it must bypass sessions, carts, checkout, customer accounts, authorization, and any response containing personal state. Static-asset caching helps repeat visits but does not shorten the time PHP needs to build a dynamic page.
What TTFB means in a PrestaShop request
TTFB is the elapsed time between a client sending an HTTP request and receiving the first byte of the response. For a dynamic PrestaShop URL, that interval can include network round trips, Nginx request processing, PHP-FPM queueing, PHP execution, database queries, module hooks, remote API calls, and cache lookups. The browser then spends additional time downloading and rendering the rest of the response. A large page or slow JavaScript therefore does not automatically explain a high TTFB.
Measure the first byte separately from total download time. If TTFB is high while the response body downloads quickly, investigate the server and application path. If TTFB is low but the total time is high, look at response size, compression, images, and front-end assets instead.
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.
Measure representative pages before changing settings
Use a repeatable baseline. Test from a location representative of your customers, and record both warm-cache and cold-cache runs. Do not use only the home page: it may be cached or have a very different query pattern from a product page.
Build a small URL set
- An anonymous product page.
- An anonymous category or search-results page.
- A cart request with an active cart.
- The login page and an authenticated account page.
- The checkout flow, including a request that carries the session cookie.
Run each URL several times after clearing or warming the relevant cache. Keep the cookie state consistent: an anonymous request and a request with a customer session are different workloads and should not be mixed in one result.
Capture timing with curl
This command reports DNS, connection, TLS, server processing (the TTFB value), and total time:
curl -sS -o /dev/null -w 'dns=%{time_namelookup}nconnect=%{time_connect}ntls=%{time_appconnect}nttfb=%{time_starttransfer}ntotal=%{time_total}n' https://shop.example/product-url
For a session-dependent test, pass a cookie file or header that represents a real logged-in or cart request. Record the HTTP status, response size, and any cache indicator your configuration adds. A 200 response with a fast TTFB is not a valid success if the page contains another customer’s cart or account data.
Define a store-specific target
There is no authoritative universal “good” PrestaShop TTFB threshold. Set an objective from your baseline, page mix, geography, and business requirements. A target for a nearby anonymous catalog request should not be applied unchanged to a checkout request that performs payment, tax, or shipping calculations.
Verify the Nginx-to-PHP-FPM path first
A malformed location block can add errors, route requests to the wrong PHP version, or prevent Nginx from handing the correct script to PHP-FPM. Compare your PHP location with the official PrestaShop pattern and then test the effective configuration with nginx -t. The important controls are not cosmetic: they determine which file is executed, which socket receives it, and how Nginx handles the response.
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
Required elements in the PHP location
fastcgi_split_path_infoseparates a script name from optional path information.try_files $fastcgi_script_name =404prevents Nginx from forwarding a missing script.include fastcgi_paramssupplies the standard FastCGI parameters.fastcgi_param SCRIPT_FILENAMEmust resolve to the real PrestaShop PHP file.fastcgi_passmust point to the PHP-FPM Unix socket or upstream that serves the intended PHP version.fastcgi_keep_conn oncan keep the upstream connection available for reuse.- Read and send timeouts should be long enough for legitimate requests; changing them does not make PHP execute faster.
Example location block
Adapt the document root and socket to your server. Do not paste a socket path from another machine without checking which PHP-FPM service is actually listening.
location ~ .php(?:/|$) {
fastcgi_split_path_info ^(.+?.php)(/.*)$;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_keep_conn on;
fastcgi_read_timeout 30s;
fastcgi_send_timeout 30s;
# Increase only when measurements show large headers or responses need it.
fastcgi_buffer_size 32k;
fastcgi_buffers 16 16k;
}
Some distributions use a versioned socket such as /run/php/php8.2-fpm.sock, while others expose an upstream name. Check the pool’s listen setting and make the two sides match. After edits, run nginx -t, reload Nginx, and make one request while watching the error log. A configuration test only validates syntax; it does not prove that the selected pool has capacity or that PrestaShop is using the expected PHP version.
Understand buffers and timeouts
Nginx buffering stores FastCGI response data in memory or temporary files and lets Nginx receive data from FastCGI as soon as possible. Larger buffers can help with unusually large headers or responses, but they do not cure slow PHP execution. Likewise, fastcgi_read_timeout changes how long Nginx waits before declaring a timeout; it is not a performance setting. If a request consistently needs more time, find out whether a database query, module hook, or remote call is responsible.
Check PHP-FPM capacity and slow scripts
PHP-FPM is the process manager that executes PrestaShop’s PHP code. When all pool workers are busy, new requests wait in a queue and TTFB rises even if individual scripts are reasonably fast. The pool setting that most directly determines concurrent execution is pm.max_children.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Look for worker saturation
Inspect the pool status page or your process and service metrics during the same test that produced a high TTFB. Record active workers, idle workers, the queue length, reached-child events, CPU, and memory. A pool that repeatedly has no idle workers while requests are slow is saturated. A pool with many idle workers but high TTFB points elsewhere, such as database latency or slow application code.
Set pm.max_children from observed concurrency and available memory, not from a generic formula. Each PHP worker consumes memory that varies with the PrestaShop version, enabled modules, theme, and request. Raising the value blindly can trigger swapping, exhaust RAM, or overload MySQL, making every request slower. During a benchmark, the value must reflect the concurrent users you intend to simulate; production sizing should also leave memory for the operating system, database, Nginx, and background jobs.
Rank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
Enable a PHP-FPM slow log
The slow log records scripts that exceed a configured duration and can include PHP backtraces. Enable it for the relevant pool, choose a threshold appropriate to your baseline, reproduce a slow request, and inspect the resulting trace. A trace can reveal a specific module hook, controller, template operation, or external call that ordinary Nginx access logs cannot identify.
; pool configuration example
request_slowlog_timeout = 5s
slowlog = /var/log/php-fpm/prestashop-slow.log
Use a threshold that captures abnormal requests without filling the disk during normal traffic. Rotate the file and protect it because traces can contain URLs, parameters, and implementation details. Disable or raise the threshold after diagnosis if continuous tracing creates unnecessary I/O.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallDistinguish queueing from execution time
Compare the time before a worker starts executing with the script’s own runtime. A long queue with short script times calls for capacity and workload analysis. Long script times with an empty queue call for database, module, theme, or remote-service investigation. Do not solve either case by increasing Nginx timeouts.
Find application and database delays
Once the Nginx and PHP-FPM path is sound, profile what the request does. PrestaShop can spend substantial time in database queries, module hooks, cache misses, template rendering, search operations, or calls to payment, tax, shipping, analytics, and inventory services.
Check database latency
- Measure database time separately from total PHP time if your monitoring or profiler supports it.
- Inspect the database slow-query log during a controlled reproduction.
- Look for queries whose cost grows with catalog size, filters, or customer-specific rules.
- Check connection limits, lock waits, buffer availability, and disk latency before adding PHP workers.
More PHP-FPM children can increase simultaneous database work. If MySQL is already the bottleneck, a larger pool increases contention rather than reducing TTFB.
Test modules and hooks safely
Compare a slow URL with optional modules disabled in a staging copy or during a controlled maintenance window. A module that performs a remote API call or runs expensive logic on every hook can delay otherwise simple pages. Check timeouts and retry behavior for external services; a failed endpoint that waits through repeated retries often appears as a random TTFB spike.
Rank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
Separate cache misses from cold application work
Run one cold request and then several warm requests. If only the first request is slow, investigate cache generation, filesystem permissions, opcode caching, and the cache backend. If every request is slow, focus on execution, database, or upstream capacity. Keep the test’s cookies and headers identical so you do not accidentally compare anonymous and personalized paths.
Use FastCGI cache only for cache-safe responses
Nginx’s FastCGI cache stores generated responses in a shared cache zone. It can reduce PHP work for public GET and HEAD pages, particularly catalog pages that many visitors view anonymously. The cache must never serve one customer’s state to another customer.
Start with a narrow cache policy
Begin with anonymous product and category GET/HEAD requests. Bypass and do not store responses when any of these conditions apply:
- A session, cart, or customer cookie is present.
- The request carries an
Authorizationheader. - The method is not GET or HEAD, including cart mutations and checkout submissions.
- The URL belongs to login, account, checkout, order history, or another personalized controller.
- The response sets a private cookie or otherwise contains customer-specific data.
Example bypass logic
The exact cookie names depend on your PrestaShop version and custom modules. Inspect real requests and adjust the expression rather than assuming every store uses the same names.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →map $request_method $skip_method {
default 1;
GET 0;
HEAD 0;
}
map $http_cookie $skip_cookie {
default 0;
~*(PHPSESSID|PrestaShop|cart|customer|checkout|logged) 1;
}
map $http_authorization $skip_auth {
default 1;
"" 0;
}
fastcgi_cache_path /var/cache/nginx/prestashop
levels=1:2
keys_zone=prestashop:20m
inactive=30m
use_temp_path=off;
location ~ .php(?:/|$) {
# PHP parameters and fastcgi_pass omitted here for brevity in this cache example.
fastcgi_cache prestashop;
fastcgi_cache_methods GET HEAD;
fastcgi_cache_bypass $skip_method $skip_cookie $skip_auth;
fastcgi_no_cache $skip_method $skip_cookie $skip_auth;
fastcgi_cache_valid 200 10m;
fastcgi_cache_lock on;
}
Keep the complete, verified PHP location directives alongside the cache directives; the shortened example shows policy, not a drop-in server block. Add an explicit URL-based bypass for account, checkout, login, and cart routes even when cookies are absent. Test cache hits and misses with response headers or logs, then verify that adding a product, signing in, and changing an address always reaches PHP-FPM.
Handle invalidation and stale responses
Choose a validity period that matches catalog update frequency. If prices, stock, or promotions change frequently, a long lifetime can display stale information. Cache locking can prevent many simultaneous misses from generating the same page, while stale-serving options can protect availability during a brief upstream failure. Both need testing against your inventory and pricing requirements.
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
Cache static assets in browsers
Set appropriate expires and Cache-Control headers for CSS, JavaScript, fonts, and images. Browser caching avoids repeated downloads on repeat visits and reduces traffic, but it does not reduce the PHP execution time for the first dynamic HTML response. Use versioned asset filenames or another reliable invalidation method before assigning long lifetimes; otherwise visitors can retain an old theme or script after a deployment.
Review access logging deliberately
Access logging consumes CPU and I/O. Reducing log volume can lower overhead on a busy server, but retention, incident response, fraud investigations, and legal requirements come first. Prefer selective formats, sampling, or rotation over deleting logs blindly. Logging changes affect observability and request overhead; they do not make PHP code execute faster.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Keep PHP and PrestaShop versions supported
PrestaShop 9 requires PHP 8.1 or newer and supports up to PHP 8.4. Nginx 1.0 or later is supported. Older PHP branches are not recommended because they are unmaintained, but an upgrade can expose incompatible themes or modules.
Upgrade with a compatibility plan
- List the active theme and every installed module, including custom code.
- Check each component’s stated compatibility with the target PHP and PrestaShop versions.
- Take a tested backup of files and the database, and rehearse restoration.
- Upgrade in staging first, then exercise browsing, search, cart, login, checkout, payment, and back-office tasks.
- Clear the relevant
var/cache/directory after the update. - Restart PHP-FPM or the web server so the new runtime and opcache state are loaded.
- Re-run the same warm and cold TTFB tests and compare errors, worker usage, database time, and cache behavior.
A newer PHP runtime may improve execution, but compatibility failures can create slower retries, fatal errors, or broken checkout. Treat the version change as a controlled deployment, not as an isolated speed switch.
Nginx versus Apache: what the available figures show
There is no universal answer that Nginx is faster for every PrestaShop store. Compare both servers with the same PHP version and PHP-FPM mode, database, hardware, cache policy, concurrency, geography, and page mix. Include dynamic TTFB, throughput, memory use, configuration complexity, observability, cache correctness, and your team’s operational familiarity.
| Server setup | Reported maximum visitors per hour | Context |
|---|---|---|
| Tuned Apache2, PHP-FPM, and MySQL | 2,810 | Single 4-vCPU, 15-GB-RAM SSD server in a 2010s vendor white-paper test |
| Tuned Nginx, PHP-FPM, and MySQL | 2,390 | The same stated hardware and test context |
Those figures describe one historical workload and configuration, not a ranking of web servers. They do not establish a TTFB target, and they should not outweigh measurements from your own store. A well-configured Apache deployment can beat a poorly tuned Nginx deployment, while either can perform well when PHP-FPM, the database, and cache policy are correctly sized.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsRetest one change at a time
After each adjustment, repeat the same URLs and test conditions. Record:
- TTFB and total response time for warm and cold runs.
- HTTP status, response size, and cache hit or miss state.
- PHP-FPM active, idle, and queued workers, plus reached-child events.
- CPU, memory, swap activity, and database latency.
- Cookies and authorization headers used by the request.
- Error-log entries, slow-log traces, and checkout or account behavior.
Keep a configuration change only when it improves the intended workload without breaking personalized flows. Roll back a cache rule that produces incorrect content, a pool increase that causes memory pressure, or a buffer change that merely hides a slow script.
Quick Recap
Common symptoms and corrective actions
| Symptom | Most useful check | Likely corrective direction |
|---|---|---|
| High TTFB only during traffic spikes | PHP-FPM queue, active workers, and reached-child events | Size pm.max_children from memory and observed concurrency; investigate database contention before increasing it |
| High TTFB with idle PHP-FPM workers | Database timing, module hooks, remote calls, and cache misses | Profile the slow request and fix the slow dependency or code path |
| Anonymous catalog pages are slow but cart pages are normal | Cache status and cold-versus-warm results | Investigate cache generation or apply a narrowly scoped public-page FastCGI cache |
| Checkout becomes inconsistent after enabling cache | Cookies, authorization, methods, and URL bypass rules | Bypass and do not store every personalized or state-changing request |
| Nginx returns intermittent 404 or 502 responses | SCRIPT_FILENAME, fastcgi_pass, socket permissions, and error logs |
Correct the script path or pool endpoint and verify the service is listening |
| Requests time out but CPU is low | Slow log and upstream/database wait time | Find the blocked query, module, or remote service; do not simply raise the timeout |
| Repeat visits download every asset again | Response headers for CSS, JavaScript, fonts, and images | Set suitable browser caching and use versioned filenames for invalidation |
A practical order of operations
- Measure representative anonymous and personalized URLs, separating TTFB from download time.
- Validate the Nginx PHP location, script path, socket or upstream, and effective configuration.
- Observe PHP-FPM queueing, worker limits, memory, and the slow log during reproduction.
- Profile database queries, module hooks, cache misses, and remote calls inside the application.
- Apply a narrowly scoped FastCGI cache to anonymous, cache-safe GET/HEAD pages only.
- Set browser caching for static assets and review access-log volume within operational requirements.
- Confirm supported PHP and Nginx versions, theme/module compatibility, and a tested rollback before upgrading.
- Retest after every change and keep only changes that improve TTFB without damaging cart, checkout, account, or pricing correctness.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

