"D" and "F" grades on "First Byte Time" (Site times out over 50% of the time)

My wordpress site has been consistently getting an F/D on “First Byte Time.” Over 50% of the time, the server times out without returning any content. Any help is appreciated!

Btw, with the help of your test and suggestions on this forum, the “cache static content” result has gone from D to A :slight_smile:

A few things to note:

  • Site is using latest WP and currently in Beta version (this problem is delaying the release)

  • Some of the main plugins in use: W3TC, WP-DB Manager (Db tables are optimized), Next Gen for pic gallery, Better WP Security (I have tried to configure the plugins as best as possible, but I am new to WP world, although otherwise been with Unix/Linux world for a while)

  • Site is hosted with Godaddy, and the non-WP version (hazara.net) responds instantly which is also on the same server (i.e. does this absolve them from being the culprit on the late return on the “First Byte Time”?)

  • I am using a 3rd party commercial theme, which can be optimized more but doesn’t seem to be the entire culprit as others are also using it and haven’t seen “mass complains about slow site”



  1. Why is there a “301 redirect” for the site root page - hazara.net/cms? I don’t see any “301” configured in any of the .htaccess or any other main config files (did several greps from Unix CLI). Could this be the reason for the initial “First Byte Time” delay?

(Note: In have been trying to set a redirect using godaddy’s GUI from hazara.net to hazara.net/cms but it has not worked. I have removed any misconfiguration from the .htaccess at the root and can’t “grep” any 301’s in any of the .htaccess anywhere)

  1. http://www.webpagetest.org/result/121022_99_3C/1/pagespeed/
    I don’t understand what it means to “minimize redirects” (which are only for videos on Youtube). What is the course of action for these? The URL’s are shown in pair. I have added “www” to the URL of one of the videos, but after running test, still see it. So, I guess I am not sure what is expected course of action for fixing this ?

thanks for the help!

Does the non-WP version hit the same database server? If not and if it is serving files directly from the server then it doesn’t absolve Godaddy, it just means that the web server is doing fine but the database server may be having serious issues.

The 301 redirect is being handled by wordpress itself since it has a rewrite rule that sends pretty much all requests into the wordpress php. The redirect is certainly not helping because it’s time will be counted against your first byte time and will make it impossible to get an A. Why don’t you just test hazara.net/cms/ directly instead?

Minimizing redirects means to get rid of them where you can, particularly for the base page. In this case the base page is really /cms/ so that’s what you should test and if you have any links pointing to it then those should point to /cms/ and not /cms

A 301 redirect will ensure that search engines are pointing to the correct base page so you just need to make sure any content you have linking to it is linking to /cms/ and you should just test /cms/ directly.

Patrick, the non-WP version is a static site and does not use any database.

Actually that is what I am doing.i.e. testing hazara.net/cms. There should be no redirects set, so my question was where is that redirect coming from that is showing in the test result? i.e. it times out on hazara.net/cms with a redirect 301, and then the next line shows the exact same URL and this time it shows a ‘200’ connection okay.

I was under the impression that “hazara.net/cms” and “hazara.net/cms/” were both same and pulling the same “index.php”. (or does the “/” makes a difference?.

To step back for a moment, here is the scenario:
The main static site, hazara.net, has been running for the last 15 years and has good search ranking. So, I configured the WP version in its own directory (hazara.net/cms/). The thought is to redirect (haven’t set the redirection yet) users coming to “hazara.net” with 301 to “hazara.net/cms/”. If users were following a link to a static page found via search engine, they can still get to it. However, those users coming to the index file “hazara.net/index.html” would be redirected to “hazara.net/cms/index.php” (once I set the redirection).

Any expert opinion whether this is a good strategy? Would you recommend moving WP to the root (hazara.net) and keep the static content with it as well (There are one too many static pages. I need time to convert them one by one, and was thinking to retire them gradually over time when the new site was stable). Are there any better ways to redirect users from old static pages to the new dynamic one dished by WP?

My guess would be performance issues with the database because WP relies on it quite heavily and it’s usually the main pain point on shared hosting.

/cms and /cms/ are different. /cms is looking for a file named cms in the root directory while /cms/ will load the default file for the directory (index.php).

Test with the URL including the trailing slash. The missing slash is why you are seeing the redirect.

A 301 redirect should be fine. Search engines will see the permanent redirect and index the new pages and the redirect will also get cached for users. That said, don’t turn on the redirect while performance is bad - it will suck for users but it will also reduce the amount of your content that gets indexed (at least the speed at which it gets indexed).

Thanks for the feedback! I am currently working with the hosting company (godaddy) to see what explanation they come up with :slight_smile:

I found a solution for the F-grade for First Byte Time on Wordpress sites when redirecting from www to non-www or the other way around.

It is: redirect in the .htaccess using the code at Stackoverflow about generic htaccess redirect www to non-www.

I added the code below at the top of the .htaccess file in the root of the http-folder. This made the redirect time go from 1.2s to 0.07s and gave me a B instead of a F. Hope it helps others too!

[code]# redirect to www.

RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www.(.)$ [NC]
RewriteRule ^(.
)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www.(.)$ [NC]
RewriteRule ^(.
)$ https://www.%{HTTP_HOST}/$1 [R=301,L]