FatBee
Elite Member
- Apr 4, 2015
- 3,146
- 3,098
If there was a real free alternative we would know it by nowThis works for sure but.... do you have a really free alternative?
If there was a real free alternative we would know it by nowThis works for sure but.... do you have a really free alternative?
BEST WAY I'VE READ ON HOW TO SCREW UP YOUR WEBSITE...THANKS FOR THATI will try to keep this simple and quick as possible. So let's go!
Starting Point:
View attachment 134667
View attachment 134668
View attachment 134669
Details about the page:
- Namecheap Stellar Business (don't judge me, my Stellar Plus was turning shit so I manage to get $25 off on top of their active promotion, so grabbing this for $26~ a year is great!)
- Medium Size Theme (Almost LIGHT but not really)
- Running 16 Plugins
- 5 Posts as of now.
- All tests are performed on the homepage.
LET'S GO!
- WPRocket
I would highly suggest running WPRocket The plugin is a killer!
I wouldn't go with complete set up for this one cause for some users my settings might be conflicting.
USE CLOUDFLARE (At least, Cloudflare is what I use.)
I will focus on Prefetch DNS Requests.
You can reduce latency by setting DNS Lookups to perform in the background with DNS prefetching
You can set this for assets such as Google Analytics, Font Awesome, Google Fonts, and others.
You can use https://prefetch.xyz/ too see where your website is sending requests, but if this fails for you (cause it did for me and its missing at least a few more here is a full list, compare it to your website and add what you need.)
Code://maps.googleapis.com //maps.gstatic.com //fonts.googleapis.com //fonts.gstatic.com //ajax.googleapis.com //apis.google.com //google-analytics.com //www.google-analytics.com //ssl.google-analytics.com //youtube.com //api.pinterest.com //cdnjs.cloudflare.com //pixel.wp.com //connect.facebook.net //platform.twitter.com //syndication.twitter.com //platform.instagram.com //disqus.com //sitename.disqus.com //s7.addthis.com //platform.linkedin.com //w.sharethis.com //s0.wp.com //s1.wp.com //s2.wp.com //s.gravatar.com //stats.wp.com //www.googletagmanager.com //www.googletagservices.com //adservice.google.com //pagead2.googlesyndication.com //tpc.googlesyndication.com //bp.blogspot.com //1.bp.blogspot.com //2.bp.blogspot.com //3.bp.blogspot.com //4.bp.blogspot.com //ajax.microsoft.com //ajax.aspnetcdn.com //s3.amazonaws.com //code.jquery.com //stackpath.bootstrapcdn.com //use.fontawesome.com //player.vimeo.com //github.githubassets.com //referrer.disqus.com //c.disquscdn.com //0.gravatar.com //2.gravatar.com //1.gravatar.com //ad.doubleclick.net //googleads.g.doubleclick.net //stats.g.doubleclick.net //cm.g.doubleclick.net //stats.buysellads.com //s3.buysellads.com //fonts.googleapis.com/
As I said before, prefetch.xyz might not show everything, so what you need to do is Open DevTools (F12 on Chrome) and refresh your browser, you will see almost every single request. Cross-check them with the list and make your own, I mean there is no reason to Prefretch buysellads if you don't run buysell ads.
- Imagify
Imagify is a plugin that compresses and convert your images, it's a pretty neat one! Here are the settings that I use.
View attachment 134671
View attachment 134672
Yes, I go with the webp format since its lighter but keeps the quality good and the size waaaaay lower that PNG or JPG can go. This is really optional if you don't like the WEBP just disable it.
- Serve static content from a subdomain. AKA cookie-free domain!
This will greatly reduce the service time of your static content there for the load time will gain boost!
This is a bit technical and I strongly advise to make a backup before proceeding to this.
Let's start with the cPanel (aka subdomain creation)
1. Go to your cPanel > Subdomains > Create a Subdomain
2. I will name the subdomain as static (static.website.tld)
3. Change Document Root to public_html/wp-content
4. if you are using Cloudflare go to your Cloudflare dashboard and add new record A, name it static and point it to your IP.
View attachment 134673
5. Now, look for wp-config.php and insert the following lines
Code:/** Cookie-Free Domain. */ define("WP_CONTENT_URL", "https://static.website.tld"); define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST'] );
I guess I don't need to tell you to change "website.tld" to your domain name.
6. Now you must redirect all the posts to the new subdomain. Simply, run the following command in the SQL Database via phpMyAdmin.
Code:UPDATE wp_posts SET guid = REPLACE(guid,'website.tld/wp-content/','static.website.tld/')View attachment 134679Code:UPDATE wp_posts SET post_content = REPLACE(post_content,'website.tld/wp-content/','static.website.tld/')
7. After completing all of these steps, go to your page and refresh it. See if there is any error.
EXPECTED ERROR: Problem loading web fonts, FontAwesome, etc. due to CORS policies
8. (Fix) I'm using RankMath for this one. But you can edit it directly or with any other plugin that can do it.
Go to your .httaccess file and add the following on the top line.
Code:#CORS FIX <IfModule mod_headers.c> <IfModule mod_rewrite.c> SetEnvIf Origin "http(s)?://(.+\.)?(static.website\.com|website\.com)(:\d{1,5})?$" CORS=$0 Header set Access-Control-Allow-Origin "%{CORS}e" env=CORS Header merge Vary "Origin" </IfModule> </IfModule> #CORS FIX END
Note: Change "website" to your domain name and ".com" to your own TLD.
- Prevent Contact Form 7 from loading on every page.
I don't know why is this, but it happens a lot and what's weird it's not on every WP installations. 3 of 5 of my websites have this issue. This is a pretty simple one.
1. Go to functions.php (public_html/wp-includes)
2. Add the following code on the bottom.
PHP:// Remove contact form 7 add_filter( 'wpcf7_load_js', '__return_false' ); add_filter( 'wpcf7_load_css', '__return_false' ); add_action('wp_enqueue_scripts', 'load_wpcf7_scripts'); function load_wpcf7_scripts() { if ( is_page('contact') ) { if ( function_exists( 'wpcf7_enqueue_scripts' ) ) { wpcf7_enqueue_scripts(); } if ( function_exists( 'wpcf7_enqueue_styles' ) ) { wpcf7_enqueue_styles(); } } }
If you have CF7 on multiple pages, change " if ( is_page('contact') ) {" to "if ( is_page('contact|page1|page2|page3') ) {"
- Remove version entirely from the source files
WPRocket should do the job with this, but if you have css/js files that are excluded WPRocket won't touche them in any way, so this one is coming in handy to those files.
1. Go to functions.php (public_html/wp-includes)
2. Add the following code on the bottom.
Code:// Remove version entirely from the source files function sh_remove_ver_css_js( $src_file ) { if ( strpos( $src_file, 'ver=' ) ) $src_file = remove_query_arg( 'ver', $src_file ); return $src_file; } add_filter( 'style_loader_src', 'sh_remove_ver_css_js', 9999 ); add_filter( 'script_loader_src', 'sh_remove_ver_css_js', 9999 );
Time for results after doing all these simple neat tricks that are done in 10 Minutes after doing it a few times.
View attachment 134686
View attachment 134687
View attachment 134688
Thats it folks.
There is huge red notice, i assume you got cooked at the cookie free domain part :vBEST WAY I'VE READ ON HOW TO SCREW UP YOUR WEBSITE...THANKS FOR THAT
@Topiano it indeed needs rewriting, retesting and introducing new stuff, its been 3 years since i wrote this, and sadly i lost my small blog dedicated to this which was updated for like 2 years since this article :/
Hey @FatBee,
Thanks a lot for the writeup. I need a little help though. I'm facing issues after installing the WP Rocket plugin that Deleted member 752298 shared a few months back and following the steps you mentioned in this article.
https://www.blackhatworld.com/seo/get-wp-rocket-for-free-with-infinite-activations-worth-249.1224866/post-18040450
I'm getting Access-Control-Allow-Origin Missing Header error for the following three fonts.
https://static.scentedmeadow.com/plugins/elementor/assets/lib/eicons/fonts/eicons.woff2?5.31.0
https://static.scentedmeadow.com/plugins/elementor/assets/lib/eicons/fonts/eicons.woff?5.31.0
https://static.scentedmeadow.com/plugins/elementor/assets/lib/eicons/fonts/eicons.ttf?5.31.0
I don't think I missed any step from your article, I could be wrong though...
I've already tried clearing the cache in WP Rocket and Bunny CDN, but to no avail. Any help with the CORs blocking fonts and page speed would be highly appreciated.
Site URL: https://scentedmeadow.com/
Good guide. I will need this when I update my wordpress site.I will try to keep this simple and quick as possible. So let's go!
Starting Point:
View attachment 134667
View attachment 134668
View attachment 134669
Details about the page:
- Namecheap Stellar Business (don't judge me, my Stellar Plus was turning shit so I manage to get $25 off on top of their active promotion, so grabbing this for $26~ a year is great!)
- Medium Size Theme (Almost LIGHT but not really)
- Running 16 Plugins
- 5 Posts as of now.
- All tests are performed on the homepage.
LET'S GO!
- WPRocket
I would highly suggest running WPRocket The plugin is a killer!
I wouldn't go with complete set up for this one cause for some users my settings might be conflicting.
USE CLOUDFLARE (At least, Cloudflare is what I use.)
I will focus on Prefetch DNS Requests.
You can reduce latency by setting DNS Lookups to perform in the background with DNS prefetching
You can set this for assets such as Google Analytics, Font Awesome, Google Fonts, and others.
You can use https://prefetch.xyz/ too see where your website is sending requests, but if this fails for you (cause it did for me and its missing at least a few more here is a full list, compare it to your website and add what you need.)
Code://maps.googleapis.com //maps.gstatic.com //fonts.googleapis.com //fonts.gstatic.com //ajax.googleapis.com //apis.google.com //google-analytics.com //www.google-analytics.com //ssl.google-analytics.com //youtube.com //api.pinterest.com //cdnjs.cloudflare.com //pixel.wp.com //connect.facebook.net //platform.twitter.com //syndication.twitter.com //platform.instagram.com //disqus.com //sitename.disqus.com //s7.addthis.com //platform.linkedin.com //w.sharethis.com //s0.wp.com //s1.wp.com //s2.wp.com //s.gravatar.com //stats.wp.com //www.googletagmanager.com //www.googletagservices.com //adservice.google.com //pagead2.googlesyndication.com //tpc.googlesyndication.com //bp.blogspot.com //1.bp.blogspot.com //2.bp.blogspot.com //3.bp.blogspot.com //4.bp.blogspot.com //ajax.microsoft.com //ajax.aspnetcdn.com //s3.amazonaws.com //code.jquery.com //stackpath.bootstrapcdn.com //use.fontawesome.com //player.vimeo.com //github.githubassets.com //referrer.disqus.com //c.disquscdn.com //0.gravatar.com //2.gravatar.com //1.gravatar.com //ad.doubleclick.net //googleads.g.doubleclick.net //stats.g.doubleclick.net //cm.g.doubleclick.net //stats.buysellads.com //s3.buysellads.com //fonts.googleapis.com/
As I said before, prefetch.xyz might not show everything, so what you need to do is Open DevTools (F12 on Chrome) and refresh your browser, you will see almost every single request. Cross-check them with the list and make your own, I mean there is no reason to Prefretch buysellads if you don't run buysell ads.
- Imagify
Imagify is a plugin that compresses and convert your images, it's a pretty neat one! Here are the settings that I use.
View attachment 134671
View attachment 134672
Yes, I go with the webp format since its lighter but keeps the quality good and the size waaaaay lower that PNG or JPG can go. This is really optional if you don't like the WEBP just disable it.
- Serve static content from a subdomain. AKA cookie-free domain!
This will greatly reduce the service time of your static content there for the load time will gain boost!
This is a bit technical and I strongly advise to make a backup before proceeding to this.
Let's start with the cPanel (aka subdomain creation)
1. Go to your cPanel > Subdomains > Create a Subdomain
2. I will name the subdomain as static (static.website.tld)
3. Change Document Root to public_html/wp-content
4. if you are using Cloudflare go to your Cloudflare dashboard and add new record A, name it static and point it to your IP.
View attachment 134673
5. Now, look for wp-config.php and insert the following lines
Code:/** Cookie-Free Domain. */ define("WP_CONTENT_URL", "https://static.website.tld"); define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST'] );
I guess I don't need to tell you to change "website.tld" to your domain name.
6. Now you must redirect all the posts to the new subdomain. Simply, run the following command in the SQL Database via phpMyAdmin.
Code:UPDATE wp_posts SET guid = REPLACE(guid,'website.tld/wp-content/','static.website.tld/')View attachment 134679Code:UPDATE wp_posts SET post_content = REPLACE(post_content,'website.tld/wp-content/','static.website.tld/')
7. After completing all of these steps, go to your page and refresh it. See if there is any error.
EXPECTED ERROR: Problem loading web fonts, FontAwesome, etc. due to CORS policies
8. (Fix) I'm using RankMath for this one. But you can edit it directly or with any other plugin that can do it.
Go to your .httaccess file and add the following on the top line.
Code:#CORS FIX <IfModule mod_headers.c> <IfModule mod_rewrite.c> SetEnvIf Origin "http(s)?://(.+\.)?(static.website\.com|website\.com)(:\d{1,5})?$" CORS=$0 Header set Access-Control-Allow-Origin "%{CORS}e" env=CORS Header merge Vary "Origin" </IfModule> </IfModule> #CORS FIX END
Note: Change "website" to your domain name and ".com" to your own TLD.
- Prevent Contact Form 7 from loading on every page.
I don't know why is this, but it happens a lot and what's weird it's not on every WP installations. 3 of 5 of my websites have this issue. This is a pretty simple one.
1. Go to functions.php (public_html/wp-includes)
2. Add the following code on the bottom.
PHP:// Remove contact form 7 add_filter( 'wpcf7_load_js', '__return_false' ); add_filter( 'wpcf7_load_css', '__return_false' ); add_action('wp_enqueue_scripts', 'load_wpcf7_scripts'); function load_wpcf7_scripts() { if ( is_page('contact') ) { if ( function_exists( 'wpcf7_enqueue_scripts' ) ) { wpcf7_enqueue_scripts(); } if ( function_exists( 'wpcf7_enqueue_styles' ) ) { wpcf7_enqueue_styles(); } } }
If you have CF7 on multiple pages, change " if ( is_page('contact') ) {" to "if ( is_page('contact|page1|page2|page3') ) {"
- Remove version entirely from the source files
WPRocket should do the job with this, but if you have css/js files that are excluded WPRocket won't touche them in any way, so this one is coming in handy to those files.
1. Go to functions.php (public_html/wp-includes)
2. Add the following code on the bottom.
Code:// Remove version entirely from the source files function sh_remove_ver_css_js( $src_file ) { if ( strpos( $src_file, 'ver=' ) ) $src_file = remove_query_arg( 'ver', $src_file ); return $src_file; } add_filter( 'style_loader_src', 'sh_remove_ver_css_js', 9999 ); add_filter( 'script_loader_src', 'sh_remove_ver_css_js', 9999 );
Time for results after doing all these simple neat tricks that are done in 10 Minutes after doing it a few times.
View attachment 134686
View attachment 134687
View attachment 134688
Thats it folks.
Any particular reason for using FlyingPress over WP Rocket? I'm asking regardless of the guide here, I'm just trying to find the best caching plugin for my own website.For people who can’t or don’t have a server with ssh/root access I recommend using flying press plugin for Wordpress. Config after install is less than 5 minutes. Unless @FatBee updates this, try flying press plugin.
Flying press does static html pages via php, hosts 3rd party fonts locally, does everything you need it to with html, css, js. Configuration is simple it’s mostly configured out of the box. Subscription price is fair.Any particular reason for using FlyingPress over WP Rocket? I'm asking regardless of the guide here, I'm just trying to find the best caching plugin for my own website.
I'm having a problem optimizing the featured image for the article. If I save the image directly, the website will take up more space. I use a plugin to select the featured image from the URL, but when accessing it by phone, the featured image is very blurry. Compared to the article where I save the featured image directly on the website, I don't know if there is a way to compress the featured image when saving directly on the website hosting or use a plugin to help the featured image look clearer and not broken when using the featured image from the URL.I will try to keep this simple and quick as possible. So let's go!
Starting Point:
View attachment 134667
View attachment 134668
View attachment 134669
Details about the page:
- Namecheap Stellar Business (don't judge me, my Stellar Plus was turning shit so I manage to get $25 off on top of their active promotion, so grabbing this for $26~ a year is great!)
- Medium Size Theme (Almost LIGHT but not really)
- Running 16 Plugins
- 5 Posts as of now.
- All tests are performed on the homepage.
LET'S GO!
- WPRocket
I would highly suggest running WPRocket The plugin is a killer!
I wouldn't go with complete set up for this one cause for some users my settings might be conflicting.
USE CLOUDFLARE (At least, Cloudflare is what I use.)
I will focus on Prefetch DNS Requests.
You can reduce latency by setting DNS Lookups to perform in the background with DNS prefetching
You can set this for assets such as Google Analytics, Font Awesome, Google Fonts, and others.
You can use https://prefetch.xyz/ too see where your website is sending requests, but if this fails for you (cause it did for me and its missing at least a few more here is a full list, compare it to your website and add what you need.)
Code://maps.googleapis.com //maps.gstatic.com //fonts.googleapis.com //fonts.gstatic.com //ajax.googleapis.com //apis.google.com //google-analytics.com //www.google-analytics.com //ssl.google-analytics.com //youtube.com //api.pinterest.com //cdnjs.cloudflare.com //pixel.wp.com //connect.facebook.net //platform.twitter.com //syndication.twitter.com //platform.instagram.com //disqus.com //sitename.disqus.com //s7.addthis.com //platform.linkedin.com //w.sharethis.com //s0.wp.com //s1.wp.com //s2.wp.com //s.gravatar.com //stats.wp.com //www.googletagmanager.com //www.googletagservices.com //adservice.google.com //pagead2.googlesyndication.com //tpc.googlesyndication.com //bp.blogspot.com //1.bp.blogspot.com //2.bp.blogspot.com //3.bp.blogspot.com //4.bp.blogspot.com //ajax.microsoft.com //ajax.aspnetcdn.com //s3.amazonaws.com //code.jquery.com //stackpath.bootstrapcdn.com //use.fontawesome.com //player.vimeo.com //github.githubassets.com //referrer.disqus.com //c.disquscdn.com //0.gravatar.com //2.gravatar.com //1.gravatar.com //ad.doubleclick.net //googleads.g.doubleclick.net //stats.g.doubleclick.net //cm.g.doubleclick.net //stats.buysellads.com //s3.buysellads.com //fonts.googleapis.com/
As I said before, prefetch.xyz might not show everything, so what you need to do is Open DevTools (F12 on Chrome) and refresh your browser, you will see almost every single request. Cross-check them with the list and make your own, I mean there is no reason to Prefretch buysellads if you don't run buysell ads.
- Imagify
Imagify is a plugin that compresses and convert your images, it's a pretty neat one! Here are the settings that I use.
View attachment 134671
View attachment 134672
Yes, I go with the webp format since its lighter but keeps the quality good and the size waaaaay lower that PNG or JPG can go. This is really optional if you don't like the WEBP just disable it.
- Serve static content from a subdomain. AKA cookie-free domain!
This will greatly reduce the service time of your static content there for the load time will gain boost!
This is a bit technical and I strongly advise to make a backup before proceeding to this.
Let's start with the cPanel (aka subdomain creation)
1. Go to your cPanel > Subdomains > Create a Subdomain
2. I will name the subdomain as static (static.website.tld)
3. Change Document Root to public_html/wp-content
4. if you are using Cloudflare go to your Cloudflare dashboard and add new record A, name it static and point it to your IP.
View attachment 134673
5. Now, look for wp-config.php and insert the following lines
Code:/** Cookie-Free Domain. */ define("WP_CONTENT_URL", "https://static.website.tld"); define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST'] );
I guess I don't need to tell you to change "website.tld" to your domain name.
6. Now you must redirect all the posts to the new subdomain. Simply, run the following command in the SQL Database via phpMyAdmin.
Code:UPDATE wp_posts SET guid = REPLACE(guid,'website.tld/wp-content/','static.website.tld/')View attachment 134679Code:UPDATE wp_posts SET post_content = REPLACE(post_content,'website.tld/wp-content/','static.website.tld/')
7. After completing all of these steps, go to your page and refresh it. See if there is any error.
EXPECTED ERROR: Problem loading web fonts, FontAwesome, etc. due to CORS policies
8. (Fix) I'm using RankMath for this one. But you can edit it directly or with any other plugin that can do it.
Go to your .httaccess file and add the following on the top line.
Code:#CORS FIX <IfModule mod_headers.c> <IfModule mod_rewrite.c> SetEnvIf Origin "http(s)?://(.+\.)?(static.website\.com|website\.com)(:\d{1,5})?$" CORS=$0 Header set Access-Control-Allow-Origin "%{CORS}e" env=CORS Header merge Vary "Origin" </IfModule> </IfModule> #CORS FIX END
Note: Change "website" to your domain name and ".com" to your own TLD.
- Prevent Contact Form 7 from loading on every page.
I don't know why is this, but it happens a lot and what's weird it's not on every WP installations. 3 of 5 of my websites have this issue. This is a pretty simple one.
1. Go to functions.php (public_html/wp-includes)
2. Add the following code on the bottom.
PHP:// Remove contact form 7 add_filter( 'wpcf7_load_js', '__return_false' ); add_filter( 'wpcf7_load_css', '__return_false' ); add_action('wp_enqueue_scripts', 'load_wpcf7_scripts'); function load_wpcf7_scripts() { if ( is_page('contact') ) { if ( function_exists( 'wpcf7_enqueue_scripts' ) ) { wpcf7_enqueue_scripts(); } if ( function_exists( 'wpcf7_enqueue_styles' ) ) { wpcf7_enqueue_styles(); } } }
If you have CF7 on multiple pages, change " if ( is_page('contact') ) {" to "if ( is_page('contact|page1|page2|page3') ) {"
- Remove version entirely from the source files
WPRocket should do the job with this, but if you have css/js files that are excluded WPRocket won't touche them in any way, so this one is coming in handy to those files.
1. Go to functions.php (public_html/wp-includes)
2. Add the following code on the bottom.
Code:// Remove version entirely from the source files function sh_remove_ver_css_js( $src_file ) { if ( strpos( $src_file, 'ver=' ) ) $src_file = remove_query_arg( 'ver', $src_file ); return $src_file; } add_filter( 'style_loader_src', 'sh_remove_ver_css_js', 9999 ); add_filter( 'script_loader_src', 'sh_remove_ver_css_js', 9999 );
Time for results after doing all these simple neat tricks that are done in 10 Minutes after doing it a few times.
View attachment 134686
View attachment 134687
View attachment 134688
Thats it folks.