In case you have thousands of listings in WPESTATE or WPRESIDENCE themes

In case you have thousands of listings in one of our themes:

1. You need a least a shared server (recommendation is to have a dedicated machine) with some good support from the hosting provider. The $10-$20 solutions on Bluehost or Godaddy will not work. Also many providers apply serious limitations to such hosting packages.

2. WordPress with our theme would keep without problems several thousands listings. The only bottle neck and this could slower your site is the Google Maps. More exactly is the way gather all the info for the pins.

Basically we need to go trough each property listing and get all that info (name, picture, size, category, address etc). So, first, make sure these details exist for your properties.

Even with all setting right, you may need to optimize how Google Maps gets all the info. In this case there are these solutions:

a) limit the number of the pins that appear on the map. The number depends on the server power. We have clients that are doing just fine with 2-3k pins over map, but depends on the server. The modifications are very simple and effective. See below:

wpestate libs/pin-managment

in function listing_pins


$args = array(
'post_type' => 'estate_property',
'nopaging' => 'true',
'meta_query' => $meta_query,
);

replace with


$args = array(
'post_type' => 'estate_property',
'posts_per_page' => 500
'meta_query' => $meta_query,
);

500 is the no of pins
$args should be replaced 2 times
——————————-
wp residence libs / pin-managment
in function wpestate_listing_pins


$args = array(
'post_type' => 'estate_property',

‘post_status’ => ‘publish’,
‘nopaging’ => ‘true’
);

replace with


$args = array(
'post_type' => 'estate_property',
'posts_per_page' => 500
'meta_query' => $meta_query,
);

500 is the no of pins
$args should be replaced 2 times

———–

b) switch to a system that will save all property info into a file and make Google maps read directly from file.  This is a little complicated and involves having knowledge of php and javascript.

3.  In the end you also need to check your third party plugins. Many of the them can dramatically decrease your site speed.

For example only WPML will make 3 times more requests to the database that any of our themes theme. So many requests can make your site get slower.

———

For Server Settings there are some things you can try on your own and they will help too:

a.  You can use a caching plugin. We recommend WP FASTEST CACHING as it already has minify option. https://wordpress.org/plugins/wp-fastest-cache/ 

b. Optimize images using Gimp (free software ).

c. Set server cache. This has to be done by each person in htaccess file.

Make sure you have something like this in httacess. You need to double check and match this with the files you have on your set-up. And you need to make sure server settings support this (not all do because of restrictions set on server side)

# Insert filters
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml
# Drop problematic browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Make sure proxies don’t deliver the wrong content
Header append Vary User-Agent env=!dont-vary

## EXPIRES CACHING ##

ExpiresActive On
ExpiresByType image/jpg “access 1 year”
ExpiresByType image/jpeg “access 1 year”
ExpiresByType image/gif “access 1 year”
ExpiresByType image/png “access 1 year”
ExpiresByType text/css “access 1 month”
ExpiresByType text/html “access 1 month”
ExpiresByType application/pdf “access 1 month”
ExpiresByType text/x-javascript “access 1 month”
ExpiresByType application/x-shockwave-flash “access 1 month”
ExpiresByType image/x-icon “access 1 year”
ExpiresDefault “access 1 month”

## EXPIRES CACHING ##