CINXE.COM
Security · WordPress VIP Documentation
<!DOCTYPE html> <html lang="en-US"> <head> <meta http-equiv="content-type" content="text/html" charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" /> <link rel="profile" href="https://gmpg.org/xfn/11" /> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <!-- This site is optimized with the Yoast SEO plugin v24.3 - https://yoast.com/wordpress/plugins/seo/ --> <title>Security · WordPress VIP Documentation</title> <link rel="canonical" href="https://docs.wpvip.com/security/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Security · WordPress VIP Documentation" /> <meta property="og:description" content="The VIP Platform is built with multiple levels of security controls and protection—including edge protection, secure networking, robust access controls, continuous security monitoring, and code scanning. VIP performs recurring internal security testing of the platform, vulnerability assessments, and engages with third-parties to perform platform penetration testing on a regular basis. However, it is the combined […]" /> <meta property="og:url" content="https://docs.wpvip.com/security/" /> <meta property="og:site_name" content="WordPress VIP Documentation" /> <meta property="article:modified_time" content="2025-01-14T14:50:37+00:00" /> <meta property="og:image" content="https://docs.wpvip.com/wp-content/uploads/sites/2/2023/07/screenshot.png" /> <meta property="og:image:width" content="1200" /> <meta property="og:image:height" content="900" /> <meta property="og:image:type" content="image/png" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:label1" content="Est. reading time" /> <meta name="twitter:data1" content="8 minutes" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://docs.wpvip.com/security/","url":"https://docs.wpvip.com/security/","name":"Security · WordPress VIP Documentation","isPartOf":{"@id":"https://docs.wpvip.com/#website"},"datePublished":"2020-10-01T18:51:31+00:00","dateModified":"2025-01-14T14:50:37+00:00","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://docs.wpvip.com/security/"]}]},{"@type":"WebSite","@id":"https://docs.wpvip.com/#website","url":"https://docs.wpvip.com/","name":"WordPress VIP Documentation","description":"WordPress VIP Documentation","publisher":{"@id":"https://docs.wpvip.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://docs.wpvip.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://docs.wpvip.com/#organization","name":"WordPress VIP","url":"https://docs.wpvip.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://docs.wpvip.com/#/schema/logo/image/","url":"https://docs.wpvip.com/wp-content/uploads/sites/2/2023/07/wp-vip-logo.png","contentUrl":"https://docs.wpvip.com/wp-content/uploads/sites/2/2023/07/wp-vip-logo.png","width":962,"height":900,"caption":"WordPress VIP"},"image":{"@id":"https://docs.wpvip.com/#/schema/logo/image/"}}]}</script> <!-- / Yoast SEO plugin. --> <link rel='dns-prefetch' href='//stats.wp.com' /> <link rel="alternate" type="application/rss+xml" title="WordPress VIP Documentation » Feed" href="https://docs.wpvip.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="WordPress VIP Documentation » Comments Feed" href="https://docs.wpvip.com/comments/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/docs.wpvip.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.7.2"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <style id='wp-emoji-styles-inline-css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='all-css-2' href='https://docs.wpvip.com/wp-includes/css/dist/block-library/style.min.css?m=1739294329g' type='text/css' media='all' /> <style id='tab-group-tabs-style-inline-css'> .wp-block-tab-group-tabs{margin-bottom:1.41575em}.wp-block-tab-group-tabs ul.tab-labels{margin:0;padding:0}.wp-block-tab-group-tabs ul.tab-labels li{border-bottom-width:0;list-style:none;margin:0;padding:0}.wp-block-tab-group-tabs ul.tab-labels li label{background:#f9f5f5;border:solid #ddd;border-radius:10px 10px 0 0;border-width:1px 1px 0;color:#444;float:left;padding:15px 25px}.wp-block-tab-group-tabs ul.tab-labels li label:hover{background:#f2f2f2;cursor:pointer}.wp-block-tab-group-tabs ul.tab-labels li label:active{background:#fff}.wp-block-tab-group-tabs ul.tab-labels li:not(:last-child) label{border-right-width:0}.wp-block-tab-group-tabs ul.tab-labels li.active label{background:#fff;color:#111;position:relative}.wp-block-tab-group-tabs ul.tab-labels li.active label:hover{cursor:default}.wp-block-tab-group-tabs ul.tab-labels li.active label:after{background:#fff;bottom:-1px;content:"";display:block;height:2px;left:0;position:absolute;width:100%}.wp-block-tab-group-tabs section{background:#fff;border:1px solid #ddd;clear:both;padding:20px;width:100%}.wp-block-tab-group-tabs section div.tab-panel{display:none}.wp-block-tab-group-tabs section div.tab-panel.active{display:block}.wp-block-tab-group-tabs section div.tab-panel p:last-child{margin-bottom:0}@media only screen and (min-width:768px){.wp-block-tab-group-tabs.layout-left{display:flex;width:100%}.wp-block-tab-group-tabs.layout-left ul.tab-labels li{display:flex;flex-direction:column}.wp-block-tab-group-tabs.layout-left ul.tab-labels li label{border-bottom-width:1px;border-radius:10px 0 0 10px;border-right-width:0}.wp-block-tab-group-tabs.layout-left ul.tab-labels li:not(:last-child) label{border-bottom-width:0}.wp-block-tab-group-tabs.layout-left ul.tab-labels li.active label:after{height:100%;left:unset;right:-1px;top:0;width:2px}.wp-block-tab-group-tabs.layout-left .tab-content,.wp-block-tab-group-tabs.layout-left .tab-content .tab-panel.active{display:flex;flex:1;flex-direction:column}.wp-block-tab-group-tabs.layout-left .tab-content .tab-panel.active .wp-block-cgb-block-page-section{flex:1}.wp-block-tab-group-tabs.layout-left .tab-content .tab-panel.active>*{padding:0 2rem}} </style> <style id='wp-parsely-recommendations-style-inline-css'> .parsely-recommendations-list-title{font-size:1.2em}.parsely-recommendations-list{list-style:none;padding:unset}.parsely-recommendations-cardbody{overflow:hidden;padding:.8em;text-overflow:ellipsis;white-space:nowrap}.parsely-recommendations-cardmedia{padding:.8em .8em 0} </style> <link rel='stylesheet' id='all-css-8' href='https://docs.wpvip.com/_static/??-eJzTLy/QzcxLzilNSS3WzyrWz01NyUxMzUnNTc0rQeEU5CRWphbp5qSmJyZX6uVm5uklFxfr6OPTDpRD5sM02efaGpobWxpZmhgbGwAAROEu5A==' type='text/css' media='all' /> <style id='jetpack-sharing-buttons-style-inline-css'> .jetpack-sharing-buttons__services-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;list-style-type:none;margin:5px;padding:0}.jetpack-sharing-buttons__services-list.has-small-icon-size{font-size:12px}.jetpack-sharing-buttons__services-list.has-normal-icon-size{font-size:16px}.jetpack-sharing-buttons__services-list.has-large-icon-size{font-size:24px}.jetpack-sharing-buttons__services-list.has-huge-icon-size{font-size:36px}@media print{.jetpack-sharing-buttons__services-list{display:none!important}}.editor-styles-wrapper .wp-block-jetpack-sharing-buttons{gap:0;padding-inline-start:0}ul.jetpack-sharing-buttons__services-list.has-background{padding:1.25em 2.375em} </style> <style id='elasticpress-facet-style-inline-css'> .widget_ep-facet input[type=search],.wp-block-elasticpress-facet input[type=search]{margin-bottom:1rem}.widget_ep-facet .searchable .inner,.wp-block-elasticpress-facet .searchable .inner{max-height:20em;overflow:scroll}.widget_ep-facet .term.hide,.wp-block-elasticpress-facet .term.hide{display:none}.widget_ep-facet .empty-term,.wp-block-elasticpress-facet .empty-term{opacity:.5;position:relative}.widget_ep-facet .empty-term:after,.wp-block-elasticpress-facet .empty-term:after{bottom:0;content:" ";display:block;left:0;position:absolute;right:0;top:0;width:100%;z-index:2}.widget_ep-facet .level-1,.wp-block-elasticpress-facet .level-1{padding-left:20px}.widget_ep-facet .level-2,.wp-block-elasticpress-facet .level-2{padding-left:40px}.widget_ep-facet .level-3,.wp-block-elasticpress-facet .level-3{padding-left:60px}.widget_ep-facet .level-4,.wp-block-elasticpress-facet .level-4{padding-left:5pc}.widget_ep-facet .level-5,.wp-block-elasticpress-facet .level-5{padding-left:75pt}.widget_ep-facet input[disabled],.wp-block-elasticpress-facet input[disabled]{cursor:pointer;opacity:1}.widget_ep-facet .term a,.wp-block-elasticpress-facet .term a{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.widget_ep-facet .term a:hover .ep-checkbox,.wp-block-elasticpress-facet .term a:hover .ep-checkbox{background-color:#ccc}.ep-checkbox{-webkit-box-align:center;-ms-flex-align:center;-ms-flex-negative:0;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:#eee;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:1em;justify-content:center;margin-right:.25em;width:1em}.ep-checkbox:after{border:solid #fff;border-width:0 .125em .125em 0;content:"";display:none;height:.5em;-webkit-transform:rotate(45deg);transform:rotate(45deg);width:.25em}.ep-checkbox.checked{background-color:#5e5e5e}.ep-checkbox.checked:after{display:block} </style> <link rel='stylesheet' id='all-css-12' href='https://docs.wpvip.com/_static/??-eJxVjl0KwkAMhC9kGmsVfRHPss0Gje4fmyzF27sohfo0wzB8M7gUoJyMk2FsUEK7S1JUdpUeyMGpCZXKquhFDamb2mNjDyWrKcwh0wvU3oF1iJKGXtlhx0qi0DwrPhUpe45Sa64b+9deT1CQLrD54i4EPtO6xF6sY5wqm+LcJHj8rkN0P94tXsfzcRz303Q6fADWXlN+' type='text/css' media='all' /> <style id='classic-theme-styles-inline-css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='privacy-toolset-css-css' href='https://docs.wpvip.com/wp-content/plugins/vip-privacy-toolset/assets/privacy-consent-banner.css?ver=1.0.0' media='all' /> <link rel='stylesheet' id='all-css-18' href='https://docs.wpvip.com/wp-content/themes/wpvip-docs/assets/build/main.css?m=1739951615g' type='text/css' media='all' /> <script type="text/javascript" src="https://docs.wpvip.com/_static/??-eJzTLy/QzcxLzilNSS3WzwKiwtLUokoopZebmaeXVayjj0+Rbm5melFiSSpUsX2uraG5saWRpYmxsUEWAK+aIiE=" ></script><link rel="https://api.w.org/" href="https://docs.wpvip.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://docs.wpvip.com/wp-json/wp/v2/pages/670" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://docs.wpvip.com/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress 6.7.2" /> <link rel='shortlink' href='https://docs.wpvip.com/?p=670' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://docs.wpvip.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdocs.wpvip.com%2Fsecurity%2F" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://docs.wpvip.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdocs.wpvip.com%2Fsecurity%2F&format=xml" /> <style>img#wpstats{display:none}</style> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"NewsArticle","headline":"Security","url":"https:\/\/docs.wpvip.com\/security\/","mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/docs.wpvip.com\/security\/"},"thumbnailUrl":"","image":{"@type":"ImageObject","url":""},"articleSection":"Security","author":[{"@type":"Person","name":"WordPress VIP Documentation"}],"creator":["WordPress VIP Documentation"],"publisher":{"@type":"Organization","name":"WordPress VIP Documentation","logo":"https:\/\/docs.wpvip.com\/wp-content\/uploads\/sites\/2\/2023\/07\/cropped-cropped-site-logo.png"},"keywords":["tech-ref"],"dateCreated":"2020-10-01T18:51:31Z","datePublished":"2020-10-01T18:51:31Z","dateModified":"2025-01-14T14:50:37Z"}</script> <script src="https://js-wc.site24x7static.com/site24x7/client/statusiq_status_widget/statusiq-status-widget.js" nomodule></script> <script src="https://js-wc.site24x7static.com/site24x7/client/statusiq_status_widget/statusiq-status-widget.esm.js" type="module"></script> <!-- Google Tag Manager --> <script> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-575BNTT');</script> <!-- End Google Tag Manager --> <link rel="icon" href="https://docs.wpvip.com/wp-content/uploads/sites/2/2023/07/cropped-cropped-site-logo.png?w=32" sizes="32x32" /> <link rel="icon" href="https://docs.wpvip.com/wp-content/uploads/sites/2/2023/07/cropped-cropped-site-logo.png?w=192" sizes="192x192" /> <link rel="apple-touch-icon" href="https://docs.wpvip.com/wp-content/uploads/sites/2/2023/07/cropped-cropped-site-logo.png?w=180" /> <meta name="msapplication-TileImage" content="https://docs.wpvip.com/wp-content/uploads/sites/2/2023/07/cropped-cropped-site-logo.png?w=270" /> <style type="text/css" id="wp-custom-css"> .home ul.wp-block-post-template-is-layout-grid>li:before, .home ul.wp-block-post-template-is-layout-flow>li:before {content: "";} .home div.wp-block-group {padding:0 !important;} .home .wp-block-post-title { margin-top: 5px; } .home .wp-block-query.recent li { padding: 25px; } .home .wp-block-query.recent li .wp-block-group-is-layout-flex { flex-direction: row; align-items: baseline; } .home .wp-block-query.recent li .wp-block-group-is-layout-flex h3 { width: 100%; } .home .wp-block-query.recent li .wp-block-group-is-layout-flex .wp-block-post-date { font-size: 14px; color: #737373; } .home .taxonomy-post_tag a { display: inline-block; padding: 0 5px; border-radius: 5px; text-decoration: none; pointer-events: none; cursor: default; font-size: 12px; text-transform: capitalize; } .home .taxonomy-post_tag a[href="https://docs.wpvip.com/tag/tech-ref/"], .home .taxonomy-post_tag a[href="https://docs.wpvip.com/tag/how-to/"] { display: none; } .home .taxonomy-post_tag a[href="https://docs.wpvip.com/tag/new/"] { background-color: #e3ffe0; color: darkgreen; border: 1px solid darkgreen; } .home .taxonomy-post_tag a[href="https://docs.wpvip.com/tag/updated/"] { background-color: lightyellow; color: #cc7722; border: 1px solid #cc7722; } .home .wp-block-post-terms__separator { display: none; } </style> </head> <body class="page-template-default page page-id-670 page-parent"> <a class="screen-reader-text-focusable" href="#site-content"> Skip to content</a> <div class="a8c-docs-layout"> <header class="a8c-docs-layout__header" role="banner"> <div class="a8c-docs-layout__header__announcement"> <p>Ready to get started with WordPress VIP? <a href="https://wpvip.com/contact/">Contact us</a></p> </div> <div class="a8c-docs-layout__header__inner"> <a class="a8c-docs-layout__header__brand" href="https://docs.wpvip.com/" aria-label="WordPress VIP Documentation" > <span class="a8c-docs-layout__header__brand__text"> Documentation </span> </a> <!-- .a8c-docs-layout__header__brand --> <div class="a8c-docs-layout__header__search"> <div class="a8c-docs-search-form-header__wrapper"> <form class="a8c-docs-search-form" action="https://docs.wpvip.com" method="get" role="search"> <label for="search" class="a8c-docs-search-form__label visually-hidden">Search</label> <input aria-label="search" class="a8c-docs-search-input a8c-docs-input" placeholder="Search the docs…" type="search" name="s" autocomplete="off" value=""> <button type="submit" class="a8c-docs-search-form__icon">Search</button> </form> </div> </div> <!-- .a8c-docs-layout__header__search --> </div> <!-- .a8c-docs-layout__header__inner --> </header> <!-- .a8c-docs-layout__header --> <div class="a8c-docs-layout__main" id="site-content"> <div class="a8c-docs-layout__main__inner"> <button aria-controls="menu-navigation-nav-mobile" aria-expanded="false" id="A8C_DOCS_MENU_BUTTON" class="a8c-docs-layout__toggle" onclick="this.setAttribute( 'aria-expanded', 'true' !== this.getAttribute( 'aria-expanded' ) )" > Menu</button> <nav aria-label="Main Menu" class="a8c-docs-layout__sidebar__mobile"> <div class="a8c-docs-search-form-sidebar__wrapper"> <form class="a8c-docs-search-form" action="https://docs.wpvip.com" method="get" role="search"> <label for="search" class="a8c-docs-search-form__label visually-hidden">Search</label> <input aria-label="search" class="a8c-docs-search-input a8c-docs-input" placeholder="Search the docs…" type="search" name="s" autocomplete="off" value=""> <button type="submit" class="a8c-docs-search-form__icon">Search</button> </form> </div> <h2 class="a8c-docs-sidebar-list__heading">Guidebooks</h2><ul class="a8c-docs-sidebar-list"><li class="page_item page-item-21160 page_item_has_children"><a href="https://docs.wpvip.com/guidebooks/get-started/">Get started</a> <button aria-expanded="false" aria-label="Submenu for Get started" class="a8c-docs-sidebar-list__toggle"></button><ul class='children'><li class="page_item page-item-22416"><a href="https://docs.wpvip.com/guidebooks/get-started/basics/">The basics</a></li><li class="page_item page-item-21162"><a href="https://docs.wpvip.com/guidebooks/get-started/infrastructure-overview/">Infrastructure overview</a></li><li class="page_item page-item-21164"><a href="https://docs.wpvip.com/guidebooks/get-started/user-accounts-and-access/">User accounts and access</a></li><li class="page_item page-item-21166"><a href="https://docs.wpvip.com/guidebooks/get-started/adding-plugins-and-themes/">Adding plugins and themes</a></li><li class="page_item page-item-21168"><a href="https://docs.wpvip.com/guidebooks/get-started/getting-help/">Getting help</a></li></ul></li><li class="page_item page-item-21170 page_item_has_children"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/">Develop on WordPress VIP</a> <button aria-expanded="false" aria-label="Submenu for Develop on WordPress VIP" class="a8c-docs-sidebar-list__toggle"></button><ul class='children'><li class="page_item page-item-21172"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/user-accounts/">User accounts and access</a></li><li class="page_item page-item-21174"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/applications-and-environments/">Applications and their environments</a></li><li class="page_item page-item-21176"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/wpvip-infrastructure/">Infrastructure</a></li><li class="page_item page-item-21184"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/branches-and-deployments/">GitHub branches and code deployments</a></li><li class="page_item page-item-21178"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/wordpress-apps/">Developing for WordPress applications</a></li><li class="page_item page-item-21180"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/node-js-apps/">Developing for Node.js applications</a></li><li class="page_item page-item-21182"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/local-and-cloud/">Local and cloud development</a></li><li class="page_item page-item-21186"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/logs-and-monitoring/">Logs and performance monitoring</a></li><li class="page_item page-item-21188"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/get-help/">Getting help</a></li></ul></li><li class="page_item page-item-21190 page_item_has_children"><a href="https://docs.wpvip.com/guidebooks/prepare-for-launch/">Prepare for a site launch</a> <button aria-expanded="false" aria-label="Submenu for Prepare for a site launch" class="a8c-docs-sidebar-list__toggle"></button><ul class='children'><li class="page_item page-item-21192"><a href="https://docs.wpvip.com/guidebooks/prepare-for-launch/accounts-and-access/">Prepare user accounts and site access</a></li><li class="page_item page-item-21194"><a href="https://docs.wpvip.com/guidebooks/prepare-for-launch/the-domain/">Prepare the domain</a></li><li class="page_item page-item-21196"><a href="https://docs.wpvip.com/guidebooks/prepare-for-launch/migrate-content/">Migrate site content</a></li><li class="page_item page-item-21198"><a href="https://docs.wpvip.com/guidebooks/prepare-for-launch/test-your-site/">Test your site</a></li><li class="page_item page-item-21200"><a href="https://docs.wpvip.com/guidebooks/prepare-for-launch/launch-your-site/">Launch your site</a></li></ul></li></ul><br /><h2 class="a8c-docs-sidebar-list__heading">All Categories</h2><ul class="a8c-docs-sidebar-list"><li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-9154"><a href="https://docs.wpvip.com/caching/">Caching</a> <button aria-expanded="false" aria-label="Submenu for Caching" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-9839"><a href="https://docs.wpvip.com/caching/object-cache/">Object cache</a> <button aria-expanded="false" aria-label="Submenu for Object cache" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16433"><a href="https://docs.wpvip.com/caching/object-cache/flush-the-object-cache/">Flush the object cache</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-9835"><a href="https://docs.wpvip.com/caching/page-cache/">Page cache</a> <button aria-expanded="false" aria-label="Submenu for Page cache" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9840"><a href="https://docs.wpvip.com/caching/page-cache/cache-api/">Customize page cache behavior</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-14030"><a href="https://docs.wpvip.com/caching/page-cache/query-parameter-caching/">Caching of query parameters</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9841"><a href="https://docs.wpvip.com/caching/page-cache/cookies/">Cookies</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9842"><a href="https://docs.wpvip.com/caching/page-cache/stale-responses/">Stale responses</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17332"><a href="https://docs.wpvip.com/caching/page-cache/modify-max-age/">Cache-control headers</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-9833"><a href="https://docs.wpvip.com/caching/page-cache/purge-urls/">Purge a URL from the page cache</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9834"><a href="https://docs.wpvip.com/caching/page-cache/the-vip-cache-personalization-api/">The VIP Cache Personalization API</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9837"><a href="https://docs.wpvip.com/caching/query-cache/">Query cache</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-16037"><a href="https://docs.wpvip.com/caching/static-asset-caching/">Static asset caching</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9838"><a href="https://docs.wpvip.com/caching/uncached-functions/">Uncached functions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-9832"><a href="https://docs.wpvip.com/caching/disable-term-cache-priming/">Disable WordPress Core’s term cache priming</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17990"><a href="https://docs.wpvip.com/code-deployment/">Code deployment</a> <button aria-expanded="false" aria-label="Submenu for Code deployment" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-21409"><a href="https://docs.wpvip.com/code-deployment/custom-deployment/">Custom Deployment</a> <button aria-expanded="false" aria-label="Submenu for Custom Deployment" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22113"><a href="https://docs.wpvip.com/code-deployment/custom-deployment/continuous-deployment/">Custom Deployment with continuous deployment</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-21410"><a href="https://docs.wpvip.com/code-deployment/default-deployment/">Default Deployment</a> <button aria-expanded="false" aria-label="Submenu for Default Deployment" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-18736"><a href="https://docs.wpvip.com/code-deployment/default-deployment/build-and-deploy/">Build and deploy</a> <button aria-expanded="false" aria-label="Submenu for Build and deploy" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17080"><a href="https://docs.wpvip.com/code-deployment/default-deployment/build-and-deploy/ci-cd/">Continuous integration and deployment (CI/CD)</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16931"><a href="https://docs.wpvip.com/code-deployment/default-deployment/build-and-deploy/configure-builds-on-circleci/">Configure builds on CircleCI</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18738"><a href="https://docs.wpvip.com/code-deployment/default-deployment/build-and-deploy/built-files-without-ci/">Deploying built files without a CI service</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17991"><a href="https://docs.wpvip.com/code-deployment/default-deployment/deploying-branches/">Deploying branches</a> <button aria-expanded="false" aria-label="Submenu for Deploying branches" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16959"><a href="https://docs.wpvip.com/code-deployment/default-deployment/deploying-branches/update/">Update an environment’s deploying branch</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17073"><a href="https://docs.wpvip.com/code-deployment/github-repository/">GitHub repository</a> <button aria-expanded="false" aria-label="Submenu for GitHub repository" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16928"><a href="https://docs.wpvip.com/code-deployment/github-repository/required-status-checks/">Enable required status checks for pull requests</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16929"><a href="https://docs.wpvip.com/code-deployment/github-repository/composer/">Using Composer on VIP</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17079"><a href="https://docs.wpvip.com/code-deployment/default-deployment/developing-from-another-repository/">Develop code in a non-wpcomvip repository</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21403"><a href="https://docs.wpvip.com/code-deployment/cache-clearing/">Code deployment and cache clearing</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17087"><a href="https://docs.wpvip.com/code-deployment/default-deployment/deploying-branches/deployments-panel/">Deployments log in the VIP Dashboard</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18716"><a href="https://docs.wpvip.com/code-deployment/duration-of-time/">Duration of time for a deployment to complete</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17998"><a href="https://docs.wpvip.com/code-deployment/rollbacks/">Rollbacks in the VIP Dashboard</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17061"><a href="https://docs.wpvip.com/codebase-manager/">Codebase Manager</a> <button aria-expanded="false" aria-label="Submenu for Codebase Manager" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17069"><a href="https://docs.wpvip.com/codebase-manager/plugins-panel/">VIP Dashboard Plugins panel</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17072"><a href="https://docs.wpvip.com/codebase-manager/vulnerability-and-update-scan/">Vulnerability and Update Scan by the VIP Code Analysis Bot</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17063"><a href="https://docs.wpvip.com/databases/">Databases</a> <button aria-expanded="false" aria-label="Submenu for Databases" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22203"><a href="https://docs.wpvip.com/databases/access/">Database access</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17059"><a href="https://docs.wpvip.com/databases/backups/">Database Backups</a> <button aria-expanded="false" aria-label="Submenu for Database Backups" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17518"><a href="https://docs.wpvip.com/databases/backups/limitations/">Limitations</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17532"><a href="https://docs.wpvip.com/databases/backups/access/">Access</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17538"><a href="https://docs.wpvip.com/databases/backups/download-a-full-database-backup/">Download a full database backup</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17546"><a href="https://docs.wpvip.com/databases/backups/download-a-partial-database-backup/">Download a partial database backup</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17551"><a href="https://docs.wpvip.com/databases/backups/download-a-database-backup-for-a-network-site/">Download a database backup for a network site</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17556"><a href="https://docs.wpvip.com/databases/backups/generate-a-fresh-database-backup/">Generate a new database backup</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17562"><a href="https://docs.wpvip.com/databases/backups/database-backup-link/">Copy a link to a prepared database backup</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16935"><a href="https://docs.wpvip.com/databases/backups/database-backup-shipping/">Database Backup Shipping</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17060"><a href="https://docs.wpvip.com/databases/data-sync/">Data sync from production to non-production environments</a> <button aria-expanded="false" aria-label="Submenu for Data sync from production to non-production environments" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17058"><a href="https://docs.wpvip.com/databases/data-sync/config-file/">Data sync config file</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20781"><a href="https://docs.wpvip.com/databases/data-sync/cleanup-operations/">Cleanup operations for data syncing</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16923"><a href="https://docs.wpvip.com/databases/import/">Import database files</a> <button aria-expanded="false" aria-label="Submenu for Import database files" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17580"><a href="https://docs.wpvip.com/databases/import/import-with-vip-cli/">Import database files with VIP-CLI</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16925"><a href="https://docs.wpvip.com/databases/import/validate-sql-file/">Validate a SQL database file</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17591"><a href="https://docs.wpvip.com/databases/import/check-the-status/">Check the status of an import</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17579"><a href="https://docs.wpvip.com/databases/import/updating-values/">Update domain name values</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17587"><a href="https://docs.wpvip.com/databases/import/multisite-database-imports/">Database imports for multisite environments</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17600"><a href="https://docs.wpvip.com/databases/import/export-a-file-for-migration/">Export a SQL file from a site not hosted at WordPress VIP</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17030"><a href="https://docs.wpvip.com/databases/optimize-queries/">Optimize database queries</a> <button aria-expanded="false" aria-label="Submenu for Optimize database queries" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17042"><a href="https://docs.wpvip.com/databases/optimize-queries/using-post__not_in/">Avoid post__not_in</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17046"><a href="https://docs.wpvip.com/databases/optimize-queries/database-queries/">Best practices for database queries</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18513"><a href="https://docs.wpvip.com/databases/optimize-queries/defining-post_status-or-post_type/">Defining post_status or post_type</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17043"><a href="https://docs.wpvip.com/databases/optimize-queries/encode-values-passed-to-add_query_arg/">Encode values passed to `add_query_arg`</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16914"><a href="https://docs.wpvip.com/databases/optimize-queries/filtering-wp_unique_post_slug/">Fix performance issues by filtering wp_unique_post_slug</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22314"><a href="https://docs.wpvip.com/databases/optimize-queries/identify-slow-queries/">Identify slow queries</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17045"><a href="https://docs.wpvip.com/databases/optimize-queries/querying-on-meta_value/">Meta queries</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16915"><a href="https://docs.wpvip.com/databases/optimize-queries/optimize-core-queries-at-scale/">Optimize core queries at scale</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17047"><a href="https://docs.wpvip.com/databases/optimize-queries/retrieving-remote-data/">Retrieving remote data</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17044"><a href="https://docs.wpvip.com/databases/optimize-queries/term-queries-should-consider-include_children-false/">Taxonomy queries should set `include_children` to false</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17066"><a href="https://docs.wpvip.com/databases/supported-collations-charsets/">Supported character sets and collations</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17032"><a href="https://docs.wpvip.com/development-workflow/">Developing on WordPress VIP</a> <button aria-expanded="false" aria-label="Submenu for Developing on WordPress VIP" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17057"><a href="https://docs.wpvip.com/development-workflow/github-pr-reviews/">GitHub pull request flow</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17031"><a href="https://docs.wpvip.com/development-workflow/code-review/">Code review</a> <button aria-expanded="false" aria-label="Submenu for Code review" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17049"><a href="https://docs.wpvip.com/development-workflow/code-review/review-recommendations/">Reduce review times</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17048"><a href="https://docs.wpvip.com/development-workflow/code-review/reduce-pull-request-size/">Reduce the size of a pull request</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16919"><a href="https://docs.wpvip.com/development-workflow/create-good-changesets/">Create good changesets</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16920"><a href="https://docs.wpvip.com/development-workflow/write-a-good-commit-message/">Elements of a good commit message</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17007"><a href="https://docs.wpvip.com/development-workflow/contribute-to-wordpress/">Contribute to WordPress Core</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17075"><a href="https://docs.wpvip.com/domains/">Domains</a> <button aria-expanded="false" aria-label="Submenu for Domains" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16934"><a href="https://docs.wpvip.com/domains/map-a-domain/">Add a domain</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16933"><a href="https://docs.wpvip.com/domains/check-dns-record-time-to-live/">Check DNS record time to live (TTL)</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17085"><a href="https://docs.wpvip.com/domains/convenience-domains/">Convenience domain</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21763"><a href="https://docs.wpvip.com/domains/default-behavior/">Default behavior of domains</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-22793"><a href="https://docs.wpvip.com/domains/dns-records-for-email/">DNS records to send email from a custom domain</a> <button aria-expanded="false" aria-label="Submenu for DNS records to send email from a custom domain" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22792"><a href="https://docs.wpvip.com/domains/dns-records-for-email/check-status/">Check the status of DNS records for email</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17082"><a href="https://docs.wpvip.com/domains/fqdn/">Fully qualified domain names (FQDN)</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17084"><a href="https://docs.wpvip.com/domains/managing-your-hosts-file/">Modify a hosts file</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16932"><a href="https://docs.wpvip.com/domains/point-dns-to-vip/">Point DNS for a domain to VIP</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-backgrounds menu-item-16960"><a href="https://docs.wpvip.com/domains/primary-domain/">Primary domain</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19974"><a href="https://docs.wpvip.com/domains/verification/">Verify a domain</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17105"><a href="https://docs.wpvip.com/domains/multiple-domains/">Configure multiple domains to resolve to the same network site</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17093"><a href="https://docs.wpvip.com/enterprise-search/">Enterprise Search</a> <button aria-expanded="false" aria-label="Submenu for Enterprise Search" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21944"><a href="https://docs.wpvip.com/enterprise-search/es-limitations/">Limitations of Enterprise Search</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16953"><a href="https://docs.wpvip.com/enterprise-search/enable/">Enable Enterprise Search</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16948"><a href="https://docs.wpvip.com/enterprise-search/index/">Index with Enterprise Search</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16942"><a href="https://docs.wpvip.com/enterprise-search/version/">Version with Enterprise Search</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16945"><a href="https://docs.wpvip.com/enterprise-search/multisite/">Enterprise Search on multisite</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16940"><a href="https://docs.wpvip.com/enterprise-search/check-index-health/">Check the index health</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16939"><a href="https://docs.wpvip.com/enterprise-search/indexing/">Choose what to index</a> <button aria-expanded="false" aria-label="Submenu for Choose what to index" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16952"><a href="https://docs.wpvip.com/enterprise-search/indexing/post-types/">Indexing post types</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16938"><a href="https://docs.wpvip.com/enterprise-search/indexing/post-statuses/">Indexing post statuses</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16951"><a href="https://docs.wpvip.com/enterprise-search/indexing/post-taxonomies/">Indexing post taxonomies</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16950"><a href="https://docs.wpvip.com/enterprise-search/indexing/post-meta/">Indexing post meta</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16963"><a href="https://docs.wpvip.com/enterprise-search/indexing/user-meta/">Indexing user meta</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16949"><a href="https://docs.wpvip.com/enterprise-search/enable-features/">Enable Enterprise Search features</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16946"><a href="https://docs.wpvip.com/enterprise-search/enable-non-search-queries/">Offload any WP_Query to Enterprise Search</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16937"><a href="https://docs.wpvip.com/enterprise-search/enable-for-wp-admin/">Enable Enterprise Search for the WordPress Admin</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16941"><a href="https://docs.wpvip.com/enterprise-search/search-tokenization/">Search tokenization</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16947"><a href="https://docs.wpvip.com/enterprise-search/rate-limiting/">Rate limiting in Enterprise Search</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16944"><a href="https://docs.wpvip.com/enterprise-search/customize-search-results/">Customize search results</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16943"><a href="https://docs.wpvip.com/enterprise-search/dev-tools/">Debug with Enterprise Search Dev Tools</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17077"><a href="https://docs.wpvip.com/infrastructure/">Infrastructure</a> <button aria-expanded="false" aria-label="Submenu for Infrastructure" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17090"><a href="https://docs.wpvip.com/infrastructure/environments/">Environments</a> <button aria-expanded="false" aria-label="Submenu for Environments" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17094"><a href="https://docs.wpvip.com/infrastructure/environments/software-management/">Software Versions management</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16958"><a href="https://docs.wpvip.com/infrastructure/environments/manage-environment-variables/">Manage environment variables</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16927"><a href="https://docs.wpvip.com/infrastructure/environments/environment-specific-code/">Write environment-specific code</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18130"><a href="https://docs.wpvip.com/infrastructure/environments/indicator-labels/">Environment indicator labels</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-backgrounds menu-item-16974"><a href="https://docs.wpvip.com/infrastructure/origin-servers/">Origin servers</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17078"><a href="https://docs.wpvip.com/infrastructure/edge-cache/">Edge cache servers</a> <button aria-expanded="false" aria-label="Submenu for Edge cache servers" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20867"><a href="https://docs.wpvip.com/infrastructure/edge-cache/file-compression/">Edge cache file compression</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20866"><a href="https://docs.wpvip.com/infrastructure/edge-cache/global-locations/">Global locations of edge cache servers</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23052"><a href="https://docs.wpvip.com/infrastructure/edge-cache/target-a-location/">Target a specific edge server location</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17095"><a href="https://docs.wpvip.com/infrastructure/ip-geolocation/">IP geolocation</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17091"><a href="https://docs.wpvip.com/infrastructure/ip-ranges/">IP ranges</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16956"><a href="https://docs.wpvip.com/infrastructure/http-headers/">HTTP response headers</a> <button aria-expanded="false" aria-label="Submenu for HTTP response headers" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23059"><a href="https://docs.wpvip.com/infrastructure/http-headers/add-edit-or-remove/">Add, edit, or remove HTTP response headers</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23054"><a href="https://docs.wpvip.com/infrastructure/http-headers/added-by-vip/">HTTP response headers added by VIP</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17096"><a href="https://docs.wpvip.com/infrastructure/vip-user-agents/">VIP User Agents</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16957"><a href="https://docs.wpvip.com/infrastructure/retire-a-site/">Retire a site from VIP</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17092"><a href="https://docs.wpvip.com/infrastructure/disaster-recovery/">Disaster recovery</a> <button aria-expanded="false" aria-label="Submenu for Disaster recovery" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22339"><a href="https://docs.wpvip.com/infrastructure/disaster-recovery/geographical-redundancy/">Geographical Redundancy for disaster recovery</a></li> </ul> </li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16926"><a href="https://docs.wpvip.com/launch-a-site/">Launch a site</a> <button aria-expanded="false" aria-label="Submenu for Launch a site" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16954"><a href="https://docs.wpvip.com/launch-a-site/begin-a-single-site-launch/">Begin a single site launch</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16969"><a href="https://docs.wpvip.com/launch-a-site/begin-a-multisite-launch/">Begin a network site launch</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16989"><a href="https://docs.wpvip.com/launch-a-site/node-js-launch/">Begin a Node.js site launch</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16968"><a href="https://docs.wpvip.com/launch-a-site/complete-a-site-launch/">Complete a site launch</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16967"><a href="https://docs.wpvip.com/launch-a-site/launch-troubleshooting/">Troubleshoot a WordPress site launch</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16970"><a href="https://docs.wpvip.com/launch-a-site/testing-your-site/">Test a WordPress site</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20239"><a href="https://docs.wpvip.com/launch-a-site/launched/">Launched</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20240"><a href="https://docs.wpvip.com/launch-a-site/unlaunched/">Unlaunched</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17103"><a href="https://docs.wpvip.com/launch-a-site/order-of-launch/">Order of launching sites on a multisite</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16966"><a href="https://docs.wpvip.com/launch-a-site/manual-launch/">Manually launch a site on a multisite</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-18214"><a href="https://docs.wpvip.com/launch-a-site/redesign/">Launches for site redesigns</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16964"><a href="https://docs.wpvip.com/local-development/">Local and cloud development</a> <button aria-expanded="false" aria-label="Submenu for Local and cloud development" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16971"><a href="https://docs.wpvip.com/local-development/add-site-content/">Add VIP production site content for local development</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-19611"><a href="https://docs.wpvip.com/local-development/github-codespaces/">Developing with GitHub Codespaces</a> <button aria-expanded="false" aria-label="Submenu for Developing with GitHub Codespaces" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20541"><a href="https://docs.wpvip.com/local-development/github-codespaces/access-logs/">Access logs for GitHub Codespaces</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20510"><a href="https://docs.wpvip.com/local-development/github-codespaces/customize-config-file/">Customize the Codespaces configuration file</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20504"><a href="https://docs.wpvip.com/local-development/github-codespaces/import-database/">Import a SQL database file to Codespaces</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20545"><a href="https://docs.wpvip.com/local-development/github-codespaces/codespaces-database-sync/">Sync a platform database to Codespaces</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16972"><a href="https://docs.wpvip.com/local-development/set-up-vvv/">Set up VVV for VIP development</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16988"><a href="https://docs.wpvip.com/local-development/third-party-app/">Set up a third-party local development app</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17883"><a href="https://docs.wpvip.com/logs/">Logs</a> <button aria-expanded="false" aria-label="Submenu for Logs" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17161"><a href="https://docs.wpvip.com/logs/audit-log/">Audit Log</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17088"><a href="https://docs.wpvip.com/logs/log-shipping/">HTTP request Log Shipping</a> <button aria-expanded="false" aria-label="Submenu for HTTP request Log Shipping" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20297"><a href="https://docs.wpvip.com/logs/log-shipping/aws-s3-bucket-requirements/">AWS S3 bucket requirements</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16975"><a href="https://docs.wpvip.com/logs/log-shipping/enable/">Enable HTTP request Log Shipping</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19809"><a href="https://docs.wpvip.com/logs/log-shipping/log-contents/">Contents of HTTP request logs</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16955"><a href="https://docs.wpvip.com/logs/log-shipping/analyze-with-goaccess/">Analyze HTTP request logs with GoAccess</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17187"><a href="https://docs.wpvip.com/logs/runtime-logs/">Runtime Logs </a> <button aria-expanded="false" aria-label="Submenu for Runtime Logs " class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17158"><a href="https://docs.wpvip.com/logs/runtime-logs/dashboard/">Runtime Logs in the VIP Dashboard</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17001"><a href="https://docs.wpvip.com/logs/runtime-logs/cli/">Retrieve Runtime Logs with VIP-CLI</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17083"><a href="https://docs.wpvip.com/logs/slow-query/">Slow Query Logs</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17195"><a href="https://docs.wpvip.com/logs/wp-cli-commands/">WP-CLI Commands log</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16983"><a href="https://docs.wpvip.com/manage-user-access/">Manage user access</a> <button aria-expanded="false" aria-label="Submenu for Manage user access" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17123"><a href="https://docs.wpvip.com/manage-user-access/github/">GitHub user access</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17147"><a href="https://docs.wpvip.com/manage-user-access/new-relic/">New Relic user access</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17146"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/">VIP Dashboard access</a> <button aria-expanded="false" aria-label="Submenu for VIP Dashboard access" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17102"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/org-roles/">Org roles and permissions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17128"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/app-role/">App role and permissions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16985"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/invite-new-users/">Invite new users</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16986"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/edit-user-roles/">Edit user roles</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18569"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/copy-user-roles/">Copy user roles</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16987"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/remove-user/">Remove a user</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-18499"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/sso/">Single Sign-On</a> <button aria-expanded="false" aria-label="Submenu for Single Sign-On" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18498"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/sso/configurations/">Configurations</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18497"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/sso/enforce-sso/">Enforce SSO</a></li> </ul> </li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17125"><a href="https://docs.wpvip.com/manage-user-access/wordpress/">WordPress user access</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17124"><a href="https://docs.wpvip.com/manage-user-access/zendesk/">Zendesk user access</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17098"><a href="https://docs.wpvip.com/node-js/">Node.js on VIP</a> <button aria-expanded="false" aria-label="Submenu for Node.js on VIP" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17145"><a href="https://docs.wpvip.com/node-js/application-requirements/">Node.js application requirements</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17122"><a href="https://docs.wpvip.com/node-js/health-checks/">Health checks</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16981"><a href="https://docs.wpvip.com/node-js/manage-dependencies/">Manage dependencies in Node.js</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17120"><a href="https://docs.wpvip.com/node-js/building-applications/">Building Node.js applications</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16984"><a href="https://docs.wpvip.com/node-js/debug/">Debug a Node.js application</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17127"><a href="https://docs.wpvip.com/node-js/deployment-validation/">Deployment validation for Node.js applications</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17108"><a href="https://docs.wpvip.com/node-js/integrating-redis/">Integrating Redis</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17109"><a href="https://docs.wpvip.com/node-js/managing-node-js-versions/">Managing Node.js versions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17107"><a href="https://docs.wpvip.com/node-js/environment-variables/">Node.js environment variables</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16977"><a href="https://docs.wpvip.com/node-js/serve-static-content/">Serve static content</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17121"><a href="https://docs.wpvip.com/node-js/websockets/">WebSockets</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17289"><a href="https://docs.wpvip.com/notifications/">Notifications</a> <button aria-expanded="false" aria-label="Submenu for Notifications" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17293"><a href="https://docs.wpvip.com/notifications/destinations/">Destinations</a> <button aria-expanded="false" aria-label="Submenu for Destinations" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17290"><a href="https://docs.wpvip.com/notifications/destinations/webhook-urls/">General-purpose webhook URLs</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21636"><a href="https://docs.wpvip.com/notifications/important-alerts/">Important Alerts</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22277"><a href="https://docs.wpvip.com/notifications/event-types/">Notification event types</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17292"><a href="https://docs.wpvip.com/notifications/organization-notifications/">Notifications for an organization</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17291"><a href="https://docs.wpvip.com/notifications/application-notifications/">Notifications for an application</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17111"><a href="https://docs.wpvip.com/parse-ly/">Parse.ly</a> <button aria-expanded="false" aria-label="Submenu for Parse.ly" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20451"><a href="https://docs.wpvip.com/parse-ly/wp-parsely/">wp-parsely plugin</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16992"><a href="https://docs.wpvip.com/parse-ly/enabling-and-disabling/">Enabling and disabling wp-parsely</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-20450"><a href="https://docs.wpvip.com/parse-ly/wp-parsely-features/">wp-parsely features</a> <button aria-expanded="false" aria-label="Submenu for wp-parsely features" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20449"><a href="https://docs.wpvip.com/parse-ly/wp-parsely-features/content-helper/">Content Helper</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20448"><a href="https://docs.wpvip.com/parse-ly/wp-parsely-features/title-suggestions/">Title Suggestions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20447"><a href="https://docs.wpvip.com/parse-ly/wp-parsely-features/excerpt-suggestions/">Excerpt Suggestions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20446"><a href="https://docs.wpvip.com/parse-ly/wp-parsely-features/smart-linking/">Smart Linking</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17144"><a href="https://docs.wpvip.com/parse-ly/configuration/">Configuration</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17143"><a href="https://docs.wpvip.com/parse-ly/consent-management/">Consent management and Parse.ly</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17884"><a href="https://docs.wpvip.com/performance/">Performance</a> <button aria-expanded="false" aria-label="Submenu for Performance" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16916"><a href="https://docs.wpvip.com/performance/analyze-server-performance/">Analyze a site’s server performance</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19262"><a href="https://docs.wpvip.com/performance/analyze-requests-and-application-code/">Analyze requests and application code for performance</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-18819"><a href="https://docs.wpvip.com/performance/insights-metrics/">Insights & Metrics</a> <button aria-expanded="false" aria-label="Submenu for Insights & Metrics" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20685"><a href="https://docs.wpvip.com/performance/insights-metrics/http-metrics/">HTTP metrics</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20686"><a href="https://docs.wpvip.com/performance/insights-metrics/resource-metrics/">Resource Usage metrics</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20687"><a href="https://docs.wpvip.com/performance/insights-metrics/database-metrics/">Database metrics</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20688"><a href="https://docs.wpvip.com/performance/insights-metrics/cache-metrics/">Cache metrics</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22278"><a href="https://docs.wpvip.com/performance/insights-metrics/anomalies/">Performance metrics anomalies</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18260"><a href="https://docs.wpvip.com/performance/load-testing/">Load testing</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17055"><a href="https://docs.wpvip.com/performance/new-relic/">New Relic</a> <button aria-expanded="false" aria-label="Submenu for New Relic" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17065"><a href="https://docs.wpvip.com/performance/new-relic/for-node-js/">New Relic for Node.js</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17064"><a href="https://docs.wpvip.com/performance/new-relic/for-wordpress/">New Relic for WordPress</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16922"><a href="https://docs.wpvip.com/performance/new-relic/manually-log-errors/">Manually log errors in New Relic</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17068"><a href="https://docs.wpvip.com/performance/query-monitor/">Query Monitor</a> <button aria-expanded="false" aria-label="Submenu for Query Monitor" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16921"><a href="https://docs.wpvip.com/performance/query-monitor/enable/">Enable Query Monitor</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19263"><a href="https://docs.wpvip.com/performance/identify-performance-issues/">Resources for identifying performance issues</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16965"><a href="https://docs.wpvip.com/php_codesniffer/">PHPCS</a> <button aria-expanded="false" aria-label="Submenu for PHPCS" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17629"><a href="https://docs.wpvip.com/php_codesniffer/install-globally/">Install PHPCS globally</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17628"><a href="https://docs.wpvip.com/php_codesniffer/install-at-project-level/">Install PHPCS at the project level</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17630"><a href="https://docs.wpvip.com/php_codesniffer/run-against-code/">Run PHPCS against code</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17101"><a href="https://docs.wpvip.com/php_codesniffer/phpcs-report/">Interpreting a PHPCS report</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17053"><a href="https://docs.wpvip.com/php_codesniffer/errors/">PHPCS errors</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17052"><a href="https://docs.wpvip.com/php_codesniffer/warnings/">PHPCS warnings</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-18961"><a href="https://docs.wpvip.com/plugins/">Plugins</a> <button aria-expanded="false" aria-label="Submenu for Plugins" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9962"><a href="https://docs.wpvip.com/plugins/installing-plugins/">Add a plugin</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-9951"><a href="https://docs.wpvip.com/plugins/activate-plugins-through-code/">Activate a plugin through code</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9960"><a href="https://docs.wpvip.com/plugins/version-updates-and-maintenance/">Version updates for third-party plugins</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9958"><a href="https://docs.wpvip.com/plugins/third-party-plugins/">Evaluate third-party plugins</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9949"><a href="https://docs.wpvip.com/plugins/incompatibilities/">Plugin incompatibilities</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9961"><a href="https://docs.wpvip.com/plugins/load-order/">Load order of plugins</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-14891"><a href="https://docs.wpvip.com/plugins/automattic-plugins/">Automattic plugins</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9959"><a href="https://docs.wpvip.com/plugins/technology-partner-plugins/">Technology Partner plugins</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17512"><a href="https://docs.wpvip.com/plugins/helper-file/">Plugin helper file</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17177"><a href="https://docs.wpvip.com/plugins/woocommerce/">WooCommerce</a> <button aria-expanded="false" aria-label="Submenu for WooCommerce" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17024"><a href="https://docs.wpvip.com/plugins/woocommerce/upgrade-woocommerce/">Upgrade WooCommerce on VIP</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17206"><a href="https://docs.wpvip.com/plugins/woocommerce/caching-for-woocommerce/">Caching for WooCommerce</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17205"><a href="https://docs.wpvip.com/plugins/woocommerce/customizing-woocommerce/">Customizing WooCommerce</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17025"><a href="https://docs.wpvip.com/plugins/woocommerce/woocommerce-debug-logging/">Enable WooCommerce Debug Logging</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17026"><a href="https://docs.wpvip.com/plugins/woocommerce/troubleshoot-woocommerce/">Troubleshoot WooCommerce</a></li> </ul> </li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17099"><a href="https://docs.wpvip.com/redirects/">Redirects</a> <button aria-expanded="false" aria-label="Submenu for Redirects" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21937"><a href="https://docs.wpvip.com/redirects/limitations-for-files/">Limitations on redirects for files</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17117"><a href="https://docs.wpvip.com/redirects/domain-redirects-in-vip-config-php/">Redirects in vip-config.php</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17118"><a href="https://docs.wpvip.com/redirects/redirects-in-theme-code/">Writing redirects directly into a site’s theme code</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17138"><a href="https://docs.wpvip.com/reverse-proxy/">Reverse proxy</a> <button aria-expanded="false" aria-label="Submenu for Reverse proxy" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16991"><a href="https://docs.wpvip.com/reverse-proxy/configure/">Configure a reverse proxy</a> <button aria-expanded="false" aria-label="Submenu for Configure a reverse proxy" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19122"><a href="https://docs.wpvip.com/reverse-proxy/configure/request-header-verification/">Log True-Client-IP and add a proxy verification method</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19121"><a href="https://docs.wpvip.com/reverse-proxy/configure/ip-allow-list-verification/">Log True-Client-IP with an IP allow list</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17004"><a href="https://docs.wpvip.com/reverse-proxy/test/">Test a proxy configuration</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17005"><a href="https://docs.wpvip.com/reverse-proxy/domains-and-tls/">Configure domains and TLS for a reverse proxy</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references current-menu-item menu-item-has-children menu-item-17131"><a href="https://docs.wpvip.com/security/" aria-current="page">Security</a> <button aria-expanded="true" aria-label="Submenu for Security" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17173"><a href="https://docs.wpvip.com/security/for-wordpress/">WordPress security on VIP</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17149"><a href="https://docs.wpvip.com/security/user-recommendations/">Security recommendations for all users</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17140"><a href="https://docs.wpvip.com/security/wordpress-sso/">Single Sign-On (SSO) for WordPress</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17139"><a href="https://docs.wpvip.com/security/two-factor-authentication/">Two-factor authentication for WordPress</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17871"><a href="https://docs.wpvip.com/security/penetration-testing/">Penetration testing</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22572"><a href="https://docs.wpvip.com/security/phishing/">Phishing</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17150"><a href="https://docs.wpvip.com/security/javascript-security-recommendations/">JavaScript security recommendations</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17148"><a href="https://docs.wpvip.com/security/validating-sanitizing-and-escaping/">Validating, sanitizing, and escaping</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17100"><a href="https://docs.wpvip.com/security-controls/">Security Controls</a> <button aria-expanded="false" aria-label="Submenu for Security Controls" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17137"><a href="https://docs.wpvip.com/security-controls/access-controlled-files/">Access-Controlled Files</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16979"><a href="https://docs.wpvip.com/security-controls/basic-authentication/">Basic Authentication</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16990"><a href="https://docs.wpvip.com/security-controls/block-origin-requests-with-php/">Block unwanted origin requests to a site with PHP</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16980"><a href="https://docs.wpvip.com/security-controls/ip-restrictions/">IP Restrictions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19075"><a href="https://docs.wpvip.com/security-controls/maintenance-mode/">Maintenance Mode plugin</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17119"><a href="https://docs.wpvip.com/security-controls/partial-restriction-site-access/">Partial restriction of site access</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16993"><a href="https://docs.wpvip.com/security-controls/robots-txt/">robots.txt</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23387"><a href="https://docs.wpvip.com/security-controls/transitioning-from-vip_request_block-to-ip-and-user-agent-restrictions-in-the-vip-dashboard/">Transitioning from VIP_Request_Block to IP and User Agent Restrictions in the VIP Dashboard</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23383"><a href="https://docs.wpvip.com/security-controls/user-agent-restrictions/">User Agent Restrictions</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17136"><a href="https://docs.wpvip.com/tls/">TLS</a> <button aria-expanded="false" aria-label="Submenu for TLS" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17008"><a href="https://docs.wpvip.com/tls/enable-hsts/">HTTP Strict-Transport-Security (HSTS)</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16994"><a href="https://docs.wpvip.com/tls/lets-encrypt/">Install a Let’s Encrypt TLS certificate</a> <button aria-expanded="false" aria-label="Submenu for Install a Let’s Encrypt TLS certificate" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-18632"><a href="https://docs.wpvip.com/tls/lets-encrypt/re-install/">Re-install a Let’s Encrypt certificate</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-18627"><a href="https://docs.wpvip.com/tls/lets-encrypt/switch-to-custom-certificate/">Switch from a Let’s Encrypt certificate to a custom TLS certificate</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16995"><a href="https://docs.wpvip.com/tls/custom-cert/">Install a custom TLS certificate</a> <button aria-expanded="false" aria-label="Submenu for Install a custom TLS certificate" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-18057"><a href="https://docs.wpvip.com/tls/custom-cert/requirements/">Requirements</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-18056"><a href="https://docs.wpvip.com/tls/custom-cert/custom-tls-vip-csr/">Custom TLS certificates with a VIP CSR</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-18055"><a href="https://docs.wpvip.com/tls/custom-cert/custom-tls-non-vip-csr/">Custom TLS certificates with a non-VIP CSR</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-18643"><a href="https://docs.wpvip.com/tls/custom-cert/renew/">Renew a custom TLS certificate</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-18054"><a href="https://docs.wpvip.com/tls/custom-cert/switch-to-lets-encrypt/">Switch from a custom TLS certificate to a Let’s Encrypt certificate</a></li> </ul> </li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17132"><a href="https://docs.wpvip.com/vip-code-analysis-bot/">VIP Code Analysis Bot</a> <button aria-expanded="false" aria-label="Submenu for VIP Code Analysis Bot" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17155"><a href="https://docs.wpvip.com/vip-code-analysis-bot/default-behavior/">Default behavior of the Bot</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17153"><a href="https://docs.wpvip.com/vip-code-analysis-bot/feedback/">Bot feedback and messages</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17151"><a href="https://docs.wpvip.com/vip-code-analysis-bot/auto-approvals/">Auto approvals</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17157"><a href="https://docs.wpvip.com/vip-code-analysis-bot/phpcs-analysis/">PHPCS analysis</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16997"><a href="https://docs.wpvip.com/vip-code-analysis-bot/customize-phpcs/">Customize PHPCS scanning</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17156"><a href="https://docs.wpvip.com/vip-code-analysis-bot/svg-analysis/">SVG analysis</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17154"><a href="https://docs.wpvip.com/vip-code-analysis-bot/php-linting/">PHP linting</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17152"><a href="https://docs.wpvip.com/vip-code-analysis-bot/build-status/">GitHub build status</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16996"><a href="https://docs.wpvip.com/vip-code-analysis-bot/customize-the-bot/">Customize the VIP Code Analysis Bot</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17133"><a href="https://docs.wpvip.com/vip-dashboard/">VIP Dashboard</a> <button aria-expanded="false" aria-label="Submenu for VIP Dashboard" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17159"><a href="https://docs.wpvip.com/vip-dashboard/vip-dashboard-log-in/">Log in to the VIP Dashboard</a> <button aria-expanded="false" aria-label="Submenu for Log in to the VIP Dashboard" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19013"><a href="https://docs.wpvip.com/vip-dashboard/vip-dashboard-log-in/github-auth/">Sign in with GitHub</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19012"><a href="https://docs.wpvip.com/vip-dashboard/vip-dashboard-log-in/sso-auth/">Sign in with SSO</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19014"><a href="https://docs.wpvip.com/vip-dashboard/vip-dashboard-log-in/wordpress-com-auth/">Sign in with WordPress.com</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23382"><a href="https://docs.wpvip.com/vip-dashboard/vip-dashboard-log-in/step-up-authentication/">Step-up Authentication</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22514"><a href="https://docs.wpvip.com/vip-dashboard/vip-dashboard-log-in/vip-auth/">VIP Authentication</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18496"><a href="https://docs.wpvip.com/vip-dashboard/vip-dashboard-log-in/troubleshooting/">Login failure errors</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17303"><a href="https://docs.wpvip.com/vip-dashboard/organization-view/">Organization view</a> <button aria-expanded="false" aria-label="Submenu for Organization view" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20261"><a href="https://docs.wpvip.com/vip-dashboard/organization-view/organization/">Organization</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17162"><a href="https://docs.wpvip.com/vip-dashboard/organization-view/usage/">Usage</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17188"><a href="https://docs.wpvip.com/vip-dashboard/organization-view/people/">People</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17304"><a href="https://docs.wpvip.com/vip-dashboard/application-view/">Application view</a> <button aria-expanded="false" aria-label="Submenu for Application view" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-backgrounds menu-item-16976"><a href="https://docs.wpvip.com/vip-dashboard/application-view/application/">Application</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17160"><a href="https://docs.wpvip.com/vip-dashboard/overview/">Overview</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17186"><a href="https://docs.wpvip.com/vip-dashboard/user-settings/">Settings</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17185"><a href="https://docs.wpvip.com/vip-dashboard/my-organizations/">My Organizations</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17134"><a href="https://docs.wpvip.com/vip-file-system/">VIP File System</a> <button aria-expanded="false" aria-label="Submenu for VIP File System" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17002"><a href="https://docs.wpvip.com/vip-file-system/import-media-files/">Import media files</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17006"><a href="https://docs.wpvip.com/vip-file-system/media-backups/">Media Backups</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17169"><a href="https://docs.wpvip.com/vip-file-system/image-files/">Image file behavior</a> <button aria-expanded="false" aria-label="Submenu for Image file behavior" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19825"><a href="https://docs.wpvip.com/vip-file-system/image-files/image-quality/">Image quality and next-gen formats</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17165"><a href="https://docs.wpvip.com/vip-file-system/image-files/transformations/">Image transformation</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17168"><a href="https://docs.wpvip.com/vip-file-system/image-files/intermediate-images/">Intermediate images</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17167"><a href="https://docs.wpvip.com/vip-file-system/image-files/responsive-images/">Responsive images</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16998"><a href="https://docs.wpvip.com/vip-file-system/image-files/strip-image-metadata/">Strip image metadata on upload</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17945"><a href="https://docs.wpvip.com/vip-file-system/modify-uploads-directory/">Modify the /uploads path structure</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17932"><a href="https://docs.wpvip.com/vip-file-system/versioning-files/">Overwriting and versioning files</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17166"><a href="https://docs.wpvip.com/vip-file-system/shared-media-files/">Shared media files</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17171"><a href="https://docs.wpvip.com/vip-file-system/media-uploads/">Working with uploaded files</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17170"><a href="https://docs.wpvip.com/vip-file-system/local-file-operations/">Working with the /tmp directory</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17135"><a href="https://docs.wpvip.com/vip-local-development-environment/">VIP Local Development Environment</a> <button aria-expanded="false" aria-label="Submenu for VIP Local Development Environment" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21131"><a href="https://docs.wpvip.com/vip-local-development-environment/limitations/">Limitations</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21130"><a href="https://docs.wpvip.com/vip-local-development-environment/requirements/">Requirements</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21049"><a href="https://docs.wpvip.com/vip-local-development-environment/stack-services/">Stack services</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17172"><a href="https://docs.wpvip.com/vip-local-development-environment/basic-usage/">Basic usage</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17011"><a href="https://docs.wpvip.com/vip-local-development-environment/dev-env-advanced-usage/">Advanced usage</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17000"><a href="https://docs.wpvip.com/vip-local-development-environment/create/">Create a VIP Local Development Environment</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17009"><a href="https://docs.wpvip.com/vip-local-development-environment/load-application-code/">Update a local environment to load application code</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17003"><a href="https://docs.wpvip.com/vip-local-development-environment/add-database-content/">Sync or import database content to a VIP Local Development Environment</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17010"><a href="https://docs.wpvip.com/vip-local-development-environment/add-media-content/">Add media to a VIP Local Development Environment</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17387"><a href="https://docs.wpvip.com/vip-local-development-environment/enable-https/">Enable HTTPS</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20517"><a href="https://docs.wpvip.com/vip-local-development-environment/environment-variables/">Manage environment variables</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16999"><a href="https://docs.wpvip.com/vip-local-development-environment/use-enterprise-search/">Use Enterprise Search on a VIP Local Development Environment</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17196"><a href="https://docs.wpvip.com/vip-local-development-environment/networking/">Networking</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17207"><a href="https://docs.wpvip.com/vip-local-development-environment/troubleshooting-dev-env/">Troubleshooting</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17191"><a href="https://docs.wpvip.com/vip-go-mu-plugins/">VIP MU plugins</a> <button aria-expanded="false" aria-label="Submenu for VIP MU plugins" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17215"><a href="https://docs.wpvip.com/vip-go-mu-plugins/branches-and-updates/">VIP MU plugins branches and updates</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17216"><a href="https://docs.wpvip.com/vip-go-mu-plugins/block-data-api-plugin/">Block Data API plugin</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17198"><a href="https://docs.wpvip.com/vip-go-mu-plugins/file-concatenation-and-minification/">File concatenation and minification</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18154"><a href="https://docs.wpvip.com/vip-go-mu-plugins/block-governance-plugin/">WordPress VIP Block Governance plugin</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17175"><a href="https://docs.wpvip.com/vip-support/">VIP Support</a> <button aria-expanded="false" aria-label="Submenu for VIP Support" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22361"><a href="https://docs.wpvip.com/vip-support/information-in-a-ticket/">Information to include in a Support ticket</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17209"><a href="https://docs.wpvip.com/vip-support/site-access/">Site access for VIP Support</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17179"><a href="https://docs.wpvip.com/vip-support/vip-product-feedback/">Product feedback</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17017"><a href="https://docs.wpvip.com/vip-support/add-powered-by-wordpress-vip-to-your-site/">Add “Powered by WordPress VIP” to a site</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17176"><a href="https://docs.wpvip.com/vip-cli/">VIP-CLI</a> <button aria-expanded="false" aria-label="Submenu for VIP-CLI" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17204"><a href="https://docs.wpvip.com/vip-cli/installing-vip-cli/">Install VIP-CLI</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19696"><a href="https://docs.wpvip.com/vip-cli/commands/">Command reference</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17018"><a href="https://docs.wpvip.com/vip-cli/target-environments/">Target environments with VIP-CLI commands</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17202"><a href="https://docs.wpvip.com/vip-cli/advanced-usage/">Advanced usage</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17203"><a href="https://docs.wpvip.com/vip-cli/troubleshooting/">Troubleshooting VIP-CLI</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17214"><a href="https://docs.wpvip.com/vip-cli/wp-cli-with-vip-cli/">WP-CLI with VIP-CLI</a> <button aria-expanded="false" aria-label="Submenu for WP-CLI with VIP-CLI" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17201"><a href="https://docs.wpvip.com/vip-cli/wp-cli-with-vip-cli/disallowed-commands/">Disallowed WP-CLI commands</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17022"><a href="https://docs.wpvip.com/vip-cli/wp-cli-with-vip-cli/search-replace/">Use WP-CLI search-replace</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17019"><a href="https://docs.wpvip.com/vip-cli/wp-cli-with-vip-cli/save-command-output/">Save command output to a file</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17023"><a href="https://docs.wpvip.com/vip-cli/wp-cli-with-vip-cli/write-custom-wp-cli-commands/">Write custom WP-CLI commands</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17020"><a href="https://docs.wpvip.com/vip-cli/wp-cli-with-vip-cli/wp-cli-commands-on-vip/">Best practices for writing WP-CLI commands</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17021"><a href="https://docs.wpvip.com/vip-cli/wp-cli-with-vip-cli/cli-commands-at-scale/">Write custom WP-CLI commands at scale</a></li> </ul> </li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17208"><a href="https://docs.wpvip.com/wordpress-on-vip/">WordPress on VIP</a> <button aria-expanded="false" aria-label="Submenu for WordPress on VIP" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17213"><a href="https://docs.wpvip.com/wordpress-on-vip/action-scheduler/">Action Scheduler</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17071"><a href="https://docs.wpvip.com/wordpress-on-vip/autoloaded-options/">Autoloaded options</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17180"><a href="https://docs.wpvip.com/wordpress-on-vip/block-editor/">Block editor</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17200"><a href="https://docs.wpvip.com/wordpress-on-vip/cron-control/">WP-Cron</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17027"><a href="https://docs.wpvip.com/wordpress-on-vip/customize-user-roles/">Customize user roles</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17938"><a href="https://docs.wpvip.com/wordpress-on-vip/drop-ins/">Drop-ins</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17212"><a href="https://docs.wpvip.com/wordpress-on-vip/email/">Email</a> <button aria-expanded="false" aria-label="Submenu for Email" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20915"><a href="https://docs.wpvip.com/wordpress-on-vip/email/send-from-custom-domain/">Send emails from a custom domain</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-17014"><a href="https://docs.wpvip.com/wordpress-on-vip/jetpack/">Jetpack</a> <button aria-expanded="false" aria-label="Submenu for Jetpack" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20346"><a href="https://docs.wpvip.com/wordpress-on-vip/jetpack/connections/">Jetpack connections</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17809"><a href="https://docs.wpvip.com/wordpress-on-vip/jetpack/version-updates/">Version updates for Jetpack</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17141"><a href="https://docs.wpvip.com/wordpress-on-vip/jetpack/content-distribution/">Control Jetpack content distribution</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17097"><a href="https://docs.wpvip.com/wordpress-on-vip/multisites/">WordPress multisite</a> <button aria-expanded="false" aria-label="Submenu for WordPress multisite" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17129"><a href="https://docs.wpvip.com/wordpress-on-vip/multisites/database-structure/">Database structure for multisites</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17126"><a href="https://docs.wpvip.com/wordpress-on-vip/multisites/network-sites/">Network Sites</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16973"><a href="https://docs.wpvip.com/wordpress-on-vip/multisites/create-new-sites/">Add a network site</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18222"><a href="https://docs.wpvip.com/wordpress-on-vip/multisites/update-site-address-url/">Update the Site Address (URL) of a network site</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17104"><a href="https://docs.wpvip.com/wordpress-on-vip/multisites/subdomains-subdirectories/">Subdomain and subdirectory structures</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17106"><a href="https://docs.wpvip.com/wordpress-on-vip/multisites/sunrise-php/">sunrise.php</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17211"><a href="https://docs.wpvip.com/wordpress-on-vip/php/">PHP</a> <button aria-expanded="false" aria-label="Submenu for PHP" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17067"><a href="https://docs.wpvip.com/wordpress-on-vip/php/error-reporting/">PHP error reporting</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22230"><a href="https://docs.wpvip.com/wordpress-on-vip/php/php-sessions/">PHP sessions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17867"><a href="https://docs.wpvip.com/wordpress-on-vip/php/versions/">Version updates for PHP</a> <button aria-expanded="false" aria-label="Submenu for Version updates for PHP" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16982"><a href="https://docs.wpvip.com/wordpress-on-vip/php/versions/code-scanning-for-php-upgrade/">Prepare application code for a PHP version update</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17862"><a href="https://docs.wpvip.com/wordpress-on-vip/php/versions/phpcs-scans/">PHPCS scans for PHP version compatibility</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17863"><a href="https://docs.wpvip.com/wordpress-on-vip/php/versions/php-linting-scans/">PHP linting for PHP version compatibility</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17864"><a href="https://docs.wpvip.com/wordpress-on-vip/php/versions/static-analysis/">Static analysis tools for PHP version compatibility</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17865"><a href="https://docs.wpvip.com/wordpress-on-vip/php/versions/automated-tests/">Automated tests for PHP version compatibility</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17866"><a href="https://docs.wpvip.com/wordpress-on-vip/php/versions/platform-environment-tests/">Test a PHP update on a VIP Platform environment</a></li> </ul> </li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17041"><a href="https://docs.wpvip.com/wordpress-on-vip/local-time/">Obtaining a local time</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17197"><a href="https://docs.wpvip.com/wordpress-on-vip/post-revisions/">Post revisions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-20313"><a href="https://docs.wpvip.com/wordpress-on-vip/search-options/">Search options</a> <button aria-expanded="false" aria-label="Submenu for Search options" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-backgrounds menu-item-14794"><a href="https://docs.wpvip.com/wordpress-on-vip/search-options/wordpress-search/">Core WordPress search functionality</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9905"><a href="https://docs.wpvip.com/wordpress-on-vip/search-options/comparing-search-options/">Comparison of Elasticsearch options on WordPress VIP</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9159"><a href="https://docs.wpvip.com/wordpress-on-vip/search-options/elasticsearch/">Elasticsearch</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-backgrounds menu-item-14795"><a href="https://docs.wpvip.com/wordpress-on-vip/search-options/jetpack-search/">Jetpack Search</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17199"><a href="https://docs.wpvip.com/wordpress-on-vip/wordpress-upgrades/">Version updates for WordPress</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17178"><a href="https://docs.wpvip.com/wordpress-on-vip/wordpress-rest-api/">WordPress REST API</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20245"><a href="https://docs.wpvip.com/wordpress-on-vip/wordpress-single-site/">WordPress single site</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17210"><a href="https://docs.wpvip.com/wordpress-on-vip/xml-rpc/">XML-RPC</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17174"><a href="https://docs.wpvip.com/wordpress-skeleton/">WordPress skeleton</a> <button aria-expanded="false" aria-label="Submenu for WordPress skeleton" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17193"><a href="https://docs.wpvip.com/wordpress-skeleton/client-mu-plugins-directory/">/client-mu-plugins directory</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17181"><a href="https://docs.wpvip.com/wordpress-skeleton/docs-directory/">/docs directory</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17192"><a href="https://docs.wpvip.com/wordpress-skeleton/images-directory/">/images directory</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17012"><a href="https://docs.wpvip.com/wordpress-skeleton/languages-directory/">/languages directory</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17194"><a href="https://docs.wpvip.com/wordpress-skeleton/plugins-directory/">/plugins directory</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17189"><a href="https://docs.wpvip.com/wordpress-skeleton/private-directory/">/private directory</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17190"><a href="https://docs.wpvip.com/wordpress-skeleton/themes-directory/">/themes directory</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17184"><a href="https://docs.wpvip.com/wordpress-skeleton/vip-config-directory/">/vip-config directory</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17183"><a href="https://docs.wpvip.com/wordpress-skeleton/editorconfig/">.editorconfig</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17182"><a href="https://docs.wpvip.com/wordpress-skeleton/phpcs-xml-dist/">.phpcs.xml.dist</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17013"><a href="https://docs.wpvip.com/wordpress-skeleton/serve-static-content-wp/">Serve static content</a></li> </ul> </li> </ul><ul class="a8c-docs-sidebar-footer is-style-muted"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10908"><a href="https://wordpressvip.zendesk.com/">Contact Support</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-11027"><a href="https://wpvipstatus.com/">WPVIP Status</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10905"><a href="https://lobby.vip.wordpress.com/">VIP Lobby</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10906"><a href="https://wpvip.com/resources/">Resource Library</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10907"><a href="https://docs.parse.ly/">Parse.ly Help</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19760"><a href="https://wpvip.com/privacy/">Privacy Policy</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-15890"><a href="https://wpvip.com/accessibility/">Accessibility at WordPress VIP</a></li> </ul> </nav> <!-- .a8c-docs-layout__sidebar --> <nav aria-label="Main menu" class="a8c-docs-layout__sidebar__desktop"> <h2 class="a8c-docs-sidebar-list__heading">Guidebooks</h2><ul class="a8c-docs-sidebar-list"><li class="page_item page-item-21160 page_item_has_children"><a href="https://docs.wpvip.com/guidebooks/get-started/">Get started</a> <button aria-expanded="false" aria-label="Submenu for Get started" class="a8c-docs-sidebar-list__toggle"></button><ul class='children'><li class="page_item page-item-22416"><a href="https://docs.wpvip.com/guidebooks/get-started/basics/">The basics</a></li><li class="page_item page-item-21162"><a href="https://docs.wpvip.com/guidebooks/get-started/infrastructure-overview/">Infrastructure overview</a></li><li class="page_item page-item-21164"><a href="https://docs.wpvip.com/guidebooks/get-started/user-accounts-and-access/">User accounts and access</a></li><li class="page_item page-item-21166"><a href="https://docs.wpvip.com/guidebooks/get-started/adding-plugins-and-themes/">Adding plugins and themes</a></li><li class="page_item page-item-21168"><a href="https://docs.wpvip.com/guidebooks/get-started/getting-help/">Getting help</a></li></ul></li><li class="page_item page-item-21170 page_item_has_children"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/">Develop on WordPress VIP</a> <button aria-expanded="false" aria-label="Submenu for Develop on WordPress VIP" class="a8c-docs-sidebar-list__toggle"></button><ul class='children'><li class="page_item page-item-21172"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/user-accounts/">User accounts and access</a></li><li class="page_item page-item-21174"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/applications-and-environments/">Applications and their environments</a></li><li class="page_item page-item-21176"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/wpvip-infrastructure/">Infrastructure</a></li><li class="page_item page-item-21184"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/branches-and-deployments/">GitHub branches and code deployments</a></li><li class="page_item page-item-21178"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/wordpress-apps/">Developing for WordPress applications</a></li><li class="page_item page-item-21180"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/node-js-apps/">Developing for Node.js applications</a></li><li class="page_item page-item-21182"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/local-and-cloud/">Local and cloud development</a></li><li class="page_item page-item-21186"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/logs-and-monitoring/">Logs and performance monitoring</a></li><li class="page_item page-item-21188"><a href="https://docs.wpvip.com/guidebooks/develop-on-wpvip/get-help/">Getting help</a></li></ul></li><li class="page_item page-item-21190 page_item_has_children"><a href="https://docs.wpvip.com/guidebooks/prepare-for-launch/">Prepare for a site launch</a> <button aria-expanded="false" aria-label="Submenu for Prepare for a site launch" class="a8c-docs-sidebar-list__toggle"></button><ul class='children'><li class="page_item page-item-21192"><a href="https://docs.wpvip.com/guidebooks/prepare-for-launch/accounts-and-access/">Prepare user accounts and site access</a></li><li class="page_item page-item-21194"><a href="https://docs.wpvip.com/guidebooks/prepare-for-launch/the-domain/">Prepare the domain</a></li><li class="page_item page-item-21196"><a href="https://docs.wpvip.com/guidebooks/prepare-for-launch/migrate-content/">Migrate site content</a></li><li class="page_item page-item-21198"><a href="https://docs.wpvip.com/guidebooks/prepare-for-launch/test-your-site/">Test your site</a></li><li class="page_item page-item-21200"><a href="https://docs.wpvip.com/guidebooks/prepare-for-launch/launch-your-site/">Launch your site</a></li></ul></li></ul><br /><h2 class="a8c-docs-sidebar-list__heading">All Categories</h2><ul class="a8c-docs-sidebar-list"><li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-9154"><a href="https://docs.wpvip.com/caching/">Caching</a> <button aria-expanded="false" aria-label="Submenu for Caching" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-9839"><a href="https://docs.wpvip.com/caching/object-cache/">Object cache</a> <button aria-expanded="false" aria-label="Submenu for Object cache" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16433"><a href="https://docs.wpvip.com/caching/object-cache/flush-the-object-cache/">Flush the object cache</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-9835"><a href="https://docs.wpvip.com/caching/page-cache/">Page cache</a> <button aria-expanded="false" aria-label="Submenu for Page cache" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9840"><a href="https://docs.wpvip.com/caching/page-cache/cache-api/">Customize page cache behavior</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-14030"><a href="https://docs.wpvip.com/caching/page-cache/query-parameter-caching/">Caching of query parameters</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9841"><a href="https://docs.wpvip.com/caching/page-cache/cookies/">Cookies</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9842"><a href="https://docs.wpvip.com/caching/page-cache/stale-responses/">Stale responses</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17332"><a href="https://docs.wpvip.com/caching/page-cache/modify-max-age/">Cache-control headers</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-9833"><a href="https://docs.wpvip.com/caching/page-cache/purge-urls/">Purge a URL from the page cache</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9834"><a href="https://docs.wpvip.com/caching/page-cache/the-vip-cache-personalization-api/">The VIP Cache Personalization API</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9837"><a href="https://docs.wpvip.com/caching/query-cache/">Query cache</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-16037"><a href="https://docs.wpvip.com/caching/static-asset-caching/">Static asset caching</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9838"><a href="https://docs.wpvip.com/caching/uncached-functions/">Uncached functions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-9832"><a href="https://docs.wpvip.com/caching/disable-term-cache-priming/">Disable WordPress Core’s term cache priming</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17990"><a href="https://docs.wpvip.com/code-deployment/">Code deployment</a> <button aria-expanded="false" aria-label="Submenu for Code deployment" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-21409"><a href="https://docs.wpvip.com/code-deployment/custom-deployment/">Custom Deployment</a> <button aria-expanded="false" aria-label="Submenu for Custom Deployment" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22113"><a href="https://docs.wpvip.com/code-deployment/custom-deployment/continuous-deployment/">Custom Deployment with continuous deployment</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-21410"><a href="https://docs.wpvip.com/code-deployment/default-deployment/">Default Deployment</a> <button aria-expanded="false" aria-label="Submenu for Default Deployment" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-18736"><a href="https://docs.wpvip.com/code-deployment/default-deployment/build-and-deploy/">Build and deploy</a> <button aria-expanded="false" aria-label="Submenu for Build and deploy" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17080"><a href="https://docs.wpvip.com/code-deployment/default-deployment/build-and-deploy/ci-cd/">Continuous integration and deployment (CI/CD)</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16931"><a href="https://docs.wpvip.com/code-deployment/default-deployment/build-and-deploy/configure-builds-on-circleci/">Configure builds on CircleCI</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18738"><a href="https://docs.wpvip.com/code-deployment/default-deployment/build-and-deploy/built-files-without-ci/">Deploying built files without a CI service</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17991"><a href="https://docs.wpvip.com/code-deployment/default-deployment/deploying-branches/">Deploying branches</a> <button aria-expanded="false" aria-label="Submenu for Deploying branches" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16959"><a href="https://docs.wpvip.com/code-deployment/default-deployment/deploying-branches/update/">Update an environment’s deploying branch</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17073"><a href="https://docs.wpvip.com/code-deployment/github-repository/">GitHub repository</a> <button aria-expanded="false" aria-label="Submenu for GitHub repository" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16928"><a href="https://docs.wpvip.com/code-deployment/github-repository/required-status-checks/">Enable required status checks for pull requests</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16929"><a href="https://docs.wpvip.com/code-deployment/github-repository/composer/">Using Composer on VIP</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17079"><a href="https://docs.wpvip.com/code-deployment/default-deployment/developing-from-another-repository/">Develop code in a non-wpcomvip repository</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21403"><a href="https://docs.wpvip.com/code-deployment/cache-clearing/">Code deployment and cache clearing</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17087"><a href="https://docs.wpvip.com/code-deployment/default-deployment/deploying-branches/deployments-panel/">Deployments log in the VIP Dashboard</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18716"><a href="https://docs.wpvip.com/code-deployment/duration-of-time/">Duration of time for a deployment to complete</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17998"><a href="https://docs.wpvip.com/code-deployment/rollbacks/">Rollbacks in the VIP Dashboard</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17061"><a href="https://docs.wpvip.com/codebase-manager/">Codebase Manager</a> <button aria-expanded="false" aria-label="Submenu for Codebase Manager" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17069"><a href="https://docs.wpvip.com/codebase-manager/plugins-panel/">VIP Dashboard Plugins panel</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17072"><a href="https://docs.wpvip.com/codebase-manager/vulnerability-and-update-scan/">Vulnerability and Update Scan by the VIP Code Analysis Bot</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17063"><a href="https://docs.wpvip.com/databases/">Databases</a> <button aria-expanded="false" aria-label="Submenu for Databases" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22203"><a href="https://docs.wpvip.com/databases/access/">Database access</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17059"><a href="https://docs.wpvip.com/databases/backups/">Database Backups</a> <button aria-expanded="false" aria-label="Submenu for Database Backups" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17518"><a href="https://docs.wpvip.com/databases/backups/limitations/">Limitations</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17532"><a href="https://docs.wpvip.com/databases/backups/access/">Access</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17538"><a href="https://docs.wpvip.com/databases/backups/download-a-full-database-backup/">Download a full database backup</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17546"><a href="https://docs.wpvip.com/databases/backups/download-a-partial-database-backup/">Download a partial database backup</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17551"><a href="https://docs.wpvip.com/databases/backups/download-a-database-backup-for-a-network-site/">Download a database backup for a network site</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17556"><a href="https://docs.wpvip.com/databases/backups/generate-a-fresh-database-backup/">Generate a new database backup</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17562"><a href="https://docs.wpvip.com/databases/backups/database-backup-link/">Copy a link to a prepared database backup</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16935"><a href="https://docs.wpvip.com/databases/backups/database-backup-shipping/">Database Backup Shipping</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17060"><a href="https://docs.wpvip.com/databases/data-sync/">Data sync from production to non-production environments</a> <button aria-expanded="false" aria-label="Submenu for Data sync from production to non-production environments" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17058"><a href="https://docs.wpvip.com/databases/data-sync/config-file/">Data sync config file</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20781"><a href="https://docs.wpvip.com/databases/data-sync/cleanup-operations/">Cleanup operations for data syncing</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16923"><a href="https://docs.wpvip.com/databases/import/">Import database files</a> <button aria-expanded="false" aria-label="Submenu for Import database files" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17580"><a href="https://docs.wpvip.com/databases/import/import-with-vip-cli/">Import database files with VIP-CLI</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16925"><a href="https://docs.wpvip.com/databases/import/validate-sql-file/">Validate a SQL database file</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17591"><a href="https://docs.wpvip.com/databases/import/check-the-status/">Check the status of an import</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17579"><a href="https://docs.wpvip.com/databases/import/updating-values/">Update domain name values</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17587"><a href="https://docs.wpvip.com/databases/import/multisite-database-imports/">Database imports for multisite environments</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17600"><a href="https://docs.wpvip.com/databases/import/export-a-file-for-migration/">Export a SQL file from a site not hosted at WordPress VIP</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17030"><a href="https://docs.wpvip.com/databases/optimize-queries/">Optimize database queries</a> <button aria-expanded="false" aria-label="Submenu for Optimize database queries" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17042"><a href="https://docs.wpvip.com/databases/optimize-queries/using-post__not_in/">Avoid post__not_in</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17046"><a href="https://docs.wpvip.com/databases/optimize-queries/database-queries/">Best practices for database queries</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18513"><a href="https://docs.wpvip.com/databases/optimize-queries/defining-post_status-or-post_type/">Defining post_status or post_type</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17043"><a href="https://docs.wpvip.com/databases/optimize-queries/encode-values-passed-to-add_query_arg/">Encode values passed to `add_query_arg`</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16914"><a href="https://docs.wpvip.com/databases/optimize-queries/filtering-wp_unique_post_slug/">Fix performance issues by filtering wp_unique_post_slug</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22314"><a href="https://docs.wpvip.com/databases/optimize-queries/identify-slow-queries/">Identify slow queries</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17045"><a href="https://docs.wpvip.com/databases/optimize-queries/querying-on-meta_value/">Meta queries</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16915"><a href="https://docs.wpvip.com/databases/optimize-queries/optimize-core-queries-at-scale/">Optimize core queries at scale</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17047"><a href="https://docs.wpvip.com/databases/optimize-queries/retrieving-remote-data/">Retrieving remote data</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17044"><a href="https://docs.wpvip.com/databases/optimize-queries/term-queries-should-consider-include_children-false/">Taxonomy queries should set `include_children` to false</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17066"><a href="https://docs.wpvip.com/databases/supported-collations-charsets/">Supported character sets and collations</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17032"><a href="https://docs.wpvip.com/development-workflow/">Developing on WordPress VIP</a> <button aria-expanded="false" aria-label="Submenu for Developing on WordPress VIP" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17057"><a href="https://docs.wpvip.com/development-workflow/github-pr-reviews/">GitHub pull request flow</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17031"><a href="https://docs.wpvip.com/development-workflow/code-review/">Code review</a> <button aria-expanded="false" aria-label="Submenu for Code review" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17049"><a href="https://docs.wpvip.com/development-workflow/code-review/review-recommendations/">Reduce review times</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17048"><a href="https://docs.wpvip.com/development-workflow/code-review/reduce-pull-request-size/">Reduce the size of a pull request</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16919"><a href="https://docs.wpvip.com/development-workflow/create-good-changesets/">Create good changesets</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16920"><a href="https://docs.wpvip.com/development-workflow/write-a-good-commit-message/">Elements of a good commit message</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17007"><a href="https://docs.wpvip.com/development-workflow/contribute-to-wordpress/">Contribute to WordPress Core</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17075"><a href="https://docs.wpvip.com/domains/">Domains</a> <button aria-expanded="false" aria-label="Submenu for Domains" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16934"><a href="https://docs.wpvip.com/domains/map-a-domain/">Add a domain</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16933"><a href="https://docs.wpvip.com/domains/check-dns-record-time-to-live/">Check DNS record time to live (TTL)</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17085"><a href="https://docs.wpvip.com/domains/convenience-domains/">Convenience domain</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21763"><a href="https://docs.wpvip.com/domains/default-behavior/">Default behavior of domains</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-22793"><a href="https://docs.wpvip.com/domains/dns-records-for-email/">DNS records to send email from a custom domain</a> <button aria-expanded="false" aria-label="Submenu for DNS records to send email from a custom domain" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22792"><a href="https://docs.wpvip.com/domains/dns-records-for-email/check-status/">Check the status of DNS records for email</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17082"><a href="https://docs.wpvip.com/domains/fqdn/">Fully qualified domain names (FQDN)</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17084"><a href="https://docs.wpvip.com/domains/managing-your-hosts-file/">Modify a hosts file</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16932"><a href="https://docs.wpvip.com/domains/point-dns-to-vip/">Point DNS for a domain to VIP</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-backgrounds menu-item-16960"><a href="https://docs.wpvip.com/domains/primary-domain/">Primary domain</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19974"><a href="https://docs.wpvip.com/domains/verification/">Verify a domain</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17105"><a href="https://docs.wpvip.com/domains/multiple-domains/">Configure multiple domains to resolve to the same network site</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17093"><a href="https://docs.wpvip.com/enterprise-search/">Enterprise Search</a> <button aria-expanded="false" aria-label="Submenu for Enterprise Search" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21944"><a href="https://docs.wpvip.com/enterprise-search/es-limitations/">Limitations of Enterprise Search</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16953"><a href="https://docs.wpvip.com/enterprise-search/enable/">Enable Enterprise Search</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16948"><a href="https://docs.wpvip.com/enterprise-search/index/">Index with Enterprise Search</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16942"><a href="https://docs.wpvip.com/enterprise-search/version/">Version with Enterprise Search</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16945"><a href="https://docs.wpvip.com/enterprise-search/multisite/">Enterprise Search on multisite</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16940"><a href="https://docs.wpvip.com/enterprise-search/check-index-health/">Check the index health</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16939"><a href="https://docs.wpvip.com/enterprise-search/indexing/">Choose what to index</a> <button aria-expanded="false" aria-label="Submenu for Choose what to index" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16952"><a href="https://docs.wpvip.com/enterprise-search/indexing/post-types/">Indexing post types</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16938"><a href="https://docs.wpvip.com/enterprise-search/indexing/post-statuses/">Indexing post statuses</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16951"><a href="https://docs.wpvip.com/enterprise-search/indexing/post-taxonomies/">Indexing post taxonomies</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16950"><a href="https://docs.wpvip.com/enterprise-search/indexing/post-meta/">Indexing post meta</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16963"><a href="https://docs.wpvip.com/enterprise-search/indexing/user-meta/">Indexing user meta</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16949"><a href="https://docs.wpvip.com/enterprise-search/enable-features/">Enable Enterprise Search features</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16946"><a href="https://docs.wpvip.com/enterprise-search/enable-non-search-queries/">Offload any WP_Query to Enterprise Search</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16937"><a href="https://docs.wpvip.com/enterprise-search/enable-for-wp-admin/">Enable Enterprise Search for the WordPress Admin</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16941"><a href="https://docs.wpvip.com/enterprise-search/search-tokenization/">Search tokenization</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16947"><a href="https://docs.wpvip.com/enterprise-search/rate-limiting/">Rate limiting in Enterprise Search</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16944"><a href="https://docs.wpvip.com/enterprise-search/customize-search-results/">Customize search results</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16943"><a href="https://docs.wpvip.com/enterprise-search/dev-tools/">Debug with Enterprise Search Dev Tools</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17077"><a href="https://docs.wpvip.com/infrastructure/">Infrastructure</a> <button aria-expanded="false" aria-label="Submenu for Infrastructure" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17090"><a href="https://docs.wpvip.com/infrastructure/environments/">Environments</a> <button aria-expanded="false" aria-label="Submenu for Environments" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17094"><a href="https://docs.wpvip.com/infrastructure/environments/software-management/">Software Versions management</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16958"><a href="https://docs.wpvip.com/infrastructure/environments/manage-environment-variables/">Manage environment variables</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16927"><a href="https://docs.wpvip.com/infrastructure/environments/environment-specific-code/">Write environment-specific code</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18130"><a href="https://docs.wpvip.com/infrastructure/environments/indicator-labels/">Environment indicator labels</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-backgrounds menu-item-16974"><a href="https://docs.wpvip.com/infrastructure/origin-servers/">Origin servers</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17078"><a href="https://docs.wpvip.com/infrastructure/edge-cache/">Edge cache servers</a> <button aria-expanded="false" aria-label="Submenu for Edge cache servers" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20867"><a href="https://docs.wpvip.com/infrastructure/edge-cache/file-compression/">Edge cache file compression</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20866"><a href="https://docs.wpvip.com/infrastructure/edge-cache/global-locations/">Global locations of edge cache servers</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23052"><a href="https://docs.wpvip.com/infrastructure/edge-cache/target-a-location/">Target a specific edge server location</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17095"><a href="https://docs.wpvip.com/infrastructure/ip-geolocation/">IP geolocation</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17091"><a href="https://docs.wpvip.com/infrastructure/ip-ranges/">IP ranges</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16956"><a href="https://docs.wpvip.com/infrastructure/http-headers/">HTTP response headers</a> <button aria-expanded="false" aria-label="Submenu for HTTP response headers" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23059"><a href="https://docs.wpvip.com/infrastructure/http-headers/add-edit-or-remove/">Add, edit, or remove HTTP response headers</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23054"><a href="https://docs.wpvip.com/infrastructure/http-headers/added-by-vip/">HTTP response headers added by VIP</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17096"><a href="https://docs.wpvip.com/infrastructure/vip-user-agents/">VIP User Agents</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16957"><a href="https://docs.wpvip.com/infrastructure/retire-a-site/">Retire a site from VIP</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17092"><a href="https://docs.wpvip.com/infrastructure/disaster-recovery/">Disaster recovery</a> <button aria-expanded="false" aria-label="Submenu for Disaster recovery" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22339"><a href="https://docs.wpvip.com/infrastructure/disaster-recovery/geographical-redundancy/">Geographical Redundancy for disaster recovery</a></li> </ul> </li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16926"><a href="https://docs.wpvip.com/launch-a-site/">Launch a site</a> <button aria-expanded="false" aria-label="Submenu for Launch a site" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16954"><a href="https://docs.wpvip.com/launch-a-site/begin-a-single-site-launch/">Begin a single site launch</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16969"><a href="https://docs.wpvip.com/launch-a-site/begin-a-multisite-launch/">Begin a network site launch</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16989"><a href="https://docs.wpvip.com/launch-a-site/node-js-launch/">Begin a Node.js site launch</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16968"><a href="https://docs.wpvip.com/launch-a-site/complete-a-site-launch/">Complete a site launch</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16967"><a href="https://docs.wpvip.com/launch-a-site/launch-troubleshooting/">Troubleshoot a WordPress site launch</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16970"><a href="https://docs.wpvip.com/launch-a-site/testing-your-site/">Test a WordPress site</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20239"><a href="https://docs.wpvip.com/launch-a-site/launched/">Launched</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20240"><a href="https://docs.wpvip.com/launch-a-site/unlaunched/">Unlaunched</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17103"><a href="https://docs.wpvip.com/launch-a-site/order-of-launch/">Order of launching sites on a multisite</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16966"><a href="https://docs.wpvip.com/launch-a-site/manual-launch/">Manually launch a site on a multisite</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-18214"><a href="https://docs.wpvip.com/launch-a-site/redesign/">Launches for site redesigns</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16964"><a href="https://docs.wpvip.com/local-development/">Local and cloud development</a> <button aria-expanded="false" aria-label="Submenu for Local and cloud development" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16971"><a href="https://docs.wpvip.com/local-development/add-site-content/">Add VIP production site content for local development</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-19611"><a href="https://docs.wpvip.com/local-development/github-codespaces/">Developing with GitHub Codespaces</a> <button aria-expanded="false" aria-label="Submenu for Developing with GitHub Codespaces" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20541"><a href="https://docs.wpvip.com/local-development/github-codespaces/access-logs/">Access logs for GitHub Codespaces</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20510"><a href="https://docs.wpvip.com/local-development/github-codespaces/customize-config-file/">Customize the Codespaces configuration file</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20504"><a href="https://docs.wpvip.com/local-development/github-codespaces/import-database/">Import a SQL database file to Codespaces</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20545"><a href="https://docs.wpvip.com/local-development/github-codespaces/codespaces-database-sync/">Sync a platform database to Codespaces</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16972"><a href="https://docs.wpvip.com/local-development/set-up-vvv/">Set up VVV for VIP development</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16988"><a href="https://docs.wpvip.com/local-development/third-party-app/">Set up a third-party local development app</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17883"><a href="https://docs.wpvip.com/logs/">Logs</a> <button aria-expanded="false" aria-label="Submenu for Logs" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17161"><a href="https://docs.wpvip.com/logs/audit-log/">Audit Log</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17088"><a href="https://docs.wpvip.com/logs/log-shipping/">HTTP request Log Shipping</a> <button aria-expanded="false" aria-label="Submenu for HTTP request Log Shipping" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20297"><a href="https://docs.wpvip.com/logs/log-shipping/aws-s3-bucket-requirements/">AWS S3 bucket requirements</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16975"><a href="https://docs.wpvip.com/logs/log-shipping/enable/">Enable HTTP request Log Shipping</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19809"><a href="https://docs.wpvip.com/logs/log-shipping/log-contents/">Contents of HTTP request logs</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16955"><a href="https://docs.wpvip.com/logs/log-shipping/analyze-with-goaccess/">Analyze HTTP request logs with GoAccess</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17187"><a href="https://docs.wpvip.com/logs/runtime-logs/">Runtime Logs </a> <button aria-expanded="false" aria-label="Submenu for Runtime Logs " class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17158"><a href="https://docs.wpvip.com/logs/runtime-logs/dashboard/">Runtime Logs in the VIP Dashboard</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17001"><a href="https://docs.wpvip.com/logs/runtime-logs/cli/">Retrieve Runtime Logs with VIP-CLI</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17083"><a href="https://docs.wpvip.com/logs/slow-query/">Slow Query Logs</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17195"><a href="https://docs.wpvip.com/logs/wp-cli-commands/">WP-CLI Commands log</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16983"><a href="https://docs.wpvip.com/manage-user-access/">Manage user access</a> <button aria-expanded="false" aria-label="Submenu for Manage user access" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17123"><a href="https://docs.wpvip.com/manage-user-access/github/">GitHub user access</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17147"><a href="https://docs.wpvip.com/manage-user-access/new-relic/">New Relic user access</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17146"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/">VIP Dashboard access</a> <button aria-expanded="false" aria-label="Submenu for VIP Dashboard access" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17102"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/org-roles/">Org roles and permissions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17128"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/app-role/">App role and permissions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16985"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/invite-new-users/">Invite new users</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16986"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/edit-user-roles/">Edit user roles</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18569"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/copy-user-roles/">Copy user roles</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16987"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/remove-user/">Remove a user</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-18499"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/sso/">Single Sign-On</a> <button aria-expanded="false" aria-label="Submenu for Single Sign-On" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18498"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/sso/configurations/">Configurations</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18497"><a href="https://docs.wpvip.com/manage-user-access/vip-dashboard/sso/enforce-sso/">Enforce SSO</a></li> </ul> </li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17125"><a href="https://docs.wpvip.com/manage-user-access/wordpress/">WordPress user access</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17124"><a href="https://docs.wpvip.com/manage-user-access/zendesk/">Zendesk user access</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17098"><a href="https://docs.wpvip.com/node-js/">Node.js on VIP</a> <button aria-expanded="false" aria-label="Submenu for Node.js on VIP" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17145"><a href="https://docs.wpvip.com/node-js/application-requirements/">Node.js application requirements</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17122"><a href="https://docs.wpvip.com/node-js/health-checks/">Health checks</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16981"><a href="https://docs.wpvip.com/node-js/manage-dependencies/">Manage dependencies in Node.js</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17120"><a href="https://docs.wpvip.com/node-js/building-applications/">Building Node.js applications</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16984"><a href="https://docs.wpvip.com/node-js/debug/">Debug a Node.js application</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17127"><a href="https://docs.wpvip.com/node-js/deployment-validation/">Deployment validation for Node.js applications</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17108"><a href="https://docs.wpvip.com/node-js/integrating-redis/">Integrating Redis</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17109"><a href="https://docs.wpvip.com/node-js/managing-node-js-versions/">Managing Node.js versions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17107"><a href="https://docs.wpvip.com/node-js/environment-variables/">Node.js environment variables</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16977"><a href="https://docs.wpvip.com/node-js/serve-static-content/">Serve static content</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17121"><a href="https://docs.wpvip.com/node-js/websockets/">WebSockets</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17289"><a href="https://docs.wpvip.com/notifications/">Notifications</a> <button aria-expanded="false" aria-label="Submenu for Notifications" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17293"><a href="https://docs.wpvip.com/notifications/destinations/">Destinations</a> <button aria-expanded="false" aria-label="Submenu for Destinations" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17290"><a href="https://docs.wpvip.com/notifications/destinations/webhook-urls/">General-purpose webhook URLs</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21636"><a href="https://docs.wpvip.com/notifications/important-alerts/">Important Alerts</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22277"><a href="https://docs.wpvip.com/notifications/event-types/">Notification event types</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17292"><a href="https://docs.wpvip.com/notifications/organization-notifications/">Notifications for an organization</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17291"><a href="https://docs.wpvip.com/notifications/application-notifications/">Notifications for an application</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17111"><a href="https://docs.wpvip.com/parse-ly/">Parse.ly</a> <button aria-expanded="false" aria-label="Submenu for Parse.ly" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20451"><a href="https://docs.wpvip.com/parse-ly/wp-parsely/">wp-parsely plugin</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16992"><a href="https://docs.wpvip.com/parse-ly/enabling-and-disabling/">Enabling and disabling wp-parsely</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-20450"><a href="https://docs.wpvip.com/parse-ly/wp-parsely-features/">wp-parsely features</a> <button aria-expanded="false" aria-label="Submenu for wp-parsely features" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20449"><a href="https://docs.wpvip.com/parse-ly/wp-parsely-features/content-helper/">Content Helper</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20448"><a href="https://docs.wpvip.com/parse-ly/wp-parsely-features/title-suggestions/">Title Suggestions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20447"><a href="https://docs.wpvip.com/parse-ly/wp-parsely-features/excerpt-suggestions/">Excerpt Suggestions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20446"><a href="https://docs.wpvip.com/parse-ly/wp-parsely-features/smart-linking/">Smart Linking</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17144"><a href="https://docs.wpvip.com/parse-ly/configuration/">Configuration</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17143"><a href="https://docs.wpvip.com/parse-ly/consent-management/">Consent management and Parse.ly</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17884"><a href="https://docs.wpvip.com/performance/">Performance</a> <button aria-expanded="false" aria-label="Submenu for Performance" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16916"><a href="https://docs.wpvip.com/performance/analyze-server-performance/">Analyze a site’s server performance</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19262"><a href="https://docs.wpvip.com/performance/analyze-requests-and-application-code/">Analyze requests and application code for performance</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-18819"><a href="https://docs.wpvip.com/performance/insights-metrics/">Insights & Metrics</a> <button aria-expanded="false" aria-label="Submenu for Insights & Metrics" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20685"><a href="https://docs.wpvip.com/performance/insights-metrics/http-metrics/">HTTP metrics</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20686"><a href="https://docs.wpvip.com/performance/insights-metrics/resource-metrics/">Resource Usage metrics</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20687"><a href="https://docs.wpvip.com/performance/insights-metrics/database-metrics/">Database metrics</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20688"><a href="https://docs.wpvip.com/performance/insights-metrics/cache-metrics/">Cache metrics</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22278"><a href="https://docs.wpvip.com/performance/insights-metrics/anomalies/">Performance metrics anomalies</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18260"><a href="https://docs.wpvip.com/performance/load-testing/">Load testing</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17055"><a href="https://docs.wpvip.com/performance/new-relic/">New Relic</a> <button aria-expanded="false" aria-label="Submenu for New Relic" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17065"><a href="https://docs.wpvip.com/performance/new-relic/for-node-js/">New Relic for Node.js</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17064"><a href="https://docs.wpvip.com/performance/new-relic/for-wordpress/">New Relic for WordPress</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16922"><a href="https://docs.wpvip.com/performance/new-relic/manually-log-errors/">Manually log errors in New Relic</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17068"><a href="https://docs.wpvip.com/performance/query-monitor/">Query Monitor</a> <button aria-expanded="false" aria-label="Submenu for Query Monitor" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16921"><a href="https://docs.wpvip.com/performance/query-monitor/enable/">Enable Query Monitor</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19263"><a href="https://docs.wpvip.com/performance/identify-performance-issues/">Resources for identifying performance issues</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16965"><a href="https://docs.wpvip.com/php_codesniffer/">PHPCS</a> <button aria-expanded="false" aria-label="Submenu for PHPCS" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17629"><a href="https://docs.wpvip.com/php_codesniffer/install-globally/">Install PHPCS globally</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17628"><a href="https://docs.wpvip.com/php_codesniffer/install-at-project-level/">Install PHPCS at the project level</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17630"><a href="https://docs.wpvip.com/php_codesniffer/run-against-code/">Run PHPCS against code</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17101"><a href="https://docs.wpvip.com/php_codesniffer/phpcs-report/">Interpreting a PHPCS report</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17053"><a href="https://docs.wpvip.com/php_codesniffer/errors/">PHPCS errors</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17052"><a href="https://docs.wpvip.com/php_codesniffer/warnings/">PHPCS warnings</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-18961"><a href="https://docs.wpvip.com/plugins/">Plugins</a> <button aria-expanded="false" aria-label="Submenu for Plugins" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9962"><a href="https://docs.wpvip.com/plugins/installing-plugins/">Add a plugin</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-9951"><a href="https://docs.wpvip.com/plugins/activate-plugins-through-code/">Activate a plugin through code</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9960"><a href="https://docs.wpvip.com/plugins/version-updates-and-maintenance/">Version updates for third-party plugins</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9958"><a href="https://docs.wpvip.com/plugins/third-party-plugins/">Evaluate third-party plugins</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9949"><a href="https://docs.wpvip.com/plugins/incompatibilities/">Plugin incompatibilities</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9961"><a href="https://docs.wpvip.com/plugins/load-order/">Load order of plugins</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-14891"><a href="https://docs.wpvip.com/plugins/automattic-plugins/">Automattic plugins</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9959"><a href="https://docs.wpvip.com/plugins/technology-partner-plugins/">Technology Partner plugins</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17512"><a href="https://docs.wpvip.com/plugins/helper-file/">Plugin helper file</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17177"><a href="https://docs.wpvip.com/plugins/woocommerce/">WooCommerce</a> <button aria-expanded="false" aria-label="Submenu for WooCommerce" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17024"><a href="https://docs.wpvip.com/plugins/woocommerce/upgrade-woocommerce/">Upgrade WooCommerce on VIP</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17206"><a href="https://docs.wpvip.com/plugins/woocommerce/caching-for-woocommerce/">Caching for WooCommerce</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17205"><a href="https://docs.wpvip.com/plugins/woocommerce/customizing-woocommerce/">Customizing WooCommerce</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17025"><a href="https://docs.wpvip.com/plugins/woocommerce/woocommerce-debug-logging/">Enable WooCommerce Debug Logging</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17026"><a href="https://docs.wpvip.com/plugins/woocommerce/troubleshoot-woocommerce/">Troubleshoot WooCommerce</a></li> </ul> </li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17099"><a href="https://docs.wpvip.com/redirects/">Redirects</a> <button aria-expanded="false" aria-label="Submenu for Redirects" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21937"><a href="https://docs.wpvip.com/redirects/limitations-for-files/">Limitations on redirects for files</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17117"><a href="https://docs.wpvip.com/redirects/domain-redirects-in-vip-config-php/">Redirects in vip-config.php</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17118"><a href="https://docs.wpvip.com/redirects/redirects-in-theme-code/">Writing redirects directly into a site’s theme code</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17138"><a href="https://docs.wpvip.com/reverse-proxy/">Reverse proxy</a> <button aria-expanded="false" aria-label="Submenu for Reverse proxy" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16991"><a href="https://docs.wpvip.com/reverse-proxy/configure/">Configure a reverse proxy</a> <button aria-expanded="false" aria-label="Submenu for Configure a reverse proxy" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19122"><a href="https://docs.wpvip.com/reverse-proxy/configure/request-header-verification/">Log True-Client-IP and add a proxy verification method</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19121"><a href="https://docs.wpvip.com/reverse-proxy/configure/ip-allow-list-verification/">Log True-Client-IP with an IP allow list</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17004"><a href="https://docs.wpvip.com/reverse-proxy/test/">Test a proxy configuration</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17005"><a href="https://docs.wpvip.com/reverse-proxy/domains-and-tls/">Configure domains and TLS for a reverse proxy</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references current-menu-item menu-item-has-children menu-item-17131"><a href="https://docs.wpvip.com/security/" aria-current="page">Security</a> <button aria-expanded="true" aria-label="Submenu for Security" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17173"><a href="https://docs.wpvip.com/security/for-wordpress/">WordPress security on VIP</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17149"><a href="https://docs.wpvip.com/security/user-recommendations/">Security recommendations for all users</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17140"><a href="https://docs.wpvip.com/security/wordpress-sso/">Single Sign-On (SSO) for WordPress</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17139"><a href="https://docs.wpvip.com/security/two-factor-authentication/">Two-factor authentication for WordPress</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17871"><a href="https://docs.wpvip.com/security/penetration-testing/">Penetration testing</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22572"><a href="https://docs.wpvip.com/security/phishing/">Phishing</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17150"><a href="https://docs.wpvip.com/security/javascript-security-recommendations/">JavaScript security recommendations</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17148"><a href="https://docs.wpvip.com/security/validating-sanitizing-and-escaping/">Validating, sanitizing, and escaping</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17100"><a href="https://docs.wpvip.com/security-controls/">Security Controls</a> <button aria-expanded="false" aria-label="Submenu for Security Controls" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17137"><a href="https://docs.wpvip.com/security-controls/access-controlled-files/">Access-Controlled Files</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16979"><a href="https://docs.wpvip.com/security-controls/basic-authentication/">Basic Authentication</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16990"><a href="https://docs.wpvip.com/security-controls/block-origin-requests-with-php/">Block unwanted origin requests to a site with PHP</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16980"><a href="https://docs.wpvip.com/security-controls/ip-restrictions/">IP Restrictions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19075"><a href="https://docs.wpvip.com/security-controls/maintenance-mode/">Maintenance Mode plugin</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17119"><a href="https://docs.wpvip.com/security-controls/partial-restriction-site-access/">Partial restriction of site access</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16993"><a href="https://docs.wpvip.com/security-controls/robots-txt/">robots.txt</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23387"><a href="https://docs.wpvip.com/security-controls/transitioning-from-vip_request_block-to-ip-and-user-agent-restrictions-in-the-vip-dashboard/">Transitioning from VIP_Request_Block to IP and User Agent Restrictions in the VIP Dashboard</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23383"><a href="https://docs.wpvip.com/security-controls/user-agent-restrictions/">User Agent Restrictions</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17136"><a href="https://docs.wpvip.com/tls/">TLS</a> <button aria-expanded="false" aria-label="Submenu for TLS" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17008"><a href="https://docs.wpvip.com/tls/enable-hsts/">HTTP Strict-Transport-Security (HSTS)</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16994"><a href="https://docs.wpvip.com/tls/lets-encrypt/">Install a Let’s Encrypt TLS certificate</a> <button aria-expanded="false" aria-label="Submenu for Install a Let’s Encrypt TLS certificate" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-18632"><a href="https://docs.wpvip.com/tls/lets-encrypt/re-install/">Re-install a Let’s Encrypt certificate</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-18627"><a href="https://docs.wpvip.com/tls/lets-encrypt/switch-to-custom-certificate/">Switch from a Let’s Encrypt certificate to a custom TLS certificate</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-16995"><a href="https://docs.wpvip.com/tls/custom-cert/">Install a custom TLS certificate</a> <button aria-expanded="false" aria-label="Submenu for Install a custom TLS certificate" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-18057"><a href="https://docs.wpvip.com/tls/custom-cert/requirements/">Requirements</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-18056"><a href="https://docs.wpvip.com/tls/custom-cert/custom-tls-vip-csr/">Custom TLS certificates with a VIP CSR</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-18055"><a href="https://docs.wpvip.com/tls/custom-cert/custom-tls-non-vip-csr/">Custom TLS certificates with a non-VIP CSR</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-18643"><a href="https://docs.wpvip.com/tls/custom-cert/renew/">Renew a custom TLS certificate</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-18054"><a href="https://docs.wpvip.com/tls/custom-cert/switch-to-lets-encrypt/">Switch from a custom TLS certificate to a Let’s Encrypt certificate</a></li> </ul> </li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17132"><a href="https://docs.wpvip.com/vip-code-analysis-bot/">VIP Code Analysis Bot</a> <button aria-expanded="false" aria-label="Submenu for VIP Code Analysis Bot" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17155"><a href="https://docs.wpvip.com/vip-code-analysis-bot/default-behavior/">Default behavior of the Bot</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17153"><a href="https://docs.wpvip.com/vip-code-analysis-bot/feedback/">Bot feedback and messages</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17151"><a href="https://docs.wpvip.com/vip-code-analysis-bot/auto-approvals/">Auto approvals</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17157"><a href="https://docs.wpvip.com/vip-code-analysis-bot/phpcs-analysis/">PHPCS analysis</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16997"><a href="https://docs.wpvip.com/vip-code-analysis-bot/customize-phpcs/">Customize PHPCS scanning</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17156"><a href="https://docs.wpvip.com/vip-code-analysis-bot/svg-analysis/">SVG analysis</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17154"><a href="https://docs.wpvip.com/vip-code-analysis-bot/php-linting/">PHP linting</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17152"><a href="https://docs.wpvip.com/vip-code-analysis-bot/build-status/">GitHub build status</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16996"><a href="https://docs.wpvip.com/vip-code-analysis-bot/customize-the-bot/">Customize the VIP Code Analysis Bot</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17133"><a href="https://docs.wpvip.com/vip-dashboard/">VIP Dashboard</a> <button aria-expanded="false" aria-label="Submenu for VIP Dashboard" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17159"><a href="https://docs.wpvip.com/vip-dashboard/vip-dashboard-log-in/">Log in to the VIP Dashboard</a> <button aria-expanded="false" aria-label="Submenu for Log in to the VIP Dashboard" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19013"><a href="https://docs.wpvip.com/vip-dashboard/vip-dashboard-log-in/github-auth/">Sign in with GitHub</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19012"><a href="https://docs.wpvip.com/vip-dashboard/vip-dashboard-log-in/sso-auth/">Sign in with SSO</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19014"><a href="https://docs.wpvip.com/vip-dashboard/vip-dashboard-log-in/wordpress-com-auth/">Sign in with WordPress.com</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23382"><a href="https://docs.wpvip.com/vip-dashboard/vip-dashboard-log-in/step-up-authentication/">Step-up Authentication</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22514"><a href="https://docs.wpvip.com/vip-dashboard/vip-dashboard-log-in/vip-auth/">VIP Authentication</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18496"><a href="https://docs.wpvip.com/vip-dashboard/vip-dashboard-log-in/troubleshooting/">Login failure errors</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17303"><a href="https://docs.wpvip.com/vip-dashboard/organization-view/">Organization view</a> <button aria-expanded="false" aria-label="Submenu for Organization view" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20261"><a href="https://docs.wpvip.com/vip-dashboard/organization-view/organization/">Organization</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17162"><a href="https://docs.wpvip.com/vip-dashboard/organization-view/usage/">Usage</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17188"><a href="https://docs.wpvip.com/vip-dashboard/organization-view/people/">People</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17304"><a href="https://docs.wpvip.com/vip-dashboard/application-view/">Application view</a> <button aria-expanded="false" aria-label="Submenu for Application view" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-backgrounds menu-item-16976"><a href="https://docs.wpvip.com/vip-dashboard/application-view/application/">Application</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17160"><a href="https://docs.wpvip.com/vip-dashboard/overview/">Overview</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17186"><a href="https://docs.wpvip.com/vip-dashboard/user-settings/">Settings</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17185"><a href="https://docs.wpvip.com/vip-dashboard/my-organizations/">My Organizations</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17134"><a href="https://docs.wpvip.com/vip-file-system/">VIP File System</a> <button aria-expanded="false" aria-label="Submenu for VIP File System" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17002"><a href="https://docs.wpvip.com/vip-file-system/import-media-files/">Import media files</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17006"><a href="https://docs.wpvip.com/vip-file-system/media-backups/">Media Backups</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17169"><a href="https://docs.wpvip.com/vip-file-system/image-files/">Image file behavior</a> <button aria-expanded="false" aria-label="Submenu for Image file behavior" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19825"><a href="https://docs.wpvip.com/vip-file-system/image-files/image-quality/">Image quality and next-gen formats</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17165"><a href="https://docs.wpvip.com/vip-file-system/image-files/transformations/">Image transformation</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17168"><a href="https://docs.wpvip.com/vip-file-system/image-files/intermediate-images/">Intermediate images</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17167"><a href="https://docs.wpvip.com/vip-file-system/image-files/responsive-images/">Responsive images</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16998"><a href="https://docs.wpvip.com/vip-file-system/image-files/strip-image-metadata/">Strip image metadata on upload</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17945"><a href="https://docs.wpvip.com/vip-file-system/modify-uploads-directory/">Modify the /uploads path structure</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17932"><a href="https://docs.wpvip.com/vip-file-system/versioning-files/">Overwriting and versioning files</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17166"><a href="https://docs.wpvip.com/vip-file-system/shared-media-files/">Shared media files</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17171"><a href="https://docs.wpvip.com/vip-file-system/media-uploads/">Working with uploaded files</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17170"><a href="https://docs.wpvip.com/vip-file-system/local-file-operations/">Working with the /tmp directory</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17135"><a href="https://docs.wpvip.com/vip-local-development-environment/">VIP Local Development Environment</a> <button aria-expanded="false" aria-label="Submenu for VIP Local Development Environment" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21131"><a href="https://docs.wpvip.com/vip-local-development-environment/limitations/">Limitations</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21130"><a href="https://docs.wpvip.com/vip-local-development-environment/requirements/">Requirements</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21049"><a href="https://docs.wpvip.com/vip-local-development-environment/stack-services/">Stack services</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17172"><a href="https://docs.wpvip.com/vip-local-development-environment/basic-usage/">Basic usage</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17011"><a href="https://docs.wpvip.com/vip-local-development-environment/dev-env-advanced-usage/">Advanced usage</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17000"><a href="https://docs.wpvip.com/vip-local-development-environment/create/">Create a VIP Local Development Environment</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17009"><a href="https://docs.wpvip.com/vip-local-development-environment/load-application-code/">Update a local environment to load application code</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17003"><a href="https://docs.wpvip.com/vip-local-development-environment/add-database-content/">Sync or import database content to a VIP Local Development Environment</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17010"><a href="https://docs.wpvip.com/vip-local-development-environment/add-media-content/">Add media to a VIP Local Development Environment</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17387"><a href="https://docs.wpvip.com/vip-local-development-environment/enable-https/">Enable HTTPS</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20517"><a href="https://docs.wpvip.com/vip-local-development-environment/environment-variables/">Manage environment variables</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16999"><a href="https://docs.wpvip.com/vip-local-development-environment/use-enterprise-search/">Use Enterprise Search on a VIP Local Development Environment</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17196"><a href="https://docs.wpvip.com/vip-local-development-environment/networking/">Networking</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17207"><a href="https://docs.wpvip.com/vip-local-development-environment/troubleshooting-dev-env/">Troubleshooting</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17191"><a href="https://docs.wpvip.com/vip-go-mu-plugins/">VIP MU plugins</a> <button aria-expanded="false" aria-label="Submenu for VIP MU plugins" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17215"><a href="https://docs.wpvip.com/vip-go-mu-plugins/branches-and-updates/">VIP MU plugins branches and updates</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17216"><a href="https://docs.wpvip.com/vip-go-mu-plugins/block-data-api-plugin/">Block Data API plugin</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17198"><a href="https://docs.wpvip.com/vip-go-mu-plugins/file-concatenation-and-minification/">File concatenation and minification</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18154"><a href="https://docs.wpvip.com/vip-go-mu-plugins/block-governance-plugin/">WordPress VIP Block Governance plugin</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17175"><a href="https://docs.wpvip.com/vip-support/">VIP Support</a> <button aria-expanded="false" aria-label="Submenu for VIP Support" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22361"><a href="https://docs.wpvip.com/vip-support/information-in-a-ticket/">Information to include in a Support ticket</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17209"><a href="https://docs.wpvip.com/vip-support/site-access/">Site access for VIP Support</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17179"><a href="https://docs.wpvip.com/vip-support/vip-product-feedback/">Product feedback</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17017"><a href="https://docs.wpvip.com/vip-support/add-powered-by-wordpress-vip-to-your-site/">Add “Powered by WordPress VIP” to a site</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17176"><a href="https://docs.wpvip.com/vip-cli/">VIP-CLI</a> <button aria-expanded="false" aria-label="Submenu for VIP-CLI" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17204"><a href="https://docs.wpvip.com/vip-cli/installing-vip-cli/">Install VIP-CLI</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19696"><a href="https://docs.wpvip.com/vip-cli/commands/">Command reference</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17018"><a href="https://docs.wpvip.com/vip-cli/target-environments/">Target environments with VIP-CLI commands</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17202"><a href="https://docs.wpvip.com/vip-cli/advanced-usage/">Advanced usage</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17203"><a href="https://docs.wpvip.com/vip-cli/troubleshooting/">Troubleshooting VIP-CLI</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17214"><a href="https://docs.wpvip.com/vip-cli/wp-cli-with-vip-cli/">WP-CLI with VIP-CLI</a> <button aria-expanded="false" aria-label="Submenu for WP-CLI with VIP-CLI" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17201"><a href="https://docs.wpvip.com/vip-cli/wp-cli-with-vip-cli/disallowed-commands/">Disallowed WP-CLI commands</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17022"><a href="https://docs.wpvip.com/vip-cli/wp-cli-with-vip-cli/search-replace/">Use WP-CLI search-replace</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17019"><a href="https://docs.wpvip.com/vip-cli/wp-cli-with-vip-cli/save-command-output/">Save command output to a file</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17023"><a href="https://docs.wpvip.com/vip-cli/wp-cli-with-vip-cli/write-custom-wp-cli-commands/">Write custom WP-CLI commands</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17020"><a href="https://docs.wpvip.com/vip-cli/wp-cli-with-vip-cli/wp-cli-commands-on-vip/">Best practices for writing WP-CLI commands</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17021"><a href="https://docs.wpvip.com/vip-cli/wp-cli-with-vip-cli/cli-commands-at-scale/">Write custom WP-CLI commands at scale</a></li> </ul> </li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17208"><a href="https://docs.wpvip.com/wordpress-on-vip/">WordPress on VIP</a> <button aria-expanded="false" aria-label="Submenu for WordPress on VIP" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17213"><a href="https://docs.wpvip.com/wordpress-on-vip/action-scheduler/">Action Scheduler</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17071"><a href="https://docs.wpvip.com/wordpress-on-vip/autoloaded-options/">Autoloaded options</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17180"><a href="https://docs.wpvip.com/wordpress-on-vip/block-editor/">Block editor</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17200"><a href="https://docs.wpvip.com/wordpress-on-vip/cron-control/">WP-Cron</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17027"><a href="https://docs.wpvip.com/wordpress-on-vip/customize-user-roles/">Customize user roles</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17938"><a href="https://docs.wpvip.com/wordpress-on-vip/drop-ins/">Drop-ins</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17212"><a href="https://docs.wpvip.com/wordpress-on-vip/email/">Email</a> <button aria-expanded="false" aria-label="Submenu for Email" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20915"><a href="https://docs.wpvip.com/wordpress-on-vip/email/send-from-custom-domain/">Send emails from a custom domain</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-has-children menu-item-17014"><a href="https://docs.wpvip.com/wordpress-on-vip/jetpack/">Jetpack</a> <button aria-expanded="false" aria-label="Submenu for Jetpack" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20346"><a href="https://docs.wpvip.com/wordpress-on-vip/jetpack/connections/">Jetpack connections</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17809"><a href="https://docs.wpvip.com/wordpress-on-vip/jetpack/version-updates/">Version updates for Jetpack</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17141"><a href="https://docs.wpvip.com/wordpress-on-vip/jetpack/content-distribution/">Control Jetpack content distribution</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17097"><a href="https://docs.wpvip.com/wordpress-on-vip/multisites/">WordPress multisite</a> <button aria-expanded="false" aria-label="Submenu for WordPress multisite" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17129"><a href="https://docs.wpvip.com/wordpress-on-vip/multisites/database-structure/">Database structure for multisites</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17126"><a href="https://docs.wpvip.com/wordpress-on-vip/multisites/network-sites/">Network Sites</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16973"><a href="https://docs.wpvip.com/wordpress-on-vip/multisites/create-new-sites/">Add a network site</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-18222"><a href="https://docs.wpvip.com/wordpress-on-vip/multisites/update-site-address-url/">Update the Site Address (URL) of a network site</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17104"><a href="https://docs.wpvip.com/wordpress-on-vip/multisites/subdomains-subdirectories/">Subdomain and subdirectory structures</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17106"><a href="https://docs.wpvip.com/wordpress-on-vip/multisites/sunrise-php/">sunrise.php</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17211"><a href="https://docs.wpvip.com/wordpress-on-vip/php/">PHP</a> <button aria-expanded="false" aria-label="Submenu for PHP" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17067"><a href="https://docs.wpvip.com/wordpress-on-vip/php/error-reporting/">PHP error reporting</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22230"><a href="https://docs.wpvip.com/wordpress-on-vip/php/php-sessions/">PHP sessions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17867"><a href="https://docs.wpvip.com/wordpress-on-vip/php/versions/">Version updates for PHP</a> <button aria-expanded="false" aria-label="Submenu for Version updates for PHP" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-16982"><a href="https://docs.wpvip.com/wordpress-on-vip/php/versions/code-scanning-for-php-upgrade/">Prepare application code for a PHP version update</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17862"><a href="https://docs.wpvip.com/wordpress-on-vip/php/versions/phpcs-scans/">PHPCS scans for PHP version compatibility</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17863"><a href="https://docs.wpvip.com/wordpress-on-vip/php/versions/php-linting-scans/">PHP linting for PHP version compatibility</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17864"><a href="https://docs.wpvip.com/wordpress-on-vip/php/versions/static-analysis/">Static analysis tools for PHP version compatibility</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17865"><a href="https://docs.wpvip.com/wordpress-on-vip/php/versions/automated-tests/">Automated tests for PHP version compatibility</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17866"><a href="https://docs.wpvip.com/wordpress-on-vip/php/versions/platform-environment-tests/">Test a PHP update on a VIP Platform environment</a></li> </ul> </li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17041"><a href="https://docs.wpvip.com/wordpress-on-vip/local-time/">Obtaining a local time</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17197"><a href="https://docs.wpvip.com/wordpress-on-vip/post-revisions/">Post revisions</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-20313"><a href="https://docs.wpvip.com/wordpress-on-vip/search-options/">Search options</a> <button aria-expanded="false" aria-label="Submenu for Search options" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-backgrounds menu-item-14794"><a href="https://docs.wpvip.com/wordpress-on-vip/search-options/wordpress-search/">Core WordPress search functionality</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9905"><a href="https://docs.wpvip.com/wordpress-on-vip/search-options/comparing-search-options/">Comparison of Elasticsearch options on WordPress VIP</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-9159"><a href="https://docs.wpvip.com/wordpress-on-vip/search-options/elasticsearch/">Elasticsearch</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-backgrounds menu-item-14795"><a href="https://docs.wpvip.com/wordpress-on-vip/search-options/jetpack-search/">Jetpack Search</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17199"><a href="https://docs.wpvip.com/wordpress-on-vip/wordpress-upgrades/">Version updates for WordPress</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17178"><a href="https://docs.wpvip.com/wordpress-on-vip/wordpress-rest-api/">WordPress REST API</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20245"><a href="https://docs.wpvip.com/wordpress-on-vip/wordpress-single-site/">WordPress single site</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17210"><a href="https://docs.wpvip.com/wordpress-on-vip/xml-rpc/">XML-RPC</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-has-children menu-item-17174"><a href="https://docs.wpvip.com/wordpress-skeleton/">WordPress skeleton</a> <button aria-expanded="false" aria-label="Submenu for WordPress skeleton" class="a8c-docs-sidebar-list__toggle"></button> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17193"><a href="https://docs.wpvip.com/wordpress-skeleton/client-mu-plugins-directory/">/client-mu-plugins directory</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17181"><a href="https://docs.wpvip.com/wordpress-skeleton/docs-directory/">/docs directory</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17192"><a href="https://docs.wpvip.com/wordpress-skeleton/images-directory/">/images directory</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17012"><a href="https://docs.wpvip.com/wordpress-skeleton/languages-directory/">/languages directory</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17194"><a href="https://docs.wpvip.com/wordpress-skeleton/plugins-directory/">/plugins directory</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17189"><a href="https://docs.wpvip.com/wordpress-skeleton/private-directory/">/private directory</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17190"><a href="https://docs.wpvip.com/wordpress-skeleton/themes-directory/">/themes directory</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17184"><a href="https://docs.wpvip.com/wordpress-skeleton/vip-config-directory/">/vip-config directory</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17183"><a href="https://docs.wpvip.com/wordpress-skeleton/editorconfig/">.editorconfig</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-technical-references menu-item-17182"><a href="https://docs.wpvip.com/wordpress-skeleton/phpcs-xml-dist/">.phpcs.xml.dist</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-how-tos menu-item-17013"><a href="https://docs.wpvip.com/wordpress-skeleton/serve-static-content-wp/">Serve static content</a></li> </ul> </li> </ul><ul class="a8c-docs-sidebar-footer is-style-muted"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10908"><a href="https://wordpressvip.zendesk.com/">Contact Support</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-11027"><a href="https://wpvipstatus.com/">WPVIP Status</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10905"><a href="https://lobby.vip.wordpress.com/">VIP Lobby</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10906"><a href="https://wpvip.com/resources/">Resource Library</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10907"><a href="https://docs.parse.ly/">Parse.ly Help</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19760"><a href="https://wpvip.com/privacy/">Privacy Policy</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-15890"><a href="https://wpvip.com/accessibility/">Accessibility at WordPress VIP</a></li> </ul> </nav> <!-- .a8c-docs-layout__sidebar --> <div class="a8c-docs-layout__main__content" id="a8c-docs-toc-scroll"> <div id="a8c-docs-toc-content" class="a8c-docs-layout__main__content__inner"> <div class="a8c-docs-layout__main__content__primary"> <main> <article class="a8c-docs-entry post-670 page type-page status-publish hentry category-security tag-tech-ref" aria-label="Security" id="post-670" > <header class="a8c-docs-entry__header"> <h1 class="a8c-docs-entry__title"> Security</h1> </header> <!-- .a8c-docs-entry__header --> <div class="a8c-docs-entry__content"> <p>The VIP Platform is built with multiple levels of security controls and protection—including edge protection, secure networking, robust access controls, continuous security monitoring, and code scanning. VIP performs recurring internal security testing of the platform, vulnerability assessments, and engages with third-parties to perform platform penetration testing on a regular basis.</p> <p>However, it is the combined responsibility of both VIP and the customer to strengthen and maintain the security of applications hosted on the VIP Platform.</p> <h2 class="wp-block-heading" id="h-infrastructure-built-to-mitigate-security-threats">Infrastructure built to mitigate security threats</h2> <p>VIP’s infrastructure is designed to mitigate security threats and manage vulnerabilities at a platform-level.</p> <ul class="wp-block-list"> <li><strong>Security monitoring: </strong>Safeguards against attacks include monitoring of traffic pattern anomalies and spikes, and controlled responses to suspicious traffic patterns. Brute-force protections are built in at the network level; they monitor for unnatural behavior and dynamically apply restrictions.</li> <li><strong>Data center security:</strong> End-to-end encryption from data centers at the edge to origin, resource and data isolation, and encrypted off-site backups. VIP origin data centers meet the International Organization of Standardization (ISO), International Electrotechnical Commission (IEC) 27001 certification and Standards for Attestation Engagements (SSAE) No. 18 SOC2 Type 2. </li> <li><strong>Database protection:</strong> Databases for every application are containerized in a separate infrastructure, each with their own unique authentication. This mitigates the risk of unauthorized access between applications. Production database backups are taken each hour and maintained for 30 days. They are stored in an encrypted format to ensure data continuity while maintaining security.</li> <li><strong>Firewalls:</strong> Network and host-based firewalls are built into the platform with real-time notification processes designed to prevent unauthorized access attempts.</li> <li><strong>Security patch management:</strong> The VIP team promptly deploys security patches and other protections to mitigate critical vulnerabilities for software that runs on the platform such as WordPress, PHP, and Node.js.</li> </ul> <p>Whole-site HTTPS is enforced for all sites on the platform, and an installed TLS certificate is required for a site to be launched and publicly accessible. <a href="https://docs.wpvip.com/lets-encrypt-cert/">Let’s Encrypt TLS certificates</a> are available for all domains by default. Customers have the option to <a href="https://docs.wpvip.com/custom-tls-cert/">install custom TLS certificates</a> for their domains.</p> <h3 class="wp-block-heading" id="h-reduced-attack-surface">Reduced attack surface</h3> <p>VIP’s infrastructure has reduced attack surfaces that help to protect applications against many common forms of attack.</p> <ul class="wp-block-list"> <li>All web containers run in read-only mode. A read-only web container disallows plugins, themes, and other code from having write permissions. While this can occasionally cause <a href="https://docs.wpvip.com/plugins/plugin-incompatibilities/">plugin incompatibilities</a>, it protects against vulnerabilities such as installation of backdoor shells and other malicious files.</li> <li>The code deployed to an environment’s read-only web containers can only be modified by GitHub users given write-access to an application’s <kbd>wpcomvip</kbd> GitHub repository. <a href="https://docs.wpvip.com/github-user-access/">The customer governs user access to an application’s GitHub repository</a>. Read, Write, or Admin permissions are selectively assigned to users at the customer’s discretion. </li> <li>Uploaded media files are stored in <a href="https://docs.wpvip.com/vip-go-files-system/">the VIP File System</a>, a separate, read-only, globally distributed <a href="https://en.wikipedia.org/wiki/Object_storage">object store</a>. </li> </ul> <h3 class="wp-block-heading" id="h-compliance">Compliance</h3> <ul class="wp-block-list"> <li><a href="https://wpvip.com/wordpress-vip-fedramp-compliant/" target="_blank" rel="noreferrer noopener">FedRAMP Authority to Operate (ATO)</a></li> <li><a href="https://www.dataprivacyframework.gov/s/participant-search/participant-detail?id=a2zt0000000CbqcAAC&status=Active">Data Privacy Framework</a></li> </ul> <h2 class="wp-block-heading" id="h-customer-responsibility-for-threat-mitigation">Customer responsibility for threat mitigation</h2> <p>The security of an application hosted on the VIP Platform is a shared responsibility between VIP and its customers. While VIP is committed to providing a secure infrastructure, customers have the responsibility of user management, overseeing that security best practices are followed by their users, and maintaining the quality of the code that is deployed to their applications. </p> <p>Security incidents can cause an enormous amount of toil, financial cost, and negatively affect the reputation of a business. It is worth taking the time and making the effort to reduce the risk of a security incident in any way possible.</p> <h3 class="wp-block-heading" id="Use-caution-around-the-type-of-data-stored-by-an-application">Use caution around the type of data stored by an application</h3> <p>VIP acts as a data processor for the customer; the customer is the data controller. The scope of personal data that is uploaded to an application hosted on the VIP Platform is within the control of the customer. The type of data collected is dependent on the settings applied to a VIP application by the customer and the code that is added to an application’s <kbd>wpcomvip</kbd> GitHub repository.</p> <p>VIP explicitly discourages the collection, transmission, processing and storage of sensitive or protected data such as social security numbers, medical information, or credit card details on its infrastructure. Payment details for e-commerce sites should be handled by a PCI-compliant payment processor.</p> <h3 class="wp-block-heading" id="Control-user-access-and-restrict-user-permissions">Control user access and restrict user permissions</h3> <p>Customers are advised to be vigilant about which users have access to the accounts related to an application, and what level of access those users have. Periodically review the list of users with access to application data (e.g., VIP Dashboard, GitHub, New Relic, Zendesk, and WordPress). Minimize the number of users who are granted Admin permissions for any account. Follow <a href="https://en.wikipedia.org/wiki/Principle_of_least_privilege">the principle of least privilege</a>, and lower a user’s level of access to only what is necessary for their role. Remove a user from an account entirely if they should no longer have access.</p> <p>VIP has no insight into a user who was granted access to an organization’s account at one time, and what that user’s relationship status is with the organization currently. It is the customer’s responsibility to keep the list of users with access to accounts associated with an organization up to date. </p> <p><a href="https://docs.wpvip.com/manage-user-access/">User access management</a> (i.e., adding, removing, and editing user accounts) for most accounts are under the customer’s governance.</p> <h3 class="wp-block-heading" id="Implement-secure-development-practices">Implement secure development practices</h3> <p>It is possible for the secure infrastructure of an environment to be compromised by insecure code deployed to it from an application’s codebase. The quality of code contributed to an application’s codebase and the diligence of a customer’s code reviewers strongly influences the security of a publicly accessible site. Customers should develop their own security guidelines for all codebase contributors and ensure that they are followed.</p> <ul class="wp-block-list"> <li>All code should be required to undergo internal code reviews before merging to a production branch. When reviewing code, be vigilant to have security in mind. Try to imagine all of the ways—both obvious and unlikely edge cases—that the new code could possibly be used maliciously.</li> <li>Never deploy untested prototype code to a publicly accessible environment. </li> <li>Any code that alters the permissions of a user role—and code that runs logic against permission levels—requires extra scrutiny during code review.</li> <li>Perform periodic holistic security reviews of the application’s entire codebase. These reviews can be helpful to identify emergent insecure behavior of the codebase that might not be obvious in individual changesets. </li> </ul> <h4 class="wp-block-heading">Third-party dependencies</h4> <p>Take steps to research the quality and suitability of any third-party code before adding it to an application’s codebase. Use tools such as <a href="https://docs.wpvip.com/php_codesniffer/">PHPCS to evaluate code quality</a> on a local machine, and investigate all issues reported by <a href="https://docs.wpvip.com/vip-code-analysis-bot/">the VIP Code Analysis Bot in pull requests</a>. While tools can be helpful, assessing potential security risks of code is best identified when combined with human code review. </p> <p>Available updates for third-party dependencies that exist in an application repository (e.g. plugins and themes) should be tested and updated as soon as possible. VIP provides several code scanning features that can help customers keep their third-party plugins and software up to date and secure.</p> <ul class="wp-block-list"> <li><a href="https://docs.wpvip.com/codebase-manager/">Codebase Manager</a> scans plugins within an application’s <code>/plugins</code> directory. The “Plugins” panel in the VIP Dashboard will indicate if version updates are available for a plugin, or if the scan has identified a known security vulnerability. A pull request to update a plugin can be initiated from within the VIP Dashboard Plugins panel.</li> <li>The <a href="https://docs.wpvip.com/vulnerability-and-update-scan/">Vulnerability and Update Scan by the VIP Code Analysis Bot</a> scans pull requests made to <a href="https://docs.wpvip.com/wpcomvip-github-repository/">an application’s <kbd>wpcomvip</kbd> GitHub repository</a>. The Bot queries <a href="https://wpscan.com/api">the WPScan API</a> for known plugin and theme security vulnerabilities and available version updates. </li> </ul> <h3 class="wp-block-heading" id="h-run-wordpress-in-a-secure-safe-manner">Run WordPress in a secure, safe manner</h3> <p>Though VIP has specific <a href="https://docs.wpvip.com/wordpress-security/">security measures in place to protect WordPress applications</a>, customers share the responsibility of running their WordPress site in a safe and secure manner. </p> <ul class="wp-block-list"> <li>The version of WordPress running on an environment should be maintained at the most recent major release version. Customers can update WordPress versions in the <a href="https://docs.wpvip.com/software-management/">Software Versions</a> panel of the <a href="https://docs.wpvip.com/vip-dashboard/">VIP Dashboard</a>. To ensure that an environment’s version of WordPress is updated automatically, enable managed updates. The VIP team <a href="https://docs.wpvip.com/vip-platform/wordpress-upgrades/">automatically applies security patches</a> for the version of WordPress running on an environment.</li> <li>Users that are granted access to a WordPress site potentially have access to the site’s data and settings. Use great caution when granting user access to a WordPress site, and assign <a href="https://wordpress.org/documentation/article/roles-and-capabilities/">roles and capabilities</a> to each user that are limited to only what is necessary. </li> <li>By default, VIP requires <a href="https://docs.wpvip.com/restricting-site-access/two-factor-authentication/">two-factor authentication</a> for all WordPress user accounts with a role that has <a href="https://wordpress.org/documentation/article/roles-and-capabilities/#manage_options">the <code>manage_options</code> capability</a> (e.g., Administrators and Super Admins). For greater security, two-factor authentication should be enforced for <em>all</em> WordPress user accounts with <a href="https://wordpress.org/documentation/article/roles-and-capabilities/#edit_posts">the <code>edit_posts</code> capability</a> (e.g. users with the Contributor role or greater).</li> <li>Enforce strong password policies, and force password changes for users when needed.</li> <li>Immediately <a href="https://wordpressvip.zendesk.com/">notify VIP Support</a> if there is reason to suspect unauthorized use of WordPress user accounts.</li> </ul> <h3 class="wp-block-heading" id="h-only-run-versions-of-software-eligible-for-security-updates">Only run versions of software eligible for security updates</h3> <p><a href="https://docs.wpvip.com/php/">The version of PHP</a> or <a href="https://docs.wpvip.com/node-js/managing-node-js-versions/">Node.js running on an environment</a> can be managed in the <a href="https://docs.wpvip.com/software-management/">Software Versions</a> panel of the <a href="https://docs.wpvip.com/vip-dashboard/">VIP Dashboard</a>. Only versions of software that are eligible for security updates can be selected for an environment; older versions are not an option. VIP notifies customers of upcoming version releases and version deprecations of PHP and Node.js in <a href="http://lobby.vip.wordpress.com/">the VIP Lobby</a>. </p> <p>Notifications are intended to help customers plan ahead and schedule adequate time to test their application code against newer versions of software. All testing should be performed on non-production environments prior to updating the software version running on a production environment.</p> <h3 class="wp-block-heading" id="Educate-team-members-on-security-best-practices">Educate team members on security best practices</h3> <p>It is the responsibility of all users with access to an application hosted on the WordPress VIP Platform to contribute to the security of that application. All team members should review and follow the <a href="https://docs.wpvip.com/security/user-security-recommendations/">security recommendations for users</a>.</p> <p><strong>Users who do not follow security <strong>best</strong> practices can compromise the security of an application.</strong></p> <p>Communicate the importance of good password management to all users with access to an application’s data and/or settings. Users should regard the password strength meter built into WordPress and review <a href="https://wordpress.org/documentation/article/hardening-wordpress/#passwords">WordPress.org’s recommendations for password best practices</a>.</p> <h3 class="wp-block-heading" id="Audit-every-action">Audit every action</h3> <p>Internally, VIP logs activity at the application, web server, load balancer, database, and operating system layers. This allows the team to analyze and investigate security issues in real-time.</p> <p>Customers have access to <a href="https://docs.wpvip.com/vip-dashboard/audit-log/">the Audit Log in the VIP Dashboard</a>, which provides an overview and historical log of nearly every action that can be taken by an organization’s team members. In addition, a separate <a href="https://docs.wpvip.com/vip-dashboard/wp-cli-panel/">WP-CLI Commands audit log</a> is available to monitor all WP-CLI commands that were run on an environment.</p> <p>As a security best practice, these logs should be reviewed by the customer at a regular cadence to increase the likelihood that unusual or malicious behavior can be identified as soon as possible.</p> <hr class="wp-block-separator has-alpha-channel-opacity"/> <p>Review <a href="https://wpvip.com/security/">our enterprise-grade WordPress security article</a> for more information about security on the VIP Platform and security best practices.</p> </div> <!-- .a8c-docs-entry-content --> <p class='a8c-docs-last-updated-text'>Last updated: January 14, 2025</p> </article> <!-- .a8c-docs-entry --> </main> <footer class="a8c-docs-layout__main__content__footer"> <hr /> <h2 class="has-text-align-center screen-reader-text"> Contact WordPress VIP </h2> <p class="has-text-align-center a8c-docs-layout__main__content__footer__header"> Have a question, or ready to get started with WordPress VIP? </p> <div class="a8c-docs-button-group__wrapper"> <ul class="a8c-docs-button-group"> <li> <a class="a8c-docs-button" target="_blank" href="https://wordpressvip.zendesk.com/">Contact Support</a> </li> <li> <a class="a8c-docs-button is-style-secondary" target="_blank" href="https://wpvip.com/contact/">Contact Sales</a> </li> </ul> </div> <p class="has-text-align-center"> <statusiq-status-widget src="https://wpvipstatus.com" widget-type="badge" widget-text="WPVIP"></statusiq-status-widget> </p> <hr /> <p class="has-text-align-center a8c-docs-gutter-bottom-none font-small"> Documentation is licensed under a </p> <p class="has-text-align-center font-small"> <a href="https://creativecommons.org/licenses/by-sa/4.0/"> Creative Commons Attribution-ShareAlike 4.0 International License </a> </p> <div class="a8c-docs-automattic-block"> <p> <a href="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> Creation </a> </p> </div> <!-- .a8c-docs-automattic-block --> </footer> <!-- .a8c-docs-layout__main__content__footer --> </div> <!-- .a8c-docs-layout__main__content__primary --> <div class="a8c-docs-layout__main__content__secondary"> <div class="a8c-docs-environment-list"><h2 class="a8c-docs-environment-list__heading">Relevant to</h2><ul class="a8c-docs-environment-list__list"><li class="a8c-docs-environment-list__item">Node.js</li><li class="a8c-docs-environment-list__item">WordPress</li></ul></div> <nav id="docs-toc-nav" class="a8c-docs-table-of-contents__sticky" aria-label="Table of Contents"> </nav> </div> <!-- .a8c-docs-layout__main__content__secondary --> </div> <!-- .a8c-docs-layout__main__content__inner --> </div> <!-- .a8c-docs-layout__main__content --> </div> <!-- .a8c-docs-layout__main__inner --> </div> <!-- .a8c-docs-layout__main --> </div> <!-- .a8c-docs-layout --> <!-- A8C RUM --> <script defer id="bilmur" data-provider="vip" data-service="k8s-a8c" src="https://s0.wp.com/wp-content/js/bilmur.min.js?m=202511"></script> <div id="privacy-consent-banner" style="display: none;"> <div class="cookie-banner"> <div class="cookie-banner__simple-options"> <p class="cookie-banner__simple-text-description"> As an open source company, we take your privacy seriously and want to be as transparent as possible. So: We use cookies to collect some personal data from you (like your browsing data, IP addresses, and other unique identifiers). Some of these cookies we absolutely need in order to make things work, and others you can choose in order to optimize your experience while using our site and services. </p> <div class="cookie-banner__button-container"> <button class="cookie-banner__customize-button">Customize</button> <button class="cookie-banner__accept-all-button">Accept all</button> </div> </div> <div class="cookie-banner__options-selection" style="display: none;"> <p class="cookie-banner__options-lead-text"> As an open source company, we take your privacy seriously and want to be as transparent as possible. So: We use cookies to collect some personal data from you (like your browsing data, IP addresses, and other unique identifiers). Some of these cookies we absolutely need in order to make things work, and others you can choose in order to optimize your experience while using our site and services. </p> <div class="cookie-banner__bucket-container"> <input class="cookie-banner__checkbox" type="checkbox" checked disabled> <div class="cookie-banner__option-description"> <strong>Required</strong> <p>These cookies are essential for our websites and services to perform basic functions and are necessary for us to operate certain features, like allowing registered users to authenticate and perform account-related functions, storing preferences set by users (like account name, language, and location), and ensuring our services operate properly. </p> </div> </div> <div class="cookie-banner__bucket-container"> <input id="analytics-bucket-toggle" class="cookie-banner__checkbox" type="checkbox" checked> <div class="cookie-banner__option-description"> <strong>Analytics</strong> <p>These cookies allow us to optimize performance by collecting information on how users interact with our websites.</p> </div> </div> <div class="cookie-banner__bucket-container"> <input id="advertising-bucket-toggle" class="cookie-banner__checkbox" type="checkbox" checked> <div class="cookie-banner__option-description"> <strong>Advertising</strong> <p>We and our advertising partners set these cookies to provide you with relevant content and to understand that content’s effectiveness.</p> </div> </div> <button class="cookie-banner__accept-selection-button">Accept selection</button> </div> </div> </div><script type="text/javascript" src="https://docs.wpvip.com/wp-content/plugins/vip-privacy-toolset/assets/privacy-consent-banner.js?ver=1.0.0" id="privacy-toolset-js-js" defer="defer" data-wp-strategy="defer"></script> <script type="text/javascript" src="https://docs.wpvip.com/wp-content/themes/a8c-docs/assets/build/main.js?m=1739951615g" ></script><script type="text/javascript" src="https://stats.wp.com/e-202511.js" id="jetpack-stats-js" data-wp-strategy="defer"></script> <script type="text/javascript" id="jetpack-stats-js-after"> /* <![CDATA[ */ _stq = window._stq || []; _stq.push([ "view", JSON.parse("{\"v\":\"ext\",\"blog\":\"182304402\",\"post\":\"670\",\"tz\":\"0\",\"srv\":\"docs.wpvip.com\",\"hp\":\"vip\",\"j\":\"1:14.3\"}") ]); _stq.push([ "clickTrackerInit", "182304402", "670" ]); /* ]]> */ </script> </body> </html>