{"id":16816,"date":"2021-03-04T14:30:10","date_gmt":"2021-03-04T14:30:10","guid":{"rendered":"https:\/\/10web.io\/blog\/?p=16816"},"modified":"2026-03-13T08:55:21","modified_gmt":"2026-03-13T08:55:21","slug":"wordpress-multisite","status":"publish","type":"post","link":"https:\/\/10web.io\/blog\/wordpress-multisite\/","title":{"rendered":"The Complete Guide on How to Setup WordPress Multisite"},"content":{"rendered":"<p>WordPress is a very popular and multifunctional content management system that powers 39.6% of websites in 2021. The free and simple functionality of the system makes it possible to create websites regardless of the level of technical knowledge.<\/p>\n<p>WordPress provides tons of features for building an amazing website, and one of the more advanced ones is <strong>WordPress multisite<\/strong>. This efficient feature empowers any WordPress user to create their own separate network of subsites for different purposes. WordPress multisite came to replace the multi-user edition which allowed users to securely manage their templates and settings without affecting any other users.<\/p>\n<p><iframe loading=\"lazy\" title=\"The Complete Tutorial on How to Setup WordPress Multisite\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/uzysFsYVQBw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<h3>What is a WordPress multisite?<\/h3>\n<p>WordPress multisite allows you to build a network of subsites with a single WordPress instance \u2013 a good example for this is <a href=\"https:\/\/wordpress.com\/\">wordpress.com<\/a> \u2013 and manage them from one dashboard. This feature is integrated into WordPress core, so you don\u2019t need to download extra software to make it work. All you need is to make very easy configurations which we will cover in this article.<\/p>\n<h3>Why should you use a WordPress multisite network?<\/h3>\n<p>The best use case of WordPress multisite is when you have a network of subsites that share similar functionality with plugins and server configurations. The fact that you have a single WordPress installation allows you to share plugins and custom applications. You shouldn\u2019t use it for websites that vary too much from each other.<\/p>\n<h3>Who is WordPress multisite for?<\/h3>\n<p>It\u2019s for companies or for individuals who need to have a few dozen similar microsites very fast. Here are 2 examples:<\/p>\n<ol>\n<li>Different departments of the university<\/li>\n<li>Different branches of the shop<\/li>\n<\/ol>\n<p>For instance, if you want to create websites about university departments with WordPress, you should<\/p>\n<ul>\n<li>have multiple WordPress installations and databases,<\/li>\n<li>do hosting configurations for each website,<\/li>\n<li>install plugins in each WordPress site or if you use custom applications add those to each website.<\/li>\n<\/ul>\n<p>With multisite you do all these actions at once.<\/p>\n<h2>Set up WordPress multisite<\/h2>\n<p>The steps for setting up WordPress multisite are pretty easy. In this article, we assume that you have already installed WordPress. If not, follow <a href=\"https:\/\/wordpress.org\/download\/\">this link<\/a> and download the latest version which as of the time of writing is 5.6.1.<\/p>\n<h3>Enable WordPress multisite<\/h3>\n<p>Now, once we have a WordPress fresh installation (for more information about installing a fresh WordPress check <a href=\"https:\/\/developer.wordpress.org\/advanced-administration\/before-install\/howto-install\/\">How to install WordPress<\/a>), let\u2019s enable multisite and deep dive to its options.<\/p>\n<p>Follow these steps:<\/p>\n<ol>\n<li>Open wp-config.php in WordPress root directory,<\/li>\n<li>Find this comment line<br \/>\n<span style=\"background: #FBFBFB;\">\/* That\u2019s all, stop editing! Happy publishing. *\/ <\/span><\/li>\n<li>Add the following constant above that line<br \/>\n<span style=\"background: #FBFBFB;\">define( &#8216;WP_ALLOW_MULTISITE&#8217;, true ); <\/span><\/li>\n<li>Save wp-config.php<\/li>\n<\/ol>\n<p>Now you need to log in to your WordPress admin dashboard. Following the previous steps, you\u2019ll find the \u201cNetwork Setup\u201d submenu under the Tools menu . Go to Tools &gt; Network Setup. Here you are asked to select whether you want sites in your WordPress network to use sub-domains or sub-directories. And note that once you choose an option you can\u2019t change it later.<\/p>\n<p>If you choose subdomains your URLs will look like this: subdomain.example.com, in the case of sub-directories: example.com\/subdirectory. Both types are equally acceptable, except that subdomains need extra DNS configuration, which your hosting has to provide (with 10web you can easily manage it) and there will be a need to purchase wildcard SSL (with 10Web you can generate certificates for free for each subdomain). Sub-folder is much easier, you don\u2019t need server-side extra setups.<\/p>\n<p>Note that if you have an existing website with multiple pages and want to enable multisite and allow others to create subsites be careful when choosing sub-directories. If for instance, there is a page with a slug \u201chello-world\u201d and you create a subsite named hello-world there will be a conflict. So, to avoid these types of conflicts choose a sub-domain for existing sites.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16826\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-network-of-wordpress-websites-742x416.jpg\" alt=\"create a network of wordpress websites\" width=\"742\" height=\"416\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-network-of-wordpress-websites-742x416.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-network-of-wordpress-websites-150x84.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-network-of-wordpress-websites-768x431.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-network-of-wordpress-websites-371x208.jpg 371w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-network-of-wordpress-websites.jpg 1484w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>After choosing the network type that will work best for you fill the network title and admin email fields and click the Install button. Now, you are on the Enabling Network screen.<\/p>\n<h4>Steps for a sub-directory network type:<\/h4>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16827\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-sub-directory-network-type-742x416.jpg\" alt=\"create a sub-directory network type\" width=\"742\" height=\"416\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-sub-directory-network-type-742x416.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-sub-directory-network-type-150x84.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-sub-directory-network-type-768x431.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-sub-directory-network-type-371x208.jpg 371w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-sub-directory-network-type.jpg 1484w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>Open wp-config.php and add the following constants above <span style=\"background: #FBFBFB;\">\/* That\u2019s all, stop editing! Happy publishing. *\/<\/span>, by replacing DOMAIN_CURRENT_SITE with your own.<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">define('MULTISITE', true);\r\ndefine('SUBDOMAIN_INSTALL', false);\r\ndefine('DOMAIN_CURRENT_SITE', 'local.multisite');\r\ndefine('PATH_CURRENT_SITE', '\/');\r\ndefine('SITE_ID_CURRENT_SITE', 1);\r\ndefine('BLOG_ID_CURRENT_SITE', 1);<\/pre>\n<p>If your network is running with an apache web server, find your .htaccess file (you can find more about this <a href=\"https:\/\/developer.wordpress.org\/advanced-administration\/server\/web-server\/httpd\/\">here<\/a>). If you don\u2019t have it, just create a new one and add the following rewrite rules:<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">RewriteEngine On\r\nRewriteRule .* - &#x5B;E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]\r\nRewriteBase \/\r\nRewriteRule ^index\\.php$ - &#x5B;L]\r\n\r\n# add a trailing slash to \/wp-admin\r\nRewriteRule ^(&#x5B;_0-9a-zA-Z-]+\/)?wp-admin$ $1wp-admin\/ &#x5B;R=301,L]\r\n\r\nRewriteCond %{REQUEST_FILENAME} -f &#x5B;OR]\r\nRewriteCond %{REQUEST_FILENAME} -d\r\nRewriteRule ^ - &#x5B;L]\r\nRewriteRule ^(&#x5B;_0-9a-zA-Z-]+\/)?(wp-(content|admin|includes).*) $2 &#x5B;L]\r\nRewriteRule ^(&#x5B;_0-9a-zA-Z-]+\/)?(.*\\.php)$ $2 &#x5B;L]\r\nRewriteRule . index.php &#x5B;L]<\/pre>\n<p>If your network is running with an Nginx web server, follow these instructions:<\/p>\n<p>Note that this is for a standalone Nginx setup, where Nginx is a primary server instead of an Apache. To make WordPress work with Nginx you should configure the backend PHP-CGI. Find more information about this in this article: <a href=\"https:\/\/developer.wordpress.org\/advanced-administration\/server\/web-server\/nginx\/\">WordPress+Nginx<\/a>.<\/p>\n<p>This is the Nginx configuration file for the sub-directory network:<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\"># WordPress multisite subdirectory rules.\r\n# Designed to be included in any server {} block.\r\n \r\nmap $uri $blogname{\r\n    ~^(?P\/&#x5B;^\/]+\/)files\/(.*)   \t$blogpath ;\r\n}\r\n \r\nmap $blogname $blogid{\r\n    default -999;\r\n \r\n    #Ref: https:\/\/wordpress.org\/extend\/plugins\/nginx-helper\/\r\n    #include \/var\/www\/wordpress\/wp-content\/plugins\/nginx-helper\/map.conf ;\r\n}\r\n \r\nserver {\r\n    server_name example.com ;\r\n \r\n    root \/var\/www\/example.com\/htdocs;\r\n    index index.php;\r\n \r\n    location ~ ^(\/&#x5B;^\/]+\/)?files\/(.+) {\r\n        try_files \/wp-content\/blogs.dir\/$blogid\/files\/$2 \/wp-includes\/ms-files.php?file=$2 ;\r\n        access_log off; \tlog_not_found off; expires max;\r\n    }\r\n \r\n    #avoid php readfile()\r\n    location ^~ \/blogs.dir {\r\n        internal;\r\n        alias \/var\/www\/example.com\/htdocs\/wp-content\/blogs.dir ;\r\n        access_log off; \tlog_not_found off; expires max;\r\n    }\r\n \r\n    if (!-e $request_filename) {\r\n        rewrite \/wp-admin$ $scheme:\/\/$host$request_uri\/ permanent;\r\n        rewrite ^(\/&#x5B;^\/]+)?(\/wp-.*) $2 last;\r\n        rewrite ^(\/&#x5B;^\/]+)?(\/.*\\.php) $2 last;\r\n    }\r\n \r\n    location \/ {\r\n        try_files $uri $uri\/ \/index.php?$args ;\r\n    }\r\n \r\n    location ~ \\.php$ {\r\n        try_files $uri =404;\r\n        include fastcgi_params;\r\n        fastcgi_pass php;\r\n    }\r\n \r\n    #add some rules for static content expiry-headers here\r\n}<\/pre>\n<h4>Steps for a sub-domain network type:<\/h4>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16828\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-sub-domain-network-type-742x416.jpg\" alt=\"create a sub-domain network type\" width=\"742\" height=\"416\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-sub-domain-network-type-742x416.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-sub-domain-network-type-150x84.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-sub-domain-network-type-768x431.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-sub-domain-network-type-371x208.jpg 371w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-a-sub-domain-network-type.jpg 1484w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>Open wp-config.php and add the following constants above <span style=\"background: #FBFBFB;\">\/* That\u2019s all, stop editing! Happy publishing. *\/<\/span>, by replacing DOMAIN_CURRENT_SITE with your own.<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">define('MULTISITE', true);\r\ndefine('SUBDOMAIN_INSTALL', true);\r\ndefine('DOMAIN_CURRENT_SITE', 'local.multisite');\r\ndefine('PATH_CURRENT_SITE', '\/');\r\ndefine('SITE_ID_CURRENT_SITE', 1);\r\ndefine('BLOG_ID_CURRENT_SITE', 1);<\/pre>\n<p>To use a subdomain configuration, you must either have a wildcard entry in your DNS or create new domains. A <strong>wildcard DNS record<\/strong> is a record in a DNS zone that will match requests for non-existent domain names. It\u2019s specified by using a<span style=\"background: #FBFBFB;\"> * <\/span>as the leftmost label (part) of a domain name, e.g.<span style=\"background: #FBFBFB;\"> *.example.com<\/span>. The exact rules for when a wild card will match are specified in RFC 1034 but the rules are neither intuitive nor clearly specified. With 10Web you can easily add new domains via domain DNS management.<br \/>\nIf your network is running with Apache, add these rules to the .htaccess file (you can find more about this <a href=\"https:\/\/developer.wordpress.org\/advanced-administration\/server\/web-server\/httpd\/\">here<\/a> ).<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">RewriteEngine On\r\nRewriteRule .* - &#x5B;E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]\r\nRewriteBase \/\r\nRewriteRule ^index\\.php$ - &#x5B;L]\r\n# add a trailing slash to \/wp-admin\r\nRewriteRule ^wp-admin$ wp-admin\/ &#x5B;R=301,L]\r\nRewriteCond %{REQUEST_FILENAME} -f &#x5B;OR]\r\nRewriteCond %{REQUEST_FILENAME} -d\r\nRewriteRule ^ - &#x5B;L]\r\nRewriteRule ^(wp-(content|admin|includes).*) $1 &#x5B;L]\r\nRewriteRule ^(.*\\.php)$ $1 &#x5B;L]\r\nRewriteRule . index.php &#x5B;L]<\/pre>\n<p>If your network is running with a Nginx web server:<\/p>\n<p>This is the Nginx configuration file for a subdomain network:<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">map $http_host $blogid {\r\n    default   \t-999;\r\n \r\n    #Ref: https:\/\/wordpress.org\/extend\/plugins\/nginx-helper\/\r\n    #include \/var\/www\/wordpress\/wp-content\/plugins\/nginx-helper\/map.conf ;\r\n \r\n}\r\n \r\nserver {\r\n    server_name example.com *.example.com ;\r\n \r\n    root \/var\/www\/example.com\/htdocs;\r\n    index index.php;\r\n \r\n    location \/ {\r\n        try_files $uri $uri\/ \/index.php?$args ;\r\n    }\r\n \r\n    location ~ \\.php$ {\r\n        try_files $uri =404;\r\n        include fastcgi_params;\r\n        fastcgi_pass php;\r\n    }\r\n \r\n    #WPMU Files\r\n        location ~ ^\/files\/(.*)$ {\r\n                try_files \/wp-content\/blogs.dir\/$blogid\/$uri \/wp-includes\/ms-files.php?file=$1 ;\r\n                access_log off; log_not_found off;  \texpires max;\r\n        }\r\n \r\n    #WPMU x-sendfile to avoid php readfile()\r\n    location ^~ \/blogs.dir {\r\n        internal;\r\n        alias \/var\/www\/example.com\/htdocs\/wp-content\/blogs.dir;\r\n        access_log off; \tlog_not_found off;  \texpires max;\r\n    }\r\n \r\n    #add some rules for static content expiry-headers here\r\n}<\/pre>\n<p>You can find more information about WordPress+Nginx <a href=\"https:\/\/developer.wordpress.org\/advanced-administration\/server\/web-server\/nginx\/\">here<\/a>.<\/p>\n<p>After these steps, you will be asked to log in again. Once logged in, you\u2019ll see a multisite WordPress admin dashboard instead of a regular WordPress admin dashboard. You have successfully set up WordPress multisite. Now let&#8217;s explore more of its features.<\/p>\n<h2>Managing sites on multisite<\/h2>\n<h3>Adding new subsites<\/h3>\n<p>For adding a new subsite to your network go to Network Admin &gt; Sites section.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16829\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-new-subsites-742x416.jpg\" alt=\"add new subsites\" width=\"742\" height=\"416\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-new-subsites-742x416.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-new-subsites-150x84.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-new-subsites-768x431.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-new-subsites-371x208.jpg 371w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-new-subsites.jpg 1484w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>Click the Add New button and fill the fields for adding a new subsite.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16830\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-new-subsite-step-2-742x416.jpg\" alt=\"add new subsite - step 2\" width=\"742\" height=\"416\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-new-subsite-step-2-742x416.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-new-subsite-step-2-150x84.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-new-subsite-step-2-768x431.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-new-subsite-step-2-371x208.jpg 371w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-new-subsite-step-2.jpg 1484w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>Click the Add Site button. You can find your newly added site in the Sites list.<\/p>\n<h3>Installing plugins and themes<\/h3>\n<p>Installing plugins and themes in WordPress multisite is similar to installing them in a regular WordPress site, except that you have to do it via Network Admin &gt; Plugins and Network Admin &gt; Themes accordingly.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16831\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/install-plugins-742x416.jpg\" alt=\"install plugins\" width=\"742\" height=\"416\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/install-plugins-742x416.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/install-plugins-150x84.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/install-plugins-768x431.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/install-plugins-371x208.jpg 371w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/install-plugins.jpg 1484w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16832\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/install-themes-742x416.jpg\" alt=\"install themes\" width=\"742\" height=\"416\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/install-themes-742x416.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/install-themes-150x84.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/install-themes-768x431.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/install-themes-371x208.jpg 371w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/install-themes.jpg 1484w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>By clicking on the Network Activate link, you activate a plugin or theme for the entire network. You can also activate\/deactivate plugins or themes for individual subsites from their individual dashboards. You can visit the individual subsite\u2019s dashboard from the My Sites menu by choosing your preferred subsite.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16833\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/activate-plugin-and-theme-for-the-entire-network-742x416.jpg\" alt=\"activate plugin and theme for the entire network\" width=\"742\" height=\"416\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/activate-plugin-and-theme-for-the-entire-network-742x416.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/activate-plugin-and-theme-for-the-entire-network-150x84.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/activate-plugin-and-theme-for-the-entire-network-768x431.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/activate-plugin-and-theme-for-the-entire-network-371x208.jpg 371w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/activate-plugin-and-theme-for-the-entire-network.jpg 1484w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<h3>User Management<\/h3>\n<p>Every regular WordPress installation has five user roles: Administrator, Editor, Author, Contributor, Subscriber. With multisite, there\u2019s an additional Super Admin role. The super admin has administrator privileges for all subsites in a multisite network. It also has permission to add new sites and manage network settings.<\/p>\n<p>For allowing new user registrations in your network, go to Network Settings, scroll to Registration Settings, and for the \u2018Allow new registrations\u2019 setting enable \u2018User accounts may be registered\u2019 option:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16834\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/registration-settings-742x416.jpg\" alt=\"registration settings\" width=\"742\" height=\"416\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/registration-settings-742x416.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/registration-settings-150x84.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/registration-settings-768x431.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/registration-settings-371x208.jpg 371w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/registration-settings.jpg 1484w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>When a user registers on one individual subsite of the network, they are registered for all sites within the network. This means that they can easily navigate through your subsites and have access to all pages that require authentication. This way they don\u2019t need to create a separate account for every site in your multisite network.<\/p>\n<p>You can add different users to the same subsite. For this go to Network Admin &gt; Sites. Then pick a subsite for which you want to add a user then click the &gt; Edit &gt; Users tab.<\/p>\n<p>You can select from existing users:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16835\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-users-to-subsites-742x416.jpg\" alt=\"add users to subsites\" width=\"742\" height=\"416\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-users-to-subsites-742x416.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-users-to-subsites-150x84.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-users-to-subsites-768x431.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-users-to-subsites-371x208.jpg 371w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-users-to-subsites.jpg 1484w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>Or you can create a new one.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16836\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-new-user-for-subsite-742x416.jpg\" alt=\"create new user for subsite\" width=\"742\" height=\"416\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-new-user-for-subsite-742x416.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-new-user-for-subsite-150x84.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-new-user-for-subsite-768x431.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-new-user-for-subsite-371x208.jpg 371w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/create-new-user-for-subsite.jpg 1484w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<h3>Adding different domains for each subsite<\/h3>\n<p>First, your domain name has to be pointed to your hosting server. For this, you have to use DNS configurations. Then you can open your preferred subsite settings and edit the Site Address (URL).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16837\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/Add-different-domains-for-each-subsite-742x416.jpg\" alt=\"Add different domains for each subsite\" width=\"742\" height=\"416\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/Add-different-domains-for-each-subsite-742x416.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/Add-different-domains-for-each-subsite-150x84.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/Add-different-domains-for-each-subsite-768x431.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/Add-different-domains-for-each-subsite-371x208.jpg 371w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/Add-different-domains-for-each-subsite.jpg 1484w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<h2>Multisite database and filesystem structure<\/h2>\n<p>Now, let&#8217;s have a look at the file system and database changes after enabling WordPress multisite. As we told you, WordPress multisite uses a single WordPress installation, which means that your plugins and theme files are the same for all network subsites. The same goes for the database. You have a single database with multisite-related new tables and new tables with numbered prefixes for each subsite.<\/p>\n<h3>File system changes<\/h3>\n<p>Compared to regular WordPress installations, the only difference in the file system are changes in wp-config.php. We added them according to the above described configurations and structure of uploads directory. After adding a new subsite in the network the new directory named as subsite numerical id is created under the uploads\/sites subdirectory.<\/p>\n<h3>Database changes<\/h3>\n<p>After multisite activation, there are 6 new tables and some changes in existing ones.<\/p>\n<p>The new tables are:<\/p>\n<p>wp_blogs \u2013 records all the subsites in the network.<\/p>\n<ul>\n<li><strong>blog_id<\/strong> \u2013 unique numeric id for each blog.<\/li>\n<li><strong>site_id<\/strong> \u2013 the website id that the blog belongs to. (Reference to the wp_site table.)<\/li>\n<li><strong>domain<\/strong> \u2013 base domain name of the blog.<\/li>\n<li><strong>path <\/strong>\u2013 path of the blog.<\/li>\n<li><strong>registered <\/strong>\u2013 the blog registration date and time.<\/li>\n<li><strong>last_updated<\/strong> \u2013 the blog last update date and time.<\/li>\n<li><strong>public <\/strong>\u2013 0 or 1, shows if the blog is public.<\/li>\n<li><strong>archived <\/strong>\u2013 0 or 1, shows if the blog is archived.<\/li>\n<li><strong>mature <\/strong>\u2013 0 or 1, shows if the blog is for mature users.<\/li>\n<li><strong>spam <\/strong>\u2013 0 or 1, shows if the blog is spammed.<\/li>\n<li><strong>deleted <\/strong>\u2013 0 or 1, shows if the blog is deleted.<\/li>\n<li><strong>lang_id<\/strong> \u2013 blog language id.<\/li>\n<\/ul>\n<p>wp_blogs_versions &#8211; records the database version of each blog.<\/p>\n<ul>\n<li><strong>blog_id <\/strong>\u2013 the blog\u2019s numeric id. (Reference to the wp_blogs table.)<\/li>\n<li><strong>db_version<\/strong> \u2013 the current WordPress database revision.<\/li>\n<li><strong>last_updated<\/strong> \u2013 the last upgrade date and time.<\/li>\n<\/ul>\n<p>wp_registartion_log &#8211; records the user who registers a new site once it has been activated.<\/p>\n<ul>\n<li><strong>ID <\/strong>\u2013 unique number id.<\/li>\n<li><strong>email <\/strong>\u2013 user\u2019s email address.<\/li>\n<li><strong>IP <\/strong>\u2013 user\u2019s IP Address.<\/li>\n<li><strong>blog_id <\/strong>\u2013 the blog\u2019s numeric id. (Reference to the wp_blogs table.)<\/li>\n<li><strong>date_registered <\/strong>\u2013 the blog registration date and time.<\/li>\n<\/ul>\n<p>wp-signups &#8211; records signed up for but not activated blogs data. When the blog is activated the record is deleted from this table and created in wp_blogs.<\/p>\n<ul>\n<li><strong>signup_id <\/strong>\u2013 unique number.<\/li>\n<li><strong>domain <\/strong>\u2013 the base domain of the blog.<\/li>\n<li><strong>path <\/strong>\u2013 the path of the blog.<\/li>\n<li><strong>title <\/strong>\u2013 the title of the blog.<\/li>\n<li><strong>user_login <\/strong>\u2013 user\u2019s username who registered the blog.<\/li>\n<li><strong>user_email <\/strong>\u2013 user\u2019s email.<\/li>\n<li><strong>registered <\/strong>\u2013 registration date and time.<\/li>\n<li><strong>activated <\/strong>\u2013 activation date and time.<\/li>\n<li><strong>active <\/strong>\u2013 0 or 1, shows if the blog is active.<\/li>\n<li><strong>activation_key <\/strong>\u2013 activation key used in emails to active the blog.<\/li>\n<li><strong>meta <\/strong>\u2013 metadata about the signup.<\/li>\n<\/ul>\n<p>wp_site &#8211; records one network for the installation and the table is structured in a way that allows having multiple networks in a single database, but this feature was never implemented.<\/p>\n<ul>\n<li><strong>id <\/strong>\u2013 unique number id.<\/li>\n<li><strong>domain <\/strong>\u2013 the base domain of the site.<\/li>\n<li><strong>path <\/strong>\u2013 the path of the site.<\/li>\n<\/ul>\n<p>wp_sitemeta &#8211; this table is similar to the wp_option table with the difference that it\u2019s for network configuration.<\/p>\n<ul>\n<li><strong>meta_id <\/strong>\u2013 unique number.<\/li>\n<li><strong>site_id <\/strong>\u2013 id of the site. (Reference to the wp_site table.)<\/li>\n<li><strong>meta_key <\/strong>\u2013 a key name for the options.<\/li>\n<li><strong>meta_value <\/strong>\u2013 the options data.<\/li>\n<\/ul>\n<p>The data of the main site is stored in existing unnumbered tables, while the data of additional sites is stored in new numbered tables. More information about the multisite database structure can be found <a href=\"https:\/\/deliciousbrains.com\/tour-wordpress-database\/\">here<\/a>.<\/p>\n<h2>Things to remember when creating a multisite-ready plugin<\/h2>\n<h3>Don\u2019t hard code table names in your plugin code<\/h3>\n<p>As we know WordPress multisite uses a single database with numbered tables for each subsite. Let\u2019s assume we have a network of 2 subsites. In that case, for a table of posts we will have wp_posts and wp_2_posts (if the database prefix is wp_, i.e. the default one). This means that we have to use the global $wpdb object, which has a prefix member property. So, instead of this<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">$posts = $wpdb-&amp;amp;amp;gt;get_results(\u201cSELECT * FROM wp_posts\u201d); <\/pre>\n<p>write<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">$posts = $wpdb-&amp;amp;amp;gt;get_results(\u201cSELECT * FROM \u201c . $wpdb-&amp;amp;amp;gt;prefix .\u201dposts\u201d);<\/pre>\n<h3>Use the switch_to_blog and restore_current_blog functions<\/h3>\n<p>Use these functions for different subsite-specific operations in your network. Find more here <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/switch_to_blog\/\">switch_to_blog<\/a> and <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/restore_current_blog\/\">restore_current_blog<\/a>.<\/p>\n<h3>Create tables for each subsite<\/h3>\n<p>If your plugin creates tables, make sure that those tables are created for each site. For that, you can use this code when activating your plugin:<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">if (is_multisite()) {\r\nif (is_plugin_active_for_network(__FILE__)) {\r\n\r\n$blog_ids = $wpdb-&amp;amp;amp;gt;get_col(\u201cSELECT blog_id FROM\u201d.$wpdb-&amp;amp;amp;gt;prefix .\u201cblogs\u201d);\r\n\r\nforeach ($blog_ids as $blog_id) {\r\n\r\nswitch_to_blog($blog_id);\r\n\r\n\/\/ create tables for each site\r\n\r\ncreate_tables($blog_id);\r\n\r\nrestore_current_blog();\r\n\r\n}\r\n}\r\n}<\/pre>\n<h3>Correctly store options<\/h3>\n<p>Store subsite-specific configurations in subsite options tables (wp_options, wp_2_options, \u2026) and network-specific configurations in wp_site_meta tables.<\/p>\n<h2>Automated multisite management with 10Web<\/h2>\n<p>10Web provides an easy way to automatically enable and manage your multisite in our dashboard. You can easily add\/delete subsites in your network and point different domain names to them.<\/p>\n<h3>Create WordPress multisite with 10Web\u2019s dashboard<\/h3>\n<p>With 10Web, you can automatically create WordPress multisite without any manual configurations. All you need to do is check the checkbox &#8220;Should we install multisite?&#8221; on the Install New Website prompt and then choose your preferred multisite type: subdomain or subdirectory.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16838\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/install-a-new-wordpress-website-742x732.jpg\" alt=\"install a new wordpress website\" width=\"742\" height=\"732\" \/><\/p>\n<h3>Managing WordPress multisite with 10Web\u2019s dashboard<\/h3>\n<p>You can easily add, remove and manage subsites form 10Web\u2019s dashboard via the Network: My Sites list.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16839\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-remove-and-manage-subsites-742x416.jpg\" alt=\"add remove and manage subsites\" width=\"742\" height=\"416\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-remove-and-manage-subsites-742x416.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-remove-and-manage-subsites-150x84.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-remove-and-manage-subsites-768x431.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-remove-and-manage-subsites-371x208.jpg 371w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-remove-and-manage-subsites.jpg 1484w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>For adding a new subsite just enter the site address URL, site title, select a language for your subsite, and set an admin email. You can either use the existing WordPress user email or set a new one. The new user will then be created. After filling out the fields click the Add Site button and you\u2019re done!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16840\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/add-new-site-to-multisite-network-742x715.jpg\" alt=\"add new site to multisite network\" width=\"742\" height=\"715\" \/><\/p>\n<h3>10Web services for WordPress multisite<\/h3>\n<p>10Web provides the same services for WordPress multisite as for regular WordPress sites. You can create backups, optimize images, run security scanners, point domain names, generate certificates, use SEO services, the <a href=\"https:\/\/10web.io\/ai-website-builder\/\">10Web builder<\/a>, and, finally, install plugins and themes for your network.<\/p>\n<p>As we already know, subsites of the multisite network share the same filesystem and database. And since we provide backup and security services for the entire network you can find them in the Multisite Network screen as shown in the pictures below.<\/p>\n<p>Below you\u2019ll find the subdirectory case,<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16843\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/multisite-network-for-the-subdirectory-case-742x416.jpg\" alt=\"multisite network for the subdirectory case\" width=\"742\" height=\"416\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/multisite-network-for-the-subdirectory-case-742x416.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/multisite-network-for-the-subdirectory-case-150x84.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/multisite-network-for-the-subdirectory-case-768x431.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/multisite-network-for-the-subdirectory-case-371x208.jpg 371w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/multisite-network-for-the-subdirectory-case.jpg 1484w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>while here there\u2019s the subdomain case.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16844\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/multisite-network-for-the-subdomain-case-742x416.jpg\" alt=\"multisite network for the subdomain case\" width=\"742\" height=\"416\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/multisite-network-for-the-subdomain-case-742x416.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/multisite-network-for-the-subdomain-case-150x84.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/multisite-network-for-the-subdomain-case-768x431.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/multisite-network-for-the-subdomain-case-371x208.jpg 371w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/multisite-network-for-the-subdomain-case.jpg 1484w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>You can perform image optimizations, use SEO services, install\/activate\/deactivate plugins and themes, and build a subsite with the 10Web builder for individual subsites. In the picture below you&#8217;ll find the subdirectory case:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16845\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/perform-activities-in-bulk-for-the-subdirectory-case-742x416.jpg\" alt=\"perform activities in bulk for the subdirectory case\" width=\"742\" height=\"416\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/perform-activities-in-bulk-for-the-subdirectory-case-742x416.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/perform-activities-in-bulk-for-the-subdirectory-case-150x84.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/perform-activities-in-bulk-for-the-subdirectory-case-768x431.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/perform-activities-in-bulk-for-the-subdirectory-case-371x208.jpg 371w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/perform-activities-in-bulk-for-the-subdirectory-case.jpg 1484w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>And here the site subdomain case:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16846\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/perform-activities-in-bulk-for-the-subdomain-case-742x416.jpg\" alt=\"perform activities in bulk for the subdomain case\" width=\"742\" height=\"416\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/perform-activities-in-bulk-for-the-subdomain-case-742x416.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/perform-activities-in-bulk-for-the-subdomain-case-150x84.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/perform-activities-in-bulk-for-the-subdomain-case-768x431.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/perform-activities-in-bulk-for-the-subdomain-case-371x208.jpg 371w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/perform-activities-in-bulk-for-the-subdomain-case.jpg 1484w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>For <a href=\"https:\/\/10web.io\/hosting\/managed-wordpress-hosting\/\">hosting services<\/a> \u2013 depending on the multisite type (subdirectory or subdomain) \u2013 you can manage them either for individual sites or the entire network. For example, for a subdomain multisite you should point a domain for each subsite, but in the case of a subdirectory you should point a domain from the Multisite Network screen for the entire network.<\/p>\n\r\n<style>\r\n  #ctablocks_inline_58{\r\n          background-color: #ffffff;\r\n        color: #323a45;\r\n    border-radius: 12px;\r\n  }\r\n\r\n  #ctablocks_inline_58 p{\r\n    color: #323a45;\r\n  }\r\n  #ctablocks_inline_58 .button{\r\n        background-color: #4786FF;\r\n      color: #ffffff;\r\n    border-color: #4786FF !important;\r\n  }\r\n  #ctablocks_inline_58 .button:hover{\r\n    background: #3077FF;\r\n    color: #ffffff;\r\n    opacity: 1;\r\n  }\r\n        #ctablocks_inline_58 .ctablocks_content_info p {\r\n        padding-left: 36px;\r\n      }\r\n      #ctablocks_inline_58 .ctablocks_content_button {\r\n          margin-left: 37px;\r\n      }\r\n  @media screen and (min-width: 768px) and (max-width: 1260px) {\r\n      #ctablocks_inline_58 .ctablocks_content_button {\r\n          margin-left: 37px !important;\r\n      }\r\n  }\r\n  ;\r\n<\/style>\r\n<div id=\"ctablocks_inline_58\" class=\"ctablocks_container inline_type\r\n        \">\r\n\r\n  <div class=\"ctablocks_content clear\">\r\n    <div class=\"ctablocks_content_info\">\r\n      \r\n            <div class=\"title-wrap\">\r\n\t\t\t\t\t            <h4>Fully Automated WordPress Hosting<\/h4>\r\n        <\/div>\r\n              <p>Test 10Web for free, and enjoy all the benefits of a secure Google Cloud Partner hosting and website building with AI.<\/p>\r\n          <\/div>\r\n    <div class=\"ctablocks_content_button\">\r\n              <a href=\"https:\/\/10web.io\/ai-website-builder\/\" class=\"button\" data-gtag=\"sign-up-blog\" data-buttontype=\"sign-up\" data-gtag=\"cta-58\" data-buttontype=\"cta-inline\"\r\n\t        >FIND OUT MORE<\/a>\r\n            \r\n    <\/div>\r\n  <\/div>\r\n    <\/div>\r\n\r\n<style>\r\n  #ctablocks_scrollbox_58{\r\n          background-color: #ffffff;\r\n        color: #323a45;\r\n    border-radius: 12px;\r\n  }\r\n\r\n  #ctablocks_scrollbox_58 p{\r\n    color: #323a45;\r\n  }\r\n  #ctablocks_scrollbox_58 .button{\r\n          background-color: #4786FF;\r\n        color: #ffffff;\r\n    border-color: #4786FF !important;\r\n  }\r\n  #ctablocks_scrollbox_58 .button:hover{\r\n    background: #3077FF;\r\n    color: #ffffff;\r\n    opacity: 1;\r\n  }\r\n<\/style>\r\n<div id=\"ctablocks_scrollbox_58\" class=\"ctablocks_container scrollbox_type\r\n      \">\r\n\r\n  <div class=\"ctablocks_content clear\">\r\n    <div class=\"ctablocks_content_info\">\r\n              <h4>Fully Automated WordPress Hosting<\/h4>\r\n              <p>Test 10Web for free, and enjoy all the benefits of a secure Google Cloud Partner hosting and website building with AI.<\/p>\r\n          <\/div>\r\n    <div class=\"ctablocks_content_button\">\r\n              <a href=\"https:\/\/10web.io\/ai-website-builder\/\" class=\"button\" data-gtag=\"sign-up-blog\" data-buttontype=\"sign-up\"\t        >FIND OUT MORE<\/a>\r\n            \r\n    <\/div>\r\n  <\/div>\r\n    <span class=\"close_ctablocks\">\r\n      <img decoding=\"async\" src=\"https:\/\/10web.io\/blog\/wp-content\/plugins\/cta-blocks\/assets\/images\/close_w.svg\" class=\"close\">\r\n  <\/span>\r\n<\/div>\r\ns\r\n\n<h3>Point domains<\/h3>\n<p>The procedure of pointing domains is similar to the one for a regular WordPress site. For a subdirectory multisite you can point a domain by going to Multisite Network &gt; Hosting Services &gt; Point Domain. For a subdomain multisite, you have to choose the preferred subsite from the My Sites list and go to Hosting Services &gt; Point Domain. You have to follow the steps as described in this article: How to point your domain to 10Web.<\/p>\n<h2>Conclusion<\/h2>\n<p>As you can see, WordPress multisite is an amazing and advanced feature with lots of benefits. We hope that after reading this article you can easily create and manage your own network.<\/p>\n<p><em>If you have any questions, you know the drill!<\/em><br \/>\n\r\n<style>\r\n  #ctablocks_scrollbox-with-icon_91{\r\n            color: #ffffff;\r\n    border-radius: 6px;\r\n  }\r\n\r\n  #ctablocks_scrollbox-with-icon_91 p{\r\n    color: #ffffff;\r\n  }\r\n  #ctablocks_scrollbox-with-icon_91 .button{\r\n          background-color: rgb(51,57,241);\r\n        color: #ffffff;\r\n    border-color: #3339f1 !important;\r\n  }\r\n  #ctablocks_scrollbox-with-icon_91 .button:hover{\r\n    background: rgba(51,57,241,0.8);\r\n    color: #ffffff;\r\n    opacity: 1;\r\n  }\r\n  #ctablocks_scrollbox-with-icon_91.ctablocks_container {\r\n    left: 100%;\r\n  }\r\n  @media screen and (max-width: 1300px) {\r\n      #ctablocks_scrollbox-with-icon_91.ctablocks_container {\r\n          left: 0;\r\n          margin: 0 auto;\r\n      }\r\n  }\r\n  #ctablocks_scrollbox-with-icon_91 .ctablocks_content {\r\n      background-color: #000000;\r\n  }\r\n<\/style>\r\n<div id=\"ctablocks_scrollbox-with-icon_91\" class=\"ctablocks_container scrollbox-with-icon_type\r\n      \">\r\n\r\n  <div class=\"ctablocks_content clear\">\r\n    <div class=\"ctablocks_content_info\">\r\n              <h4>Simplify WordPress with 10Web<\/h4>\r\n        <h4 class=\"mobile-title\">Simplify WordPress with 10Web<\/h4>\r\n              <p>Skip and automate manual work with 10Web Managed WordPress Hosting and the 10Web AI Website Builder.<\/p>\r\n          <\/div>\r\n    <div class=\"ctablocks_content_button\">\r\n              <a href=\"https:\/\/10web.io\/ai-website-builder\/\" class=\"button\" data-gtag=\"sign-up-blog\" data-buttontype=\"sign-up\" data-gtag=\"cta-91\" data-buttontype=\"cta-scrollbox-with-icon\"\r\n\t        >Learn How<\/a>\r\n            \r\n    <\/div>\r\n  <\/div>\r\n    <span class=\"close_ctablocks\">\r\n      <img decoding=\"async\" class=\"close-icon\" src=\"https:\/\/10web.io\/blog\/wp-content\/plugins\/cta-blocks\/assets\/images\/close_w.svg\" class=\"close\">\r\n      <img decoding=\"async\" class=\"floating-icon\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2024\/04\/Info-icon_Blog.png\" alt=\"Simplify WordPress with 10Web\" title=\"Simplify WordPress with 10Web\">\r\n<!--      <img decoding=\"async\" class=\"arrow-icon white\" src=\"\/cta-blocks\/assets\/images\/arrow-icon.svg\" class=\"close\">\r\n-->      <img decoding=\"async\" class=\"arrow-icon purple\" src=\"https:\/\/10web.io\/blog\/wp-content\/plugins\/cta-blocks\/assets\/images\/arrow-icon-purple.svg\" class=\"close\">\r\n  <\/span>\r\n<\/div>\r\n<br \/>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress is a very popular and multifunctional content management system that powers 39.6% of websites in 2021. The free and simple functionality of the system makes it possible to create websites regardless of the level of technical knowledge. WordPress provides tons of features for building an amazing website, and one of the more advanced ones is WordPress multisite. This efficient&#8230;<\/p>\n","protected":false},"author":95,"featured_media":16841,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"two_page_speed":[],"footnotes":"","tenweb_blog_toc":"<ul><ul><li><a href=\"#what-is-a-wordpress-multisite\">What is a WordPress multisite?<\/a><li><a href=\"#why-should-you-use-a-wordpress-multisite-network\">Why should you use a WordPress multisite network?<\/a><li><a href=\"#who-is-wordpress-multisite-for\">Who is WordPress multisite for?<\/a><\/li><\/ul><li><a href=\"#set-up-wordpress-multisite\">Set up WordPress multisite<\/a><ul><li><a href=\"#enable-wordpress-multisite\">Enable WordPress multisite<\/a><\/li><\/ul><li><a href=\"#managing-sites-on-multisite\">Managing sites on multisite<\/a><ul><li><a href=\"#adding-new-subsites\">Adding new subsites<\/a><li><a href=\"#installing-plugins-and-themes\">Installing plugins and themes<\/a><li><a href=\"#user-management\">User Management<\/a><li><a href=\"#adding-different-domains-for-each-subsite\">Adding different domains for each subsite<\/a><\/li><\/ul><li><a href=\"#multisite-database-and-filesystem-structure\">Multisite database and filesystem structure<\/a><ul><li><a href=\"#file-system-changes\">File system changes<\/a><li><a href=\"#database-changes\">Database changes<\/a><\/li><\/ul><li><a href=\"#things-to-remember-when-creating-a-multisite-ready-plugin\">Things to remember when creating a multisite-ready plugin<\/a><ul><li><a href=\"#dont-hard-code-table-names-in-your-plugin-code\">Don\u2019t hard code table names in your plugin code<\/a><li><a href=\"#use-the-switch_to_blog-and-restore_current_blog-functions\">Use the switch_to_blog and restore_current_blog functions<\/a><li><a href=\"#create-tables-for-each-subsite\">Create tables for each subsite<\/a><li><a href=\"#correctly-store-options\">Correctly store options<\/a><\/li><\/ul><li><a href=\"#automated-multisite-management-with-10web\">Automated multisite management with 10Web<\/a><ul><li><a href=\"#create-wordpress-multisite-with-10webs-dashboard\">Create WordPress multisite with 10Web\u2019s dashboard<\/a><li><a href=\"#managing-wordpress-multisite-with-10webs-dashboard\">Managing WordPress multisite with 10Web\u2019s dashboard<\/a><li><a href=\"#10web-services-for-wordpress-multisite\">10Web services for WordPress multisite<\/a><li><a href=\"#point-domains\">Point domains<\/a><\/li><\/ul><li><a href=\"#conclusion\">Conclusion<\/a><\/li><\/ul>","tenweb_blog_competitor_type":"","tenweb_blog_competitor_names":"","tenweb_blog_twb_version":0,"tenweb_blog_type":""},"categories":[463],"tags":[61,439],"class_list":["post-16816","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guides","tag-10web","tag-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.0 (Yoast SEO v23.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The Complete Guide on How to Setup WordPress Multisite - 10Web<\/title>\n<meta name=\"description\" content=\"What is a WordPress multisite? Why should you use a WordPress multisite network? Find the answers to all your questions in this article.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/10web.io\/blog\/wordpress-multisite\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Complete Guide on How to Setup WordPress Multisite\" \/>\n<meta property=\"og:description\" content=\"What is a WordPress multisite? Why should you use a WordPress multisite network? Find the answers to all your questions in this article.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/10web.io\/blog\/wordpress-multisite\/\" \/>\n<meta property=\"og:site_name\" content=\"10Web - Build &amp; Host Your WordPress Website\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/10Web.io\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-04T14:30:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-13T08:55:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/The-Complete-Guide-on-How-to-Setup-WordPress-Multisite.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1484\" \/>\n\t<meta property=\"og:image:height\" content=\"832\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Anna Ghandevosyan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@10Web_io\" \/>\n<meta name=\"twitter:site\" content=\"@10Web_io\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Anna Ghandevosyan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"The Complete Guide on How to Setup WordPress Multisite - 10Web","description":"What is a WordPress multisite? Why should you use a WordPress multisite network? Find the answers to all your questions in this article.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/10web.io\/blog\/wordpress-multisite\/","og_locale":"en_US","og_type":"article","og_title":"The Complete Guide on How to Setup WordPress Multisite","og_description":"What is a WordPress multisite? Why should you use a WordPress multisite network? Find the answers to all your questions in this article.","og_url":"https:\/\/10web.io\/blog\/wordpress-multisite\/","og_site_name":"10Web - Build &amp; Host Your WordPress Website","article_publisher":"https:\/\/www.facebook.com\/10Web.io\/","article_published_time":"2021-03-04T14:30:10+00:00","article_modified_time":"2026-03-13T08:55:21+00:00","og_image":[{"width":1484,"height":832,"url":"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/The-Complete-Guide-on-How-to-Setup-WordPress-Multisite.jpg","type":"image\/jpeg"}],"author":"Anna Ghandevosyan","twitter_card":"summary_large_image","twitter_creator":"@10Web_io","twitter_site":"@10Web_io","twitter_misc":{"Written by":"Anna Ghandevosyan","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/10web.io\/blog\/wordpress-multisite\/#article","isPartOf":{"@id":"https:\/\/10web.io\/blog\/wordpress-multisite\/"},"author":{"name":"Anna Ghandevosyan","@id":"https:\/\/10web.io\/blog\/#\/schema\/person\/a66f4881d6d06f89fad76ae69da7f5d2"},"headline":"The Complete Guide on How to Setup WordPress Multisite","datePublished":"2021-03-04T14:30:10+00:00","dateModified":"2026-03-13T08:55:21+00:00","mainEntityOfPage":{"@id":"https:\/\/10web.io\/blog\/wordpress-multisite\/"},"wordCount":3176,"commentCount":0,"publisher":{"@id":"https:\/\/10web.io\/blog\/#organization"},"image":{"@id":"https:\/\/10web.io\/blog\/wordpress-multisite\/#primaryimage"},"thumbnailUrl":"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/The-Complete-Guide-on-How-to-Setup-WordPress-Multisite.jpg","keywords":["10web","wordpress"],"articleSection":["Guides"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/10web.io\/blog\/wordpress-multisite\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/10web.io\/blog\/wordpress-multisite\/","url":"https:\/\/10web.io\/blog\/wordpress-multisite\/","name":"The Complete Guide on How to Setup WordPress Multisite - 10Web","isPartOf":{"@id":"https:\/\/10web.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/10web.io\/blog\/wordpress-multisite\/#primaryimage"},"image":{"@id":"https:\/\/10web.io\/blog\/wordpress-multisite\/#primaryimage"},"thumbnailUrl":"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/The-Complete-Guide-on-How-to-Setup-WordPress-Multisite.jpg","datePublished":"2021-03-04T14:30:10+00:00","dateModified":"2026-03-13T08:55:21+00:00","description":"What is a WordPress multisite? Why should you use a WordPress multisite network? Find the answers to all your questions in this article.","breadcrumb":{"@id":"https:\/\/10web.io\/blog\/wordpress-multisite\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/10web.io\/blog\/wordpress-multisite\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/10web.io\/blog\/wordpress-multisite\/#primaryimage","url":"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/The-Complete-Guide-on-How-to-Setup-WordPress-Multisite.jpg","contentUrl":"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2021\/03\/The-Complete-Guide-on-How-to-Setup-WordPress-Multisite.jpg","width":1484,"height":832,"caption":"The Complete Guide on How to Setup WordPress Multisite"},{"@type":"BreadcrumbList","@id":"https:\/\/10web.io\/blog\/wordpress-multisite\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/10web.io\/blog\/"},{"@type":"ListItem","position":2,"name":"The Complete Guide on How to Setup WordPress Multisite"}]},{"@type":"WebSite","@id":"https:\/\/10web.io\/blog\/#website","url":"https:\/\/10web.io\/blog\/","name":"10Web Blog - Build & Host Your WordPress Website","description":"10Web is an All-in-One Website Building Platform, offering Managed WordPress Hosting on Google Cloud, Beautiful Templates, Premium Plugins and Services.","publisher":{"@id":"https:\/\/10web.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/10web.io\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/10web.io\/blog\/#organization","name":"10Web","url":"https:\/\/10web.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/10web.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2025\/04\/Logo-768x686-1.png","contentUrl":"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2025\/04\/Logo-768x686-1.png","width":768,"height":686,"caption":"10Web"},"image":{"@id":"https:\/\/10web.io\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/10Web.io\/","https:\/\/x.com\/10Web_io","https:\/\/www.instagram.com\/10web.io\/","https:\/\/www.linkedin.com\/company\/10web\/mycompany\/","https:\/\/www.youtube.com\/c\/10Web"]},{"@type":"Person","@id":"https:\/\/10web.io\/blog\/#\/schema\/person\/a66f4881d6d06f89fad76ae69da7f5d2","name":"Anna Ghandevosyan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/10web.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/bd4d3194c4bd5c090aa0fdc6e6423abe?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bd4d3194c4bd5c090aa0fdc6e6423abe?s=96&d=mm&r=g","caption":"Anna Ghandevosyan"},"description":"Anna is a software architect at 10Web. While her cat Thor stares suspiciously at the screen, Anna spends her days programming to find optimal architectural solutions and solve difficult tasks.","url":"https:\/\/10web.io\/blog\/author\/annag\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/posts\/16816","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/users\/95"}],"replies":[{"embeddable":true,"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/comments?post=16816"}],"version-history":[{"count":0,"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/posts\/16816\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/media\/16841"}],"wp:attachment":[{"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/media?parent=16816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/categories?post=16816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/tags?post=16816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}