Need Help With Expires Headers For Yslow

sharingsunshine
sharingsunshine used Ask the Experts™
on
Need expires headers to satisfy yslow on GMetrix.  I am on an Apache 2.4 Linux system.

When I use this code I get an 500 Internal Server Error

# Optimize cache-control
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault “access plus 1 month”
ExpiresByType image/gif “access plus 1 month”
ExpiresByType image/png “access plus 1 month”
ExpiresByType image/jpg “access plus 1 month”
ExpiresByType image/jpeg “access plus 1 month”
ExpiresByType text/html “access plus 3 days”
ExpiresByType text/xml “access plus 1 seconds”
ExpiresByType text/plain “access plus 1 seconds”
ExpiresByType application/xml “access plus 1 seconds”
ExpiresByType application/rss+xml “access plus 1 seconds”
ExpiresByType application/json “access plus 1 seconds”
ExpiresByType text/css “access plus 1 week”
ExpiresByType text/javascript “access plus 1 week”
ExpiresByType application/javascript “access plus 1 week”
ExpiresByType application/x-javascript “access plus 1 week”
ExpiresByType image/x-ico “access plus 1 year”
ExpiresByType image/x-icon “access plus 1 year”
ExpiresByType application/pdf “access plus 1 month”
<IfModule mod_headers.c>
Header unset ETag
Header unset Pragma
Header unset Last-Modified
Header append Cache-Control “public, no-transform, must-revalidate”
Header set Last-modified “Mon, 1 Oct 2018 10:10:10 GMT”
</IfModule>
</IfModule> 

Open in new window


my headers in htaccess looks like this

# BEGIN Really_Simple_SSL_UPGRADE_INSECURE_REQUESTS
<IfModule mod_headers.c>
Header always set Content-Security-Policy "upgrade-insecure-requests;"
</IfModule>
# END Really_Simple_SSL_UPGRADE_INSECURE_REQUESTS

Open in new window


The log says
[Sun Dec 23 12:59:33.053088 2018] [core:alert] [pid 7617:tid 140692416341760] [client 1.1.1.1] /data/web/abc.com/.htaccess: ExpiresDefault takes one argument, an expiry date code

Open in new window


Seems everything on the internet and the plugins are not suited for Apache 2.4.  Please help.

Thanks,
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
David FavorFractional CTO
Distinguished Expert 2018

Commented:
Post the full 500 error from your /var/log/apache2/error.log or equivalent file.
David FavorFractional CTO
Distinguished Expert 2018

Commented:
Also keep in mind, if you're using LetsEncrypt auto renewal for your SSL certs, you may find the following can get you in a bind where you can't renew your certs...

Header always set Content-Security-Policy "upgrade-insecure-requests;"

Open in new window


If you do force add this header, likely best to use Acme V2 DNS challenges for renewals, for 100% renewal success.

Author

Commented:
I don't do automatic renewals so that isn't a factor.
Ensure you’re charging the right price for your IT

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden using our free interactive tool and use it to determine the right price for your IT services. Start calculating Now!

David FavorFractional CTO
Distinguished Expert 2018

Commented:
Attach a copy of your full /data/web/abc.com/.htaccess file as looks like something else is slightly broken.

Author

Commented:
# BEGIN WP Rocket v3.3.2
# Use UTF-8 encoding for anything served text/plain or text/html
AddDefaultCharset UTF-8
# Force UTF-8 for a number of file formats
<IfModule mod_mime.c>
AddCharset UTF-8 .atom .css .js .json .rss .vtt .xml
</IfModule>
# FileETag None is not enough for every server.
<IfModule mod_headers.c>
Header unset ETag
</IfModule>
# Since we’re sending far-future expires, we don’t need ETags for static content.
# developer.yahoo.com/performance/rules.html#etags
FileETag None
<IfModule mod_alias.c>
<FilesMatch "\.(html|htm|rtf|rtx|txt|xsd|xsl|xml)$">
<IfModule mod_headers.c>
Header set X-Powered-By "WP Rocket/3.3.2"
Header unset Pragma
Header append Cache-Control "public"
Header unset Last-Modified
</IfModule>
</FilesMatch>
<FilesMatch "\.(css|htc|js|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|json|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|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|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$">
<IfModule mod_headers.c>
Header unset Pragma
Header append Cache-Control "public"
</IfModule>
</FilesMatch>
</IfModule>
# Expires headers (for better cache control)
<IfModule mod_expires.c>
        ExpiresActive on
        # Perhaps better to whitelist expires rules? Perhaps.
        ExpiresDefault                              "access plus 1 month"
        # cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
        ExpiresByType text/cache-manifest           "access plus 0 seconds"
        # Your document html
        ExpiresByType text/html                     "access plus 0 seconds"
        # Data
        ExpiresByType text/xml                      "access plus 0 seconds"
        ExpiresByType application/xml               "access plus 0 seconds"
        ExpiresByType application/json              "access plus 0 seconds"
        # Feed
        ExpiresByType application/rss+xml           "access plus 1 hour"
        ExpiresByType application/atom+xml          "access plus 1 hour"
        # Favicon (cannot be renamed)
        ExpiresByType image/x-icon                  "access plus 1 week"
        # Media: images, video, audio
        ExpiresByType image/gif                     "access plus 4 months"
        ExpiresByType image/png                     "access plus 4 months"
        ExpiresByType image/jpeg                    "access plus 4 months"
        ExpiresByType image/webp                    "access plus 4 months"
        ExpiresByType video/ogg                     "access plus 1 month"
        ExpiresByType audio/ogg                     "access plus 1 month"
        ExpiresByType video/mp4                     "access plus 1 month"
        ExpiresByType video/webm                    "access plus 1 month"
        # HTC files  (css3pie)
        ExpiresByType text/x-component              "access plus 1 month"
        # Webfonts
        ExpiresByType font/ttf                      "access plus 4 months"
        ExpiresByType font/otf                      "access plus 4 months"
        ExpiresByType font/woff                     "access plus 4 months"
        ExpiresByType font/woff2                    "access plus 4 months"
        ExpiresByType image/svg+xml                 "access plus 1 month"
        ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
        # CSS and JavaScript
        ExpiresByType text/css                      "access plus 1 year"
        ExpiresByType application/javascript        "access plus 1 year"
</IfModule>
# Gzip compression
<IfModule mod_deflate.c>
# Active compression
SetOutputFilter DEFLATE
# Force deflate for mangled headers
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
# Don’t compress images and other uncompressible content
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png|rar|zip|exe|flv|mov|wma|mp3|avi|swf|mp?g|mp4|webm|webp|pdf)$ no-gzip dont-vary
</IfModule>
</IfModule>
# Compress all output labeled with one of the following MIME-types
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE application/atom+xml \
                                          application/javascript \
                                          application/json \
                                          application/rss+xml \
                                          application/vnd.ms-fontobject \
                                          application/x-font-ttf \
                                          application/xhtml+xml \
                                          application/xml \
                                          font/opentype \
                                          image/svg+xml \
                                          image/x-icon \
                                          text/css \
                                          text/html \
                                          text/plain \
                                          text/x-component \
                                          text/xml
</IfModule>
<IfModule mod_headers.c>
Header append Vary: Accept-Encoding
</IfModule>
</IfModule>
# END WP Rocket
# BEGIN WpFastestCache
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} ^www.theherbsplace.com
# Start WPFC Exclude
# End WPFC Exclude
# Start_WPFC_Exclude_Admin_Cookie
RewriteCond %{HTTP:Cookie} !wordpress_logged_in_[^\=]+\=algol|business-woo|gilles|rocket2
# End_WPFC_Exclude_Admin_Cookie
RewriteCond %{HTTP_HOST} ^www.theherbsplace.com
RewriteCond %{HTTP_USER_AGENT} !(facebookexternalhit|Twitterbot|LinkedInBot|WhatsApp|Mediatoolkitbot)
RewriteCond %{HTTP_USER_AGENT} !(WP\sFastest\sCache\sPreload(\siPhone\sMobile)?\s*Bot)
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{REQUEST_URI} !(\/){2}$
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{QUERY_STRING} !.+
RewriteCond %{HTTP:Cookie} !comment_author_
RewriteCond %{HTTP:Cookie} !safirmobilswitcher=mobil
RewriteCond %{HTTP:Profile} !^[a-z0-9\"]+ [NC]
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/all/$1/index.html -f [or]
RewriteCond /data/web/theherbsplace.com/wp-content/cache/all/$1/index.html -f
RewriteRule ^(.*) "/wp-content/cache/all/$1/index.html" [L]
</IfModule>
<FilesMatch "index\.(html|htm)$">
AddDefaultCharset UTF-8
<ifModule mod_headers.c>
FileETag None
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Mon, 29 Oct 1923 20:30:00 GMT"
</ifModule>
</FilesMatch>
# END WpFastestCache
RedirectMatch 301 https?://actionnetwork.org/(.+)$ https://actionnetwork.org/
RewriteBase /
#RedirectMatch 301 /index\.html$ /index.php
RedirectMatch 301 /SFN/(.+)\.html$ /$1-2
RewriteCond %{QUERY_STRING} controller=product [NC]
RewriteCond %{QUERY_STRING} id_product=784 [NC]
RewriteRule ^/?index\.php$ /product/sunshine_heroes_elderberry_immune_p_851/? [NC,L,R=301]
RedirectMatch 301 /pdf/hawthorn.pdf$ /wp-content/uploads/2019/03/hawthorn.pdf
RedirectMatch 301 /Focus_Attention_90_capsules_p_497.html$ /product/focus_attention_90_capsules_p_2011/
RedirectMatch 301 /Food_Enzymes_Capsules_p_136.html$ /product/food_enzymes_capsules_p_1174/
RedirectMatch 301 /c_x_p_182.html$ /product/cxp182/
RedirectMatch 301 /5_HTP_Power_p_460.html$ /product/5_htp_power_p_1914/
RedirectMatch 301 /hydrangea\.html$ /product/hydrangea_p_414/
RedirectMatch 301 /petsupp\.html$ /pet_catalog_sp_210/
RedirectMatch 301 /product/boneskinpoulticep167.html$ /product/bone_skin_poultice_p_167/
RedirectMatch 301 /news.html$ /free_email_newsletters_sp_209/
RedirectMatch 301 /N_Acetyl_Cysteine_250mg._p_520.html$ /product/n-acetyl-cysteine-300mg/
RedirectMatch 301 /Para_Cleanse_w_Paw_Paw_p_245.html$ /product/para_cleanse_w_pawpaw_p_245/
RedirectMatch 301 /The_Importance_of_Water_sp_170.htmlbr$ /the_importance_of_water_sp_170/
RewriteCond %{REQUEST_URI} !(images|media|image|thumbs|ATNblog|cgi-bin) [NC]
# force url to lowercase if upper case is found
RewriteCond %{REQUEST_URI} [A-Z]
# ensure it is not a file on the drive first
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule (.*).html strtolower.php?rewrite-strtolower-url=/product/$1 [QSA,L]
RedirectMatch 301 /donna_430/home.php$ /
RedirectMatch 301 /ATNblog/atn\.html$ /a_touch_of_nature_newsletter_sp_40/
RedirectMatch 301 /product/herbasaurs_page_1_c_90$ /product-category/home/children_page_1_c_4/sunshine_heroes_page_1_c_122/
RedirectMatch 301 /product/essential_oil_singles_page_1_c_33$ /product-category/home/essential_oils_100_pure_page_1_c_1/essential_oils_page_1_c_33/
RedirectMatch 301 /product/paracleansewpawpawp245/$ /product/para_cleanse_w_pawpaw_p_245/
RewriteCond %{QUERY_STRING} p=2 [NC]
RewriteRule ^/?83-Female_page_1_c_73$ /product-category/home/female_page_1_c_73/page/2/? [NC,L,R=301]
RedirectMatch 301 /The_Herbal_Medicine_Ch$ /the_herbal_medicine_chest_sp_17/
RedirectMatch 301 /wisdom\.html$ /wisdoml_sp_220/
RedirectMatch 301 /isearch2/admin/phpinfo.php$ /product/cleanstartcleansedetoxprogramwildberryp357/
RedirectMatch 301 /cgi-bin/asp(donna)?/sample\.html$ /contact7
RedirectMatch 301 /contact-us$ /contact7
######### Missing Gallery Elements and Endings ########
#http://www.theherbsplace.com/gallery/anzaborrego/IMG_8543
RewriteRule ^gallery(2(\.3)?)?/v/travel_7/costarica/(.+)\.html http://donnawatkins.smugmug.com/Costa-Rica [R=301,L]
RewriteRule ^gallery(2(\.3)?)?/v/bluebirdcove/(.+)\.html http://donnawatkins.smugmug.com/Bluebird-Cove-Our-Home-In [R=301,L]
RewriteRule ^gallery(2(\.3)?)?/v/travel_7/(.+)\.html http://donnawatkins.smugmug.com/Travel [R=301,L]
RewriteRule ^gallery(2(\.3)?)?/v/familyfriends/(.+)\.html http://donnawatkins.smugmug.com/Friends [R=301,L]
RewriteCond %{QUERY_STRING} ^(.+)$
RewriteRule ^gallery(2(\.3)?)? http://donnawatkins.smugmug.com? [R=301,L]
RewriteRule ^gallery(2(\.3)?)? http://donnawatkins.smugmug.com [R=301,L]
############ End Gallery Rewrites ############
RewriteCond %{QUERY_STRING} pageid=59 [NC]
RewriteRule ^/?pages\.php$ /research_topics_for_children_sp_16/? [NC,L,R=301]
RewriteCond %{QUERY_STRING} pageid=36 [NC]
RewriteRule ^/?pages\.php$ /bandit-s-heartworm-program/? [NC,L,R=301]
RewriteCond %{QUERY_STRING} controller=product [NC]
RewriteCond %{QUERY_STRING} id_product=411 [NC]
RewriteRule ^/?index\.php$ /index.php?controller=product&id_product=462 [NC,L,R=301]
RewriteCond %{QUERY_STRING} controller=product [NC]
RewriteCond %{QUERY_STRING} id_product=79 [NC]
RewriteRule ^/?index\.php$ /index.php?controller=product&id_product=851 [NC,L,R=301]
RewriteCond %{QUERY_STRING} controller=cms [NC]
RewriteCond %{QUERY_STRING} id_cms=83 [NC]
RewriteRule ^/?index\.php$ /a_natural_solution_4_you_newsletter_sp_83/? [NC,L,R=301]
RewriteCond %{QUERY_STRING} controller=cms [NC]
RewriteCond %{QUERY_STRING} id_cms=117 [NC]
RewriteRule ^/?index\.php$ /be_free_from_headaches_sp_117/? [NC,L,R=301]
RewriteCond %{QUERY_STRING} controller=category [NC]
RewriteCond %{QUERY_STRING} id_category=100 [NC]
RewriteRule ^/?index\.php$ /product-category/home/children_page_1_c_4/sunshine_heroes_page_1_c_122/? [NC,L,R=301]
RewriteCond %{QUERY_STRING} controller=cms [NC]
RewriteCond %{QUERY_STRING} id_cms=239 [NC]
RewriteRule ^/?index\.php$ /mens_health_sp_302/? [NC,L,R=301]
RewriteCond %{QUERY_STRING} controller=cms [NC]
RewriteCond %{QUERY_STRING} id_cms=5 [NC]
RewriteRule ^/?index\.php$ /home_spa_party_plan_sp_5/? [NC,L,R=301]
RewriteCond %{QUERY_STRING} controller=cms [NC]
RewriteCond %{QUERY_STRING} id_cms=9 [NC]
RewriteRule ^/?index\.php$ /contents_of_quot_a_more_excellent_way_quot_by_pastor_henry_wright_sp_18/? [NC,L,R=301]
RewriteCond %{QUERY_STRING} controller=cms [NC]
RewriteCond %{QUERY_STRING} id_cms=314 [NC]
RewriteRule ^/?index\.php$ /ahmmydoing/? [NC,L,R=301]
RedirectMatch 301 /heartprevent.html$ /heartworm_prevention_sp_104/
RedirectMatch 301 /Una_De_Gato_Cats_Claw_p_269.html$ /product/una_de_gato_cats_claw_p_1496/
RedirectMatch 301 /Silver_Shield_Colloidal_Silver_14_ppm_p_484.html$ /product/silvershieldaquasoltechnologycolloidalsilver18ppmp730/
#RewriteRule ^/CleanStart_Cleanse_Detox_Program_p_356\.html$ /product/cleanstartcleansedetoxprogramapplecinnamonp356/ [NC,L,R=301]
RewriteCond %{QUERY_STRING} pageid=202 [NC]
RewriteRule ^/?pages\.php$ /essential_oil_recipes_pets_sp_181/ [NC,L,R=301]
RedirectMatch 301 /home/(\d+)-(.+)_(.+)_(.+)_p_(\d+)\.html$ /product/$2_$3_$4_p_$5/
RedirectMatch 301 /(.+)_(.+)?_(.+)_fl\._oz\._p_(\d+)\.html$ /product/$1-$2-$3-fl-oz/
RedirectMatch 301 /(.+)_(.+)?_(.+)\.?_p_(\d+)\.html$ /product/$1-$2-$3/
RedirectMatch 301 /(.+)_(.+)?_(.+)_p_(\d+)\.html$ /product/$1_$2_$3_p_$4/
RedirectMatch 301 /(.+)_(.+)?_(.+)_(.+)_(.+)_p_(\d+)\.html$ /product/$1_$2_$3_$4_$5_p_$6/
RedirectMatch 301 /(.+)_(.+)?_(.+)_p_(\d+)\.html$ /product/$1$2$3p$4/
#RedirectMatch 301 /home/(\d+)?-(.+)_(.+)_(.+)_(.+)?_(.+)?_(.+)?_p_(\d+)\.html$ /product/$2$3$4$5$6$7p$8/
#RedirectMatch 301 /Dieter_s_Cleanse_p_563.html$ /product/dieterscleansep563/
RedirectMatch 301 /personalcarepage1c17/352-sunshine_brite_toothpaste_p_352.html$ /product/xylibrite_toothpaste_p_773/
RedirectMatch 301 /content/198-chronicfatigueamoreexcellentwaysp199$ /chronic_fatigue_a_more_excellent_way__sp_199/
RedirectMatch 301 /essentialoils100purepage1c1/44-neroli_100_pure_essential_oil_p_44.html$ /product/neroli-organic-5-ml-100-pure-essential-oil/
RedirectMatch 301 /Lecithin_p_507.html$ /product/lecithinp507/
RedirectMatch 301 /natures_noni_juice_2_32_fl._oz._each_p_128.html$ /product/nature-s-noni-juice-2-32-fl-oz-each/
RedirectMatch 301 /home/\d+-(.+)$ /product/$1
RedirectMatch 301 /Intestinal_System_page_1_c_37.html$ /product-category/home/intestinal-system-category-page/
RedirectMatch 301 ^/herbasaurs_elderberry_plus_chewable_tablets_p_79.html$ /product/sunshine_heroes_elderberry_immune_p_851/
RedirectMatch 301 ^/CleanStart_Cleanse_Detox_Program_p_356\.html$ /product/cleanstartcleansedetoxprogramapplecinnamonp356/
RewriteCond %{QUERY_STRING} controller=product [NC]
RewriteCond %{QUERY_STRING} id_product=26 [NC]
RewriteRule ^/?index\.php$ /product/geranium-15-ml-100-pure-essential-oil/? [NC,L,R=301]
RewriteCond %{QUERY_STRING} controller=cms [NC]
RewriteCond %{QUERY_STRING} id_cms=([0-9]+)\%3F [NC]
RewriteRule ^/?index\.php$ /index.php?controller=cms&id_cms=%1 [NC,L,R=301]
RewriteCond %{QUERY_STRING} controller=product [NC]
RewriteCond %{QUERY_STRING} id_product=([0-9]+)\%3F [NC]
RewriteRule ^/?index\.php$ /index.php?controller=product&id_product=%1 [NC,L,R=301]
RewriteCond %{QUERY_STRING} controller=category [NC]
RewriteCond %{QUERY_STRING} id_category=([0-9]+)\%3F [NC]
RewriteRule ^/?index\.php$ /index.php?controller=category&id_category=%1 [NC,L,R=301]
# BEGIN Really_Simple_SSL_UPGRADE_INSECURE_REQUESTS
<IfModule mod_headers.c>
Header always set Content-Security-Policy "upgrade-insecure-requests;"
</IfModule>
# END Really_Simple_SSL_UPGRADE_INSECURE_REQUESTS
# 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
# BEGIN EWWWIO
# END EWWWIO
# BEGIN ShortPixelWebp
# END ShortPixelWebp
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

Open in new window

David FavorFractional CTO
Distinguished Expert 2018

Commented:
You .htaccess is valid.

I dropped your .htaccess onto a random server + can see .htaccess being ingested into Apache with no 500 errors in the Apache error log.

Provide the entire 500 error from your Apache error log. Likely /var/log/apache2/error.log or similar.

If you have wp-config.php WP_DEBUG set, then your errors will emit into your WordPress debug log.

Author

Commented:
In the original question I gave the 500 log entry.  Now, when I look at yslow I am getting a B for a grade and this seems to be the only thing that is tripping it up.

https://gyazo.com/13e040c35b97d6b75acb2f1ceb40898c
David FavorFractional CTO
Distinguished Expert 2018

Commented:
If you're still seeing a 500 error, this must be fixed before performance testing will have any meaning.

Best to open another question regards performance.

Pull your .htaccess file into vi + do this:

:set nobomb
:w

Open in new window


Then do this...

:set list

Open in new window


To see any stray, non-printable characters in your .htaccess file on the ExpiresDefault line.

Also, actually attach your .htaccess file (rather than cut + paste) for testing.

Remember: Attaching the file will only be useful if you use SFTP, SSH, rsync or similar to pull a copy of your file. If you cut + past your file to move it between machines, this destroys all non-printable characters.

Author

Commented:
I am not still seeing the 500 error.  Now the only help I need is the header line in the screenshot above is lowering my grade in gtmetrix.com can you help with that?
Fractional CTO
Distinguished Expert 2018
Commented:
If the 500 error has been fixed, please provide a comment about exactly how you fixed the problem.

Then close this questions.

Then open a new question about effecting GTMetrix grading as this is a complex subject + very different than fixing 500 errors.

In your new question provide your actual URL for testing.

Tip: Sometimes GTMetrix gives useful feedback, sometimes completely wrong feedback. Where "wrong" means if you follow their direction, like removing version strings from assets, you'll profoundly change (and likely break) site behavior.

So striving for 100% score on GTMetrix will cause more problems than benefits.

And doing some suggested fixes will be highly useful.

Generally I stick with https://WebPageTest.org fix suggests as these are all useful... well... except there's a current bug in WebPageTest which shows an "F" score for sub second serving of the HTML asset... so if you have a 100ms time to generate + serve your HTML component (typical with WordPress + static sites), then to me you have an "A" score, as there's no way to speed up raw packet speed going down the wire.

Open a new question + likely you'll have a great deal of practical advice for speeding up your site.

Author

Commented:
That error was back in December so I can't say how it was fixed.  However, I took your suggestion and used GtMetrix and got all A's.  So I am good for now.
David FavorFractional CTO
Distinguished Expert 2018

Commented:
Excellent!

Good luck!

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial