{"id":20914,"date":"2026-08-23T08:31:43","date_gmt":"2026-08-23T06:31:43","guid":{"rendered":"https:\/\/webhosting.de\/nginx-cache-wordpress-speed\/"},"modified":"2026-08-23T08:31:43","modified_gmt":"2026-08-23T06:31:43","slug":"nginx-cache-wordpress-speed","status":"publish","type":"post","link":"https:\/\/webhosting.de\/en\/nginx-cache-wordpress-speed\/","title":{"rendered":"NGINX FastCGI Cache: Speed Up WordPress"},"content":{"rendered":"<p>I noticeably speed up WordPress by using the <strong>NGINX Cache<\/strong> I use it at the server level and serve HTML responses directly. This significantly reduces the TTFB, keeps PHP-FPM free, and reduces the load on the database. <strong>Queries<\/strong>.<\/p>\n\n<h2>Key points<\/h2>\n<ul>\n  <li><strong>On the server side<\/strong> Instead of a plugin: FastCGI Cache reduces the load on PHP and minimizes latency.<\/li>\n  <li><strong>Purge<\/strong> In the event of changes: Content remains up-to-date and is updated as needed.<\/li>\n  <li><strong>Exclusions<\/strong> The login, shopping cart, and checkout sections are dynamic.<\/li>\n  <li><strong>Scaling<\/strong> Under load: Caches are hit more frequently, reducing the server load.<\/li>\n  <li><strong>Measurable<\/strong> Faster: TTFB, RPS, and CPU metrics improve significantly.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/nginx-cache-optimierung-4832.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>How NGINX FastCGI Cache Speeds Up WordPress<\/h2>\n<p>The first time the page is requested, WordPress renders it; then NGINX stores the finished response as <strong>HTML<\/strong> and serves future identical requests without PHP-FPM. This reduces CPU time and context switches, while the file system or the OS cache provides fast <strong>Hits<\/strong> delivers. Especially during peak times, the response time remains low because no PHP processes need to be started. This allows me to minimize TTFB and enable more requests per second. The result is a smoother user experience, fewer timeouts, and a clear performance reserve for truly dynamic processes.<\/p>\n\n<h2>Server-Side Cache vs. Plugin Cache (including a comparison)<\/h2>\n<p>A cache plugin works in the <strong>PHP Stack<\/strong> and often triggers processes even when there are hits, whereas FastCGI Cache responds directly at the web server level. This eliminates a lot of overhead, such as PHP initialization and plugin hooks. For returning visitors, I primarily rely on the server-side approach and combine it with a lightweight front-end optimization plugin as needed. If you want to examine the details thoroughly, start with a lean <strong>Test phase<\/strong> and measures TTFB, CPU, and cache hit rate separately. The differences become apparent very quickly\u2014especially under load.<\/p>\n<table>\n  <thead>\n    <tr>\n      <th>Criterion<\/th>\n      <th>Plugin Cache (PHP)<\/th>\n      <th>NGINX FastCGI Cache<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>Response Method<\/td>\n      <td>PHP initialized; plugin checks the cache<\/td>\n      <td>Web server serves the file directly<\/td>\n    <\/tr>\n    <tr>\n      <td>TTFB<\/td>\n      <td>higher due to PHP startup<\/td>\n      <td>very low when there is a cache hit<\/td>\n    <\/tr>\n    <tr>\n      <td>Resources<\/td>\n      <td>More CPU\/RAM per request<\/td>\n      <td>significantly fewer resources<\/td>\n    <\/tr>\n    <tr>\n      <td>Scaling<\/td>\n      <td>Limited by PHP processes<\/td>\n      <td>Scales efficiently with NGINX<\/td>\n    <\/tr>\n    <tr>\n      <td>Dependencies<\/td>\n      <td>Possible theme\/plugin conflicts<\/td>\n      <td>runs on WordPress<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n<p>I also use clear cache keys and a well-organized folder structure to keep content separate by host, schema, and URI. If you're looking to get started, check out my guide to <a href=\"https:\/\/webhosting.de\/en\/nginx-cache-optimization-window\/\">NGINX Cache Optimization<\/a> Use this as a guide. This keeps the configuration organized and makes future expansions easier and faster.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/nginx_fastcgi_cache_wp_0325.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Appropriate Scenarios and Important Exceptions<\/h2>\n<p>The biggest beneficiary <strong>Content<\/strong>, \u2014that is, blogs, magazines, landing pages, and corporate sites with a lot of anonymous traffic. I cache every page that remains identical for visitors and exclude anything that\u2019s personalized. This includes login pages, profiles, comment forms, the WooCommerce shopping cart, checkout, and \u201cMy Account.\u201d Cookies and headers serve as criteria for selectively bypassing the cache. This way, public pages remain lightning-fast, while sensitive areas remain properly dynamic and users have a seamless experience. <strong>served<\/strong> become.<\/p>\n\n<h2>Technical Fundamentals: Cache Zone, Key, Header<\/h2>\n<p>First, I define the <strong>Cache path<\/strong> and a zone in the NGINX configuration, including size and idle time. The cache key contains the schema, host, and URI, with optional query strings to keep variants separate. I use `fastcgi_cache_valid`, `bypass`, and `no-cache` rules to control when requests bypass the cache. Important headers such as Set-Cookie, Authorization, and certain cookies from WordPress or WooCommerce indicate dynamic content. Additionally, I specify which error pages or 50x responses are temporarily cached so that the site continues to function under heavy load <strong>answers<\/strong>.<\/p>\n\n<h2>Cache Management and Purge Strategy<\/h2>\n<p>A cache is only effective when updates are reliable <strong>Roll out<\/strong>. When saving a post, I trigger a targeted purge for the affected URLs, including homepages, categories, and feeds. In addition, I set a reasonable TTL so that content is regenerated periodically. For large sites, preloading helps with important landing pages so that the first visitor doesn\u2019t experience a cold start. After every change, I check the cache hit rate and ensure that purges do not leave any outdated fragments <strong>leave behind<\/strong>.<\/p>\n\n<h2>Rules for WordPress and WooCommerce<\/h2>\n<p>I consistently allow logged-in users to use the cache <strong>over<\/strong>, typically based on the `wordpress_logged_in` cookie. For WooCommerce, I exclude the shopping cart, checkout, and My Account pages using URI patterns and pay attention to cookies like `woocommerce_items_in_cart`. Product, category, and content pages, on the other hand, I cache normally. Additionally, I clear the cache whenever inventory or price changes via a hook. This separation keeps public pages fast without affecting the checkout process. <strong>disturb<\/strong>.<\/p>\n\n<h2>Choosing the Right TTL, Stale, and Locking Settings<\/h2>\n<p>I set the content TTL based on practical considerations\u2014ranging from minutes to a few hours, depending on <strong>Actuality<\/strong> and traffic. Stale options allow me to serve expired objects temporarily while a fresh version is being generated in the background. Locking prevents the \"stampede effect\" when many requests simultaneously hit an expired object. Appropriate error and timeout rules ensure that visitors receive a response even during brief disruptions. I provide more background on these guidelines in my concise <a href=\"https:\/\/webhosting.de\/en\/http-cache-control-strategies-hosting-cachemaster\/\">Cache control strategies<\/a>, which work well in combination with FastCGI Cache.<\/p>\n\n<h2>Monitoring and Metrics That Matter<\/h2>\n<p>First, I measure the <strong>TTFB<\/strong>, followed by requests per second and CPU load, broken down by cache hits and misses. NGINX logs and response headers tell me whether there was a HIT, MISS, BYPASS, or EXPIRED. A rising hit rate accompanied by a falling CPU load is my indication that the rules are working. I also monitor file system I\/O and the number of active PHP processes. For conditional caching, I make effective use of ETag\/Last-Modified and refer readers to my guide on <a href=\"https:\/\/webhosting.de\/en\/http-conditional-caching-etag-last-modified-and-performance-guide\/\">Conditional Caching with ETag<\/a>, so that the browser and server caches work in harmony and the network load is noticeably reduced <strong>falls<\/strong>.<\/p>\n\n<h2>Common Mistakes and How I Fix Them<\/h2>\n<p>A common pitfall is setting the scope too broad <strong>Cache Key<\/strong>, which masks variants and serves incorrect content. Equally critical: the lack of exclusions for cookies such as `wordpress_logged_in` or WooCommerce signals. If purges affect only the single page, archive and home pages remain out of date; I therefore expand the affected targets. I also often need to include query strings in the key; otherwise, one variant overwrites the other. TTLs that are too short generate unnecessary MISS rates, while TTLs that are too long increase the risk of outdated <strong>Pages<\/strong>.<\/p>\n\n<h2>Practical Workflow for Implementation<\/h2>\n<p>I start every project with a clear <strong>Plan<\/strong>: Define targets, mark paths to be cached, and set dynamic exceptions. Next, I configure the cache path, zone, key, and header rules. In the next step, I test HIT\/MISS, check cookies, and monitor TTFB under a light load test. I then optimize TTL, stale, and locking until the graphs look right. Finally, I document purge routes, responsibilities, and a brief workflow for editors so that content is always <strong>fresh<\/strong> remain.<\/p>\n\n<h2>Practical NGINX Configuration and Examples<\/h2>\n<p>I believe the configuration <strong>clear<\/strong> Well-structured: a central cache zone, a unique key, clear skip rules, and helpful diagnostic headers. A solid starting point looks like this:<\/p>\n<pre><code>fastcgi_cache_path \/var\/cache\/nginx levels=1:2 keys_zone=WORDPRESS:100m \\\n    inactive=60m use_temp_path=off loader_files=200 loader_sleep=50ms loader_threshold=300ms;\n\nmap $Request_method $skip_non_get {\n    default 1;\n    GET 0;\n    HEAD 0;\n}\n\nmap $http_cookie $skip_cookie {\n    default 0;\n    ~*(wordpress_logged_in|comment_author|woocommerce_items_in_cart|wp_woocommerce_session|woocommerce_cart_hash) 1;\n}\n\nmap $arg_preview $is_preview { default 0; 1 1; }\nmap $request_uri $is_search { default 0; ~*\\?s= 1; }\n\nserver {\n    # ...\n    set $skip_cache 0;\n    if ($skip_non_get) { set $skip_cache 1; }\n    if ($skip_cookie)  { set $skip_cache 1; }\n    if ($is_preview)   { set $skip_cache 1; }\n    if ($is_search)    { set $skip_cache 1; }\n\n    location ~ \\.php$ {\n include fastcgi_params;\n fastcgi_pass unix:\/run\/php\/php8.2-fpm.sock;\n\n        fastcgi_cache WORDPRESS;\n fastcgi_cache_key \"$scheme$request_method$host$request_uri\";\n fastcgi_cache_bypass    $skip_cache;\n        fastcgi_no_cache $skip_cache;\n\n fastcgi_cache_valid 200 301 302 10m;\n        fastcgi_cache_valid 404 1m;\n fastcgi_cache_use_stale updating error timeout http_500 http_502 http_503;\n fastcgi_cache_lock on;\n fastcgi_cache_lock_timeout 5s;\n\n        add_header X-Cache $upstream_cache_status always;\n add_header X-Cache-Key   $scheme$host$request_uri always;\n    }\n}<\/code><\/pre>\n<p>I'll expand on this later, depending on the project, to include Vary headers (e.g., language, currency) and more specific exclusions. Important: POST, PUT, DELETE, and anything with <strong>Authorization<\/strong> or <strong>Set-Cookie<\/strong> I consistently bypass PHP.<\/p>\n\n<h2>Variant and Cookie Strategies in Detail<\/h2>\n<p>The fewer variations an HTML document has, the higher the hit rate. I deliberately reduce variations and only split them where the <strong>Output distinguishes<\/strong>:<\/p>\n<ul>\n  <li><strong>Language<\/strong>: A single responsive HTML version is ideal. If there are separate language versions, I use a language cookie or the URI (e.g., \/de\/, \/en\/) in the key, not the user-agent.<\/li>\n  <li><strong>Devices<\/strong>: I avoid UA splits. Mobile-first CSS and responsive layouts preserve the cache <strong>compact<\/strong>.<\/li>\n  <li><strong>Currency\/Country<\/strong>: For stores that use geolocation or currency switchers, I specifically base my decisions on a stable cookie, not on the IP address. Otherwise, the cardinality goes through the roof.<\/li>\n  <li><strong>Query strings<\/strong>: I whitelist useful parameters (e.g., pagination, filter) and ignore tracking parameters (utm_*, gclid) to prevent unnecessary variants from being created.<\/li>\n<\/ul>\n<p>Special caution is needed with cookies from consent\/banner plugins: If they set cookies on the home page, NGINX may incorrectly detect dynamic content. I make sure that purely <strong>visual<\/strong> Banners with no functional impact do not trigger a cache BYPASS cascade.<\/p>\n\n<h2>File System, Cache Zone, and Loader Tuning<\/h2>\n<p>The choice of cache memory has a massive impact on performance. I use fast local SSDs and plan to <strong>keys_zone<\/strong> generous (e.g., 100\u2013256 MB for indexes) so that metadata is not displaced. The <strong>inactive<\/strong>\u2014I determine the time based on the traffic profile: content with a lot of long-tail traffic benefits from longer periods of inactivity, whereas highly dynamic portals generally do not. I use the `loader_*` parameters to control how aggressively NGINX preloads objects\u2014so that the system can handle the load <strong>quiet<\/strong> remains. For very high-traffic sites, a partial cache in tmpfs can be useful, but I\u2019ll monitor RAM pressure and inode usage closely. Log rotation and limits on the number of files prevent the volume from filling up; monitoring tracks I\/O wait times, free space, and open file descriptors.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/wordpress-nginx-fastcgi-cache-speed-8375.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Properly Layering CDN and Browser Caches<\/h2>\n<p>I like to combine the NGINX cache with a <strong>Edge CDN<\/strong> and robust browser TTL values. The following applies: The origin (NGINX) delivers consistent HTML pages; the CDN additionally caches them; and the browser receives moderately short `max-age` values so that editors can see changes quickly. Stale mechanisms and <strong>revalidate<\/strong>I configure strategies so that Edge nodes can continue to serve content while NGINX re-renders in the background. I trigger purges in a defined order (CDN first, then origin) or synchronously at both locations to prevent any outdated content from appearing. I also verify that CDN headers such as Age, Cache-Status, and Vary do not conflict with my server rules.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/nginx_fastcgi_cache_wp9331.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Prewarming, Deployment, and Editorial Workflows<\/h2>\n<p>To prevent thousands of users from triggering a cold start after a flush, I preload important pages <strong>targeted<\/strong> Includes: homepages, top sellers, categories, and magazine hub pages. A lightweight preloader reads the sitemap, fetches content in parallel, and respects rate limits to ensure that neither PHP nor the database hits its limits. For deployments, I distinguish between a full flush (theme\/code change) and a partial flush (content update) and document the <strong>Steps<\/strong> for the editorial and operations teams. This keeps release windows short and low-risk.<\/p>\n\n<h2>Multisite, Multilingualism, and Currency Logic<\/h2>\n<p>With WordPress Multisite, I strictly separate the cache keys by hostname or site ID so that <strong>Subsites<\/strong> are properly isolated. For multilingual sites using WPML\/Polylang, I prefer to use language paths (de\/en) or dedicated domains; the key then contains the schema, host, and path. In online stores, I carefully account for currency cookies and geolocation: I cache product and category views by currency, while the shopping cart and checkout remain dynamic. If prices or tax rates change, I trigger a <strong>partially<\/strong> Purge (product, category, teaser modules) to ensure that key landing pages are quickly and consistently updated.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/wordpress_nginx_cache_3421.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Load Testing, Metrics, and Rollback<\/h2>\n<p>Before the go-live, I simulate realistic <strong>Peaks<\/strong> (GET\/HEAD mix, assets, HTML) and strictly separate the metrics: warm vs. cold, with\/without CDN, logged-in vs. anonymous users. I look at P50\/P95 TTFB, error rates, CPU utilization, I\/O wait, and the number of PHP processes. In NGINX, I enable an appropriate `log_format` with `$upstream_cache_status` and check random samples directly in the response header (`HIT\/MISS\/BYPASS\/EXPIRED`). A short rollback path (cache operation skip switch, reduced TTL, deactivation of individual rules) ensures that, in the event of anomalies, I can <strong>immediately<\/strong> can respond without destabilizing the entire system.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/nginxcaching-optimierung-1043.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Security, Accuracy, and Data Protection<\/h2>\n<p>I consistently prevent confidential content from being cached: admin areas, preview modes, private pages, and nonce-protected actions. I adhere to the HEAD\/GET distinction; POST requests remain uncacheable. Set-Cookie and Authorization are considered hard <strong>BYPASS<\/strong>\u2011Signals. I exclude preview pages (preview=true) and search results (s=) to prevent false hits. I also verify that no personally identifiable information ends up in HTML responses, which would then be widely cached. Where necessary, I encapsulate personalized fragments via separate AJAX endpoints, which I deliberately <strong>not<\/strong> cache.<\/p>\n\n<h2>Handling Edge Cases and Exceptions Properly<\/h2>\n<p>I keep coming across certain patterns: I cache XML sitemaps and feed endpoints for a short time (e.g., 1\u20135 minutes). I revalidate 301\/302 redirects separately to prevent redirect loops. Archive and pagination pages are assigned moderate TTLs because they often contain links to <strong>fresh<\/strong> Carry content. Parameters that only affect sorting can be included in the key, but must not artificially shorten the TTL. And if a plugin unexpectedly sets cookies, I check whether they are actually needed for the HTML output <strong>relevant<\/strong> are\u2014otherwise, I'll mark them as ignorable to avoid unnecessary BYPASS hits.<\/p>\n\n<h2>Briefly summarized<\/h2>\n<p>I use the NGINX FastCGI Cache to speed up WordPress on the <strong>Source<\/strong>, serve HTML directly and eliminate the need for costly PHP processes. Clean exclusions and a reliable purge keep content up to date, while TTFB and CPU values drop significantly. A practical TTL with stale and locking ensures smooth delivery even during peak loads. Those who consistently monitor metrics and continually refine rules achieve sustainably fast page loads. This makes the website more responsive, keeps it maintainable, and allows it to grow smoothly as traffic increases. <strong>Traffic<\/strong> inside.<\/p>","protected":false},"excerpt":{"rendered":"<p>The NGINX FastCGI Cache improves WordPress performance and is a powerful alternative to plugins.<\/p>","protected":false},"author":1,"featured_media":20907,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[733],"tags":[],"class_list":["post-20914","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress"],"acf":[],"_wp_attached_file":null,"_wp_attachment_metadata":null,"litespeed-optimize-size":null,"litespeed-optimize-set":null,"_elementor_source_image_hash":null,"_wp_attachment_image_alt":null,"stockpack_author_name":null,"stockpack_author_url":null,"stockpack_provider":null,"stockpack_image_url":null,"stockpack_license":null,"stockpack_license_url":null,"stockpack_modification":null,"color":null,"original_id":null,"original_url":null,"original_link":null,"unsplash_location":null,"unsplash_sponsor":null,"unsplash_exif":null,"unsplash_attachment_metadata":null,"_elementor_is_screenshot":null,"surfer_file_name":null,"surfer_file_original_url":null,"envato_tk_source_kit":null,"envato_tk_source_index":null,"envato_tk_manifest":null,"envato_tk_folder_name":null,"envato_tk_builder":null,"envato_elements_download_event":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_trp_menu_languages":null,"rank_math_primary_category":null,"rank_math_title":null,"inline_featured_image":null,"_yoast_wpseo_primary_category":null,"rank_math_schema_blogposting":null,"rank_math_schema_videoobject":null,"_oembed_049c719bc4a9f89deaead66a7da9fddc":null,"_oembed_time_049c719bc4a9f89deaead66a7da9fddc":null,"_yoast_wpseo_focuskw":null,"_yoast_wpseo_linkdex":null,"_oembed_27e3473bf8bec795fbeb3a9d38489348":null,"_oembed_c3b0f6959478faf92a1f343d8f96b19e":null,"_trp_translated_slug_en_us":null,"_wp_desired_post_slug":null,"_yoast_wpseo_title":null,"tldname":null,"tldpreis":null,"tldrubrik":null,"tldpolicylink":null,"tldsize":null,"tldregistrierungsdauer":null,"tldtransfer":null,"tldwhoisprivacy":null,"tldregistrarchange":null,"tldregistrantchange":null,"tldwhoisupdate":null,"tldnameserverupdate":null,"tlddeletesofort":null,"tlddeleteexpire":null,"tldumlaute":null,"tldrestore":null,"tldsubcategory":null,"tldbildname":null,"tldbildurl":null,"tldclean":null,"tldcategory":null,"tldpolicy":null,"tldbesonderheiten":null,"tld_bedeutung":null,"_oembed_d167040d816d8f94c072940c8009f5f8":null,"_oembed_b0a0fa59ef14f8870da2c63f2027d064":null,"_oembed_4792fa4dfb2a8f09ab950a73b7f313ba":null,"_oembed_33ceb1fe54a8ab775d9410abf699878d":null,"_oembed_fd7014d14d919b45ec004937c0db9335":null,"_oembed_21a029d076783ec3e8042698c351bd7e":null,"_oembed_be5ea8a0c7b18e658f08cc571a909452":null,"_oembed_a9ca7a298b19f9b48ec5914e010294d2":null,"_oembed_f8db6b27d08a2bb1f920e7647808899a":null,"_oembed_168ebde5096e77d8a89326519af9e022":null,"_oembed_cdb76f1b345b42743edfe25481b6f98f":null,"_oembed_87b0613611ae54e86e8864265404b0a1":null,"_oembed_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_oembed_time_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_tldname":null,"_tldclean":null,"_tldpreis":null,"_tldcategory":null,"_tldsubcategory":null,"_tldpolicy":null,"_tldpolicylink":null,"_tldsize":null,"_tldregistrierungsdauer":null,"_tldtransfer":null,"_tldwhoisprivacy":null,"_tldregistrarchange":null,"_tldregistrantchange":null,"_tldwhoisupdate":null,"_tldnameserverupdate":null,"_tlddeletesofort":null,"_tlddeleteexpire":null,"_tldumlaute":null,"_tldrestore":null,"_tldbildname":null,"_tldbildurl":null,"_tld_bedeutung":null,"_tldbesonderheiten":null,"_oembed_ad96e4112edb9f8ffa35731d4098bc6b":null,"_oembed_8357e2b8a2575c74ed5978f262a10126":null,"_oembed_3d5fea5103dd0d22ec5d6a33eff7f863":null,"_eael_widget_elements":null,"_oembed_0d8a206f09633e3d62b95a15a4dd0487":null,"_oembed_time_0d8a206f09633e3d62b95a15a4dd0487":null,"_aioseo_description":null,"_eb_attr":null,"_eb_data_table":null,"_oembed_819a879e7da16dd629cfd15a97334c8a":null,"_oembed_time_819a879e7da16dd629cfd15a97334c8a":null,"_acf_changed":null,"_wpcode_auto_insert":null,"_edit_last":null,"_edit_lock":null,"_oembed_e7b913c6c84084ed9702cb4feb012ddd":null,"_oembed_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_time_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_03514b67990db061d7c4672de26dc514":null,"_oembed_time_03514b67990db061d7c4672de26dc514":null,"rank_math_news_sitemap_robots":null,"rank_math_robots":null,"_eael_post_view_count":"119","_trp_automatically_translated_slug_ru_ru":null,"_trp_automatically_translated_slug_et":null,"_trp_automatically_translated_slug_lv":null,"_trp_automatically_translated_slug_fr_fr":null,"_trp_automatically_translated_slug_en_us":null,"_wp_old_slug":null,"_trp_automatically_translated_slug_da_dk":null,"_trp_automatically_translated_slug_pl_pl":null,"_trp_automatically_translated_slug_es_es":null,"_trp_automatically_translated_slug_hu_hu":null,"_trp_automatically_translated_slug_fi":null,"_trp_automatically_translated_slug_ja":null,"_trp_automatically_translated_slug_lt_lt":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_elementor_version":null,"_elementor_pro_version":null,"_wp_page_template":null,"_elementor_page_settings":null,"_elementor_data":null,"_elementor_css":null,"_elementor_conditions":null,"_happyaddons_elements_cache":null,"_oembed_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_time_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_time_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_59808117857ddf57e478a31d79f76e4d":null,"_oembed_time_59808117857ddf57e478a31d79f76e4d":null,"_oembed_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_time_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_81002f7ee3604f645db4ebcfd1912acf":null,"_oembed_time_81002f7ee3604f645db4ebcfd1912acf":null,"_elementor_screenshot":null,"_oembed_7ea3429961cf98fa85da9747683af827":null,"_oembed_time_7ea3429961cf98fa85da9747683af827":null,"_elementor_controls_usage":null,"_elementor_page_assets":[],"_elementor_screenshot_failed":null,"theplus_transient_widgets":null,"_eael_custom_js":null,"_wp_old_date":null,"_trp_automatically_translated_slug_it_it":null,"_trp_automatically_translated_slug_pt_pt":null,"_trp_automatically_translated_slug_zh_cn":null,"_trp_automatically_translated_slug_nl_nl":null,"_trp_automatically_translated_slug_pt_br":null,"_trp_automatically_translated_slug_sv_se":null,"rank_math_analytic_object_id":null,"rank_math_internal_links_processed":"1","_trp_automatically_translated_slug_ro_ro":null,"_trp_automatically_translated_slug_sk_sk":null,"_trp_automatically_translated_slug_bg_bg":null,"_trp_automatically_translated_slug_sl_si":null,"litespeed_vpi_list":null,"litespeed_vpi_list_mobile":null,"rank_math_seo_score":null,"rank_math_contentai_score":null,"ilj_limitincominglinks":null,"ilj_maxincominglinks":null,"ilj_limitoutgoinglinks":null,"ilj_maxoutgoinglinks":null,"ilj_limitlinksperparagraph":null,"ilj_linksperparagraph":null,"ilj_blacklistdefinition":null,"ilj_linkdefinition":null,"_eb_reusable_block_ids":null,"rank_math_focus_keyword":"NGINX Cache","rank_math_og_content_image":null,"_yoast_wpseo_metadesc":null,"_yoast_wpseo_content_score":null,"_yoast_wpseo_focuskeywords":null,"_yoast_wpseo_keywordsynonyms":null,"_yoast_wpseo_estimated-reading-time-minutes":null,"rank_math_description":null,"surfer_last_post_update":null,"surfer_last_post_update_direction":null,"surfer_keywords":null,"surfer_location":null,"surfer_draft_id":null,"surfer_permalink_hash":null,"surfer_scrape_ready":null,"_thumbnail_id":"20907","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/posts\/20914","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/comments?post=20914"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/posts\/20914\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/media\/20907"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/media?parent=20914"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/categories?post=20914"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/tags?post=20914"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}