Moving W3 Total Cache CSS and JS to the footer

By default, W3 Total cache plugin does not provide any option to move CSS files to footer. It places the CSS files at the top of the page which results in render blocking the page. When we test the site on Pagespeed Insights, you will get the suggestion to remove the render blocking CSS and JS files.

Move W3 Total Cache CSS to Footer
Using the W3 Total Cache tag, we can easily move CSS and JS files to the footer by adding following code:

[php]<!– W3TC-include-css –>[/php]

Put above code before wp_footer(), so that our CSS to be loaded prior to our JavaScript files. This will move all Combined and Minified CSS Files to the footer.

Move W3 Total Cache JS to Footer
We can move JS files created by W3 Total Cache easily by choosing manual minify. This is to move JS files by inserting following code to the footer before the closing tag.

[php]<!– W3TC-include-js-head –>[/php]

WooCommerce One Page Checkout

This One Page Checkout extension displays product selection and checkout forms on a single page. Customers can add products to an order (or remove them) and complete payment without leaving the page.  One Page Checkout premium extension is $79 and can be purchase here.

One Page Checkout Features

  • Product Selection + Checkout
  • Curated Products
  • Custom Landing Pages
  • Built-in & Custom Templates

Standard Setup of Must-Have Plugins

1. Akismet

Below is the complete installation and setup of Akismet plugin:

  • Install Akismet plugin to the site
  • Activate and enter the Akismet.com API key
  • Select “Always put spam in the Spam folder for review.” on Strictness option

akismet-settings

2. BackupBuddy

IMPORTANT! Do not setup Backupbuddy if the site is on development server. Setup BackupBuddy plugin on live sites only.

Below is the complete installation and setup of BackupBuddy plugin:

  • Install and activate BackupBuddy plugin to the site
  • Go to the Settings > General Settings and set ImportBuddy password
  • Scroll down to Local Archive Storage Limits then set the age limit number of backups to 150 days
  • Keep 4 full backups and 30 database backup
  • On Schedules Settings, schedule weekly complete backup and daily database backup

backupbuddy-settings-databasebackup

Database Backup

backupbuddy-settings-fullbackup

Full Backup

3. Jetpack

Below is the complete installation and setup of Jetpack plugin:

  • Install and activate Jetpack plugin to the site
  • Click the button on the top right that says “Connect to WordPress.com”
  • Login with your WordPress.com account and click “Authorize Jetpack”

wp-smush-settingsWP Smush Plugin Settings

4. WP Smush Plugin

Below is the complete installation and setup of WP Smush plugin:

  • Install and activate WP Smush Plugin
  • Make sure that all images are smushed and up to date.
  • Go to the Settings and enable automatic smush of the images

wp-smush-settings

5. Google Analytics

  • Access Google Anlytics account
  • Click Admin on main navigation.

google-analytics-step-1

  • Click the admin dropdown then select create new account.

google-analytics-step-2

  • Set account name, website name and website URL the click Get tracking ID button.

google-analytics-step-3

  • Get the tracking ID.

google-analytics-step-4

  • Access WordPress dashboard and install Google Analytics by MonsterInsights plugin
  • Go to Insights > Settings > General.
  • Click Authenticate with your Google account button
  • google-analytics-step-5

  • Paste Google Authentication code
  • google-analytics-step-5

  • Paste Google Authentication code
  • Select the website

6. Search Console

  • Access Google account
  • Go to Google Search Console Dashboard
  • Click add property.

google-console-step-1

  • Select Website as property type and add the www version of the site.

google-console-step-2

  • Next click the Alternate methods to verify the ownership.

google-console-step-3

  • Select HTML tag on the Alternate methods and copy the content value.

google-console-step-4

  • Access the wordpress site and go to Yoast SEO > Dashboard > Webmaster Tools.

google-console-step-5

  • Paste the code to the Google Search Console Field then click Save changes.

google-console-step-6

  • Go back to Google Search Console then click verify.

google-console-step-7

  • A confirmation message must show up then click continue.

google-console-step-8

  • Go back to Google Console and add the non-www version of the site.

google-console-step-9

  • Click the Alternate methods tab, select HTML tag and click verify.

google-console-step-10

  • On the non-www version of the site, click settings icon and select the option Site Settings.

google-console-step-11

  • Select the non-www on Preferred to domain then click Save.

google-console-step-12

7. XML Submission

  • Access WordPress site
  • Go to Yoast SEO > XML Sitemaps > Post types
  • Make sure that the XML sitemap functionality is enabled.

xml-submission-step-1

  • Go to Yoast SEO > XML Sitemaps > General and click the XML Sitemap link.

xml-submission-step-2

  • Get the XML Sitemap link
  • Access Google Console accountm, go to Dashboard > Crawl > Sitemaps.

xml-submission-step-3

  • Click Add/Test Sitemap button.

xml-submission-step-4

  • Paste the XML Sitemap link then click submit.

xml-submission-step-5

8. W3 Total Cache plugin

  • Install and activate W3 Total Cache plugin.
  • Go to Performance > General Settings.

w3-total-cache-step-1

  • Scroll down to Page Cache then check Enable.

w3-total-cache-step-2

  • Scroll down to Browser Cache then check Enable.

w3-total-cache-step-3

  • Click Save Settings & Purge Caches.
  • Go to Performance > Browser Cache > General
  • Make sure this 3 options are checked.

w3-total-cache-step-4

9. Wordfence Security plugin

  • Install and activate Wordfence Security plugin.
  • Go to Wordfence options in the side menu and email address to receive alerts.
  • On Basic options, uncheck Enable Live Traffic View.
  • How does Wordfence get IPs: From the drop-down menu, select “Use PHP’s built in REMOTE_ADDR…”.
  • wordfence-basic-options

  • Under Scans to include, select all options.
  • wordfence-scans-to-include-option

  • On Login Security Options, set the option same as on the screenshot
  • wordfence-login-security-options

10. Monarch plugin

  • Install and activate Monarch plugin.
  • Go Monarch Settings > Social Sharing > Location, then select Inline
  • Go Monarch Settings > Social Sharing > Networks, then add Google, Facebook and Twitter
  • Go Monarch Settings > Social Sharing > Inline, scroll down to post type settings then select Post


  • Access Facebook for Developers account
  • Click Add New App on My Apps button
  • Add Website Title to Display Name field
  • Select approriate category
  • You’ll be redirected to the Dashboard of Apss
  • On Dashboard, click Choose Platform then select Website
  • Scroll down to the page then add Site URL
  • Go back to the App Dashboard then go to Settings > Basic
  • Add the domain to the App Domain field then save changes
  • Go to App Review then select Yes to make the app public
  • Go to Dashboard then get App ID and App Secret key
  • Go to wordpress site, Tools > Monarch Settings then add the
  • App ID and App Secret key
  • Facebook Authentication
    Facebook Authentication
    Facebook Authentication
    Facebook Authentication
    Facebook Authentication
    Facebook Authentication
    Facebook Authentication
    Facebook Authentication

11. AMP and Yoast SEO AMP glue plugin

  • Install & activate the AMP plugin and see what the AMP pages look like by adding /amp to the end of each posts.
  • Install & activate Yoast SEO AMP glue plugin.
  • Go to the SEO > AMP settings menu, design tab, and change the styling to fit website brand.

Gravity Forms: Hide labels

If you want to add an option to hide field labels on a field by field basis, simply add the following line of code to your themes (functions.php).

[php]add_filter( ‘gform_enable_field_label_visibility_settings’, ‘__return_true’ );[/php]

Gravity Forms: Allow field to be populated dynamically

Passing Data by Setting up Confirmation page

Screenshot: http://prnt.sc/c3utyo

Passing Data by Query String

You can pre-populate a field via the query string by appending the dynamic population parameter you specified for the field to the end of your form URL along with your custom value.

http://siteurl.com/form-url/?your_parameter=value

Passing Data by Shortcode

You can pre-populate a field via the Gravity Forms shortcode by adding the field_values parameter.

[gravityforms id=”1″ field_values=”parameter_name=val&parameter_name2=val”]

Wordfence Security Basic Installation

Step 1: Wordfence Installation

  • Install Wordfence Security automatically or by uploading the ZIP file.
  • Activate the security plugin through the ‘Plugins’ menu in WordPress.
  • Wordfence WordPress Security is now activated.

Step 2: Wordfence Default Configuration

  • Go to Wordfence > Options
  • Add the Wordfence Token to import Wordfence default settings (see below)
  • Click Import Settings button

Screenshot: http://screencast.com/t/tepGKJQYOl

Step 3: Wordfence Scan

  • Go to Wordfence > Scan
  • Click Start a Wordfence Scan button
  • Fix the issues
  • Make sure that no more issues on the site

Screenshot: http://screencast.com/t/ld0fOMynCP | http://screencast.com/t/cf7ihyZY4

Wordfence Token: 784162a067cc4876c8e590c97e6e07f09290275de4b7ca93209b72e9bd6899a066feca1ec70089ebe5ec128712019ccf8f337e11c8a54343b2cc22f395ba28ab