technical seo cmw

Technical SEO, also known as back-end SEO is very important, but sometimes it doesn’t get enough attention from website owners as its two other counterparts (on-page and off-page).

Consider this scenario. Your website has a substantial quantity of content. You have installed a SEO plugin that runs in tandem with your site’s CMS articles editor, and you are sure that all of your articles score 80% or higher in SEO optimization for your valuable keywords.

Moreover, you have made the effort to promote every article on social networks and similar sites, to make sure that each page has a link back to it, somewhere on the web.

Still, your pages don’t appear on the first page of the search engines results.

When you analyze your site’s pages ranking in-depth, you discover that they are either on the third or fourth page or buried deep on page 30 or 40 of the SERPs. If this sounds like your website, then it’s very likely you have neglected its technical SEO optimization.

In the following guide, I will guide you through all the steps you need to follow to optimize your website for technical SEO, even if you are non-technical.

When you finish implementing all the fixes I will reveal in this guide, your website will score much higher than before in any SEO testing application, and the site’s pages will start climbing up the SERPs ladder.

If the other two aspects (on-page and off-page) of SEO are already taken care of, it won’t be long until your site starts to show up on the first page of search engines.

DIY Technical SEO

Don’t run to a SEO agency yet, read this guide and you may see that optimizing the back-end SEO of your site is easier than it sounds.

If you are bootstrapping, you simply don’t have the funds to pay a SEO firm to do all of what follows for you.

These services don’t come cheap, and many a SEO expert will hate me for revealing here all the issues I will reveal, and the processes to fix them.


If your website has never been optimized for technical SEO, the task as a whole is going to take time.

I dare say it will take you 80 hours minimum to do everything you need to do, to a site that was never optimized for back-end SEO.

In this guide, the tasks are sequenced from easiest to hardest, and the final section contains optional tasks that, while important for technical SEO, you may decide not to implement for various reasons.

I could have ordered this guide by fixes priority, but I chose to order it by difficulty because each finished task will give you more confidence for the next one.

The order in which I sequenced it will build your skills quickly and make you more comfortable at the moment of implementing the harder fixes.

The three most important things you need before you start implementing the fixes in this guide are:

1. A website backup system that works

You need a plugin or other method that backs your site up, and that allows you to restore it successfully. Sadly, this is not as simple as it sounds.

Until you have experience with a plugin that restored your site after a disaster successfully, and you are sure that it works, you shouldn’t trust any backup plugin blindly.

    Recommended plugin for WordPress: All-in-One WP Migration
    Recommended plugin for Joomla: Akeeba Backup

Important All-in-One WP Migration note: I recommend this backup plugin because is the fastest one I used for WordPress. It has an important drawback, it doesn’t create backups that you can open to extract individual files from it. Because of this, if you are going to troubleshoot the technical SEO of a WordPress site, I recommend you to find a better backup plugin, for example, WPVivid Backup.

IMPORTANT: Each day, when you finish implementing your technical SEO fixes for the day, make a backup of your website as the last task of the day. Always keep at least three decent backups of your site, the latest backup, father backup, and grandfather backup.

 2. A Technical SEO diary

Create a document (.doc, .docx or .rtf). In this document you will record:

A) The current SEO score of your website

Each day, the last thing you will do for the day will be to give your site a pass through one of the SEO test apps on the web, to see how the technical SEO revamp is progressing.

B) Things that need to be done

You will create a checklist of all the things that need to be done, and then you will strike them out when you complete them.

C) Changes you made to the site

Every day, while you are changing things, you will write what you did, what configurations were changed, and what things were added or taken out.

This may sound overkill and you may think that your memory is enough, but believe me that you will lose track of what you did very quickly.

You need to carry a postmortem like this, in case you need to backtrack your changes, or just to know what you changed, so when a problem starts, you can narrow down the cause and fix it.

3. A handful of site-testing apps

You will need a SEO-testing app, a site crawler, and a website speed test app. There are a lot of them, but I will name in this guide just four of them.

I think is the most complete and visual free SEO-testing web app I found so far. It gives you a very detailed report on all of your site’s SEO shortcomings and doesn’t lock any information behind a paywall.

    Google’s PageSpeed Insights: Will test your website for speed, and tell you what is causing speed issues in your website.
    GTMetrix: Another speed tester, but it gives much more detailed information about what is making your website slow than PageSpeed Insights.
    Visual SEO Studio: This is a great site crawler and the free version has fewer limitations than the free versions of similar apps.

Getting Started with Technical SEO

Once you have the requirements above:

1. Go to the SEO testing app you chose, and run a test.
2. Make a list of all the technical SEO problems your site has in your diary.
3. Start fixing with the indications below.

Phase One of Technical SEO Troubleshooting: Quick Fixes

technical seo troubleshooting 4639792839 d4ccfe9d91 c 1

Let’s begin with the easy stuff. Before you do anything I am going to ask, do you have a SEO integral plugin already? If you do, that’s okay. If you don’t I recommend you to quickly scan all this first section first and think about what your site already has of these fixes, if there are many items you still haven’t configured you could start by installing an integral (solves many issues) plugin.


Your site has to have a robots.txt file in its root folder. The most basic content for a robots.txt file is this

User-agent: *
Allow: /

The first line means the spiders from all the search engines are allowed to crawl your website to index its pages.

The second line means the crawlers are allowed to index everything on your website.

Search the web for what to disallow for your specific CMS. For example, if you use the WordPress CMS, your robots.txt should look something like this:

User-agent: *
Allow: /
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

The easiest way to put a robots.txt file where it goes is by creating it manually and then uploading it to your website’s root folder through FTP or the site’s hosting service’s backend.

If for some reason you can’t do it this way, then install a plugin that does it. In this regard, the best option is to use a SEO plugin that includes the robots.txt feature.

    Recommended plugin for WordPress: Rank Math SEO
    Recommended plugin for Joomla: Route 66 SEO

Site Map

A site map is a .xml page for search engine spiders/robots to know your site’s structure so they can understand your site’s topic, crawl it, and index its pages.

You want a good plugin that will create the sitemap for you. If you have a SEO plugin installed in your CMS it will likely have an option to create site maps.

You also can install a plugin to generate a human-readable site map. A user’s site map is an .HTML file, and creates a dynamically-generated page on your site that users can visit and see the complete list of published pages.

If you implement a users’ sitemap, remember to put a link to the page it creates. A recommended place to put a link to the users’ sitemap is the footer or a similarly non-conspicuous place.

    Recommended user sitemap plugin for WordPress: WP Sitemap Page
    Recommended user sitemap plugin for Joomla: SchuWeb Sitemap
    Recommended XML sitemap plugin for WordPress: WP Meta SEO
    Recommended XML sitemap plugin for Joomla: JL Sitemap


A favicon is a tiny icon that appears in browser tabs. It should be your logo. A favicon must be a 32x32 pixels version of your logo.

If the SEO plugin that you use doesn’t have an option to set it, create a favicon and upload it to the root folder of your website.

Mobile Friendliness

The quickest way to test a website for mobile-friendly design is, of course, to load it on a phone and navigate it.

Still, you may want to be able to navigate the mobile version of your website and see every detail well to fix things that render correctly on mobile.

In that case, install LT Browser and use that browser to navigate your site. With LT you get a lot of different phone brands to try your website’s mobile version on.

Some fixable errors can skew your website design beyond recognition. One common error is an oversized and/or non-responsive photo or image in your content. In this case, to fix the problem you just need to resize the image.

If all the pages on your website look horrible on mobile, have a very tiny, unreadable type, or if there is any other incongruity that makes your site’s mobile version useless, then it’s a problem with the particular theme you are using.

Look for a new theme, and this time be sure to pick one that is labeled as responsive.


There are some tags that every page on your website must have. This is something you have to keep in mind.

First, there are the global meta tags, that you set in the global settings of your CMS. The CMS uses the default/global tags for pages you forget to add meta tags.

Second, each page on your website must have specific meta tags reflecting the page’s content or purpose.

The meta tags are always a core feature of SEO plugins.

    Recommended meta tags plugin for WordPress: WP Meta SEO
    Recommended meta tags plugin for Joomla: OSMeta Meta Tags Manager

Meta Title Tag

This tag is self-generated, and generally is the same as each page’s title. Yet, some SEO plugins allow you to set it, independently of the page’s title.

Meta Description Tag

Both this one and the previous tag form part of what’s called on-page SEO, but your site can have a site-wide meta description.

In the case that you forget to fill the meta description for any of your pages, the site-wide one should kick in, but don’t rely on this.

One reason, it may not work as expected, another reason, having the same meta tags for all your pages is very bad on-page SEO.

Viewport Tag

This tag optimizes your site’s pages for mobile devices. If a test tells you that your site is missing this tag, or that it’s wrong, you should have to add it or modify it by other means.

This is a generic viewport tag:

<meta name="viewport" content="width=device-width, initial-scale=1">

The viewport tag goes inside the <head> section of your site’s pages. Two ways that you can add or modify this tag without installing a plugin are:

    By editing your theme’s files in the themes editor of the CMS
    By using your theme’s Custom HTML option, if it has one

Editing the theme files on WordPress: Appearance > Theme File Editor

Editing the theme files on Joomla: Extensions > Templates > Template and then click the name of the active template


This tag establishes the language of your site. If your site is missing this tag, you can add it in the same way you can add the viewport tag.

If your site serves pages in multiple languages, this tag is managed by whatever extension you use to manage the site’s languages.

Canonical Tag

Most SEO plugins take care of the canonical tag. It’s superfluous to remind you that you should always install a SEO plugin on your site to take care of a lot of little SEO details at once.

The canonical tag of each page points to the page that has the original version of the content.

In the case that the SEO plugin you use doesn’t manage the canonical tags, you might need to install a plugin to that end.

Example of a typical canonical tag:

<link rel="canonical" href="/" />

Open Graph Tags

The Open Graph meta tags tell Facebook, Pinterest, LinkedIn, and other social media sites how to construct the updates of content from your website that you will share on the feed of your pages and profiles on their sites.

SEO plugins for the different CMS add this functionality. You will have to add text and images to their Open Graph settings.

There are dedicated plugins that are for this specific purpose too.

If you don’t want to use a SEO plugin, if your SEO plugin doesn’t have the option to set OG settings, or if there is any problem with the OG settings of the SEO plugin you use, then you can use a plugin exclusively for this purpose.

    Recommended Open Graph plugin for WordPress: Open Graphite
    Recommended Open Graph plugin for Joomla: Phoca Open Graph

Twitter Cards

Pretty much the equivalent of Open Graph for Twitter.

Everything I said in the previous section applies to Twitter Cards: your SEO plugin should take care of this.

Microdata Tags

Also known as, or Google Rich Snippets.

Installing a plugin to handle and generate the microdata of your website’s pages will allow Google to do various things when it displays your pages on its SERPs.

Many of the things you see that some pages have in SERPs, which is called Rich Media, are possible because the site supports microdata.

Some examples of its features that enhance the listings of your pages in search results:

    Star ratings
    Search box
    Top Stories
    Site Links

Once you have a microdata plugin in place, you have to set the type of article for each article individually.

    Recommended Schema plugin for WordPress: Schema & Structured Data for WP and AMP
    Recommended Schema plugin for Joomla: Google Structured Data


This part of your technical SEO optimization is about making your website usable to everyone and delivering a great user experience to everyone.


All of your website fonts must be at least 12px. Today, 16px is one of the most used font sizes for websites. Anything below 12px is considered generally not legible.

Color Contrast

If your site fails the color contrast test, it’s time to rethink your color palette.

The best thing to deal with this is to write down all the elements involved in a website’s content.

    Body Text

Then go to, fill in your site’s background color, and start checking the color of each element against the background color.

If the combinations fail any of the standards below the color selection form, then move the sliders until all the standards show a green PASS tag.

Then replace the colors in the customization section of your theme with the ones that pass the test.

SEO Alt Tags for Media

This is generally an on-page SEO feature, but if you install a plugin that automatically creates alt tags based on the image’s name, the only thing you need to do to get sound SEO alt tags for media is to give the item a SEO name related to the page before uploading them to your site.


Your website can benefit from a cache solution, and many SEO test apps will discount points from the site’s final SEO score if it doesn’t have a cache plugin installed.

If you haven’t used cache before be warned that you should disable it when you are developing or improving your site because the site is not going to show the modifications you do right away.

I have used almost every cache plugin that is currently available for both Joomla and WordPress. Here I will give you the name of the ones that worked best for me.

Best Cache for Joomla

Use JotCache, and set Joomla’s native cache (Global Configuration > System) as On - Conservative Cache.

Best Cache for WordPress

Use WP Super Cache, and set its advanced options.

Here is an in-depth guide to set WP Super Cache’s advanced options, it is not that difficult but it will take you 10-15 minutes to do it.

If you don’t want to make the effort that using the advanced options requires, then it probably makes no sense to use this one, and you could pick any other cache plugin.

In that case, a cache plugin that I used for a long time is WP Fastest Cache.

Phase Two of Technical SEO: Harder Fixes

harder technical seo fixes 4607134521 6dcdba15da o 1

We enter phase two and things get a little more tricky now. Hopefully, by now you have developed a habit of making a backup of your website every day, so there is nothing to worry about.

Remember, if something unfortunate happens, restoring a complete backup is pretty much of a hassle, when you break something try for up to three-quarters of an hour to fix the problem without having to resort to the backup.

Try to remember what you did to cause the trouble, if you installed a new plugin and the problems started, deactivate it, clean the cache and see if the problem persists. If you modified the settings inside a file, try try to remember how the settings were written before you changed them, or recreate it anew if possible.

HTTPS Encryption

Is your site encrypted? You will know if it is encrypted because the address bar at the top of the browser window will show a lock, and the protocol in the address bar is HTTPS:// not HTTP://.

If your website is not encrypted, you need to implement SSL. To do this you need certificates. Most web hosting services provide one for a fee.

If the hosting carrying your website doesn't give a free security certificate, you can get security certificates for free by using the Cloudflare CDN free service.

You need to search the web for a guide that explains how to implement SSL for your particular CMS. If I remember correctly Cloudflare itself may provide a configurations template for your CMS when you are setting up your website with them for the first time.

Off the bat, I can tell you it will take three-four steps, and some waiting time.

1. Create an account with Cloudflare and add your site to your account
2. Change the name servers of your website from wherever they were (either your hosting service or your domain name dealer) to Cloudflare
3. Do any required DNS modifications in CloudFlare
4. Have patience and wait for the DNS modifications to propagate

Some CMS like WordPress have a Cloudflare plugin that makes this process a little bit easier.

Don’t be alarmed if when you change your name servers and modify your DNS configuration you can’t access your website. DNS propagation takes time, from a few minutes to up to 48-72 hours.

Another thing you have to have in mind when migrating your site to HTTPS is that if you had any DNS TXT records to validate things like Google Analytics or Bing Webmaster, you will have to recreate those records on CloudFlare’s DNS settings. After you do that, make sure that your site’s connection to those services is still working.

Console Errors

A way to spot errors on your website is to load it in a browser and hit F12. When the inspector opens, select the Console tab and check the errors that appear there.

The errors that appear there are self-explanatory and you will know what to fix. If it’s a plugin check the plugin settings. If you can’t fix the errors by messing with the offending plugin, you might try installing a different one that gives the same functionality as the one with errors.

SEO Friendly URLs

This is a very basic technical SEO aspect, but it is not easy to implement, and you should have configured it when you built your website for the first time. That’s the only moment when implementing SEF URLs is easy.

It’s about changing your website’s URLs from dynamic ones to readable ones. This is not just for users, but for search engines too. Is mainly done for search engines, so they can understand what your page is about.

It’s about changing the URLs of your website from something that looks like this:

To this:

Be warned that changing your site’s URLs to search-engine-friendly ones after you have a lot of content in it can have bad results.

The bad effect can be both local and at the search engine level. At the local level, it may break your site, albeit temporarily, and make your site inaccessible, or your pages throw 404 errors.

If your pages are already indexed with non-SEF URLs, you will have to do extra work in Google Search Console to point each page to the new URL.

As I said, in my experience, it is a difficult process to implement on a live site. If you choose to do it on a live site, be prepared to do a lot of work with canonicals and redirections.

Of course, before implementing SEFs, do one or two backups of your site. Make security copies of the whole site, and the whole database.

Many SEO plugins cover the SEF feature, but in some cases, you might want a dedicated plugin to implement SEF URLs.

Joomla supports SEFs natively, but for some reason, I ended up using Route 66 SEO’s SEF settings.

In WordPress, you should check if your SEO plugin has a SEF option, and generally, that’s the best way to manage them, through an integral SEO plugin like Rank Math SEO.


Headers plugins work by adding data to your page’s headers. The data is for security in the case of HTTP headers, and for caching in the case of expires headers.

HTTP Headers

An HTTP headers plugin will add, at the very least, a strict transport security header, and a content security policy header.

You can set up around eighteen different security headers, This is the list of the eight that are absolutely essential, with the value that each one should have.

    X-Frame-Options: set it to SAMEORIGIN
    X-XSS-Protection: set it to 1; mode=block
    X-Content-Type-Options: set it to nosniff
    Strict-Transport-Security: set it to max-age=315536000
    Referrer-Policy: set it to no-referrer-when-downgrade
    Content-Security-Policy: set it to frame-ancestors ‘self’
    Cookie-Security: set it to Secure
    Permissions-Policy: set it to interest-cohort=0

Use this headers test app to check your site’s headers status. Aim for an A or A+ score.

    Recommended HTTP headers plugin for WordPress: HTTP Headers by Dimitar Ivanov
    Recommended HTTP headers plugin for Joomla: HTTPHeaders by Tobias Zulauf

Expires Headers

A plugin handling expires header will tell the visitor’s browser for how long it should cache certain site resources in the browser’s cache.

Use an expires header for a type of file on your website that doesn’t get updated frequently, or that doesn’t get updated at all.

Expires headers plugins support the following file types:


You must use 375 days expiry time for all of these files unless you plan to update any of them more often.

You can also add expires headers to external resources like:

    Google Tag Manager and Analytics scripts
    Google Fonts
    Jquery Validation scripts
    Facebook scripts

If you change things, and then you don’t see your changes reflected, the expires headers cache may be the issue. Generally expires headers plugins have an option to clean their cache.

    Recommended expires headers plugin for WordPress: Add Expires Headers & Optimized Minify
    Recommended expires headers plugin for Joomla: Expires Headers by Michael Richey 

Things to Avoid for Good Technical SEO

This is a list of things that your site must not have for good technical SEO.

You must remove them if you find them on your site through a SEO test app.

    Duplicate tags (canonical, hfrelang)
    Rel Next Meta tag
    Rel Prev Meta tag
    Flash objects
    Inline CSS
    Cross-Origin Links
    Vulnerable JavaScript libraries
    Additional page markup

Site Speed-Degrading Factors

I left this section for the last of the harder fixes because it’s the part of technical SEO optimization that is probably going to take you the most time to get right.

You are going to find the speed issues of your website in the reports of both PageSpeed Insights and GTMetrix.

The way to fix these issues is to implement a solution and right away test the site on either PSI or GTM, or both.

When you are doing this, remember that sometimes, if you are modifying things and you don’t see progress, deactivating your cache momentarily may help.

Anyway, these tests should also be done with the cache plugin activated.

Render-Blocking Resources

Render-blocking items are any resource that gets in the way of the browser rendering the page for the user.

Unused Javascript and CSS

JS and CSS items that get loaded but aren’t used, thus slowing your pages uselessly.

Initial Server Response Time

Not much to do about this one. It’s a server-side issue.

If it’s an issue the only recourse you have is to switch hosting services to a company with better server speeds.

Practically every shared hosting service has a poor initial server response time.

Fixing Site Speed-Degrading Factors

The easiest way to deal with these issues is to make your website simpler and leaner in the first place.

You achieve this by:

    Reducing the number of plugins and extensions that your website uses
    Reducing the complexity of your site’s page

If those two things aren’t possible, or if you implement them and your site continues to get a poor speed score, then you can resort to optimization plugins.

If your site runs Joomla, then install JCH Optimize. If your site’s CMS is WordPress, install Autoptimize and AssetCleaner.

Now, this sounds simple, yet it’s anything but.

The three plugins I just named need a lot of fine-tuning until they make your website faster and at the same time don’t break anything at the visual level or compromise the usability and correct working of the interactive elements in your pages.

First off, if you already had optimization plugins in place, uninstall them, because they aren’t going to help, and in fact, they are going to make matters worse when you install the plugins I recommended above.

Next, disable your cache plugins when you install these optimization plugins and keep them disabled while you configure them.

If you don’t disable your site cache it’s going to be very hard to see if the options you set do break your website or not.

Keep in mind that anything you see breaking when you install these plugins is not permanent. The only thing you have to do to return things to normal is to deactivate/uninstall them.

JCH Optimize (Joomla)

This Joomla plugin also has a WordPress version, but it didn’t work right for me. You don’t lose anything by trying it if you use the WordPress CMS, but I don’t recommend you to lose time with it, since Autoptimize for WP is a better solution.

It comes with five different presets:


On Joomla, after you install it, start by enabling the optimum settings. Then navigate a good two to five minutes through different pages of your website, and check that nothing is missing or broken.

While you’re doing this, try all the interactive elements, and see if they work as they should.

If everything works, proceed to the speed testers and see if the speed situation did improve.

If things broke, clean JCH Optimize’s cache, and then try the premium settings. Repeat the manual site navigation tests.

Again, if things break, try the previous preset. Keep on doing this until you find a preset that doesn’t break any of your site’s features.

Autoptimize (WordPress)

This is a great plugin to speed up a sluggish WordPress site, but it takes work to make it work correctly and not maim your site.

Read what each option does and, comparing them with your site test reports, enable them if you need them.

Like all plugins of this kind, it will break functionality in your website, especially the elements that rely on JavaScript to work.

It’s possible that it will also break visual settings and some elements in the site’s pages are going to look wrong; after you enable the plugin and configure it.

If it breaks either JavaScript functionality or CSS visual settings, then you can use the two exclusion fields to exclude scripts and CSS from being processed by Autoptimize.

I suggest you try first using these two exclusion fields in Autoptimize’s settings. But if you exclude things to restore functionality that the plugin breaks and something still doesn’t work, you have a last resort.

Each page and post of your site will have a widget with the title “Autoptimize this page”. Through that widget, you can disable JS, CSS, and lazyload individually, or you can disable Autoptimize completely for that post or page.

Using this measure is guaranteed to stop any issues caused by Autoptimize.

One last important thing about Autoptimize and AssetCleaner.

AssetCleaner (WordPress)

If after optimizing your website with Autoptimize, you still are left with speed issues, AssetCleaner is the last thing you can try.

This is a plugin that you should leave for the absolute last technical SEO optimization.

This is how it works. After you install it you decide where you want to see its interface. If you pick the back-end option, its controls will appear below the article/post editor for each page.

If you pick the front-end option, it appears at the bottom of each page on the front-end of the site, when you are logged in with an administrator account.

AssetCleaner’s interface gives you a list of all the plugins that load with a page in particular and the assets they use. You have to go through this list carefully and spot plugins that are useless for that page in particular and unload them from the page.

For instance, if you have a contact form plugin that loads on all of your site’s pages, but you have only one contact page where the plugin handles a form, then it doesn’t make sense to have that plugin load on all the other pages.

That’s when you use AssetCleaner, to deactivate it everywhere except on the page you need it for the form.

Phase Three of Technical SEO: Optional Fixes

PWA for joomla free 48863038063 89401b95ec c

The fixes that follow aren’t compulsory, but you will receive a nice SEO boost if you implement them.

Accelerated Mobile Pages (AMP)

Accelerated mobile pages is a Google invention that uses a stripped-down version of the HTML language. AMP serves pages to mobile devices from Google’s AMP cache.

Even if you implement it, you shouldn’t throw away your site’s mobile version. Some of your mobile users may want to use the mobile version of the site and not the AMP pages served from Google’s AMP cache.

It’s a big subject and I’m not going to cover any detail about AMP in this guide, I’m only going to tell you how to deploy it on Joomla and WordPress

AMP on Joomla

Sadly, there aren’t good free plugins to enable AMP on Joomla. The only free one is wbAMP Community Edition which creates a very poor, incomplete AMP experience.

If you buy the paid version of this plugin, it enables the basic options that are locked in the free version, but I would not waste money on this if my website’s theme has a mobile version that is responsive and works okay.

AMP on WordPress

In contrast to Joomla, the free plugin AMP for WP gives you full AMP functionality for free and allows you to create a completely functional AMP version of your website.

It will take you a while to try all of the AMP for WP settings and see what combination suits your site.

Progressive Web Apps (PWA)

This optimization is about enabling your website for offline use. With PWA you also can convert your website into a Google Playstore app.

Even if it sounds useless, don’t think that PWA will not help your site. At the very least, it will get your site a higher score with SEO test apps.

It may also increase your user base since you will be supporting users that like to browse websites offline.

PWA on WordPress

In a WordPress website, enabling PWA is as easy as installing PWA for WordPress and configuring the plugin.

You will have to deal with only the first two tabs of the configuration screen. Fill everything in those two tabs and you are good to go.

PWA on Joomla

There aren’t free PWA plugins for Joomla. If you want to support PWA on a Joomla site you will have to buy a plugin, or do all the grunt work manually yourself.

Since you can build PWA support for Joomla in around two hours of work, I don’t see why you should pay for a plugin to do it for you.

This website scores 100% PWA support in the PWA test, and I built it myself.

Here is how to build PWA on Joomla for free:

1. Head to and follow the instructions. The PWA builder will hold your hand and guide you along each step of the process. First, it will analyze your site, and its icons, and check if it works as a PWA

2. After checks your site, it will (most likely) tell you that it needs a service worker and manifest

3. In the next screen you can generate the base PWA files, do it

4. After the app generates the base PWA files, download them, unpack them, and upload them to the root folder of your website. You need to upload the service worker (the .js file) and the manifest file (the .json file)

5. Open the next-steps.html file that came inside the zip and it will tell you your next steps

6. Follow the instructions in the next-steps file and also run again the test and you will start to figure out what to do to continue.

7. When you need to generate the icons, use this app.

After step six go here, and check if the PWA installation progressed. This tool will tell you exactly how much of your site’s PWA implementation is ready. What is more important, this tool will tell you exactly what it is missing.

This tool’s PWA test is a little easier to understand than the’s check.

Continue working on what this testing tool tells you is missing, and running tests with it until you reach 100% PWA improvements.

That’s it, you saved yourself from shelling out from €39 to €139 that the only PWA plugin for Joomla costs.

Wishing you Good Luck in your Technical SEO Journey

Okay, that’s it for this technical SEO troubleshooting guide. As I told you in the intro, optimizing the technical SEO aspect of your website is not something that you will be able to do in one or two days.

You have to give small steps and after a few weeks, you will have all the fixes nailed down.

If you are going to use this guide to refine your website’s technical SEO and you have any doubts, before starting or while you are doing it, or if you run into any problems, please let me know in the comments below and I’ll do everything in my power to help you out.

Media Credits

SEO 1, 2

© Martin Wensley, 2022 — Big Bad Guide of Technical SEO