CINXE.COM
Elasticsearch · WordPress VIP Documentation
<!doctype html> <html lang="en-US"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://docs.wpvip.com/backgrounds/elasticsearch/","20210811205320","https://web.archive.org/","web","/_static/", "1628715200"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta charset="UTF-8"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"/> <link rel="profile" href="http://gmpg.org/xfn/11"/> <meta name="robots" content="max-image-preview:large"/> <!-- This site is optimized with the Yoast SEO Premium plugin v15.7 - https://yoast.com/wordpress/plugins/seo/ --> <title>Elasticsearch · WordPress VIP Documentation</title> <meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"/> <link rel="canonical" href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/elasticsearch/"/> <meta property="og:locale" content="en_US"/> <meta property="og:type" content="article"/> <meta property="og:title" content="Elasticsearch · WordPress VIP Documentation"/> <meta property="og:description" content="Elasticsearch is an open-source search and analytics engine, which is commonly available together with Logstash and Kibana. It can power many types of search use cases. It’s fairly commonly used to ingest log data and then visualize trends as part of the ELK Stack, but it was originally designed to power web search, and it […]"/> <meta property="og:url" content="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/elasticsearch/"/> <meta property="og:site_name" content="WordPress VIP Documentation"/> <meta property="article:modified_time" content="2021-04-09T20:29:56+00:00"/> <meta name="twitter:card" content="summary_large_image"/> <meta name="twitter:label1" content="Est. reading time"> <meta name="twitter:data1" content="3 minutes"> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://web.archive.org/web/20210811205320/https://schema.org","@graph":[{"@type":"Organization","@id":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/#organization","name":"WordPress VIP","url":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/","sameAs":[],"logo":{"@type":"ImageObject","@id":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/#logo","inLanguage":"en-US","url":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/wp-content/uploads/sites/2/2020/11/wpcomvip_logo_square.png","width":801,"height":801,"caption":"WordPress VIP"},"image":{"@id":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/#logo"}},{"@type":"WebSite","@id":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/#website","url":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/","name":"WordPress VIP Documentation","description":"WordPress VIP Documentation","publisher":{"@id":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/?s={search_term_string}","query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/elasticsearch/#webpage","url":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/elasticsearch/","name":"Elasticsearch · WordPress VIP Documentation","isPartOf":{"@id":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/#website"},"datePublished":"2021-03-05T17:25:56+00:00","dateModified":"2021-04-09T20:29:56+00:00","breadcrumb":{"@id":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/elasticsearch/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/elasticsearch/"]}]},{"@type":"BreadcrumbList","@id":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/elasticsearch/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"WebPage","@id":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/","url":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/","name":"Backgrounds"}},{"@type":"ListItem","position":2,"item":{"@type":"WebPage","@id":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/elasticsearch/","url":"https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/elasticsearch/","name":"Elasticsearch"}}]}]}</script> <!-- / Yoast SEO Premium plugin. --> <link rel="dns-prefetch" href="//web.archive.org/web/20210811205320/https://s.w.org/"/> <link rel="dns-prefetch" href="//web.archive.org/web/20210811205320/https://widgets.wp.com/"/> <link rel="dns-prefetch" href="//web.archive.org/web/20210811205320/https://s0.wp.com/"/> <link rel="dns-prefetch" href="//web.archive.org/web/20210811205320/https://0.gravatar.com/"/> <link rel="dns-prefetch" href="//web.archive.org/web/20210811205320/https://1.gravatar.com/"/> <link rel="dns-prefetch" href="//web.archive.org/web/20210811205320/https://2.gravatar.com/"/> <link rel="alternate" type="application/rss+xml" title="WordPress VIP Documentation » Feed" href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/feed/"/> <link rel="alternate" type="application/rss+xml" title="WordPress VIP Documentation » Comments Feed" href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/comments/feed/"/> <script type="text/javascript"> window._wpemojiSettings = {"baseUrl":"https:\/\/web.archive.org\/web\/20210811205320\/https:\/\/s.w.org\/images\/core\/emoji\/13.0.1\/72x72\/","ext":".png","svgUrl":"https:\/\/web.archive.org\/web\/20210811205320\/https:\/\/s.w.org\/images\/core\/emoji\/13.0.1\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/web.archive.org\/web\/20210811205320\/https:\/\/docs.wpvip.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=5.7.2"}}; !function(e,a,t){var n,r,o,i=a.createElement("canvas"),p=i.getContext&&i.getContext("2d");function s(e,t){var a=String.fromCharCode;p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,e),0,0);e=i.toDataURL();return p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,t),0,0),e===i.toDataURL()}function c(e){var t=a.createElement("script");t.src=e,t.defer=t.type="text/javascript",a.getElementsByTagName("head")[0].appendChild(t)}for(o=Array("flag","emoji"),t.supports={everything:!0,everythingExceptFlag:!0},r=0;r<o.length;r++)t.supports[o[r]]=function(e){if(!p||!p.fillText)return!1;switch(p.textBaseline="top",p.font="600 32px Arial",e){case"flag":return s([127987,65039,8205,9895,65039],[127987,65039,8203,9895,65039])?!1:!s([55356,56826,55356,56819],[55356,56826,8203,55356,56819])&&!s([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]);case"emoji":return!s([55357,56424,8205,55356,57212],[55357,56424,8203,55356,57212])}return!1}(o[r]),t.supports.everything=t.supports.everything&&t.supports[o[r]],"flag"!==o[r]&&(t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&t.supports[o[r]]);t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady=!1,t.readyCallback=function(){t.DOMReady=!0},t.supports.everything||(n=function(){t.readyCallback()},a.addEventListener?(a.addEventListener("DOMContentLoaded",n,!1),e.addEventListener("load",n,!1)):(e.attachEvent("onload",n),a.attachEvent("onreadystatechange",function(){"complete"===a.readyState&&t.readyCallback()})),(n=t.source||{}).concatemoji?c(n.concatemoji):n.wpemoji&&n.twemoji&&(c(n.twemoji),c(n.wpemoji)))}(window,document,window._wpemojiSettings); </script> <style type="text/css"> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 .07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel="stylesheet" id="all-css-0" href="https://web.archive.org/web/20210811205320cs_/https://docs.wpvip.com/_static/??-eJyNkMtuwkAMRX+oExMkKCxQv8WZsYjB89DYaZW/Z0paibCBjSU/jn2v4ac4Tl6mQApeFQKrwSDZX53wULHOoDYLdZFT1wY+4JG4KEQKjCQUKdkqKYIzVSd0Rj+/h7feY76CfE52PzG5ItOZk4ISVj8CCaqxL5X+9f8aqa1sFFzJauoWR3cn+mrthaxgm+433QZiDlNjQPja4vKKZ9bGJlfhm0vIXgFVyf6URFxufcVTv98e9p/bY7+7ATD8iyY=" type="text/css" media="all"/> <style id="wp-block-library-inline-css"> .has-text-align-justify{text-align:justify;} </style> <link rel="https://api.w.org/" href="https://docs.wpvip.com/wp-json/"/><link rel="alternate" type="application/json" href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/wp-json/wp/v2/backgrounds/3180"/><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://docs.wpvip.com/xmlrpc.php?rsd"/> <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://docs.wpvip.com/wp-includes/wlwmanifest.xml"/> <meta name="generator" content="WordPress 5.7.2"/> <link rel="shortlink" href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/?p=3180"/> <link rel="alternate" type="application/json+oembed" href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdocs.wpvip.com%2Fbackgrounds%2Felasticsearch%2F"/> <link rel="alternate" type="text/xml+oembed" href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdocs.wpvip.com%2Fbackgrounds%2Felasticsearch%2F&format=xml"/> <style type="text/css">img#wpstats{display:none}</style> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://web.archive.org/web/20210811205320js_/https://www.googletagmanager.com/gtag/js?id=UA-114849887-3"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-114849887-3'); </script> <!-- BEGIN Parse.ly 2.5.0 --> <script type="application/ld+json"> {"@context":"https:\/\/web.archive.org\/web\/20210811205320\/http:\/\/schema.org","@type":"NewsArticle","mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/web.archive.org\/web\/20210811205320\/http:\/\/docs.wpvip.com\/backgrounds\/elasticsearch\/"},"headline":"Elasticsearch","url":"https:\/\/web.archive.org\/web\/20210811205320\/http:\/\/docs.wpvip.com\/backgrounds\/elasticsearch\/","thumbnailUrl":"","image":{"@type":"ImageObject","url":""},"dateCreated":"2021-03-05T17:25:56Z","datePublished":"2021-03-05T17:25:56Z","dateModified":"2021-03-05T17:25:56Z","articleSection":"Elasticsearch","author":[{"@type":"Person","name":"Yoli Hodde"}],"creator":["Yoli Hodde"],"publisher":{"@type":"Organization","name":"WordPress VIP Documentation","logo":"https:\/\/web.archive.org\/web\/20210811205320\/https:\/\/docs.wpvip.com\/wp-content\/uploads\/sites\/2\/2020\/11\/cropped-favicon-white-1.png"},"keywords":["search"]} </script> <!-- END Parse.ly --> <style type="text/css"> /* If html does not have either class, do not show lazy loaded images. */ html:not( .jetpack-lazy-images-js-enabled ):not( .js ) .jetpack-lazy-image { display: none; } </style> <script> document.documentElement.classList.add( 'jetpack-lazy-images-js-enabled' ); </script> <link rel="icon" href="https://web.archive.org/web/20210811205320im_/https://docs.wpvip.com/wp-content/uploads/sites/2/2020/11/cropped-favicon-white-1.png?w=32" sizes="32x32"/> <link rel="icon" href="https://web.archive.org/web/20210811205320im_/https://docs.wpvip.com/wp-content/uploads/sites/2/2020/11/cropped-favicon-white-1.png?w=192" sizes="192x192"/> <link rel="apple-touch-icon" href="https://web.archive.org/web/20210811205320im_/https://docs.wpvip.com/wp-content/uploads/sites/2/2020/11/cropped-favicon-white-1.png?w=180"/> <meta name="msapplication-TileImage" content="https://docs.wpvip.com/wp-content/uploads/sites/2/2020/11/cropped-favicon-white-1.png?w=270"/> </head> <body class="backgrounds-template-default single single-backgrounds postid-3180 wp-embed-responsive"> <a class="screen-reader-text-focusable" href="#content"> Skip to content</a> <div class="vipdocs-layout"> <header class="vipdocs-layout__header" role="banner"> <div class="vipdocs-layout__header__announcement"> <p>Ready to get started with WordPress VIP? <a href="https://web.archive.org/web/20210811205320/https://wpvip.com/contact/">Contact us</a></p> </div> <div class="vipdocs-layout__header__inner"> <div class="vipdocs-layout__header__brand"> <a class="vipdocs-layout__header__brand__logo" href="https://web.archive.org/web/20210811205320/https://wpvip.com/"> WordPress VIP </a> <span aria-hidden="true" class="vipdocs-layout__header__brand__slash">/</span> <a class="vipdocs-layout__header__brand__text" href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/"> Documentation </a> </div> <!-- .vipdocs-layout__header__brand --> <nav class="vipdocs-layout__header__nav"> <ul id="menu-main-menu" class=""><li itemscope="itemscope" itemtype="https://www.schema.org/SiteNavigationElement" id="menu-item-135" class="menu-item menu-item-type-post_type_archive menu-item-object-how-tos menu-item-135"><a title="How-to Guides" href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/" class="nav-link">How-to Guides</a></li> <li itemscope="itemscope" itemtype="https://www.schema.org/SiteNavigationElement" id="menu-item-136" class="menu-item menu-item-type-post_type_archive menu-item-object-technical-references menu-item-136"><a title="Technical Reference" href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/" class="nav-link">Technical Reference</a></li> <li itemscope="itemscope" itemtype="https://www.schema.org/SiteNavigationElement" id="menu-item-3304" class="menu-item menu-item-type-post_type_archive menu-item-object-backgrounds menu-item-3304 current-menu-item active"><a title="Backgrounds" href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/" class="nav-link">Backgrounds</a></li> </ul> </nav> <!-- .vipdocs-layout__header__nav --> <div class="vipdocs-layout__header__search" data-rkv-instant-search="desktop"> <!-- NOTE: Generated via JS. --> </div> <!-- .vipdocs-layout__header__search --> </div> <!-- .vipdocs-layout__header__inner --> </header> <!-- .vipdocs-layout__header --> <main class="vipdocs-layout__main" id="content"> <div class="vipdocs-layout__main__inner"> <input class="vipdocs-layout__toggle__checkbox" id="VIPDOCS_TOGGLE_CHECKBOX" type="checkbox"/> <label class="vipdocs-layout__toggle" for="VIPDOCS_TOGGLE_CHECKBOX" title="Toggle navigation"> Toggle navigation</label> <div class="vipdocs-layout__main__sidebar" data-rkv-sidebar-for="mobile"> <div data-rkv-instant-search="mobile"></div> <nav class="rkv-tabs"><ul class="rkv-tabs__list"><li class="rkv-tabs__item" data-rkv-tab-hidden="true"></li><li class="rkv-tabs__item">Backgrounds</li><li class="rkv-tabs__item">How-to Guides</li><li class="rkv-tabs__item">Technical References</li></ul><div class="rkv-tabs__panel"><p class="is-style-muted">Start browsing the documentation by selecting a category from the menu above.</p></div><div class="rkv-tabs__panel"><h3 class="vipdocs-sidebar-list__heading">Backgrounds</h3><ul class="vipdocs-sidebar-list"><li class="page_item page-item-3182"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/wordpress-search/">Core WordPress search functionality</a></li><li class="page_item page-item-3180 current_page_item"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/elasticsearch/">Elasticsearch</a></li><li class="page_item page-item-3184"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/jetpack-search/">Jetpack search</a></li><li class="page_item page-item-3519"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/wordpress-multisite/">WordPress multisite</a></li><li class="page_item page-item-3520"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/wordpress-single-site/">WordPress single site</a></li></ul></div><div class="rkv-tabs__panel"><h3 class="vipdocs-sidebar-list__heading">How-to Guides</h3><ul class="vipdocs-sidebar-list"><li class="page_item page-item-2898"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/activate-plugins-through-code/">Activate plugins through code</a></li><li class="page_item page-item-1197"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/add-powered-by-wordpress-vip-to-your-site/">Add “Powered by WordPress VIP” to your site</a></li><li class="page_item page-item-1363"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/add-guest-bylines-to-your-content-with-co-authors-plus/">Add guest bylines to your content with Co-Authors Plus</a></li><li class="page_item page-item-499"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/protected-embeds-on-vip-go/">Add protected embeds on VIP Go</a></li><li class="page_item page-item-1448"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/analyze-your-http-request-logs-with-goaccess/">Analyze your HTTP request logs with GoAccess</a></li><li class="page_item page-item-2719"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/analyze-your-sites-server-performance/">Analyze your site’s server performance</a></li><li class="page_item page-item-506"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/change-or-remove-http-headers-added-by-vip-go/">Change or remove HTTP headers added by VIP Go</a></li><li class="page_item page-item-3061"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/check-dns-record-time-to-live/">Check DNS record Time to Live</a></li><li class="page_item page-item-728 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/code-quality-and-best-practices/">Code Quality and Best Practices</a><ul class="children"><li class="page_item page-item-489"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/code-quality-and-best-practices/write-environment-specific-code/">Write environment-specific code</a></li><li class="page_item page-item-492"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/code-quality-and-best-practices/write-asynchronous-publishing-actions/">Write asynchronous publishing actions</a></li></ul></li><li class="page_item page-item-502"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/configure-a-reverse-proxy/">Configure a reverse proxy</a></li><li class="page_item page-item-1689"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/configure-builds-on-circleci/">Configure builds on CircleCI</a></li><li class="page_item page-item-1694"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/configure-builds-on-travis-ci/">Configure builds on Travis CI</a></li><li class="page_item page-item-1400"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/create-good-changesets/">Create good changesets</a></li><li class="page_item page-item-472"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/create-new-sites/">Create new sites</a></li><li class="page_item page-item-537"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/customize-user-roles/">Customize user roles</a></li><li class="page_item page-item-3704"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/debug-elasticsearch/">Debug Elasticsearch</a></li><li class="page_item page-item-546"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/disable-the-privacy-tools-in-wordpress/">Disable the privacy tools in WordPress</a></li><li class="page_item page-item-3555"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/disable-term-cache-priming/">Disable WordPress core’s term cache priming</a></li><li class="page_item page-item-1148"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/enable-query-monitor-on-my-site/">Enable Query Monitor</a></li><li class="page_item page-item-3008 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/">Enterprise Search</a><ul class="children"><li class="page_item page-item-3011"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/enable/">Enable Enterprise Search in code</a></li><li class="page_item page-item-3020"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/post-types/">Identify which post types are indexed</a></li><li class="page_item page-item-3015"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/post-taxonomies/">Identify which post taxonomies are indexed</a></li><li class="page_item page-item-3027"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/post-meta/">Identify which post meta are indexed</a></li><li class="page_item page-item-3498"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/es-enable-non-search-queries/">Offload any WP_Query to Elasticsearch</a></li><li class="page_item page-item-3084"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/vip-search-features/">Enable Enterprise Search features</a></li><li class="page_item page-item-3127"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/index-and-version-with-vip-search/">Index and version with Enterprise Search</a></li><li class="page_item page-item-3136"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/rate-limiting/">Rate limiting in Enterprise Search</a></li><li class="page_item page-item-3247"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/configuration-issues/">Identify Enterprise Search configuration issues</a></li><li class="page_item page-item-3764"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/search-dev-tools/">Debug with Search Dev Tools</a></li><li class="page_item page-item-3866"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/search-and-multisite/">Search and multisite</a></li><li class="page_item page-item-3811"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/search-debugging-tips/">Search debugging tips</a></li><li class="page_item page-item-3799"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/search-implementation-tips/">Search implementation tips</a></li></ul></li><li class="page_item page-item-3973"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/filtering-wp_unique_post_slug/">Fix performance issues by filtering wp_unique_post_slug</a></li><li class="page_item page-item-1937"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/flush-the-page-cache/">Flush the page cache</a></li><li class="page_item page-item-1775"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/how-to-configure-the-vip-go-geo-uniques-plugin/">How to configure the VIP Go Geo Uniques plugin</a></li><li class="page_item page-item-522"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/migrate-content-databases/">Import databases</a></li><li class="page_item page-item-516"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/migrate-content-media/">Import media files</a></li><li class="page_item page-item-352"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/php_codesniffer/">Install PHP_CodeSniffer for WordPress VIP</a></li><li class="page_item page-item-3530 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/launch-a-site/">Launch a site</a><ul class="children"><li class="page_item page-item-3532"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/launch-a-site/prepare-for-launch/">Prepare for launch</a></li><li class="page_item page-item-3535"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/launch-a-site/begin-a-single-site-launch/">Begin a single site launch</a></li><li class="page_item page-item-3537"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/launch-a-site/begin-a-subsite-launch/">Begin a subsite launch on a multisite network</a></li><li class="page_item page-item-3539"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/launch-a-site/complete-a-site-launch/">Complete a site launch</a></li><li class="page_item page-item-3541"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/launch-a-site/launch-troubleshooting/">Troubleshoot your launch</a></li></ul></li><li class="page_item page-item-4206 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/local-development/">Local development</a><ul class="children"><li class="page_item page-item-4105"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/local-development/use-the-vip-local-development-environment/">Use the VIP local development environment</a></li><li class="page_item page-item-4380"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/local-development/set-up-vvv/">Set up VVV for VIP development</a></li><li class="page_item page-item-4384"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/local-development/add-site-content/">Add VIP production site content for local development</a></li></ul></li><li class="page_item page-item-555"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/manage-user-access/">Manage user access</a></li><li class="page_item page-item-475"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/manually-log-errors-in-new-relic/">Manually log errors in New Relic</a></li><li class="page_item page-item-2674"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/map-a-domain/">Map a domain to your site</a></li><li class="page_item page-item-478"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/modify-the-robots-txt-file/">Modify the robots.txt file</a></li><li class="page_item page-item-3390"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/optimize-core-queries-at-scale/">Optimize core queries at scale</a></li><li class="page_item page-item-2669"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/custom-tls-cert/">Procure a custom TLS certificate</a></li><li class="page_item page-item-496"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/retire-a-site-from-vip-go/">Retire a site from VIP Go</a></li><li class="page_item page-item-1398"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/retrieve-the-url-of-a-file-without-the-cdn-url/">Retrieve the URL of a file without the CDN URL</a></li><li class="page_item page-item-483"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/set-up-the-ads-txt-file/">Set up the ads.txt file</a></li><li class="page_item page-item-1538"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/strip-image-metadata/">Strip image metadata on upload</a></li><li class="page_item page-item-379"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/testing-your-site/">Test a site</a></li><li class="page_item page-item-562"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/test-jetpack-on-vip-go/">Test versions of Jetpack</a></li><li class="page_item page-item-4090 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/troubleshoot-woocommerce/">Troubleshoot WooCommerce</a><ul class="children"><li class="page_item page-item-4092"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/troubleshoot-woocommerce/woocommerce-debug-logging/">Enable WooCommerce Debug Logging</a></li><li class="page_item page-item-4094"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/troubleshoot-woocommerce/upgrade-woocommerce/">Upgrade WooCommerce on VIP Go</a></li></ul></li><li class="page_item page-item-1557"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/upload-languages-to-the-language-directory/">Upload languages to the language directory</a></li><li class="page_item page-item-4504"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/use-composer-on-vip/">Use Composer on VIP</a></li><li class="page_item page-item-2709"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/search-replace/">Use Search-Replace in WP-CLI</a></li><li class="page_item page-item-559"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/using-teamwork-projects/">Using Teamwork Projects</a></li><li class="page_item page-item-1393"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/write-a-good-commit-message/">Write a good commit message</a></li><li class="page_item page-item-2206"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/write-custom-wp-cli-commands/">Write custom WP-CLI commands</a></li></ul></div><div class="rkv-tabs__panel"><h3 class="vipdocs-sidebar-list__heading">Technical References</h3><ul class="vipdocs-sidebar-list"><li class="page_item page-item-48 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/">Caching</a><ul class="children"><li class="page_item page-item-115"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/object-cache/">Object cache</a></li><li class="page_item page-item-169"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/query-cache/">Query cache</a></li><li class="page_item page-item-614"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/page-cache/">Page cache</a></li><li class="page_item page-item-76"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/cache-api/">Cache API</a></li><li class="page_item page-item-72"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/cookies/">Cookies</a></li><li class="page_item page-item-20"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/grace-responses/">Grace Responses</a></li><li class="page_item page-item-187"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/caching-for-sites-using-geo-targeting/">Caching for sites using geotargeting</a></li><li class="page_item page-item-1282"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/the-vip-cache-personalization-api/">The VIP Cache Personalization API</a></li><li class="page_item page-item-117"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/uncached-functions/">Uncached functions</a></li><li class="page_item page-item-190"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/using-wp_rewrite/">Using WP_Rewrite instead of _GET parameters to leverage full page caching</a></li></ul></li><li class="page_item page-item-630 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/">Code Quality and Best Practices</a><ul class="children"><li class="page_item page-item-2529"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/using-post__not_in/">Avoid post__not_in</a></li><li class="page_item page-item-1389"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/encode-values-passed-to-add_query_arg/">Encode values passed to add_query_arg</a></li><li class="page_item page-item-3760"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/local-time/">Obtaining a local time</a></li><li class="page_item page-item-176"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/retrieving-remote-data/">Retrieving remote data</a></li><li class="page_item page-item-293"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/database-queries/">Database queries</a></li><li class="page_item page-item-295"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/querying-on-meta_value/">Meta queries</a></li><li class="page_item page-item-298"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/term-queries-should-consider-include_children-false/">Taxonomy queries should set include_children to false</a></li><li class="page_item page-item-278"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/working-with-wp_options/">Working with wp_options</a></li></ul></li><li class="page_item page-item-639 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/">Code Review</a><ul class="children"><li class="page_item page-item-250"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/phpcs-report/">PHPCS report</a></li><li class="page_item page-item-2257"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/review-recommendations/">Recommendations for the speediest reviews</a></li><li class="page_item page-item-243"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/requesting-code-review/">Requesting code review on VIP</a></li><li class="page_item page-item-2249"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/scheduled-reviews-for-large-changesets/">Scheduled reviews and large changesets</a></li><li class="page_item page-item-1661"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/vip-errors/">VIP errors</a></li><li class="page_item page-item-1665"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/vip-notices/">VIP notices</a></li><li class="page_item page-item-1663"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/vip-warnings/">VIP warnings</a></li><li class="page_item page-item-247"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/vip-code-analysis-bot/">VIP Code Analysis Bot</a></li><li class="page_item page-item-252"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/wpcomvip-bot/">wpcomvip-bot</a></li></ul></li><li class="page_item page-item-150 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/development-workflow/">Development Workflow</a><ul class="children"><li class="page_item page-item-154"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/development-workflow/automated-build-and-deploy/">Automated build and deploy</a></li><li class="page_item page-item-1425"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/development-workflow/code-moves-up-content-moves-down/">Code moves up; content moves down</a></li><li class="page_item page-item-2244"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/development-workflow/developing-from-another-repository/">Developing from another repository</a></li><li class="page_item page-item-254"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/development-workflow/github-pr-reviews/">GitHub Pull Request workflow</a></li></ul></li><li class="page_item page-item-624 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/domains-tls/">Domains & TLS</a><ul class="children"><li class="page_item page-item-52"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/domains-tls/domains/">Domains</a></li><li class="page_item page-item-42"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/domains-tls/dns/">DNS</a></li><li class="page_item page-item-54"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/domains-tls/managing-your-hosts-file/">Managing your hosts file</a></li><li class="page_item page-item-56"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/domains-tls/tls/">TLS</a></li></ul></li><li class="page_item page-item-667 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/elasticsearch/">Elasticsearch</a><ul class="children"><li class="page_item page-item-3880"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/elasticsearch/comparing-search-options-on-wordpress-vip/">Comparing search options on WordPress VIP</a></li><li class="page_item page-item-261"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/elasticsearch/integrating-jetpack-search/">Jetpack Search</a></li><li class="page_item page-item-265"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/elasticsearch/elasticsearch-options-and-debugging/">Jetpack Search options</a></li><li class="page_item page-item-3045"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/elasticsearch/vip-search/">Enterprise Search from WordPress VIP</a></li></ul></li><li class="page_item page-item-637 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/multisites/">Multisites</a><ul class="children"><li class="page_item page-item-229"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/multisites/sunrise-php/">sunrise.php</a></li><li class="page_item page-item-234"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/multisites/multiple-domains/">Multiple domains</a></li><li class="page_item page-item-237"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/multisites/data-sync-for-multiple-domains/">Domain mapping config file</a></li><li class="page_item page-item-239"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/multisites/subdomains-subdirectories/">Subdomains & subdirectories</a></li></ul></li><li class="page_item page-item-437 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/">Plugins</a><ul class="children"><li class="page_item page-item-120"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/installing-plugins-best-practices/">Installing plugins</a></li><li class="page_item page-item-127"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/plugins-load-order/">Plugins load order</a></li><li class="page_item page-item-129"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/version-updates-and-maintenance/">Version updates and maintenance</a></li><li class="page_item page-item-304"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/featured-partner-plugins/">Technology Partner plugins</a></li><li class="page_item page-item-306"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/third-party-plugins/">Third-party plugins</a></li><li class="page_item page-item-308"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/acf-5-and-vip-go/">Advanced Custom Fields (ACF 5)</a></li><li class="page_item page-item-310"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/loading-gutenberg-on-vip/">Loading Gutenberg on VIP</a></li><li class="page_item page-item-313"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/incorporate-co-authors-plus-template-tags-into-your-theme/">Co-Authors Plus plugin</a></li><li class="page_item page-item-316"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/geo-targeting-on-vip-go/">VIP Go Geo Uniques plugin</a></li></ul></li><li class="page_item page-item-628 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/redirects/">Redirects</a><ul class="children"><li class="page_item page-item-61"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/redirects/safe-redirect-manager-plugin/">Safe Redirect Manager plugin</a></li><li class="page_item page-item-58"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/redirects/wpcom-legacy-redirector-plugin/">WPCOM Legacy Redirector plugin</a></li><li class="page_item page-item-64"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/redirects/writing-redirects-directly-into-your-theme-code/">Writing redirects directly into your theme code</a></li><li class="page_item page-item-66"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/redirects/domain-redirects-in-vip-config-php/">Domain redirects in vip-config.php</a></li><li class="page_item page-item-69"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/redirects/external-permalinks-redux-plugin/">External Permalinks Redux plugin</a></li></ul></li><li class="page_item page-item-622 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/">Restricting Site Access</a><ul class="children"><li class="page_item page-item-4364"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/site-access-for-vip-support/">Site access for VIP Support</a></li><li class="page_item page-item-205"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/restricting-access-via-an-ip-allow-list/">Restricting access via an IP Allow List</a></li><li class="page_item page-item-207"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/restricting-access-via-basic-authentication/">Restricting access via Basic Authentication</a></li><li class="page_item page-item-210"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/restricting-access-via-authentication/">Restricting access via Authentication</a></li><li class="page_item page-item-216"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/single-sign-on-sso/">Single Sign On (SSO)</a></li><li class="page_item page-item-1947"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/reverse-proxies/">Reverse proxies</a></li><li class="page_item page-item-219"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/two-factor-authentication/">Two-factor authentication</a></li><li class="page_item page-item-212"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/controlling-content-distribution-via-jetpack/">Controlling content distribution via Jetpack</a></li></ul></li><li class="page_item page-item-670 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/security/">Security</a><ul class="children"><li class="page_item page-item-221"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/security/javascript-security-recommendations/">JavaScript security recommendations</a></li><li class="page_item page-item-224"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/security/user-security-recommendations/">User security recommendations</a></li><li class="page_item page-item-226"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/security/validating-sanitizing-and-escaping/">Validating, sanitizing, and escaping</a></li></ul></li><li class="page_item page-item-626 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/tools-for-site-management/">Tools for Site Management</a><ul class="children"><li class="page_item page-item-1361"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/tools-for-site-management/webhooks-on-vip-go/">Deployment notification webhooks</a></li><li class="page_item page-item-1515"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/tools-for-site-management/vaultpress/">VaultPress</a></li><li class="page_item page-item-83"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/tools-for-site-management/new-relic/">New Relic</a></li><li class="page_item page-item-94"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/tools-for-site-management/cron-control/">Cron control</a></li></ul></li><li class="page_item page-item-432 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/">VIP Codebase</a><ul class="children"><li class="page_item page-item-148"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/vip-go-mu-plugins/">/vip-go-mu-plugins directory</a></li><li class="page_item page-item-125"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/client-mu-plugins-directory/">/client-mu-plugins directory</a></li><li class="page_item page-item-143"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/images-directory/">/images directory</a></li><li class="page_item page-item-123"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/plugins-directory/">/plugins directory</a></li><li class="page_item page-item-163"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/private-directory/">/private directory</a></li><li class="page_item page-item-160"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/themes-on-vip-go/">/themes directory</a></li><li class="page_item page-item-1803"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/vip-config-directory/">/vip-config directory</a></li><li class="page_item page-item-2715"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/editorconfig/">.editorconfig</a></li></ul></li><li class="page_item page-item-81 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-dashboard/">VIP Dashboard</a><ul class="children"><li class="page_item page-item-1527"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-dashboard/health/">Health dashboard</a></li><li class="page_item page-item-1867"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-dashboard/public-api-permissions-access/">Public API permissions access list</a></li><li class="page_item page-item-192"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-dashboard/data-sync/">Data sync from production to non-production environments</a></li><li class="page_item page-item-323"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-dashboard/log-shipping/">HTTP request log shipping</a></li></ul></li><li class="page_item page-item-641 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/">VIP File System</a><ul class="children"><li class="page_item page-item-97"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/media-uploads/">Access to media uploads</a></li><li class="page_item page-item-100"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/local-file-operations/">Local File Operations</a></li><li class="page_item page-item-102"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/images-on-vip-go/">Images on VIP Go</a></li><li class="page_item page-item-104"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/intermediate-images/">Intermediate images</a></li><li class="page_item page-item-106"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/responsive-images/">Responsive Images</a></li><li class="page_item page-item-327"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/image-transformation/">Image transformation</a></li><li class="page_item page-item-325"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/unionfs/">UnionFS</a></li><li class="page_item page-item-4168"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/supported-file-types/">Supported file types</a></li></ul></li><li class="page_item page-item-4096"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-local-development-environment/">VIP Local Development Environment</a></li><li class="page_item page-item-2070 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-platform/">VIP Platform</a><ul class="children"><li class="page_item page-item-2112"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-platform/file-concatenation-and-minification/">File concatenation and minification</a></li><li class="page_item page-item-2047"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-platform/node-js/">Node.js Applications on VIP</a></li><li class="page_item page-item-2844"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-platform/post-revisions/">Post revisions</a></li><li class="page_item page-item-2090"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-platform/environments/">VIP Platform environments</a></li><li class="page_item page-item-273"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-platform/ip-ranges/">VIP Platform IP ranges</a></li><li class="page_item page-item-165"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-platform/wordpress-and-jetpack-versions/">Versions of WordPress and Jetpack on VIP Go</a></li><li class="page_item page-item-167"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-platform/wordpress-upgrades/">WordPress upgrades</a></li></ul></li><li class="page_item page-item-620 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-support/">VIP Support</a><ul class="children"><li class="page_item page-item-3893"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-support/vip-product-feedback/">VIP product feedback</a></li><li class="page_item page-item-271"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-support/disaster-recovery-for-vip-site-outage-protocol/">Disaster recovery for VIP: Site outage protocol</a></li></ul></li><li class="page_item page-item-197 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-cli/">VIP-CLI</a><ul class="children"><li class="page_item page-item-2123"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-cli/installing-vip-cli/">Installing VIP-CLI locally</a></li><li class="page_item page-item-2143"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-cli/basic-usage/">Basic usage</a></li><li class="page_item page-item-2164"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-cli/advanced-usage/">Advanced usage</a></li><li class="page_item page-item-199 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-cli/wp-cli/">WP-CLI</a><ul class="children"><li class="page_item page-item-2200"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-cli/wp-cli/disallowed-commands/">Disallowed WP-CLI commands on VIP</a></li></ul></li><li class="page_item page-item-2129"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-cli/troubleshooting/">Troubleshooting</a></li></ul></li><li class="page_item page-item-4083 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/woocommerce/">WooCommerce</a><ul class="children"><li class="page_item page-item-4085"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/woocommerce/caching-for-woocommerce/">Caching for WooCommerce</a></li><li class="page_item page-item-4087"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/woocommerce/customizing-woocommerce/">Customizing WooCommerce</a></li></ul></li><li class="page_item page-item-275"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/wordpress-rest-api/">WordPress REST API</a></li></ul></div></nav> <ul class="vipdocs-sidebar-footer is-style-muted"> <li> <a href="https://web.archive.org/web/20210811205320/https://lobby.vip.wordpress.com/"> Lobby </a> </li> <li> <a href="https://web.archive.org/web/20210811205320/https://wpvip.com/news/"> Resource Library </a> </li> <li> <a href="https://web.archive.org/web/20210811205320/https://wordpressvip.zendesk.com/"> Contact Support </a> </li> </ul> </div> <!-- .vipdocs-layout__main__sidebar --> <div class="vipdocs-layout__main__sidebar" data-rkv-sidebar-for="desktop" data-rkv-active-post-type="backgrounds"> <div data-rkv-post-type="backgrounds"><h4 class="vipdocs-sidebar-list__heading">Backgrounds</h4><ul class="vipdocs-sidebar-list"><li class="page_item page-item-3182"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/wordpress-search/">Core WordPress search functionality</a></li><li class="page_item page-item-3180 current_page_item"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/elasticsearch/">Elasticsearch</a></li><li class="page_item page-item-3184"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/jetpack-search/">Jetpack search</a></li><li class="page_item page-item-3519"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/wordpress-multisite/">WordPress multisite</a></li><li class="page_item page-item-3520"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/backgrounds/wordpress-single-site/">WordPress single site</a></li></ul></div><div data-rkv-post-type="how-tos"><h4 class="vipdocs-sidebar-list__heading">How-to Guides</h4><ul class="vipdocs-sidebar-list"><li class="page_item page-item-2898"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/activate-plugins-through-code/">Activate plugins through code</a></li><li class="page_item page-item-1197"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/add-powered-by-wordpress-vip-to-your-site/">Add “Powered by WordPress VIP” to your site</a></li><li class="page_item page-item-1363"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/add-guest-bylines-to-your-content-with-co-authors-plus/">Add guest bylines to your content with Co-Authors Plus</a></li><li class="page_item page-item-499"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/protected-embeds-on-vip-go/">Add protected embeds on VIP Go</a></li><li class="page_item page-item-1448"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/analyze-your-http-request-logs-with-goaccess/">Analyze your HTTP request logs with GoAccess</a></li><li class="page_item page-item-2719"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/analyze-your-sites-server-performance/">Analyze your site’s server performance</a></li><li class="page_item page-item-506"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/change-or-remove-http-headers-added-by-vip-go/">Change or remove HTTP headers added by VIP Go</a></li><li class="page_item page-item-3061"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/check-dns-record-time-to-live/">Check DNS record Time to Live</a></li><li class="page_item page-item-728 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/code-quality-and-best-practices/">Code Quality and Best Practices</a><ul class="children"><li class="page_item page-item-489"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/code-quality-and-best-practices/write-environment-specific-code/">Write environment-specific code</a></li><li class="page_item page-item-492"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/code-quality-and-best-practices/write-asynchronous-publishing-actions/">Write asynchronous publishing actions</a></li></ul></li><li class="page_item page-item-502"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/configure-a-reverse-proxy/">Configure a reverse proxy</a></li><li class="page_item page-item-1689"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/configure-builds-on-circleci/">Configure builds on CircleCI</a></li><li class="page_item page-item-1694"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/configure-builds-on-travis-ci/">Configure builds on Travis CI</a></li><li class="page_item page-item-1400"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/create-good-changesets/">Create good changesets</a></li><li class="page_item page-item-472"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/create-new-sites/">Create new sites</a></li><li class="page_item page-item-537"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/customize-user-roles/">Customize user roles</a></li><li class="page_item page-item-3704"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/debug-elasticsearch/">Debug Elasticsearch</a></li><li class="page_item page-item-546"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/disable-the-privacy-tools-in-wordpress/">Disable the privacy tools in WordPress</a></li><li class="page_item page-item-3555"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/disable-term-cache-priming/">Disable WordPress core’s term cache priming</a></li><li class="page_item page-item-1148"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/enable-query-monitor-on-my-site/">Enable Query Monitor</a></li><li class="page_item page-item-3008 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/">Enterprise Search</a><ul class="children"><li class="page_item page-item-3011"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/enable/">Enable Enterprise Search in code</a></li><li class="page_item page-item-3020"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/post-types/">Identify which post types are indexed</a></li><li class="page_item page-item-3015"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/post-taxonomies/">Identify which post taxonomies are indexed</a></li><li class="page_item page-item-3027"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/post-meta/">Identify which post meta are indexed</a></li><li class="page_item page-item-3498"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/es-enable-non-search-queries/">Offload any WP_Query to Elasticsearch</a></li><li class="page_item page-item-3084"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/vip-search-features/">Enable Enterprise Search features</a></li><li class="page_item page-item-3127"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/index-and-version-with-vip-search/">Index and version with Enterprise Search</a></li><li class="page_item page-item-3136"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/rate-limiting/">Rate limiting in Enterprise Search</a></li><li class="page_item page-item-3247"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/configuration-issues/">Identify Enterprise Search configuration issues</a></li><li class="page_item page-item-3764"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/search-dev-tools/">Debug with Search Dev Tools</a></li><li class="page_item page-item-3866"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/search-and-multisite/">Search and multisite</a></li><li class="page_item page-item-3811"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/search-debugging-tips/">Search debugging tips</a></li><li class="page_item page-item-3799"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/search-implementation-tips/">Search implementation tips</a></li></ul></li><li class="page_item page-item-3973"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/filtering-wp_unique_post_slug/">Fix performance issues by filtering wp_unique_post_slug</a></li><li class="page_item page-item-1937"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/flush-the-page-cache/">Flush the page cache</a></li><li class="page_item page-item-1775"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/how-to-configure-the-vip-go-geo-uniques-plugin/">How to configure the VIP Go Geo Uniques plugin</a></li><li class="page_item page-item-522"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/migrate-content-databases/">Import databases</a></li><li class="page_item page-item-516"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/migrate-content-media/">Import media files</a></li><li class="page_item page-item-352"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/php_codesniffer/">Install PHP_CodeSniffer for WordPress VIP</a></li><li class="page_item page-item-3530 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/launch-a-site/">Launch a site</a><ul class="children"><li class="page_item page-item-3532"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/launch-a-site/prepare-for-launch/">Prepare for launch</a></li><li class="page_item page-item-3535"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/launch-a-site/begin-a-single-site-launch/">Begin a single site launch</a></li><li class="page_item page-item-3537"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/launch-a-site/begin-a-subsite-launch/">Begin a subsite launch on a multisite network</a></li><li class="page_item page-item-3539"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/launch-a-site/complete-a-site-launch/">Complete a site launch</a></li><li class="page_item page-item-3541"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/launch-a-site/launch-troubleshooting/">Troubleshoot your launch</a></li></ul></li><li class="page_item page-item-4206 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/local-development/">Local development</a><ul class="children"><li class="page_item page-item-4105"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/local-development/use-the-vip-local-development-environment/">Use the VIP local development environment</a></li><li class="page_item page-item-4380"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/local-development/set-up-vvv/">Set up VVV for VIP development</a></li><li class="page_item page-item-4384"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/local-development/add-site-content/">Add VIP production site content for local development</a></li></ul></li><li class="page_item page-item-555"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/manage-user-access/">Manage user access</a></li><li class="page_item page-item-475"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/manually-log-errors-in-new-relic/">Manually log errors in New Relic</a></li><li class="page_item page-item-2674"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/map-a-domain/">Map a domain to your site</a></li><li class="page_item page-item-478"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/modify-the-robots-txt-file/">Modify the robots.txt file</a></li><li class="page_item page-item-3390"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/optimize-core-queries-at-scale/">Optimize core queries at scale</a></li><li class="page_item page-item-2669"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/custom-tls-cert/">Procure a custom TLS certificate</a></li><li class="page_item page-item-496"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/retire-a-site-from-vip-go/">Retire a site from VIP Go</a></li><li class="page_item page-item-1398"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/retrieve-the-url-of-a-file-without-the-cdn-url/">Retrieve the URL of a file without the CDN URL</a></li><li class="page_item page-item-483"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/set-up-the-ads-txt-file/">Set up the ads.txt file</a></li><li class="page_item page-item-1538"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/strip-image-metadata/">Strip image metadata on upload</a></li><li class="page_item page-item-379"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/testing-your-site/">Test a site</a></li><li class="page_item page-item-562"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/test-jetpack-on-vip-go/">Test versions of Jetpack</a></li><li class="page_item page-item-4090 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/troubleshoot-woocommerce/">Troubleshoot WooCommerce</a><ul class="children"><li class="page_item page-item-4092"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/troubleshoot-woocommerce/woocommerce-debug-logging/">Enable WooCommerce Debug Logging</a></li><li class="page_item page-item-4094"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/troubleshoot-woocommerce/upgrade-woocommerce/">Upgrade WooCommerce on VIP Go</a></li></ul></li><li class="page_item page-item-1557"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/upload-languages-to-the-language-directory/">Upload languages to the language directory</a></li><li class="page_item page-item-4504"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/use-composer-on-vip/">Use Composer on VIP</a></li><li class="page_item page-item-2709"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/search-replace/">Use Search-Replace in WP-CLI</a></li><li class="page_item page-item-559"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/using-teamwork-projects/">Using Teamwork Projects</a></li><li class="page_item page-item-1393"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/write-a-good-commit-message/">Write a good commit message</a></li><li class="page_item page-item-2206"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/write-custom-wp-cli-commands/">Write custom WP-CLI commands</a></li></ul></div><div data-rkv-post-type="technical-references"><h4 class="vipdocs-sidebar-list__heading">Technical References</h4><ul class="vipdocs-sidebar-list"><li class="page_item page-item-48 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/">Caching</a><ul class="children"><li class="page_item page-item-115"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/object-cache/">Object cache</a></li><li class="page_item page-item-169"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/query-cache/">Query cache</a></li><li class="page_item page-item-614"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/page-cache/">Page cache</a></li><li class="page_item page-item-76"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/cache-api/">Cache API</a></li><li class="page_item page-item-72"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/cookies/">Cookies</a></li><li class="page_item page-item-20"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/grace-responses/">Grace Responses</a></li><li class="page_item page-item-187"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/caching-for-sites-using-geo-targeting/">Caching for sites using geotargeting</a></li><li class="page_item page-item-1282"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/the-vip-cache-personalization-api/">The VIP Cache Personalization API</a></li><li class="page_item page-item-117"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/uncached-functions/">Uncached functions</a></li><li class="page_item page-item-190"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/caching/using-wp_rewrite/">Using WP_Rewrite instead of _GET parameters to leverage full page caching</a></li></ul></li><li class="page_item page-item-630 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/">Code Quality and Best Practices</a><ul class="children"><li class="page_item page-item-2529"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/using-post__not_in/">Avoid post__not_in</a></li><li class="page_item page-item-1389"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/encode-values-passed-to-add_query_arg/">Encode values passed to add_query_arg</a></li><li class="page_item page-item-3760"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/local-time/">Obtaining a local time</a></li><li class="page_item page-item-176"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/retrieving-remote-data/">Retrieving remote data</a></li><li class="page_item page-item-293"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/database-queries/">Database queries</a></li><li class="page_item page-item-295"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/querying-on-meta_value/">Meta queries</a></li><li class="page_item page-item-298"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/term-queries-should-consider-include_children-false/">Taxonomy queries should set include_children to false</a></li><li class="page_item page-item-278"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-quality-and-best-practices/working-with-wp_options/">Working with wp_options</a></li></ul></li><li class="page_item page-item-639 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/">Code Review</a><ul class="children"><li class="page_item page-item-250"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/phpcs-report/">PHPCS report</a></li><li class="page_item page-item-2257"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/review-recommendations/">Recommendations for the speediest reviews</a></li><li class="page_item page-item-243"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/requesting-code-review/">Requesting code review on VIP</a></li><li class="page_item page-item-2249"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/scheduled-reviews-for-large-changesets/">Scheduled reviews and large changesets</a></li><li class="page_item page-item-1661"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/vip-errors/">VIP errors</a></li><li class="page_item page-item-1665"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/vip-notices/">VIP notices</a></li><li class="page_item page-item-1663"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/vip-warnings/">VIP warnings</a></li><li class="page_item page-item-247"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/vip-code-analysis-bot/">VIP Code Analysis Bot</a></li><li class="page_item page-item-252"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/code-review/wpcomvip-bot/">wpcomvip-bot</a></li></ul></li><li class="page_item page-item-150 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/development-workflow/">Development Workflow</a><ul class="children"><li class="page_item page-item-154"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/development-workflow/automated-build-and-deploy/">Automated build and deploy</a></li><li class="page_item page-item-1425"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/development-workflow/code-moves-up-content-moves-down/">Code moves up; content moves down</a></li><li class="page_item page-item-2244"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/development-workflow/developing-from-another-repository/">Developing from another repository</a></li><li class="page_item page-item-254"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/development-workflow/github-pr-reviews/">GitHub Pull Request workflow</a></li></ul></li><li class="page_item page-item-624 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/domains-tls/">Domains & TLS</a><ul class="children"><li class="page_item page-item-52"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/domains-tls/domains/">Domains</a></li><li class="page_item page-item-42"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/domains-tls/dns/">DNS</a></li><li class="page_item page-item-54"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/domains-tls/managing-your-hosts-file/">Managing your hosts file</a></li><li class="page_item page-item-56"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/domains-tls/tls/">TLS</a></li></ul></li><li class="page_item page-item-667 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/elasticsearch/">Elasticsearch</a><ul class="children"><li class="page_item page-item-3880"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/elasticsearch/comparing-search-options-on-wordpress-vip/">Comparing search options on WordPress VIP</a></li><li class="page_item page-item-261"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/elasticsearch/integrating-jetpack-search/">Jetpack Search</a></li><li class="page_item page-item-265"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/elasticsearch/elasticsearch-options-and-debugging/">Jetpack Search options</a></li><li class="page_item page-item-3045"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/elasticsearch/vip-search/">Enterprise Search from WordPress VIP</a></li></ul></li><li class="page_item page-item-637 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/multisites/">Multisites</a><ul class="children"><li class="page_item page-item-229"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/multisites/sunrise-php/">sunrise.php</a></li><li class="page_item page-item-234"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/multisites/multiple-domains/">Multiple domains</a></li><li class="page_item page-item-237"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/multisites/data-sync-for-multiple-domains/">Domain mapping config file</a></li><li class="page_item page-item-239"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/multisites/subdomains-subdirectories/">Subdomains & subdirectories</a></li></ul></li><li class="page_item page-item-437 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/">Plugins</a><ul class="children"><li class="page_item page-item-120"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/installing-plugins-best-practices/">Installing plugins</a></li><li class="page_item page-item-127"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/plugins-load-order/">Plugins load order</a></li><li class="page_item page-item-129"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/version-updates-and-maintenance/">Version updates and maintenance</a></li><li class="page_item page-item-304"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/featured-partner-plugins/">Technology Partner plugins</a></li><li class="page_item page-item-306"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/third-party-plugins/">Third-party plugins</a></li><li class="page_item page-item-308"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/acf-5-and-vip-go/">Advanced Custom Fields (ACF 5)</a></li><li class="page_item page-item-310"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/loading-gutenberg-on-vip/">Loading Gutenberg on VIP</a></li><li class="page_item page-item-313"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/incorporate-co-authors-plus-template-tags-into-your-theme/">Co-Authors Plus plugin</a></li><li class="page_item page-item-316"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/plugins/geo-targeting-on-vip-go/">VIP Go Geo Uniques plugin</a></li></ul></li><li class="page_item page-item-628 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/redirects/">Redirects</a><ul class="children"><li class="page_item page-item-61"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/redirects/safe-redirect-manager-plugin/">Safe Redirect Manager plugin</a></li><li class="page_item page-item-58"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/redirects/wpcom-legacy-redirector-plugin/">WPCOM Legacy Redirector plugin</a></li><li class="page_item page-item-64"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/redirects/writing-redirects-directly-into-your-theme-code/">Writing redirects directly into your theme code</a></li><li class="page_item page-item-66"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/redirects/domain-redirects-in-vip-config-php/">Domain redirects in vip-config.php</a></li><li class="page_item page-item-69"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/redirects/external-permalinks-redux-plugin/">External Permalinks Redux plugin</a></li></ul></li><li class="page_item page-item-622 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/">Restricting Site Access</a><ul class="children"><li class="page_item page-item-4364"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/site-access-for-vip-support/">Site access for VIP Support</a></li><li class="page_item page-item-205"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/restricting-access-via-an-ip-allow-list/">Restricting access via an IP Allow List</a></li><li class="page_item page-item-207"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/restricting-access-via-basic-authentication/">Restricting access via Basic Authentication</a></li><li class="page_item page-item-210"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/restricting-access-via-authentication/">Restricting access via Authentication</a></li><li class="page_item page-item-216"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/single-sign-on-sso/">Single Sign On (SSO)</a></li><li class="page_item page-item-1947"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/reverse-proxies/">Reverse proxies</a></li><li class="page_item page-item-219"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/two-factor-authentication/">Two-factor authentication</a></li><li class="page_item page-item-212"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/restricting-site-access/controlling-content-distribution-via-jetpack/">Controlling content distribution via Jetpack</a></li></ul></li><li class="page_item page-item-670 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/security/">Security</a><ul class="children"><li class="page_item page-item-221"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/security/javascript-security-recommendations/">JavaScript security recommendations</a></li><li class="page_item page-item-224"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/security/user-security-recommendations/">User security recommendations</a></li><li class="page_item page-item-226"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/security/validating-sanitizing-and-escaping/">Validating, sanitizing, and escaping</a></li></ul></li><li class="page_item page-item-626 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/tools-for-site-management/">Tools for Site Management</a><ul class="children"><li class="page_item page-item-1361"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/tools-for-site-management/webhooks-on-vip-go/">Deployment notification webhooks</a></li><li class="page_item page-item-1515"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/tools-for-site-management/vaultpress/">VaultPress</a></li><li class="page_item page-item-83"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/tools-for-site-management/new-relic/">New Relic</a></li><li class="page_item page-item-94"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/tools-for-site-management/cron-control/">Cron control</a></li></ul></li><li class="page_item page-item-432 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/">VIP Codebase</a><ul class="children"><li class="page_item page-item-148"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/vip-go-mu-plugins/">/vip-go-mu-plugins directory</a></li><li class="page_item page-item-125"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/client-mu-plugins-directory/">/client-mu-plugins directory</a></li><li class="page_item page-item-143"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/images-directory/">/images directory</a></li><li class="page_item page-item-123"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/plugins-directory/">/plugins directory</a></li><li class="page_item page-item-163"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/private-directory/">/private directory</a></li><li class="page_item page-item-160"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/themes-on-vip-go/">/themes directory</a></li><li class="page_item page-item-1803"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/vip-config-directory/">/vip-config directory</a></li><li class="page_item page-item-2715"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-codebase/editorconfig/">.editorconfig</a></li></ul></li><li class="page_item page-item-81 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-dashboard/">VIP Dashboard</a><ul class="children"><li class="page_item page-item-1527"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-dashboard/health/">Health dashboard</a></li><li class="page_item page-item-1867"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-dashboard/public-api-permissions-access/">Public API permissions access list</a></li><li class="page_item page-item-192"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-dashboard/data-sync/">Data sync from production to non-production environments</a></li><li class="page_item page-item-323"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-dashboard/log-shipping/">HTTP request log shipping</a></li></ul></li><li class="page_item page-item-641 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/">VIP File System</a><ul class="children"><li class="page_item page-item-97"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/media-uploads/">Access to media uploads</a></li><li class="page_item page-item-100"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/local-file-operations/">Local File Operations</a></li><li class="page_item page-item-102"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/images-on-vip-go/">Images on VIP Go</a></li><li class="page_item page-item-104"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/intermediate-images/">Intermediate images</a></li><li class="page_item page-item-106"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/responsive-images/">Responsive Images</a></li><li class="page_item page-item-327"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/image-transformation/">Image transformation</a></li><li class="page_item page-item-325"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/unionfs/">UnionFS</a></li><li class="page_item page-item-4168"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-go-files-system/supported-file-types/">Supported file types</a></li></ul></li><li class="page_item page-item-4096"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-local-development-environment/">VIP Local Development Environment</a></li><li class="page_item page-item-2070 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-platform/">VIP Platform</a><ul class="children"><li class="page_item page-item-2112"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-platform/file-concatenation-and-minification/">File concatenation and minification</a></li><li class="page_item page-item-2047"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-platform/node-js/">Node.js Applications on VIP</a></li><li class="page_item page-item-2844"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-platform/post-revisions/">Post revisions</a></li><li class="page_item page-item-2090"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-platform/environments/">VIP Platform environments</a></li><li class="page_item page-item-273"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-platform/ip-ranges/">VIP Platform IP ranges</a></li><li class="page_item page-item-165"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-platform/wordpress-and-jetpack-versions/">Versions of WordPress and Jetpack on VIP Go</a></li><li class="page_item page-item-167"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-platform/wordpress-upgrades/">WordPress upgrades</a></li></ul></li><li class="page_item page-item-620 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-support/">VIP Support</a><ul class="children"><li class="page_item page-item-3893"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-support/vip-product-feedback/">VIP product feedback</a></li><li class="page_item page-item-271"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-support/disaster-recovery-for-vip-site-outage-protocol/">Disaster recovery for VIP: Site outage protocol</a></li></ul></li><li class="page_item page-item-197 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-cli/">VIP-CLI</a><ul class="children"><li class="page_item page-item-2123"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-cli/installing-vip-cli/">Installing VIP-CLI locally</a></li><li class="page_item page-item-2143"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-cli/basic-usage/">Basic usage</a></li><li class="page_item page-item-2164"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-cli/advanced-usage/">Advanced usage</a></li><li class="page_item page-item-199 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-cli/wp-cli/">WP-CLI</a><ul class="children"><li class="page_item page-item-2200"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-cli/wp-cli/disallowed-commands/">Disallowed WP-CLI commands on VIP</a></li></ul></li><li class="page_item page-item-2129"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/vip-cli/troubleshooting/">Troubleshooting</a></li></ul></li><li class="page_item page-item-4083 page_item_has_children"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/woocommerce/">WooCommerce</a><ul class="children"><li class="page_item page-item-4085"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/woocommerce/caching-for-woocommerce/">Caching for WooCommerce</a></li><li class="page_item page-item-4087"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/woocommerce/customizing-woocommerce/">Customizing WooCommerce</a></li></ul></li><li class="page_item page-item-275"><a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/wordpress-rest-api/">WordPress REST API</a></li></ul></div> <ul class="vipdocs-sidebar-footer is-style-muted"> <li> <a href="https://web.archive.org/web/20210811205320/https://lobby.vip.wordpress.com/"> Lobby </a> </li> <li> <a href="https://web.archive.org/web/20210811205320/https://wpvip.com/news/"> Resource Library </a> </li> <li> <a href="https://web.archive.org/web/20210811205320/https://wordpressvip.zendesk.com/"> Contact Support </a> </li> </ul> </div> <!-- .vipdocs-layout__main__sidebar --> <div class="vipdocs-layout__main__content" id="rkv-toc-scroll"> <div class="vipdocs-layout__main__content__inner"> <div class="vipdocs-layout__main__content__primary"> <div id="rkv-toc-content"> <div class="rkv-loop "> <article class="rkv-entry post-3180 backgrounds type-backgrounds status-publish hentry category-elasticsearch tag-search" aria-label="Elasticsearch" id="post-3180"> <header class="rkv-entry__header"> <h1 class="rkv-entry__title"> Elasticsearch </h1> </header> <!-- .rkv-entry__header --> <div class="rkv-entry__content"> <p>Elasticsearch is <a href="https://web.archive.org/web/20210811205320/https://www.elastic.co/what-is/elasticsearch" target="_blank" rel="noreferrer noopener nofollow">an open-source search and analytics engine</a>, which is commonly available together with Logstash and Kibana. It can power many types of search use cases. It’s fairly commonly used to ingest log data and then visualize trends as part of the <a href="https://web.archive.org/web/20210811205320/https://logz.io/learn/complete-guide-elk-stack/" target="_blank" rel="noreferrer noopener nofollow">ELK Stack</a>, but it was originally designed to power web search, and it is what WordPress VIP, WordPress.com, and Jetpack Search use.</p> <p>Elasticsearch (ES) has its own environment and data store, and interactions with it are via REST API requests. </p> <p>When Elasticsearch is powering a site’s search, it will need to continually index the content on the site, and then as search requests are made, API calls are made to tell ES what to search for and how to weight results. The results are usually just used to identify the matching content: the WordPress database remains the “source of truth”.</p> <p>To integrate a WordPress site with Elasticsearch, you’ll need code to monitor for content changes and send those changes to the ES “cluster” for indexing. And also, most importantly, code to intercept the search queries and, instead of making <code>LIKE</code> queries to the MySQL database, send an API request to the Elasticsearch endpoint.</p> <p>The actual queries usually use Query DSL. There are many <a href="https://web.archive.org/web/20210811205320/https://logz.io/blog/elasticsearch-queries/" target="_blank" rel="noreferrer noopener nofollow">types of queries</a>. </p> <p>That ES endpoint will then return a set of search results, containing post IDs: </p> <div class="wp-block-rkv-syntax-highlighting vipdocs-syntax"><pre class="line-numbers prism-large" data-start="1"><code class="lang-js">{ "took": 9, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 569, "relation": "eq" }, "max_score": 540.97675, "hits": [ { "_index": "vip-2737-post-1", "_type": "_doc", "_id": "4536344", "_score": 540.97675, "_source": { "post_id": 4536344 } }, { "_index": "vip-2737-post-1", "_type": "_doc", "_id": "105829", "_score": 516.1369, "_source": { "post_id": 105829 } }, { "_index": "vip-2737-post-1", "_type": "_doc", "_id": "306074", "_score": 516.1369, "_source": { "post_id": 306074 } }, { "_index": "vip-2737-post-1", "_type": "_doc", "_id": "3688167", "_score": 476.97778, "_source": { "post_id": 3688167 } }, { "_index": "vip-2737-post-1", "_type": "_doc", "_id": "4616046", "_score": 476.97778, "_source": { "post_id": 4616046 } } ] } }</code></pre><textarea aria-hidden="true" class="vipdocs-syntax__copy-textarea">{ "took": 9, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 569, "relation": "eq" }, "max_score": 540.97675, "hits": [ { "_index": "vip-2737-post-1", "_type": "_doc", "_id": "4536344", "_score": 540.97675, "_source": { "post_id": 4536344 } }, { "_index": "vip-2737-post-1", "_type": "_doc", "_id": "105829", "_score": 516.1369, "_source": { "post_id": 105829 } }, { "_index": "vip-2737-post-1", "_type": "_doc", "_id": "306074", "_score": 516.1369, "_source": { "post_id": 306074 } }, { "_index": "vip-2737-post-1", "_type": "_doc", "_id": "3688167", "_score": 476.97778, "_source": { "post_id": 3688167 } }, { "_index": "vip-2737-post-1", "_type": "_doc", "_id": "4616046", "_score": 476.97778, "_source": { "post_id": 4616046 } } ] } }</textarea><button class="vipdocs-syntax__copy-button" type="button"><span class="vipdocs-syntax__copy-button__before">Copy</span><span class="vipdocs-syntax__copy-button__after" aria-hidden="true">Copied</span></button></div> <p>Those post IDs can then be used to fetch the actual data from the database and display post summaries:</p> <div class="wp-block-rkv-syntax-highlighting vipdocs-syntax"><pre class="line-numbers prism-large" data-start="1"><code class="lang-bash">SELECT wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.ID IN (426,506,192) AND wp_posts.post_type IN ('post', 'page') AND wp_posts.post_status = 'publish' ORDER BY wp_posts.post_date DESC LIMIT 0, 3</code></pre><textarea aria-hidden="true" class="vipdocs-syntax__copy-textarea">SELECT wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.ID IN (426,506,192) AND wp_posts.post_type IN ('post', 'page') AND wp_posts.post_status = 'publish' ORDER BY wp_posts.post_date DESC LIMIT 0, 3</textarea><button class="vipdocs-syntax__copy-button" type="button"><span class="vipdocs-syntax__copy-button__before">Copy</span><span class="vipdocs-syntax__copy-button__after" aria-hidden="true">Copied</span></button></div> <p>So in the typical search request, you’ll see:</p> <ul><li>The normal <strong>WPDB</strong> query is intercepted</li><li>A request to the ES endpoint is made with the details from the query (i.e. the search terms)</li><li>A response is received, containing a list of matching post IDs (and often, other data such as rankings)</li><li>A new DB query is made to get the list of posts, or a series of <code>get_post()</code> calls are made for individual posts</li><li>Results are returned for the matching posts</li><li>And then these are rendered on the page</li></ul> <p>During publishing actions, <a href="https://web.archive.org/web/20210811205320/https://developer.wordpress.org/plugins/hooks/" target="_blank" rel="noreferrer noopener nofollow">action hooks</a> capture the change events and identify the changed data to be indexed. Usually, the actual indexing communications with ES happens asynchronously, so there may be a slight delay after a change in WordPress before the change appears in Elasticsearch. This is one reason the database should always be used as the source of truth when rendering result pages.</p> </div> <!-- .rkv-entry-content --> </article> <!-- .rkv-entry --> </div> <!-- .rkv-loop --> <p class="vipdocs-last-updated-text">Last updated: April 09, 2021</p> <div class="rkv-card is-style-extra-padding"> <h4> Related Topics </h4> <ul class="rkv-list-spacing rkv-list-unstyled"> <li> <a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/search-dev-tools/">How To: Debug with Search Dev Tools</a> </li> <li> <a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/technical-references/elasticsearch/comparing-search-options-on-wordpress-vip/">Technical Reference: Comparing search options on WordPress VIP</a> </li> <li> <a href="https://web.archive.org/web/20210811205320/https://docs.wpvip.com/how-tos/vip-search/search-debugging-tips/">How To: Search debugging tips</a> </li> </ul> </div> <!-- .rkv-card --> <footer class="vipdocs-layout__main__content__footer" role="contentinfo"> <hr/> <p class="has-text-align-center vipdocs-layout__main__content__footer__header"> Have a question, or ready to get started with WordPress VIP? </p> <div class="rkv-button-group__wrapper"> <ul class="rkv-button-group"> <li> <a class="rkv-button" href="https://web.archive.org/web/20210811205320/https://wordpressvip.zendesk.com/">Contact Support</a> </li> <li> <a class="rkv-button is-style-secondary" href="https://web.archive.org/web/20210811205320/https://wpvip.com/contact/">Contact Sales</a> </li> </ul> <!-- .rkv-button-group --> </div> <!-- .rkv-button-group__wrapper --> <hr/> <p class="has-text-align-center rkv-gutter-bottom-none font-small"> Documentation is licensed under a </p> <p class="has-text-align-center font-small"> <a href="https://web.archive.org/web/20210811205320/https://creativecommons.org/licenses/by-sa/4.0/"> Creative Commons Attribution-ShareAlike 4.0 International License </a> </p> <div class="vipdocs-automattic-block"> <p> <a href="https://web.archive.org/web/20210811205320/https://automattic.com/"> An <span class="screen-reader-text">Automattic</span><svg class="svg-icon svg-icon-automattic" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 200 15.4"><path d="M72.5 15.4c-5.1 0-8.4-3.7-8.4-7.5v-.4c0-3.9 3.3-7.5 8.4-7.5 5.1 0 8.4 3.6 8.4 7.5V8c0 3.8-3.3 7.4-8.4 7.4zm5.7-7.9c0-2.8-2-5.3-5.7-5.3s-5.7 2.5-5.7 5.3v.3c0 2.8 2 5.3 5.7 5.3s5.7-2.5 5.7-5.3v-.3z" fill="#3298CB"/><path d="M15 14.9l-1.9-3.6H4.7l-1.8 3.6H0L7.8.5H10l7.9 14.4H15zM8.8 3.3l-3.1 6h6.4l-3.3-6zm21.4 12.1c-5.2 0-7.6-2.8-7.6-6.5V.5h2.7V9c0 2.7 1.7 4.2 5.1 4.2 3.4 0 4.8-1.6 4.8-4.2V.5h2.7v8.4c0 3.6-2.3 6.5-7.7 6.5zM52.9 2.8v12.1h-2.7V2.8h-6.3V.5h15.3v2.2h-6.3zM105 14.9V3.5l-.7 1.3-6 10.1H97L91 4.8l-.7-1.3v11.4h-2.6V.5h3.7l5.7 9.9.7 1.2.7-1.2 5.6-9.9h3.7v14.4H105zm23.1 0l-1.9-3.6h-8.4l-1.8 3.6h-3L120.8.5h2.2l7.9 14.4h-2.8zm-6.2-11.6l-3.1 6h6.4l-3.3-6zm19.9-.5v12.1h-2.7V2.8h-6.3V.5h15.3v2.2h-6.3zm19.8 0v12.1h-2.7V2.8h-6.3V.5h15.3v2.2h-6.3zm12.9 12.1v-13c1.1 0 1.5-.6 1.5-1.4h1.1v14.4h-2.6zm23.8-10.3c-1.3-1.2-3.2-2.3-5.8-2.3-3.8 0-6 2.6-6 5.4V8c0 2.7 2.2 5.3 6.2 5.3 2.4 0 4.4-1.1 5.6-2.3l1.6 1.7c-1.6 1.6-4.3 2.9-7.4 2.9-5.4 0-8.7-3.5-8.7-7.4v-.6c0-3.9 3.6-7.6 8.9-7.6 3 0 5.8 1.3 7.3 2.9l-1.7 1.7zM74.3 5c.5.3.6 1 .3 1.5l-2.5 3.8c-.3.5-1 .6-1.5.3s-.6-1-.3-1.5l2.5-3.8c.4-.5 1-.6 1.5-.3z"/></svg> Production </a> </p> </div> <!-- .vipdocs-automattic-block --> </footer> <!-- .vipdocs-layout__main__content__footer --> </div> <!-- #rkv-toc-content --> </div> <!-- .vipdocs-layout__main__content__primary --> <div class="vipdocs-layout__main__content__secondary"> <nav id="rkv-toc-nav" class="rkv-table-of-contents__sticky"> </nav> <!-- #rkv-toc-nav --> </div> <!-- .vipdocs-layout__main__content__secondary --> </div> <!-- .vipdocs-layout__main__content__inner --> </div> <!-- .vipdocs-layout__main__content --> </div> <!-- .vipdocs-layout__main__inner --> </main> <!-- .vipdocs-layout__main --> </div> <!-- .vipdocs-layout --> <script id="rkv-script-js-extra"> var wpvipDocs = {"search":"","url":"https:\/\/web.archive.org\/web\/20210811205320\/https:\/\/docs.wpvip.com\/search","cptPages":[{"name":"Backgrounds","link":"https:\/\/web.archive.org\/web\/20210811205320\/https:\/\/docs.wpvip.com\/backgrounds\/","content":"Definitions, context and explanation for terms used throughout other Documentation articles can be found in this section."},{"name":"How-to Guides","link":"https:\/\/web.archive.org\/web\/20210811205320\/https:\/\/docs.wpvip.com\/how-tos\/","content":"Articles found here provide descriptive steps needed to solve a problem or complete a task."},{"name":"Technical Reference","link":"https:\/\/web.archive.org\/web\/20210811205320\/https:\/\/docs.wpvip.com\/technical-references\/","content":"Information related specifically to the VIP Go platform is found in this section, providing definitions, descriptions, and examples when possible for"}],"topSearch":[{"url":"https:\/\/web.archive.org\/web\/20210811205320\/https:\/\/docs.wpvip.com\/how-tos\/change-or-remove-http-headers-added-by-vip-go\/","text":"Change or remove HTTP headers added by VIP Go","title":"change-or-remove-http-headers-added-by-vip-go"},{"url":"https:\/\/web.archive.org\/web\/20210811205320\/https:\/\/docs.wpvip.com\/how-tos\/","text":"How-to Guides","title":"how-tos"},{"url":"https:\/\/web.archive.org\/web\/20210811205320\/https:\/\/docs.wpvip.com\/technical-references\/vip-dashboard\/data-sync\/","text":"Data sync from production to non-production environments","title":"data-sync"}],"topSearchBlurb":"Frequently searched for"}; </script> <script id="jetpack-lazy-images-js-extra"> var jetpackLazyImagesL10n = {"loading_warning":"Images are still loading. Please cancel your print and try again."}; </script> <script type="text/javascript" src="https://web.archive.org/web/20210811205320js_/https://docs.wpvip.com/_static/??-eJy1kEsOwjAMBS9E6raLthvEWdLEKg75KXaD4PQUBAixYsPS9ryx9OCclUlRMArIEQMyVMo2GQbNjMJgiQWCptg43sFvOFf0gt+BsKrs14Uig0PJ2pxU1zYtVIw2FdCrpKBFyLzPXl8vioJe8CmmzVQYjVCKKs2MpWL5w5+PxctO0fjVboDj+4hhRtuERy2HsO+GfhrGfppGdwPhZn13"></script> <script data-cfasync="false" data-parsely-site="docs.wpvip.com" src="https://web.archive.org/web/20210811205320js_/https://cdn.parsely.com/keys/docs.wpvip.com/p.js?ver=2.5.0" id="parsely-cfg"></script> <script src="https://web.archive.org/web/20210811205320js_/https://stats.wp.com/e-202132.js" defer></script> <script> _stq = window._stq || []; _stq.push([ 'view', {v:'ext',j:'1:10.0',blog:'182304402',post:'3180',tz:'0',srv:'docs.wpvip.com'} ]); _stq.push([ 'clickTrackerInit', '182304402', '3180' ]); </script> </body> </html> <!-- FILE ARCHIVED ON 20:53:20 Aug 11, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 12:48:45 Nov 26, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.634 exclusion.robots: 0.031 exclusion.robots.policy: 0.02 esindex: 0.012 cdx.remote: 34.539 LoadShardBlock: 147.68 (3) PetaboxLoader3.datanode: 123.571 (4) load_resource: 165.146 PetaboxLoader3.resolve: 46.986 -->