Why is my Wordpress backend area so slow?

I've disabled all my plugins and reinstalled one by one, I can't figure out what's making it slow, I've re-uploaded wp-admin and wp-includes on FTP, reset the plugin folder.

I'm at my wits end, could someone please suggest any further tests / processes I can carry out to increase the speed?

Cheers,

Luke

  • Dan

    Hi Vinod, I have already done so, it was showing that WooCommerce was the highest, however my shop is based on woocommerce, so it is a necessity - Front end does seem a little sluggish, but I have updated everything and used W3TC to try and speed up.

    One more thing, when I click 'dashboard' in wordpress - it comes up with an error code: ERR_NAME_NOT_RESOLVED & the URL is:
    http://www.www.dexterssurfshop.com/wp-admin/index.phpwp-admin/

    Probably unrelated, but thought I would mention it.

    I have enabled support access until October 30, 2015 3:15 pm

    I would appreciate any further help you could give me

    Cheers,

  • Kasia Swiderska

    Hello Luke,

    Can you paste here your htaccess file contents? Does it contain something that is not the WordPress default?
    I'm afraid I can't get access to your Dashboard because of this issue with the wp-admin url.
    Also, can you enable debug mode in WordPress? To enable it, open your wp-config.php file and look for define(‘WP_DEBUG’, false);. Change it to:

    define('WP_DEBUG', true);

    In order to enable the error logging to a file on the server you need to add yet one more similar line:

    define( 'WP_DEBUG_LOG', true );

    In this case the errors will be saved to a debug.log log file inside the /wp-content/directory.

    Depending on whether you want your errors to be only logged or also displayed on the screen you should also have this line there, immediately after the line mentioned above:

    define( 'WP_DEBUG_DISPLAY', false );

    The wp-config.php is located in your WordPress root directory. It’s the same file where the database configuration settings are. You will have to access it by FTP or SFTP in order to edit it.

    Kind regards,
    Kasia

  • Dan

    Hi Kasia, Sorry yes, I have the admin login changed to http://www.dexterssurfshop.com/manage to try to stop people from trying to login to the site.

    The .HTACCESS file is as follows (looks like the security plugin has made some amendments):

    ###########################
    # WP htaccess Boilerplate #
    ###########################

    ### https://github.com/Creare/WP-htaccess/

    ############
    # Security #
    ############

    ### Recognise SSL when set at a load balancer/proxy level (for CloudFlare)
    SetEnvIf X-Forwarded-Proto https HTTPS=on

    ### Prevent wp-config.php from being loaded:
    <files wp-config.php>
    order allow,deny
    deny from all
    </files>

    ### Prevent sftp-config.json from being loaded:
    <files sftp-config.json>
    order allow,deny
    deny from all
    </files>

    ### Protect .htaccess
    <Files ~ "^.*\.([Hh][Tt][Aa])">
    order allow,deny
    deny from all
    satisfy all
    </Files>

    ### Secure wp-includes
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^wp-admin/includes/ - [F,L]
    RewriteRule !^wp-includes/ - [S=3]
    RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
    RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
    RewriteRule ^wp-includes/theme-compat/ - [F,L]
    </IfModule>

    ### Prevent directory browsing
    <IfModule mod_autoindex.c>
    Options -Indexes
    </IfModule>

    ### Prevent this .htaccess from being accessed:
    <files .htaccess>
    order allow,deny
    deny from all
    </files>

    ### Prevent WordPress' readme.html from being accessed (as it contains the version number)
    <files readme.html>
    Deny from all
    </files>

    ### Disable HTTP Trace
    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} ^TRACE
    RewriteRule .* - [F]

    ### Block access to hidden files & directories
    <IfModule mod_rewrite.c>
    RewriteCond %{SCRIPT_FILENAME} -d [OR]
    RewriteCond %{SCRIPT_FILENAME} -f
    RewriteRule "(^|/)\." - [F]
    </IfModule>

    ### Block access to source files
    <FilesMatch "(^#.*#|\.(bak|config|dist|fla|inc|ini|log|psd|sh|sql|sw[op])|~)$">
    Order allow,deny
    Deny from all
    Satisfy All
    </FilesMatch>

    ###############################
    # Additional Rewrite Settings #
    ###############################

    # Option 1
    # http://domain > http://www.domain

    <IfModule mod_rewrite.c>
    # Options +FollowSymlinks #Not supported by some hosting
    ### If you wish to redirect to a https:// simply substitute http: with https:
    RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
    RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    ### Redirect away from /index.php to clear path
    RewriteCond %{THE_REQUEST} ^.*/index.php
    RewriteRule ^(.*)index.php$ http://www.%{HTTP_HOST}%{REQUEST_URI}$1 [R=301,L]
    </IfModule>

    # Option 2
    # http://www.domain > http://domain

    #<IfModule mod_rewrite.c>
    # Options +FollowSymlinks #Not supported by some hosting
    ### If you wish to redirect to a https:// simply substitute http: with https:
    #RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    #RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
    ### Redirect away from /index.php to clear path
    #RewriteCond %{THE_REQUEST} ^.*/index.php
    #RewriteRule ^(.*)index.php$ http://%{HTTP_HOST}%{REQUEST_URI}$1 [R=301,L]
    #</IfModule>

    ##############################
    # Default Wordpress Settings #
    ##############################

    # 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

    #######################
    # Speed & Compression #
    #######################

    # BEGIN Expire headers
    <ifModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 5 seconds"
    ExpiresByType image/x-icon "access plus 2592000 seconds"
    ExpiresByType image/jpeg "access plus 2592000 seconds"
    ExpiresByType image/png "access plus 2592000 seconds"
    ExpiresByType image/gif "access plus 2592000 seconds"
    ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
    ExpiresByType text/css "access plus 604800 seconds"
    ExpiresByType text/javascript "access plus 216000 seconds"
    ExpiresByType application/javascript "access plus 216000 seconds"
    ExpiresByType application/x-javascript "access plus 216000 seconds"
    ExpiresByType text/html "access plus 600 seconds"
    ExpiresByType application/xhtml+xml "access plus 600 seconds"
    </ifModule>
    # END Expire headers

    <ifModule mod_headers.c>
    # BEGIN Cache-Control Headers
    <filesMatch "\.(ico|jpe?g|png|gif|swf)$">
    Header set Cache-Control "public"
    </filesMatch>
    <filesMatch "\.(css)$">
    Header set Cache-Control "public"
    </filesMatch>
    <filesMatch "\.(js)$">
    Header set Cache-Control "private"
    </filesMatch>
    <filesMatch "\.(x?html?|php)$">
    Header set Cache-Control "private, must-revalidate"
    </filesMatch>
    # END Cache-Control Headers
    </ifModule>

    <IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/xhtml text/html text/plain text/xml text/javascript application/x-javascript text/css
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
    Header append Vary User-Agent env=!dont-vary
    </IfModule>

    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE application/x-javascript

    #Remove the ETag header
    Header unset ETag
    FileETag None

    #######################
    # File Format Support #
    #######################

    ### Add support for SVG and HTC
    AddType image/svg+xml svg svgz
    AddEncoding gzip svgz
    AddType text/x-component .htc

    ########################
    # Manual 301 Redirects #
    ########################

    #redirect 301 /old-page-url.html https://www.domain.co.uk/new-page-url

    I have also set up debug on the site for you - if you need me to make you a user, so you can log in and take a look at the site let me know. Cheers

    Luke

  • Rupok

    Hi Luke

    I hope you are having a wonderful day.

    I just went to this (http://www.dexterssurfshop.com/wp-login.php) URL to access your backend and this page was loaded in less than 5 seconds. GTmetrix is also showing only 7 seconds. So it's absolutely normal before we login to the Dashboard and that says - Your server is not responding slow and there is no big problem in route.

    Now I could run some test if I could login to the Dashboard. Would you mind allowing support access so we can have a closer look at this?
    To enable support access you can follow this guide here:
    https://premium.wpmudev.org/manuals/wpmu-dev-dashboard-enabling-staff-login/

    Have a nice day. Cheers!
    Rupok

  • Kasia Swiderska

    Hello Luke,

    I still can't get in to your site :slight_frown: I see that wp-admin is working, but when I try to access it I get 404 error.
    But it is responding very slowly... Can you contact your hosting provider and ask if they see something unusual in the server logs?
    In the meantime you can send credentials directly to your site. You can do that by using our secure contact form https://premium.wpmudev.org/contact/

    Subject: "Attn: Kasia Swiderska"
    -WordPress admin username
    -WordPress admin password
    -login url
    -FTP credentials (host/username/password)
    -link back to this thread for reference
    -any other relevant urls

    Select "I have a different question" for your topic - this and the subject line ensure that it gets assigned to me

    Kind regards,
    Kasia

  • Kasia Swiderska

    Hello Luke,

    Thanks for the credentials - indeed there are strange things going on your site. Speed is very inconsistent - I've checked few pages in admin, and in come cases they were loading fine, not super fast, but it was acceptable speed, but almost every second page I've tested I've got 404 error. So this shouldn't be happening.
    So first - disable all the security plugins and W3 Total Cache http://redstarwebdevelopment.com/2013/05/how-to-remove-w3-total-cache/
    Let your .htaccess has only the default WordPress rules.
    With clean site we can check other reasons.
    I've read your chat with hosting guy and he didn't tell much about reason of this resource usage - or their shared hosting has not enough resources to handle sites they have or they just want you buy better plan, because WordPress should work on shared hostings.

    Kind regards,
    Kasia

  • Dan

    Hi Kasia, I've deleted the W3TC plugin & reset HTACCESS to default wordpress version.
    I've also de-activated SUCURI, but I would like to keep this if it isn't causing any issues, as it is already paid for for the year.
    Already there seems to be less errors, and maybe even a slight increase in speed - could you still run some further tests and see if you can get it to be quicker though, as it is still slow.

    Thank you in advance

    Luke

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.