I’ve lost count of the number of Joomla websites I’ve created—some of which lasted a couple of hours and some of them have lasted for years—but I have a standard process that I follow when I create websites.  Therefore, in no particular order, this is my checklist of things I do between creating a new Joomla website and adding the first piece of content:

  • As a general rule-of-thumb, one should never edit or modify any original software files; this includes the boilerplate “distributed server configuration file” shipped with the J! installation package as htaccess.txt.  Therefore, the first order of business is to make a copy of this file.
  • There’s an important change that needs to be made to the vanilla-flavoured “·htaccess” file.  Edit the copy of the template mentioned in the above dot-point and delete lines 139-172—in other words, everything that relates to “GZIP”—because these rules are unnecessary in nearly every hosted website environment that I’ve seen.The Joomla Forum™ is littered with stories of how the “double gzip” issue has broken people’s websites.  Some of these stories are re-told in my article Joomla “double gzip” problems.  Rename the edited file as .­htaccess.
  • SEF URL settings for J! 4.xNow that you’ve created a workable .­htaccess file, you can configure J!’s Global Configuration settings to use SEF URLs properly.  Go to System » Global Configuration » Site » SEO and refer to the screenshot on the right of this page.
  • Change the session handler:  go to System » Global Configuration » System » Session » Session Handler = Filesystem.
  • Verify that GZIP compression is disabled:  go to System » Global Configuration » Server » Server » Gzip Page Compression = No.
  • Change the website timezone:  go to System » Global Configuration » Server » Location » Website Time Zone = <select a timezone appropriate to your environment>.
  • Install Akeeba Backup and make your first website backup.
  • Alternative backend menu style for J! 4.xFor J! 4.x, change the backend menu style so that it’s more like J! 3.x.  Go to Content » Administrator Modules » Admin Menu » Choose preset =  Preset - Alternative Main Menu (see screenshot on the right of this page).
  • Now is also a good time to verify the PHP environmental settings mentioned in my article 10 things you can do today to make certain you can update your Joomla! website. The most important settings are summarised in the table below:
    PHP resource settings for J! websites (estimated)
  • If you’re going to create a favicon for your J! 4.x website, you need to create these things in two different formats (both .svg and .ico).  I use Inkscape to create .svg files and IcoFX to create .ico files.  You will need to create three separate files that must be named joomla-favicon.svg, favicon.ico and joomla-favicon-pinned.svg.  If you want to use the same favicons for both the frontend and backend, these files should be stored in the folder media/system/images; if you want different favicons for the frontend, upload them to the folder media/templates/administrator/cassiopeia/images and/or upload the ones for the backend to the folder media/templates/administrator/atum/images.There’s a big forum discussion on this subject at https://forum.joomla.org/viewtopic.php?t=987328.
  • Media options for .SVG files in J! 4.xIf you want to use J! 4’s Media manager to upload .svg files to your website, you will need to tweak the Media options; see the image at the right.
  • If you’re going to use a .svg file as the site logo (viz. Extensions » Templates » Styles (Site) » Cassiopeia - Default » Advanced » Logo) with J! 4.x, just remember that some browsers (e.g. Safari for iPads and iPhones) do not support scalable vector graphics format and will fall back to the text description if one exists, otherwise they will just display an empty image placeholder.
  • A lot of people use TinyMCE editor; I prefer to use JCE Editor.  If you want to use the <script> or <style> tags within articles or custom modules, you need to modify JCE’s settings; go to Components » JCE Editor » Profiles » Default » Editor Parameters » Advanced (refer to the screenshot below):
    JCE "allow code blocks"Allow Javascript = Yes and Allow CSS = Yes.see https://www.joomlacontenteditor.net/support/faq/editor/scripts-removed-on-saving
  • The best free sitemap generator is, in my opinion, OSMap.  Install this and submit the XML feed to Google Search Console https://search.google.com/search-console (formerly named Google Webmaster Tools)  and Microsoft Bing’s equivalent producthttps://www.bing.com/webmasters.  By sub­mit­ting the sitemap your site content will automatically be indexed by these search engines.
  • Publish the Footer and Breadcrumbs modules.
  • System - Redirect plugin settings for J! 4.xEnable the Redirects plugin:  go to Extensions » Plugins » System - Redirect (refer to the screenshot at the right).
  • J! 4.x has a strict policy regarding minimum password length.  It is not possible to bypass a minimum password length of 12 characters during installation but you can change this value after the website has been created.  To adjust the password minimum length, go to Users » Options » Password Options » Minimum Password Length = n (where n ≥ 8).
  • J! 4.x User Action Log OptionsBy default, J! logs a lot of activities that the site administrator performs in the backend (together with the date/time these activities occurred) but, unless you have several site administrators and you want to know details of all the activities they perform, a lot of this information is routine and not worth the trouble of tracking for a “one-person” operation.  You can define which activities you would like to track on a global basis by going to Users » User Action Logs » Options (refer to the screenshot at the right) and check only those activities you may be interested in logging.  If you are really security-minded, you can have these details of events emailed to you or to a nominated user account but this feature is not enabled by default.
  • No J! website is much good without a functioning menu.  The menu module for J! 4.x has an extra, advanced feature that allows sub-menu items to be “pulled down” to be displayed.  To achieve this:
    • J! 4.x site menu settings - CassiopeiaGo to Extensions » Site Modules.
    • Click the plusNew button button.
    • Select Menu as the type of module to be added.  Configure the basic settings and assign the Position = Menu [menu]
    • Go the advanced settings (see image at right of screen).
    • Save the new module.
  • You will be making customised CSS changes to your new J! 4.x websiteThe principle used with Protostar in J! 3.x is similar and documented at Adding a custom CSS with Protostar.  It is important that any changes you make will not be lost when you update your website.  For this reason you should create a file named user.css (for Cassiopeia, this file is located in the folder ../media/templates/site/cassiopeia/css).
    • J! 4.x Template dialogThe procedure is to go to Extensions » Templates » Cassiopeia Details and Files and click the New File button (refer to the screenshot at the right of this page).There is an online tutorial of whole procedure at https://ltheme.com/create-custom-css-with-cassiopeia/.
    • A popup dialog appears:
      1. highlight the target folder (pointed to by the arrow in the image on the right),
      2. enter File Name = user,
      3. File Type = .css, and
      4. click Create.

In conclusion, while it literally takes about ten minutes to install a J! 4.x website, there about twenty preparations that I make to a new instances of J! before I have created my first article.  These few preparations take less than an hour—although designing unique branding content such as a site logo and favicons can take hours—these preparations will save days of scratching one’s head wondering why your new J! website has become a maintenance nightmare instead of getting on with the business of producing web content.


  • Stopped reading after telling people to disable GZIP.  Yes, many sites do not NEED it, but there is a measurable positive performance impact (which translates into page speed impact, for those who build sites based solely on Google measurements) with an efficient GZIP configuration.  Hint, this should always be handled in the web server configuration, not the PHP application.
  • Content » Administrator Modules » Admin Menu » Choose preset =  Preset - Alternative Main Menu

    Wow, that's so much better. Thanks!
  • Hi, can you please correct the password settings?  You suggest 8 as default?! I think it should be at least 12, and my opinion make it 16. 
    Kind regards, Hein
  • Tried the change to the admin module and in some small ways it was better. But it seemed like you are trying to make if like Joomla 3, a big step backwards. But as a whole I thought it deleted all the improvements to the Joomla 4 admin organization. Especially for our clients finding where to edit content. The major reason I would never use this config is that it separates modules form articles like in Joomla 3. Which to me was the worst part of Joomla 3 admin interface having half of your content under one menu heading and the other half under a different menu heading. Modules and articles should both be under the content main heading.

Comments are closed

The comments for this content have been closed automatically; it's been a while since it was published.