Slow Wordpress

Status
Not open for further replies.

ntsite

Member
Messages
135
Reaction score
1
Points
18
Hello. I am on server Xo1.
My website main page opens smoothly. But when I pass to WordPress section website works very slowly, sluggish. Why it is like that?
 

lylex10h

Active Member
Messages
982
Reaction score
71
Points
28
I was going to write a long post on this but here's the short of it:
Install W3 Total Cache with the configuration file at http://kolbys.net/w3tc.json and use the following code in .htaccess
Code:
# BEGIN W3TC Browser Cache
<IfModule mod_mime.c>
    AddType text/css .css
    AddType text/x-component .htc
    AddType application/x-javascript .js
    AddType application/javascript .js2
    AddType text/javascript .js3
    AddType text/x-js .js4
    AddType text/html .html .htm
    AddType text/richtext .rtf .rtx
    AddType image/svg+xml .svg
    AddType text/plain .txt
    AddType text/xsd .xsd
    AddType text/xsl .xsl
    AddType text/xml .xml
    AddType video/asf .asf .asx .wax .wmv .wmx
    AddType video/avi .avi
    AddType image/bmp .bmp
    AddType application/java .class
    AddType video/divx .divx
    AddType application/msword .doc .docx
    AddType application/vnd.ms-fontobject .eot
    AddType application/x-msdownload .exe
    AddType image/gif .gif
    AddType application/x-gzip .gz .gzip
    AddType image/x-icon .ico
    AddType image/jpeg .jpg .jpeg .jpe
    AddType image/webp .webp
    AddType application/json .json
    AddType application/vnd.ms-access .mdb
    AddType audio/midi .mid .midi
    AddType video/quicktime .mov .qt
    AddType audio/mpeg .mp3 .m4a
    AddType video/mp4 .mp4 .m4v
    AddType video/mpeg .mpeg .mpg .mpe
    AddType application/vnd.ms-project .mpp
    AddType application/x-font-otf .otf
    AddType application/vnd.ms-opentype ._otf
    AddType application/vnd.oasis.opendocument.database .odb
    AddType application/vnd.oasis.opendocument.chart .odc
    AddType application/vnd.oasis.opendocument.formula .odf
    AddType application/vnd.oasis.opendocument.graphics .odg
    AddType application/vnd.oasis.opendocument.presentation .odp
    AddType application/vnd.oasis.opendocument.spreadsheet .ods
    AddType application/vnd.oasis.opendocument.text .odt
    AddType audio/ogg .ogg
    AddType application/pdf .pdf
    AddType image/png .png
    AddType application/vnd.ms-powerpoint .pot .pps .ppt .pptx
    AddType audio/x-realaudio .ra .ram
    AddType image/svg+xml .svg .svgz
    AddType application/x-shockwave-flash .swf
    AddType application/x-tar .tar
    AddType image/tiff .tif .tiff
    AddType application/x-font-ttf .ttf .ttc
    AddType application/vnd.ms-opentype ._ttf
    AddType audio/wav .wav
    AddType audio/wma .wma
    AddType application/vnd.ms-write .wri
    AddType application/font-woff .woff
    AddType application/font-woff2 .woff2
    AddType application/vnd.ms-excel .xla .xls .xlsx .xlt .xlw
    AddType application/zip .zip
</IfModule>
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/css A31536000
    ExpiresByType text/x-component A31536000
    ExpiresByType application/x-javascript A31536000
    ExpiresByType application/javascript A31536000
    ExpiresByType text/javascript A31536000
    ExpiresByType text/x-js A31536000
    ExpiresByType text/html A3600
    ExpiresByType text/richtext A3600
    ExpiresByType image/svg+xml A3600
    ExpiresByType text/plain A3600
    ExpiresByType text/xsd A3600
    ExpiresByType text/xsl A3600
    ExpiresByType text/xml A3600
    ExpiresByType video/asf A604800
    ExpiresByType video/avi A604800
    ExpiresByType image/bmp A604800
    ExpiresByType application/java A604800
    ExpiresByType video/divx A604800
    ExpiresByType application/msword A604800
    ExpiresByType application/vnd.ms-fontobject A604800
    ExpiresByType application/x-msdownload A604800
    ExpiresByType image/gif A604800
    ExpiresByType application/x-gzip A604800
    ExpiresByType image/x-icon A604800
    ExpiresByType image/jpeg A604800
    ExpiresByType image/webp A604800
    ExpiresByType application/json A604800
    ExpiresByType application/vnd.ms-access A604800
    ExpiresByType audio/midi A604800
    ExpiresByType video/quicktime A604800
    ExpiresByType audio/mpeg A604800
    ExpiresByType video/mp4 A604800
    ExpiresByType video/mpeg A604800
    ExpiresByType application/vnd.ms-project A604800
    ExpiresByType application/x-font-otf A604800
    ExpiresByType application/vnd.ms-opentype A604800
    ExpiresByType application/vnd.oasis.opendocument.database A604800
    ExpiresByType application/vnd.oasis.opendocument.chart A604800
    ExpiresByType application/vnd.oasis.opendocument.formula A604800
    ExpiresByType application/vnd.oasis.opendocument.graphics A604800
    ExpiresByType application/vnd.oasis.opendocument.presentation A604800
    ExpiresByType application/vnd.oasis.opendocument.spreadsheet A604800
    ExpiresByType application/vnd.oasis.opendocument.text A604800
    ExpiresByType audio/ogg A604800
    ExpiresByType application/pdf A604800
    ExpiresByType image/png A604800
    ExpiresByType application/vnd.ms-powerpoint A604800
    ExpiresByType audio/x-realaudio A604800
    ExpiresByType image/svg+xml A604800
    ExpiresByType application/x-shockwave-flash A604800
    ExpiresByType application/x-tar A604800
    ExpiresByType image/tiff A604800
    ExpiresByType application/x-font-ttf A604800
    ExpiresByType application/vnd.ms-opentype A604800
    ExpiresByType audio/wav A604800
    ExpiresByType audio/wma A604800
    ExpiresByType application/vnd.ms-write A604800
    ExpiresByType application/font-woff A604800
    ExpiresByType application/font-woff2 A604800
    ExpiresByType application/vnd.ms-excel A604800
    ExpiresByType application/zip A604800
</IfModule>
<IfModule mod_deflate.c>
    <IfModule mod_setenvif.c>
        BrowserMatch ^Mozilla/4 gzip-only-text/html
        BrowserMatch ^Mozilla/4\.0[678] no-gzip
        BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
        BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
    </IfModule>
        AddOutputFilterByType DEFLATE text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/bmp application/java application/msword application/vnd.ms-fontobject application/x-msdownload image/x-icon image/webp application/json application/vnd.ms-access application/vnd.ms-project application/x-font-otf application/vnd.ms-opentype application/vnd.oasis.opendocument.database application/vnd.oasis.opendocument.chart application/vnd.oasis.opendocument.formula application/vnd.oasis.opendocument.graphics application/vnd.oasis.opendocument.presentation application/vnd.oasis.opendocument.spreadsheet application/vnd.oasis.opendocument.text audio/ogg application/pdf application/vnd.ms-powerpoint image/svg+xml application/x-shockwave-flash image/tiff application/x-font-ttf application/vnd.ms-opentype audio/wav application/vnd.ms-write application/font-woff application/font-woff2 application/vnd.ms-excel
    <IfModule mod_mime.c>
        # DEFLATE by extension
        AddOutputFilter DEFLATE js css htm html xml
    </IfModule>
</IfModule>
<FilesMatch "\.(css|htc|less|js|js2|js3|js4|CSS|HTC|LESS|JS|JS2|JS3|JS4)$">
    FileETag MTime Size
    <IfModule mod_headers.c>
        Header set Pragma "public"
        Header append Cache-Control "public"
         Header unset Set-Cookie
    </IfModule>
</FilesMatch>
<FilesMatch "\.(html|htm|rtf|rtx|svg|txt|xsd|xsl|xml|HTML|HTM|RTF|RTX|SVG|TXT|XSD|XSL|XML)$">
    FileETag MTime Size
    <IfModule mod_headers.c>
        Header append Vary User-Agent env=!dont-vary
        Header set Pragma "public"
        Header append Cache-Control "public"
    </IfModule>
</FilesMatch>
<FilesMatch "\.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|webp|json|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|_otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|_ttf|wav|wma|wri|woff|woff2|xla|xls|xlsx|xlt|xlw|zip|ASF|ASX|WAX|WMV|WMX|AVI|BMP|CLASS|DIVX|DOC|DOCX|EOT|EXE|GIF|GZ|GZIP|ICO|JPG|JPEG|JPE|WEBP|JSON|MDB|MID|MIDI|MOV|QT|MP3|M4A|MP4|M4V|MPEG|MPG|MPE|MPP|OTF|_OTF|ODB|ODC|ODF|ODG|ODP|ODS|ODT|OGG|PDF|PNG|POT|PPS|PPT|PPTX|RA|RAM|SVG|SVGZ|SWF|TAR|TIF|TIFF|TTF|TTC|_TTF|WAV|WMA|WRI|WOFF|WOFF2|XLA|XLS|XLSX|XLT|XLW|ZIP)$">
    FileETag MTime Size
    <IfModule mod_headers.c>
        Header set Pragma "public"
        Header append Cache-Control "public"
         Header unset Set-Cookie
    </IfModule>
</FilesMatch>
<FilesMatch "\.(bmp|class|doc|docx|eot|exe|ico|webp|json|mdb|mpp|otf|_otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|pot|pps|ppt|pptx|svg|svgz|swf|tif|tiff|ttf|ttc|_ttf|wav|wri|woff|woff2|xla|xls|xlsx|xlt|xlw|BMP|CLASS|DOC|DOCX|EOT|EXE|ICO|WEBP|JSON|MDB|MPP|OTF|_OTF|ODB|ODC|ODF|ODG|ODP|ODS|ODT|OGG|PDF|POT|PPS|PPT|PPTX|SVG|SVGZ|SWF|TIF|TIFF|TTF|TTC|_TTF|WAV|WRI|WOFF|WOFF2|XLA|XLS|XLSX|XLT|XLW)$">
    FileETag None
    <IfModule mod_headers.c>
         Header unset ETag
         Header unset Last-Modified
    </IfModule>
</FilesMatch>
# END W3TC Browser Cache
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

<IfModule mod_headers.c>
  <FilesMatch "\.(js|css|xml|gz)$">
    Header append Vary: Accept-Encoding
  </FilesMatch>
</IfModule>

<IfModule mod_deflate.c>
    #The following line is enough for .js and .css
    AddOutputFilter DEFLATE js css woff

    #The following line also enables compression by file content type, for the following list of Content-Types:
    AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml text/javascript application/javascript

    #The following lines are to avoid bugs with some browsers
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
 

ntsite

Member
Messages
135
Reaction score
1
Points
18
Thank you for response. Should Wordpress work sluggishly without this configuration?
 

essellar

Community Advocate
Community Support
Messages
3,295
Reaction score
227
Points
63
"Sluggish" is relative, but yes, WordPress is rather bigger and slower than a custom program that does whatever your site winds up doing would be, and by a large margin. That's the price you pay for something that's as flexible as WP - a lot of efficiency is sacrificed so that you can inject extra functionality with plugins and templates and so forth, so once you have it set up the way you want it, you need to use something else (like WP Total Cache) to make up for that flexibility. You could develop a custom solution that's on the order of a hundred times faster (on the server, that is, not necessarily in the browser), but there's be considerably more to making changes than simply swapping themes or installing a widget.
 

lylex10h

Active Member
Messages
982
Reaction score
71
Points
28
A few more tips
  • Use PHP 7
  • Deactivate/delete any plugins you do not use
  • Only have 2 themes installed; your theme and a fallback theme such as Twenty Seventeen.
  • Optimize tables in your database to remove overhead (use phpMyAdmin)
 

ntsite

Member
Messages
135
Reaction score
1
Points
18
Thank you for tips. My mention about "slowness" is not considering slight difference,but considerably slower - which opens a page after 60-80 seconds. That is not in normal range. And I don't create bunch of post, pages, DB tables frequently to reason the speed regarding mess. The only thing I have done during one last year - only update single page content. And as mentioned above - opening a page 1-2 minutes after the request is not normal situation.

One thing to note after my last edit - has been passed only 2-3 weeks. At that time everything was working OK. Now it is a disaster.
 

twelvetw

New Member
Messages
4
Reaction score
0
Points
1
Same issue here. It was working fine now it's unusable. 2-3 minutes to load the site. Perhaps a database server issue as PHPMyAdmin is extremely slow to do anything.

[EDIT] Looking at things in the control panel it keeps changing between MySQL being offline and online.

Error while connecting to MySQL: (XID cyhnrn) Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 0.00 MB None
Error while connecting to MySQL: (XID cyhnrn) Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) at /usr/local/cpanel/Cpanel/Mysql.pm line 181.
 
Last edited:

ntsite

Member
Messages
135
Reaction score
1
Points
18
Hello. I also considered that slowness might be cause Mysql issue.

Now DB is totally out of order - shows "Error establishing database connection".
 

lylex10h

Active Member
Messages
982
Reaction score
71
Points
28
Unfortunately "Error Establishing Database Connection" is a very generic error. It tells you there is a problem, but not what the problem is, such as the Check Engine light in your car. So create a .php file with the following code:

PHP:
<?php

$link = @mysqli_connect('localhost', 'DB_USER', 'DB_PASSWORD');
if(!$link) {
    die('failed to connect to the server: ' . mysqli_connect_error());
}

if(!@mysqli_select_db($link, 'DB_NAME')) {
    die('failed to connect to the database: ' . mysqli_error($link));
}
?>

replace DB_USER, DB_PASSWORD and DB_NAME with the settings from from wp-config.php file. Reply with the output of that php file.
 

bdistler

Well-Known Member
Prime Account
Messages
3,534
Reaction score
196
Points
63
So create a .php file with the following code

I have 2 (two) issues with your code

#1 > the line under [ <?php ] S/B [ error_reporting(E_ALL); ]

#2 > @ (ampersand) is the error suppression operator and hides warnings and/or errors that the function outputs. Using it is generally considered as bad practice.
 

lylex10h

Active Member
Messages
982
Reaction score
71
Points
28
I have 2 (two) issues with your code

#1 > the line under [ <?php ] S/B [ error_reporting(E_ALL); ]

#2 > @ (ampersand) is the error suppression operator and hides warnings and/or errors that the function outputs. Using it is generally considered as bad practice.
So something like:
PHP:
<?php
error_reporting(E_ALL);
$link = mysqli_connect('localhost', 'DB_USER', 'DB_PASSWORD');
if(!$link) {
    die('failed to connect to the server: ' . mysqli_connect_error());
}

if(!mysqli_select_db($link, 'DB_NAME')) {
    die('failed to connect to the database: ' . mysqli_error($link));
}
?>
I am not a PHP coder, so if that's not correct, please feel free to the post the correct code to get the raw MySQL error.
 

twelvetw

New Member
Messages
4
Reaction score
0
Points
1
It's a technical issue with the server IMO as nothing has changed at my end and the service is intermittent. Perhaps something is running on the shared server and halting service for everyone else?
 

ntsite

Member
Messages
135
Reaction score
1
Points
18
Yes in my situation too - I haven't done anything with my DB. Site was working yesterday even though slowly..but now completely down.
 

ntsite

Member
Messages
135
Reaction score
1
Points
18
DB error is resolved and speed seems to be normalized - with slight slowness.
 
Status
Not open for further replies.
Top