• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer
  • Home
  • Create a VM ($25 Credit)
  • Buy a Domain
  • 1 Month free Back Blaze Backup
  • Other Deals
    • Domain Email
    • Nixstats Server Monitoring
    • ewww.io Auto WordPress Image Resizing and Acceleration
  • About
  • Links

IoT, Code, Security, Server Stuff etc

Views are my own and not my employer's.

Personal Development Blog...

Coding for fun since 1996, Learn by doing and sharing.

Buy a domain name, then create your own server (get $25 free credit)

View all of my posts.

  • Cloud
    • I moved my domain to UpCloud (on the other side of the world) from Vultr (Sydney) and could not be happier with the performance.
    • How to buy a new domain and SSL cert from NameCheap, a Server from Digital Ocean and configure it.
    • Setting up a Vultr VM and configuring it
    • All Cloud Articles
  • Dev
    • I moved my domain to UpCloud (on the other side of the world) from Vultr (Sydney) and could not be happier with the performance.
    • How to setup pooled MySQL connections in Node JS that don’t disconnect
    • NodeJS code to handle App logins via API (using MySQL connection pools (1000 connections) and query parameters)
    • Infographic: So you have an idea for an app
    • All Development Articles
  • MySQL
    • Using the free Adminer GUI for MySQL on your website
    • All MySQL Articles
  • Perf
    • PHP 7 code to send object oriented sanitised input data via bound parameters to a MYSQL database
    • I moved my domain to UpCloud (on the other side of the world) from Vultr (Sydney) and could not be happier with the performance.
    • Measuring VM performance (CPU, Disk, Latency, Concurrent Users etc) on Ubuntu and comparing Vultr, Digital Ocean and UpCloud – Part 1 of 4
    • Speeding up WordPress with the ewww.io ExactDN CDN and Image Compression Plugin
    • Setting up a website to use Cloudflare on a VM hosted on Vultr and Namecheap
    • All Performance Articles
  • Sec
    • Using the Qualys FreeScan Scanner to test your website for online vulnerabilities
    • Using OWASP ZAP GUI to scan your Applications for security issues
    • Setting up the Debian Kali Linux distro to perform penetration testing of your systems
    • Enabling TLS 1.3 SSL on a NGINX Website (Ubuntu 16.04 server) that is using Cloudflare
    • PHP implementation to check a password exposure level with Troy Hunt’s pwnedpasswords API
    • Setting strong SSL cryptographic protocols and ciphers on Ubuntu and NGINX
    • Securing Google G Suite email by setting up SPF, DKIM and DMARC with Cloudflare
    • All Security Articles
  • Server
    • I moved my domain to UpCloud (on the other side of the world) from Vultr (Sydney) and could not be happier with the performance.
    • All Server Articles
  • Ubuntu
    • I moved my domain to UpCloud (on the other side of the world) from Vultr (Sydney) and could not be happier with the performance.
    • Useful Linux Terminal Commands
    • All Ubuntu Articles
  • VM
    • I moved my domain to UpCloud (on the other side of the world) from Vultr (Sydney) and could not be happier with the performance.
    • All VM Articles
  • WordPress
    • Speeding up WordPress with the ewww.io ExactDN CDN and Image Compression Plugin
    • Installing and managing WordPress with WP-CLI from the command line on Ubuntu
    • How to backup WordPress on a host that has CPanel
    • Moving WordPress to a new self managed server away from CPanel
    • Moving a CPanel domain with email to a self managed VPS and Gmail
    • All WordPress Articles
  • All

Wordpress

Moving a CPanel domain with email to a self managed VPS and Gmail

August 3, 2017 by Simon

Below is my guide for moving away from NetRegistry CPanel domain to a self-managed server and GSuite email.

I have had www.fearby.com since 1999 on three CPanel hosts (superwerbhost in the US, Jumba in Australia, Uber in Australia (NetRegistry have acquired Uber and performance at the time of writing is terrible)). I was never informed by Uber of the sale but my admin portal was moved from one host to another and each time performance degraded. I tried to speed up WordPress by optimizing images, installing cache plugins but nothing worked, pages were loading in around 24 seconds on https://www.webpagetest.org.

Buy a domain name from Namecheap here.

Domain names for just 88 cents!

I had issues with a CPanel domain on the hosts (Uber/Netregistry) as they were migrating domains and the NetRegstry chat rep said I needed to phone Uber for support. No thanks, I’m going self-managed and saving a dollar.

I decided to take ownership of my slow domain and setup my own VM and direct web traffic to it and redirect email to GMail (I have done this before).  I have setup Digital Ocean VM’s (Ubuntu and Centos), Vultr VM’s and AWS VM’s.

I have also had enough of Resource Limit Reached messages with CPanel and I can’t wait to…

  • not have a slow WordPress.
  • setup my own server (not a slow hosts server).
  • spend $5 less (we currently pay $25 for a CPanel website with 20GB storage total)
  • get a faster website (sub 24 seconds load time).
  • larger email mailboxes (30GB each).
  • Generate my own “SSL Labs A+ rated” certificate for $10 a year instead of $150 a year for an “SSL Labs C rated” SSL certificate from my existing hosts.

Backup

I have about 10 email accounts on my CPanel domain (using 14GB) and 2x WordPress sites.  I want to backup my emails with (Outlook Export and Thunderbird Profile backup) and backup my domain file(s) a few times before I do anything.  Once DNS is set in motion no server waits.

The Plan

Once everything is backed up I intend to setup a $5 a month Vulr VM and redirect all mail to Google G Suite (I have redirected mail before).

I will setup a Vultr web server in Sydney (following my guide here), buy an  SSL certificate from Namecheap and move my WordPress sites.

Rough Plan

  • Reduce email accounts from 10x to 3x
  • Backup emails (twice with ThunderBird and Outlook).
  • Setup A Ubuntu V on Vultr.
  • Signup for Google G Suite Trial.
  • Transfer my domain to Namecheap.
  • Link to domain DNS to Vultr
  • Link to domain MX records to Google Email.
  • Transfer website.
  • Setup emails on google.
  • Restore WordPress.
  • Go live.
  • Downgrade to personal G Suite before the trial expires
  • Close down the old server.

Signing up for Google G Suite

I visited https://gsuite.google.com/ and started creating an account.

Get 20% off your first year by signing up for Google G Suite using this link: https://goo.gl/6vpuMm

Screenshots of Google G Suite setup

I created a link between G Suite and an existing GMail account.

More screenshots of Google G suite setup

Now I can create the admin account.

Picture of G suite asking how i will log in

Tip: Don’t use any emails that are linked as secondary emails with any Google services (this won’t be allowed). It’s s a well-known issue that you cannot add users emails who are linked to Google services (even as backup emails for Gmail, detach the email before adding it). Read more here.

Google G suite did not like my email provided

Final setup steps.

Final G suite setup screenshots.

Now I can add email accounts to G Suite.

G Suite said im all ready to add users

Adding email users to G Suite.

G Suite adding users

The next thing I had to do was upload a file to my domain to verify I own the domain (DNS verification is also an option).

I must say the setup and verify steps are quite easy to follow on G Suite.

Time to backup our existing CPanel site.

Screenshot of Cpanel users

Backup Step 1 (hopefully I won’t need this)

I decided to grab a complete copy of my CPanel domain with domains, databases and email accounts. This took 24 hours.

CPanel backup screenshot

Backup Step 2 (hopefully I won’t need this)

I download all mail via IMAP in Outlook and Mozilla Thunderbird and export it (Outlook Export and Thunderbird Profile backup). Google have IMAP instructions here.

DNS Changes at Namecheap

I obtained my domain EPP code from my CPanel hosts and transferred the domain name to Namecheap.

Namecheap was even nice enough to set my DNS point to my existing domain so I did not have to rush a move before DNS propagation.

P.S The Namecheap Chat Staff and Namecheap  Mobile App is awesome.

NameCheap DNS

Having backed up everything I logged into Namecheap and set my DNS to “NameCheap BasicDNS” and then went “Advanced DNS” and set appropriate DNS records for my domain. This assumes you have setup a VM with IPV4 and IPV6 (follow my guide here).

  • A Record @ IPV4_OF_MY_VULTR_SERVER
  • A Record www IPV4_OF_MY_VULTR_SERVER
  • A Record ftp IPV4_OF_MY_VULTR_SERVER
  • AAAA Record @ IPV6_OF_MY_VULTR_SERVER
  • AAAA Record www IPV6_OF_MY_VULTR_SERVER
  • AAAA Record ftp IPV6_OF_MY_VULTR_SERVER
  • C Name www fearby.com

The Google G Suite also asked me to add these following MX records to the DNS records.

  • MX Record @ ASPMX.L.GOOGLE.COM. 1
  • MX Record @ ASPMX1.L.GOOGLE.COM. 5
  • MX Record @ ASPMX2.L.GOOGLE.COM. 5
  • MX Record @ ASPMX3.L.GOOGLE.COM. 10
  • MX Record @ ASPMX4.L.GOOGLE.COM. 10

Then it was a matter of telling Google DNS changes were made (once DNS has replicated across the US).

My advice is to set DNS changes before bed as it can take 12 hours.

Sites like https://www.whatsmydns.net/ are great for keeping track of DNS replication.

Transferring WordPress

I logged into the CPanel and exported my WordPress Database (34MB SQL file).

I had to make the following PHP.ini changes to allow the larger file size restore uploads with the Adminer utility (default is 2mb). I could not get the server side adminer.sls.gz option to restore the database?

post_max_size = 50M
upload_max_filesize = 50M

# do change back to 2MB after you restore the files to prevent DOS attacks.

I had to make the following changes to nginx.conf (to prevent 404 errors on the database upload)

client_max_body_size 50M;
# client_max_body_size 2M; Reset when done

I also had to make these changes to NGINX (sites-available/default) to allow WordPress to work

# Add index.php to the list if you are using PHP
	index index.php index.html index.htm;

location / {
        # try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php?q=$uri&$args;
        index index.php index.html index.htm;
        proxy
}

I had a working MySQL (I followed my guide here).

Adminer is the best PHP MySQL management utility (beats PhpMyAdmin hands down).

Restart NGINX and PHP

nginx -t
nginx -s reload
sudo /etc/init.d/nginx restart
sudo service php7.0-fpm restart

I had an error on database import, a non-descript error in script line 1 (error hint here).

A simple search and replace in the SQL fixed it.

Once I had increased PHP uploads to 50M and Nginx I was able to upload my database backup with Adminer  (just remember to import to the created database that matches. the wp-config.php. Also, ensure your WordPress content is in place too.

The only other problem I had was WordPress gave an “Error 500” so moved   few plugins an all was good.

Importing Old Email

I was able to use the Google G Suite tools to import my old Mail (CPanel IMAP to Google IMAP).

Import IMAP mail to GMail

I love root access on my own server now, goodbye CPanel “Usage Limit Exceeded” errors (I only had light traffic on my site).

My self-hosted WordPress is a lot snappier now, my server has plenty of space (and only costs $0.007c and hour for 1x CPU, 1GB ram, 25GB SSD storage and 1000GB data transfer quota). I use the htop command to view system processor and disk space usage.

I can now have more space for content and not be restricted by tight hosts disk quotas or slow shared servers.  I use the pydf command to view dis space.

pydf
Filesystem Size  Used

Avail

 Use%                                                    Mounted on
/dev/vda1   25G 3289M

20G

 13.1 [######..........................................] /
/www/wp-content#

I use ncdu to view folder usage.

Installing ncdu

sudo apt-get install ncdu
Reading package lists... Done
Building dependency tree
Reading state information... Done
ncdu is already the newest version (1.11-1build1).
0 upgraded, 0 newly installed, 0 to remove and 58 not upgraded.

Type ncdu in the folder you want to browse under.

ncdu

You can arrow up and down folder structures and view folder/file usage.

SSL Certificate

I am setting up a new multi year SS cert now, I will update this guide later.  I had to read my SSL guide with Digital Ocean here.

I generated some certificate on my server

cd ~/
kdir sslcsrmaster4096
cd sslcsrmaster4096/
openssl req -new -newkey rsa:4096 -nodes -keyout domain.key -out domain.csr

Sample output for  a new certificate

openssl req -new -newkey rsa:4096 -nodes -keyout dummy.key -out dummy.csr
Generating a 4096 bit RSA private key
.................................................................................................++
......++
writing new private key to 'dummy.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: AU
State or Province Name (full name) [Some-State]: NSW
Locality Name (eg, city) []:Tamworth
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Dummy Org
Organizational Unit Name (eg, section) []: Dummy Org Dept
Common Name (e.g. server FQDN or YOUR name) []: DummyOrg
Email Address []: [email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: password
An optional company name []: DummyCO
[email protected]:~/sslcsrmaster4096# cat dummy.csr
-----BEGIN CERTIFICATE REQUEST-----
MIIFAjCCAuoCAQAwgYsxCzAJBgNVBAYTAkFVMQwwCgYDVQQIDANOU1cxETAPBgNV
BAcMCFRhbXdvcnRoMRIwEAYDVQQKDAlEdW1teSBPcmcxFzAVBgNVBAsMDkR1bW15
IE9yZyBEZXB0MREwDwYDVQQDDAhEdW1teU9yZzEbMBkGCSqGSIb3DQEJARYMbWVA
ZHVtbXkub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA6PUtWkRl
+gL0Hx354YuJ5Sul2Xh+ljILSlFoHAxktKlE+OJDJAtUtVQpo3/F2rGTJWmmtef+
shortenedoutput
swrUzpBv8hjGziPoVdd8qdAA2Gh/Y5LsehQgyXV1zGgjsi2GN4A=
-----END CERTIFICATE REQUEST-----

I then uploaded the certificate to Namecheap for an SSL cert registration.

I selected DNS C Name record as a way to verify I own my domain.

I am now waiting for Namecheap to verify my domain

End of the Google G Suite Business Trial

Before the end of the 14-day trial, you will need to add billing details to keep the email working.

At this stage, you can downgrade from a $10/m business account per user to a $5/m per user account if you wish. The only loss would be storage and google app access.

Get 20% off your first year by signing up for Google G Suite using this link: https://goo.gl/6vpuMm

Before your trial ends, add your payment details and downgrade from $10/user a month business prices to $5/iser a month individual if needed.

G Suite Troubleshooting

I was able to access new G Suite email account via gmail.com but not via Outlook 2015? I reset the password, followed the google troubleshooting guide and used the official incoming and outgoing settings but nothing worked.

troubleshooting 1

Google phone support suggested I enable less secure connection settings as Google firewall may be blocking Outlook. I know the IMAP RFC is many years old but I doubt Microsoft are talking to G Suite in a lazy manner.

Now I can view my messages and I can see one email that said I was blocked by the firewall. Google phone support and faqs don’t say why Outlook 2015 SSL based IMAP was blocked?

past email

Conclusion

Thanks to my wife who put up with my continual updates over the entire domain move. Voicing the progress helped me a lot.

Donate and make this blog better




Ask a question or recommend an article
[contact-form-7 id=”30″ title=”Ask a Question”]

V1.8 added ad link

Filed Under: Advice, DNS, MySQL, OS, Server, Ubuntu, VM, Vultr, Website, Wordpress Tagged With: C Name, DNS, gmail, mx, server, ubuntu, vm, VPS, Vulty

Add Google AdWords to your WordPress blog

July 30, 2017 by Simon

Google says “Turn your passion into profit. AdSense is a free, simple way to make money online by placing ads on your website.” How hard is it to setup Google AdSense on your WordPress site?

First, you will need to create a Google AdSense account here and add your site to Google AdSense. Don’t forget to add your account and payment type here.

Ad Sense

You will need to add a bit of HTML script from Google to your site to verify you own the domain you are adding ads too.  Lucky for me my theme Genesis allows me to paste code straight into the header and footer sections for my site.

Ad Sense

Google AdSense steps are quite clear and will let you know what you need to do (I monitor this from my phone).

Ad Sense

After your site is verified (automatically) you will have to wait up to 1 week for Google to review your site. You will receive an email when Google has approved your site.

Ad Sense

Then you are ready to log in to Google Adwords page and create an Advertisement style that matches your site. Now you can create your first ad type in the Google AdSense screen.

Ad Sense

I created a “Text and Display Ads”.

Ad Sense

I then entered a name and chose “Automatic Size” and “Responsive”, feel free to add your own colors here and customize.

From the Google Adsense page go to My Ads, Content then Ad Unit, Now you can click get the code.

I can use this code to place auto responsive ad’s on my web pages.

I should have embedded this code into my WordPress theme but I decided to place the code manually into each of my posts (in text mode).

This is how a Google AdWords Ad looks in this post (below the first paragraph).  Very smart that Google chose to serve an AdWords company Ad in my post about Google Ad Words.

Here are my earnings 10 minutes after adding my first ad to my blog ($0 as expected).  I plan on using any revenue to speed up this website as the host is very slow.

Ad Sense

If you like this post please click my Ad’s.  I will update my revenue numbers here in the future.

Thanks to Emma who runs a great blog and encouraged me to blog years ago and big thanks to my wife Alison who ran a blog for years (way before me with loads more visitors).

Payment

It appears you can’t add a payment method or add a payment method until you reach $100 earned.

It looks like earnings will be paid monthly if you meet the target. Payment placeholders are available at https://play.google.com/store/account#  I guess new payment methods can be added here.

AdSense Mobile app.

I use the AdSense mobile app



FYI: For me, Estimated revenue on the mobile app is in Australian dollars and estimate revenue at https://www.google.com/adsense/ is in USD.

Searching reveals that estimated revenue will be evaluated at the end of the month and the final amount will be reduced.

Content

Make the content relevant to the reader to gain revenue. I guess I need to look at Google Analytics and blog more of what people want.

SEO

Don’t forget to ensure your sites SEO is working as expected. Also, a slow website will have poor SEO  so consider a faster private VM from Vultr or Digital Ocean.

Ad Glossary

  • Page RPM – Page revenue per thousand impressions (RPM) is calculated by dividing your estimated earnings by the number of page views you received, then multiplying by 1000.
  • Page CTR – The page click through rate (CTR) is the number of ad clicks divided by the number of page views.
  • Impression CTR – An impression is counted for each ad request that returns at least one ad to the site. It is the number of ad units (for content ads) or search queries (for search ads) that showed ads.
  • Cost Per Click – The cost-per-click (CPC) is the amount you earn each time a user clicks on your ad. The CPC for any ad is determined by the advertiser; some advertisers may be willing to pay more per click than others, depending on what they’re advertising.
  • Impression RPM – The impression revenue per thousand impressions (RPM) is the average earnings per one thousand impressions.
  • Page ROM – Page revenue per thousand impressions (RPM) is calculated by dividing your estimated earnings by the number of page views you received, then multiplying by 1000.
  • Coverage – Coverage is the percentage of ad requests that returned at least one ad. Generally, coverage can help you identify sites where AdSense isn’t able to provide targeted ads.
  • Maximum CPC Bid – A bid that you set to determine the highest amount that you’re willing to pay for a click on your ad.
  • CPM Bid (Cost Per 1000 Impressions) – CPM bidding means that you pay based on the number of impressions (times your ads are shown) that you receive on the Google Display Network. Starting this year, CPM bidding will be replaced by viewable CPM bidding.

How costs are calculated in AdWords.

Read the Google AdSense Glossary and help here.

Ad Sense Rules

Ad Sense Beginner’s Guide – Stay compliant with our policies.

Summary:

  1. Don’t click your own ads.
  2. Don’t ask others to click your ads.
  3. Don’t include any prohibited site content, including adult content, violence or excessive profanity, drugs (including alcohol and tobacco) or copyrighted material.
  4. Don’t modify the AdSense code.
  5. Do follow our Webmaster Quality Guidelines.
  6. Do provide a good user experience.
  7. Don’t place more ads than content on any page.
  8. Don’t place images near ads in a way that may mislead users into thinking that the images are associated with the ads.

Google Webmaster guidelines.Payment

Payment

You will be unable to receive payment until you verify your address.

If you are on a 14-day free trial you will need to setup billing before the trial expires

Tips

  • Do add the show ad’s code to WordPress over manually adding to pages or posts.
  • You can only add one script to your page once (e.g Header or Footer (not Both)) or multiple ad banners will be visible and only one will be clickable.

Bonus

Read my guide on managing WordPress via the command line where I automatically (with one command line added the word Advertisements) to over 80 post and pages.

sudo wp search-replace '<script async src="//pagead2.googlesyndication.com' 'Advertisement:<br /> <script async="" src="//pagead2.googlesyndication.com'
sudo wp search-replace '<script async="" src="//pagead2.googlesyndication.com' 'Advertisement:<br /> <script async="" src="//pagead2.googlesyndication.com'

Update June 2019

Google is now demanding you add a /ads.txt file to your site (with this format).

I added the following to mine

google.com, pub-9241521190070921, DIRECT, f08c47fec0942fa0

I used this site to validate my ads.txt file

Donate and make this blog better




Ask a question or recommend an article
[contact-form-7 id=”30″ title=”Ask a Question”]

Draft: v1.91 June 2019 ads.txt info

Filed Under: Ads, Marketing, Monetization, Website, Wordpress Tagged With: Ads, Google AdSense, wordpress

How to boost your site’s SEO

July 21, 2017 by Simon

In these olden days of the Internet, you just needed to submit your site to search engines and wait a few days and everything was fine and dandy. Making your site appear high in search engines these days is next to impossible due to changing rules and formulas defined by search engines.

It is advisable to avoid so-called experts that spam your inbox saying they can improve your site’s SEO for $99 (but strangely do not have a website themselves).

There is no golden rule or trade secret to getting pages ranked high on search engines. You will need to do a number of things to get higher in search results or even appear on search results at all.

Google is not the only search engine and you will need to do a number of things to appear on all of them. Other search engines include DuckDuckGo, Bing, Yahoo, Ask and 14 more search engines here.

Site maps

Google and other top search engines expect your website to declare pages on your site via a sitemap.xml file (specifications here). There is a number of ways you can generate a site map file. If you use the WordPress CMS there are a number of plugins that generate sitemap.xml files for you. Search Engines have automatic bots that will read known sitemap files in order to update their search results.

Q1) Does your web site have a sitemap file?

Warnings

Most search engines will ignore your website if it is not trustworthy. You will be classified trustworthy if:

  • Your website is linked to from many other trustworthy sites.
  • Your website is not in an untrustworthy country or on an untrustworthy web site host.
  • Your website does not have banned words or linked banned media.
  • You don’t serve malicious files (or your Web servers IP address has never served malicious files).
  • Your website is updated frequently. Sites like http://web.archive.org/web/*/www.microsoft.com will let you know how frequently a site has been updated.
  • Your website needs to be secure (must have a secure SSL certificate installed and enabled). Google tells you HTTPS sites get better ranking here.
  • Your website needs to be fast, a search engine will not point people to slow sites period.
  • Your website also needs to have a lot of past and current traffic.

Content

Your site will also need to have good content in order to be seen as a valuable site. A blog is a good way to create new content and get new organic traffic to your site. You will need a desirable product or service to be high in the search engines result (e.g Chart generator or sell a  good product or service ). Your site also needs to contain the matching keywords to be referred to when people search for a particular thing.

It is easy to appear high in the search results if you use feed google enough words that match your article but it is hard enough to get to the top of the rankings for the term “SEO” with “144,00,000” other matching pages in google coming up for “SEO”

If you are going to pay someone to improve your SEO ask for their track record on SEO ranks, ask for examples, adding the more words to search results to get higher is lazy. I think being high in google rankings with 2 words is near impossible unless you use a location in the search term.  Google search is a trying to match the right results based on what you feed it and if you fail in any way your site is ranked down.

Analytics

Using search engines analytics like Google Analytics is a good way to ensure search engines know you exist (Google at least) and let you know what works and allows you to generate more content of what works.

Inbound Links

Most search engines prioritize your site over others if you have a high number of links to your site (inbound links), you can have the best site but with no inbound links to your site, you are in trouble. Creating fake links from non-important sites won’t cheat the system.

Site Speed 

Your web site need needs to be fast in order to be deemed trustworthy from search engines. A slow site will fall down the search engine page listing. Do everything you can do to speed up your site (start with ensuring the server is in the right location on a  non-shared server with a fast website utilizing cached content).

I have updated my post on Speeding up WordPress, my site used to load in 28 seconds, it now loads less than 9 seconds.

Secure sites

Google and other search engines will soon require your site to have a strong SSL certificate and high security (read my guide on SSL here and content security policy and public key pinning here).

You can check your site’s SSL certificate here. Check your site with shodan.io often for security flaws.

Blacklists

You will need to ensure your site is hosted on non-malicious serves and is using modern clean web technology.  Search engines prefer to redirect people to sites that use modern web technologies like HTML5 over transitional HTML websites.

Metadata (Dublin Core)

Metadata is important to allow search engines to know what is on a web page without remembering everything on each page. Read more on the latest metadata standards here.

Logs

Do check your logs (error and activity logs) for website crawlers activity (active and missed).

Search your website logs for known crawler activity. Are you missing search engines?

Your logs will tell you how many hits are coming from search engines.  I have had 1300+ people visit my site from Google this month alone.

Set goals around search engine targets and work toward them (percentage or total traffic).

Campaigns

Although campaigns are not directly related to SEO they do allow you to combine stats around page loads and advertising campaigns. I prefer to track campaigns with a custom central redirect page (e.g /go/index.php) that logs the inbound clicks.

// Save this to a file called index.php (maybe under a folder called "/go/" at the top of your server (e.g "https://www.fearby.com/go/index.php")
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
header('Content-Type: text/html; charset=utf-8');

// Insert campaign logging code here
// todo

/* Sample Usage
https://www.fearby.com/go/?seo
https://www.fearby.com/go/?aws
*/
switch ($_SERVER['QUERY_STRING']) { 

	case "seo":
		header( 'Location: https://fearby.com/article/how-to-boost-your-sites-seo/' ) ;
		break;

	case ("beyondssl"):
		header( 'Location: https://fearby.com/article/beyond-ssl-with-content-security-policy-public-key-pinning-etc/' ) ;
		break;

	case ("mysql"):
		header( 'Location: https://fearby.com/article/setting-up-a-fast-distributed-mysql-environment-with-ssl/' ) ;
		break;
	
	case ("aws"):
		header( 'Location: https://fearby.com/article/creating-an-aws-ec2-ubuntu-14-04-server-with-nginx-node-and-mysql-and-phpmyadmin/' ) ;
		break;

	case ("do"):
		header( 'Location: https://fearby.com/article/how-to-buy-a-new-domain-and-ssl-cert-from-namecheap-a-server-from-digital-ocean-and-configure-it/' ) ;
		break;

	default: 
		echo "I could not find a page for the URL you specified.";
		break;
}

Long Tail Titles.

I use long and descriptive titles to mention what my blog post is about. I find that this helps with matching what and Google search loves it.

Some of my descriptive post titles

  • How to develop software ideas
  • Setting up a fast distributed MySQL environment with SSL
  • Adding secure credit card payments to your website
  • How to setup pooled MySQL connections in Node JS that don’t disconnect

Using long page titles can ensure people click on your links with confidence ( and they will know what your site is about ). Pageviews are not everything, engagement is.

My most recent popular posts.

I think I need to create some more technical guides as they seem popular.

Stats

Viewing statistics and reports can help you determine the popularity of your site.

Analytics

Reviewing Logs, viewing campaign data, viewing misc reports can help you identify incoming traffic to verify working acquisition sources.

I like looking at Google Analytics Behaviour reports for viewing inbound visits.  I can see over 19,000 incoming visitors from google over the last 2.5 years with no sightmap.xml (this proves that content and long titles work).

Adding your site to bing searches

Go to https://www.bing.com/toolbox/submit-site-url and submit your site.

Bing

I tried to submit my XML files to Bing but the form stalled (my bad I did not see the organization size mandatory field).

Bing

I changed the domain above to just the domain (no sitemap).

Bing

I added my 6 sitemaps to the Bing Webmaster tools.

Bing

Submit your sitemap files in the Bing Webmaster tools.

Adding Your Site to the Google Search Console

I am trying the WordPress SEO plugin by Yoest but before I do I am adding my site to the Google Search Console (linked to my Gmail account). You will need to add your site to Google Search Console to have Google index your site.

Before Google trusts your domain you need to verify ownership of the domain  ( for me I uploaded the verification files with the free FileZilla FTP program then loaded the file, then clicked verify at the Google Search Console page ).

Now my domain is verified and the Google Search console allows me to view the search status of my domain.

Installing a WordPress SEO Plugin – Yoast

Install the Yoast Plugin in WordPress (follow the install steps after you activate from step 1-8). You can add Yoast to your WordPress via the Add Plugins screen or download then upload it.

Don’t forget to activate then run the advanced Yoast configuration wizard.

After you get an authorization code it is important that you select your website from the profile list (if you don’t see this STOP and add your site to the Google Search Console (you cannot skip this step)).

Continue through steps 9-12 and finish installing the Yoast plugin.

Don’t forget to enable sitemaps (and review your settings). Now you can open the SEO plugin advanced options (/wp-admin/admin.php?page=wpseo_dashboard) and review the plugin options.

I installed the plugin but no sitemap.xml was created???

Twitter user https://www.twitter.com/atimmer10 said I may need to save the/wp-admin/options-permalink.php settings (no luck, this did not fix it and no sitemap.xml was created ).

I edited an existing published post and changed the short link and re-published a post ( no luck, this did not fix it and no sitemap.xml was created ).

I read this Yoast FAQ about the sitemap.xml not being created. I added the following to my .htaccess file ( no luck, this did not fix it and no sitemap.xml was created ).

# Yoast SEO - XML Sitemap Rewrite Fix
RewriteEngine On
RewriteBase /
RewriteRule ^sitemap_index.xml$ /index.php?sitemap=1 [L]
RewriteRule ^locations.kml$ /index.php?sitemap=wpseo_local_kml [L]
RewriteRule ^geo_sitemap.xml$ /index.php?sitemap=geo [L]
RewriteRule ^([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 [L]
RewriteRule ^([a-z]+)?-?sitemap.xsl$ /index.php?xsl=$1 [L]
# END Yoast SEO - XML Sitemap Rewrite Fix

I still cannot get Yoast to create a sitemap.xml???

It turns out Yoast was creating a hidden /sitemap_index.xml

I then added the 6 individual sitemaps to the Google Search Console and Google started indexing my site.

Now Google will index my site and Yoast will auto-update my sitemaps when I Add/Edit or Delete a piece of content.

Do monitor your sitemap syncs from time to time.

Add your sitemaps(s) to Yahoo, Bing and Ask search engines

More on adding your site to search engines on the Yoast website here. Also, read this article.

robots.txt

robots.txt is also an older sitemap.xml file format, read more here.

I made a backwards-compatible robots.txt file

User-agent: *
Disallow: 
Disallow: /cgi-bin/
Disallow: /wp-admin/
Sitemap: https://fearby.com/post-sitemap.xml
Sitemap: https://fearby.com/page-sitemap.xml
Sitemap: https://fearby.com/news-sitemap.xml
Sitemap: https://fearby.com/category-sitemap.xml
Sitemap: https://fearby.com/post_tag-sitemap.xml
Sitemap: https://fearby.com/news-category-sitemap.xml

Generate a robots.txt here and read more here.

Other Plugins

Generate sitemaps from Yoast sitemaps with WP SEO HTML Sitemaps.

Other Tools

  • Google has a Structured Data Testing Tool to allow you to diagnose various search issues.
  • Webpage accessibility checker.
  • Webpage speed checker

Top WordPress Plugins

Do More of What Works

Review pages and see what works, you may find old pages or posts are more popular than new ones.

What Works

Set Goals and Measure Them

Goals like page views are popular targets for SEO results but focusing on lowering bounce rates and increasing customer session time is just as important.

Through changes in the last 30 days, I have lowered my bounce rate from 94% to 80%. I have made some changes to my site to pick up chicks at the end of posts and hope to get a 50% or lower bounce rate.

Bounce

Where are your visitors coming from?

Google Analytics will reveal where visitors come from. Twitter, Facebook, etc. Knowing where your readers are located allows you to target more users.

Where

Time of Day

Knowing the time of day (from Google Analytics) will show you when it is best to post and promote.

Visitor Frequency

Google Analytics will tell you if your visitors are one-time visitors or regular visitors.

Visitors

Conclusion

Ensure your sitemaps is up to date and keep adding new content.

Donate and make this blog better




Ask a question or recommend an article
[contact-form-7 id=”30″ title=”Ask a Question”]

V1.7 added info 1 month later

Filed Under: SEO, Website, Wordpress Tagged With: seo

Computer hardware, clock cycles and code ramblings

April 18, 2016 by Simon Fearby

Modern computers have insane amounts of processing power compared to computers from 5 years ago. Computer memory and storage is cheap but that is no excuse to design and develop bloated webpages and apps. Consumers and customers are very impatient and there are loads of statistics on users abandoning an app or website because it takes more than three seconds to respond or load an app.

You can control the speed of software running on your home computer by upgrading it but you cannot guarantee the performance of apps that run on shared hosting platforms or web hosts.  You can buy a CPanel based web-host or a dedicated server from $5 a month, how can they make money? They do this by virtually hosting your service (web server etc) alongside other hosts and running multiple services on a single processor core. Shared servers are very economical but you are sharing the resources with other users.

If you want maximum performance you can always buy a dedicated server from a cloud server provider but each provider may secretly share the resource’s of that server (more information here: http://blog.cloudharmony.com/2014/07/comparing-cloud-compute-services.html ) and performance may be impacted. Dedicated servers can be very expensive and can run into thousands of dollars per month.

So what can I control?

Writing (or installing) good code is essential, try and optimize everything and know your server’s limitations and bottlenecks. To understand bottlenecks, you need to know about computer hardware. A few lines of code can trigger millions or billions of actions inside a processor.

A computer has the following major components:

  • Hard drive (HDD/SSD): This is where your operating system, software and files are stored when the computer is turned off. Hard drives store magnetic charges (0’s and 1’s) onto spinning round metal platters. A zero is a negative charge and a 1 is a positive charge. Hard drives spin at 5400~15,000 RPM. Data is written with a read/write needle that needs to be positioned over the data bit to read and write. Hard drives are very slow but reliable and each data bit can be read/written to tens of thousands of times. Faster solid-state drives don’t use spinning metal platters and work a bit like memory (see below). Solid-State drives have limited writes per sector though. Read More: https://en.wikipedia.org/wiki/Hard_disk_drive
  • Memory (RAM): Computer memory is basically a large array or very fast storage that the processor reads and writes data (0’s and 1’s). Memory is like a massive spreadsheet grid and accessing data from memory is 1000x faster than accessing data from a hard drive.  Memory stores data as static charges in silicon microchips and each storage bit can be changed millions of times. When a computer is turned off the memory is wiped. Read More: https://en.wikipedia.org/wiki/Computer_memory
  • Processor (CPU): This is the chip that does the primary calculations and controls just about everything. A processor can perform various predetermined functions and read and write to memory/hard drives or send data over a USB cable or network connection. Processors are quite dumb and it has to keep queues (pipelines) of things to do in it’s the internal cache (memory) between cycles.  A clock cycle is single step where the processor (and all of it’s cores) do one thing and get ready for the next clock cycle, all clock cycles in a software routine are linked and if one instruction fails all following linked instructions have to be cleared and dealt with or errors and blue screens can happen. A processors speed is a total of how may clock cycles it can perform in a second and a modern computer can process 3,500,000,000 (3.5 Ghz) cycles a second. A processor can calculate one complex instruction or multiple simple instructions in one cycle. Most processors have multiple cores that can each perform calculations in a clock cycle. But don’t be fooled many clock cycles are spent waiting for data to be read/written from memory/hard drive or loaded from the processor’s cache. A processors instruction pipeline has 4 main states for each possible action in a cycles execution pipeline (“Fetch”, “Decode”, “Execute” and “Write back”). (e.g The processor may be asked to add (fetch) variable1+variable2, the (decode) gets the values from memory, (execute) performs the calculation and “write back” writes the result back to memory. ) See a complete list of Intel instruction here and here ). Read More: https://en.wikipedia.org/wiki/Central_processing_unit

Processors are mostly waiting for data to be fetched to be processed.  There is no such thing as 100% efficient code.

If software needs to read a file from a spinning hard drive has a mandatory latency period (https://en.wikipedia.org/wiki/Hard_disk_drive_performance_characteristics ) where the hard drives read needle moves in or out and reads the data form the right sectors and returns the data.  A 3.5 Ghz computer has to wait for an approximate 19,460,000 clock cycles for a sector on a hard drive to be under the read head. The data still has to be moved from the hard drive through the processor and into memory.  Luckily processors have fantastic calculation branch prediction abilities ( https://en.wikipedia.org/wiki/Branch_predictor) and even though the software has asked for a file to be read the processor can work on 19 million other cycles before checking to see if the data has returned from the hard drive.

Caching content

One solution is to have software or servers cache certain files in memory to speed up the delivery of files. The latest DDR4 computer memory runs as blistering speeds of 2,400Mhz (2,400,000,000 cycles a second) so it should keep up with a 2.4Ghz computer? Memory is cheap and fast but computer memory has a huge limitation.  You can’t just ask memory to return the value of a memory cell and expect it in a few cycles. The processor has to essentially guide the memory module to activate the required electrical columns and rows to allow that that value to be read and return it to a processor. This is like a giving instruction to a driver over a phone, it takes time for the driver to listen, turn a corner, drive down a street and then turn another corner just to get to the destination.  The processor has to manage millions of memory read and writes a second. Memory can’t direct itself to the memory value, the processor has to do that.

Memory timings are called RAM timings and it is explained better here ( http://www.hardwaresecrets.com/understanding-ram-timings/ ).  It takes modern DDR4 memory module about 15 clock cycles to just enable the column circuit for a memory cell to be activated, then another 15 clock cycles to activate the row and a whole load of other cycles to read the data. Reading a 1 MB file from memory may take 100,000,000 clock cycles (and that is not factoring in the processor is working on other tasks. A computer process is a name given to software code that has been handed over to the processor, software code is loaded into the processor/memory as instructions and depending on the code and user interactions different parts of the software’s instructions are loaded into the processor. In any given second a computer program may enter and leave a processor over 1,000 times and processors internal memory is quite small.

Benchmarking

Choosing a good host to place your website/mobile app or API’s is very important, sometimes the biggest provider is not the fastest. You should benchmark how long actions take on your site and what the theoretical maximum limit is. Do you need more memory or cores? Hosts will always sell you more resources for money.

http://www.webpagetest.org/ is a great site to benchmark how long your website takes to deliver each part of your website to customers around the world.  You can minify (shrink) your code and images to reduce the processing time per page load.

If you are keen research PHP caching plugins like OpCache ( http://php.net/manual/en/book.opcache.php ), MemcahedD (https://www.digitalocean.com/community/tutorials/how-to-install-and-use-memcache-on-ubuntu-14-04) for PHP or MySQL  or WordPress WP-Total-Cache (https://wordpress.org/plugins/w3-total-cache/ ) plugin.

Placing your website or application databases close to your customers.  In Australia, it takes 1/5 of a second minimum for a server outside of Australia to respond.  A website that loads 30 resources would also add the delays between your server and customers (30×1/5 of a second add’s up).

Consider merging and minifying website resources ( http://www.minifyweb.com/ ) to lower the number of files and file sizes that you deliver to users. Most importantly monitor your website 24/7 to see if it is slowing down. I use http://monitis.com to monitor server performance remotely.

Summary

I hope I have not confused you too much. Try some videos below to learn more.

Good Videos: 

How a CPU Works:

How Processors are Made:

How a Hard Drive works in Slow Motion – The Slow Mo Guys

What’s Inside a CPU?

Zoom Into a Microchip (Narrated)

How computers work in less than 20 minutes

Read some of my other development-related guides here https://fearby.com/
Donate and make this blog better




Ask a question or recommend an article
[contact-form-7 id=”30″ title=”Ask a Question”]

Filed Under: Cloud, Development, Domain, Hosting, MySQL, Security, VM, Wordpress Tagged With: code, hard drive, memory, optimize, processor, solid state

Why choose a WordPress website over a static HTML site edited with Dreamweaver.

November 14, 2015 by Simon Fearby

All websites files on the internet live on a web server and web site content is mostly made up of HTML and graphic files. When customer’s access your website the web server sends raw HTML to the customer’s web browser. The web browser then reads the HTML, downloads additional assets and regenerates the webpage on the screen/device.

This guide compares using WordPress and building your own HTM website and editing the site with a HTML editor like Dreamweaver.

There are a number of standards for HTML syntax and rules for making accessible webpages.  If you do not meet the latest standards your website will be ranked a lot lower in Search engines or even be blocked.

If you are technically minded you can have fun learning HTML, Cascading Style Sheets (CSS) for nice layouts, JavaScript and JQuery for interactive widgets along with SQL and PHP for building pages that load and save data to databases.  If you are building a static HTML website, you should use the mobile responsive Bootstrap HTML framework. You can buy in a bootstrap theme or design your own site using sites like layout-it.

Google tips for web developers: search-engine-optimization-starter-guide.pdf (cached here).

  • Create unique, accurate page titles
  • Make use of the “description” meta tag
  • Improving Site Structure
  • Improve the structure of your URLs
  • Make your site easier to navigate
  • Optimizing Content
  • Offer quality content and services
  • Write better anchor text
  • Optimize your use of images
  • Use heading tags appropriately
  • Dealing with Crawlers
  • Make effective use of robots.txt
  • Be aware of rel=”nofollow” for links
  • SEO for Mobile Phones
  • Notify Google of mobile sites
  • Guide mobile users accurately
  • Promotions and Analysis
  • Promote your website in the right ways
  • Make use of free webmaster tools

Dreamweaver CC and Expression Web are the go to HTML web editing tools along with my favourite code editor Sublime Text 3.

HTML editors:

Dreamweaver CC
Dreamweaver CC
Sublime Text 3
Sublime Text 3

 

Ok so what about the non technical people, how can they setup and edit a website easily.

This is where WordPress CMS saves the day 🙂

wordpress

WordPress is a free CMS that you can download from http://www.wordpress.org or host on WordPress Servers at http://www.wordpress.com.  WordPress saves you from having to learn HTML and all the other technical bits.  You can access your site using WordPress from a desktop computer, tablet or mobile device (no need to install HTML editing software).

WordPress powers over 25% of all websites on the internet and is the most popular content management system. Shopify and SquareSpace have less than 1% market share.

Check out some sites running WordPress: https://wordpress.org/showcase/

 

WordPress Extensions

You can choose from thousands of free and commercial themes and thousands of free and commercial plugins. I have guides on Building a WordPress website from scratch and choosing a theme and essential plugins.

wordpress_org_01

WordPress Support

WordPress has great support, forums and documentation, there are loads of free lessons for the beginner through to writing posts and beyond.

 

WordPress Mobile

WordPress apps are available on iOS and Android mobile devices so you can add and edit on the road.  There is nothing stopping you adding and editing ALL content on a WordPress website from a mobile device. You could be at an event and create a post, take photos and submit a new page to your site all from your phone.

wp-ioswp-android

You can download the WordPress apps from https://wordpress.org/mobile/

 

Using WordPress.

WordPress offers a “WYSIWYG” editor for pages and posts. I use WordPress and this is what I see when I am editing this article.  wordpress_editing_now

Media Manager

WordPress comes with a simple media manager (for uploading graphics and attachments) and it is quite simple use.wordpress_editing_media

Pro’s and Con’s

WordPress needs some pre requisite software and has some limitations so here is a breakdown of the pro’s and con’s.

  Pro’s Con’s
WordPress
  • Needs a compatible server and hosting plan (PHP and MySQL database).
  • Quick to setup and install a theme
  • Easy to add functionality (anything from calendars, lists, galleries etc)
  • Easy to edit and update
  • Thousands of free themes
  • Thousands of commercial themes.
  • Integrates with other services like Mail Chimp for sending newsletters.
  • Can easily be edited from mobile or tablet devices.
  • Great support and help guides.
  • You can still use HTML
  • Ticks a lot of the Google website developer suggestions.
  • Easy to add/delegate new users.
  • 1,000’s of plugins.
  • Secure your site and automate backups (paid plugin)
  • Needs securing from the start.
  • Needs occasional updating.
  • Limited flexibility to modify a theme.
  • Best to choose a mobile/compliant theme at the start.
  • Security concerns with out dated plugins or versions of WordPress.
Static HTML
  • Does not need prerequisite software (if the content is basic).
  • Best for simple non interactive sites.
  • Cheaper.
  • Can be faster.
  • You need to design and develop a lot o the site by hand.
  • A lot of web servers don’t allow unencrypted FTP connections ( encryption support lacking in some versions of Dreamweaver and other FTP apps).
  • Hard to add database support.
  • You need to be on the ball with coding standards.
  • harder to hand over support to a different person.
  • Security concerns if you roll your own database support.
  • Dreamweaver CC costs $19 a month

 

Where to next

The real trick is setting up and clean WordPress installation with a nice theme (preferably commercial) and building in your sites pages/content and securing the site.

You can use my guide here to build a local WordPress installation or you can deploy straight onto a compliant web host.

Good luck.

Donate and make this blog better




Ask a question or recommend an article
[contact-form-7 id=”30″ title=”Ask a Question”]

Filed Under: Wordpress Tagged With: dreamweaver, wordpress

  • « Go to Previous Page
  • Go to page 1
  • Go to page 2
  • Go to page 3

Primary Sidebar

Poll

What would you like to see more posts about?
Results

Support this Blog

Create your own server today (support me by using these links

Create your own server on UpCloud here ($25 free credit).

Create your own server on Vultr here.

Create your own server on Digital Ocean here ($10 free credit).

Remember you can install the Runcloud server management dashboard here if you need DevOps help.

Advertisement:

Tags

2FA (9) Advice (17) Analytics (9) App (9) Apple (10) AWS (9) Backup (21) Business (8) CDN (8) Cloud (49) Cloudflare (8) Code (8) Development (26) Digital Ocean (13) DNS (11) Domain (27) Firewall (12) Git (7) Hosting (18) HTTPS (6) IoT (9) LetsEncrypt (7) Linux (20) Marketing (11) MySQL (24) NGINX (11) NodeJS (11) OS (10) PHP (13) Scalability (12) Scalable (14) Security (44) SEO (7) Server (26) Software (7) SSH (7) ssl (17) Tech Advice (9) Ubuntu (39) Uncategorized (23) UpCloud (12) VM (44) Vultr (24) Website (14) Wordpress (25)

Disclaimer

Terms And Conditions Of Use All content provided on this "www.fearby.com" blog is for informational purposes only. Views are his own and not his employers. The owner of this blog makes no representations as to the accuracy or completeness of any information on this site or found by following any link on this site. Never make changes to a live site without backing it up first.

Advertisement:

Footer

Popular

  • Backing up your computer automatically with BackBlaze software (no data limit)
  • How to back up an iPhone (including photos and videos) multiple ways
  • Add two factor auth login protection to WordPress with YubiCo hardware YubiKeys and or 2FA Authenticator App
  • Setup two factor authenticator protection at login on Ubuntu or Debian
  • Using the Yubico YubiKey NEO hardware-based two-factor authentication device to improve authentication and logins to OSX and software
  • I moved my domain to UpCloud (on the other side of the world) from Vultr (Sydney) and could not be happier with the performance.
  • Monitor server performance with NixStats and receive alerts by SMS, Push, Email, Telegram etc
  • Speeding up WordPress with the ewww.io ExactDN CDN and Image Compression Plugin
  • Add Google AdWords to your WordPress blog

Security

  • Check the compatibility of your WordPress theme and plugin code with PHP Compatibility Checker
  • Add two factor auth login protection to WordPress with YubiCo hardware YubiKeys and or 2FA Authenticator App
  • Setup two factor authenticator protection at login on Ubuntu or Debian
  • Using the Yubico YubiKey NEO hardware-based two-factor authentication device to improve authentication and logins to OSX and software
  • Setting up DNSSEC on a Namecheap domain hosted on UpCloud using CloudFlare
  • Set up Feature-Policy, Referrer-Policy and Content Security Policy headers in Nginx
  • Securing Google G Suite email by setting up SPF, DKIM and DMARC with Cloudflare
  • Enabling TLS 1.3 SSL on a NGINX Website (Ubuntu 16.04 server) that is using Cloudflare
  • Using the Qualys FreeScan Scanner to test your website for online vulnerabilities
  • Beyond SSL with Content Security Policy, Public Key Pinning etc
  • Upgraded to Wordfence Premium to get real-time login defence, malware scanner and two-factor authentication for WordPress logins
  • Run an Ubuntu VM system audit with Lynis
  • Securing Ubuntu in the cloud
  • No matter what server-provider you are using I strongly recommend you have a hot spare ready on a different provider

Code

  • How to code PHP on your localhost and deploy to the cloud via SFTP with PHPStorm by Jet Brains
  • Useful Java FX Code I use in a project using IntelliJ IDEA and jdk1.8.0_161.jdk
  • No matter what server-provider you are using I strongly recommend you have a hot spare ready on a different provider
  • How to setup PHP FPM on demand child workers in PHP 7.x to increase website traffic
  • Installing Android Studio 3 and creating your first Kotlin Android App
  • PHP 7 code to send object oriented sanitised input data via bound parameters to a MYSQL database
  • How to use Sublime Text editor locally to edit code files on a remote server via SSH
  • Creating your first Java FX app and using the Gluon Scene Builder in the IntelliJ IDEA IDE
  • Deploying nodejs apps in the background and monitoring them with PM2 from keymetrics.io

Tech

  • Backing up your computer automatically with BackBlaze software (no data limit)
  • How to back up an iPhone (including photos and videos) multiple ways
  • US v Huawei: The battle for 5G
  • Check the compatibility of your WordPress theme and plugin code with PHP Compatibility Checker
  • Is OSX Mojave on a 2014 MacBook Pro slower or faster than High Sierra
  • Telstra promised Fibre to the house (FTTP) when I had FTTN and this is what happened..
  • The case of the overheating Mac Book Pro and Occam’s Razor
  • Useful Linux Terminal Commands
  • Useful OSX Terminal Commands
  • Useful Linux Terminal Commands
  • What is the difference between 2D, 3D, 360 Video, AR, AR2D, AR3D, MR, VR and HR?
  • Application scalability on a budget (my journey)
  • Monitor server performance with NixStats and receive alerts by SMS, Push, Email, Telegram etc
  • Why I will never buy a new Apple Laptop until they fix the hardware cooling issues.

Wordpress

  • Replacing Google Analytics with Piwik/Matomo for a locally hosted privacy focused open source analytics solution
  • Setting web push notifications in WordPress with OneSignal
  • Telstra promised Fibre to the house (FTTP) when I had FTTN and this is what happened..
  • Check the compatibility of your WordPress theme and plugin code with PHP Compatibility Checker
  • Add two factor auth login protection to WordPress with YubiCo hardware YubiKeys and or 2FA Authenticator App
  • Monitor server performance with NixStats and receive alerts by SMS, Push, Email, Telegram etc
  • Upgraded to Wordfence Premium to get real-time login defence, malware scanner and two-factor authentication for WordPress logins
  • Wordfence Security Plugin for WordPress
  • Speeding up WordPress with the ewww.io ExactDN CDN and Image Compression Plugin
  • Installing and managing WordPress with WP-CLI from the command line on Ubuntu
  • Moving WordPress to a new self managed server away from CPanel
  • Moving WordPress to a new self managed server away from CPanel

General

  • Backing up your computer automatically with BackBlaze software (no data limit)
  • How to back up an iPhone (including photos and videos) multiple ways
  • US v Huawei: The battle for 5G
  • Using the WinSCP Client on Windows to transfer files to and from a Linux server over SFTP
  • Connecting to a server via SSH with Putty
  • Setting web push notifications in WordPress with OneSignal
  • Infographic: So you have an idea for an app
  • Restoring lost files on a Windows FAT, FAT32, NTFS or Linux EXT, Linux XFS volume with iRecover from diydatarecovery.nl
  • Building faster web apps with google tools and exceed user expectations
  • Why I will never buy a new Apple Laptop until they fix the hardware cooling issues.
  • Telstra promised Fibre to the house (FTTP) when I had FTTN and this is what happened..

Copyright © 2022 · News Pro on Genesis Framework · WordPress · Log in

Some ads on this site use cookies. You can opt-out if of local analytics tracking by scrolling to the bottom of the front page or any article and clicking "You are not opted out. Click here to opt out.". Accept Reject Read More
GDPR, Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT