Slow load times - redirect loop in CSS?

Permalink Browser Info Environment
Perhaps more FYI

I've noticed that page speed load times have been quite slow using Fundamental 4.0 and C5 v8 and have been trying to identify why (assuming that it's an issue with my web server). I ran my site throughhttp://tools.pingdom.com and found that the main contributing factor is an infinite redirect loop which is triggered by some part of the page trying to load packages/fundamental/themes/fundamental/css/, which then requires the client to wait as their browser attempts to resolve the loop before giving up.

I've attached a screenshot for your review, and pingdom.com isn't wrong - if you navigate to the identified URL there is indeed an infinite redirect loop.

If I cURL the URL, I get the following:
curl http://mydomain.co.uk/packages/fundamental/themes/fundamental
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://mydomain.co.uk/packages/fundamental/themes/fundamental/">here</a>.</p>
</body></html>


To temporarily work around the problem, I simply created a blank index.html file at packages/fundamental/themes/fundamental/css/ to prevent the 301 from being triggered by the absence of an index file at this location. Now the page load time are about 4x faster and the issue is gone in pingdom.com too.

Not sure what you can do about this problem, but perhaps it's something worth considering to address for a future update and I also hope that the above helps anyone else encountering this speed / infinite redirect loop too! Thanks

1 Attachment

Type: Discussion
Status: In Progress
View Replies:
MarcYBB replied on at Permalink Reply
MarcYBB
Hi robbiebays82,

I am experiencing very slow loads as well... the file you created is called "index.html" or "index.php"? And by blank simply an empty file?
As a total amateur, I am leery of trying out each option because I am afraid of breaking my site. Thanks in advance for taking a few minutes to lead me in the right direction.

Marc
MarcYBB replied on at Permalink Reply
MarcYBB
Hi robbiebays82,

I am experiencing very slow loads as well... the file you created is called "index.html" or "index.php"? And by blank simply an empty file?
As a total amateur, I am leery of trying out each option because I am afraid of breaking my site. Thanks in advance for taking a few minutes to lead me in the right direction.

Marc
baysmedia replied on at Permalink Reply 2 Attachments
Hi Marc,

There are a lot of reasons why a website can be slow - it may not be the same issue I've reported here. So, before doing anything, I would suggest that you try to confirm that you have the same problem by running your website through Pingdom (https://tools.pingdom.com/) - this will review every part of your website page's speed and you'll be able to see which components are taking so long for your page to load.

When the test is complete, look at the response codes and if you see a 404 error listed (look at my attached screenshot for reference) then scroll down the report until you find the issue highlighted (it will have a warning symbol next to it too - look at my second screenshot for reference). When you hover over the highlighted problem it should detail the location of the problem:
[domain name]/packages/fundamental/theme/fundamental/css

If all of the above matches, then my suggested work-around should help.

I created a blank / empty file called index.html in [webroot]/packages/fundamental/theme/fundamental/css (you can use index.php if you want - it really makes no difference as it's a blank file). This won't break your website as we're not messing about with the Concrete5 or Fundamental code (not sure why the Fundamental guys haven't looked into this tbh, as this should be tidied up in their code).

To confirm the fix, re-run the test through Pingdom and now you should find it to be faster.

The only caveat is that when you update the Fundamental package in the future, it will almost certainly wipe this new index.html file. If the developers haven't fixed their code in said update, then you'll have to recreate the index.html file.

Hope the above helps.
Schattenreich replied on at Permalink Reply
Unfortunately while I seem to have the same issue this did not fix it for me at all. The performance is rather atrocious!
Any other thoughts?
baysmedia replied on at Permalink Reply
Even if the fix didn't help, did you usehttp://tools.pingdom.com? It will show you what element on your page is taking long to load.

concrete5 Environment Information

# concrete5 Version
Core Version - 8.0.3
Version Installed - 8.0.3
Database Version - 20161216000000

# concrete5 Packages
Fundamental (4.0.0)

# concrete5 Overrides
languages/it_IT/LC_MESSAGES/messages.mo, languages/it_IT/LC_MESSAGES, languages/it_IT, languages/ru_RU/LC_MESSAGES/messages.mo, languages/ru_RU/LC_MESSAGES, languages/ru_RU, languages/sv_SE/LC_MESSAGES/messages.mo, languages/sv_SE/LC_MESSAGES, languages/sv_SE, languages/fi_FI/LC_MESSAGES/messages.mo, languages/fi_FI/LC_MESSAGES, languages/fi_FI, languages/es_PE/LC_MESSAGES/messages.mo, languages/es_PE/LC_MESSAGES, languages/es_PE, languages/nl_NL/LC_MESSAGES/messages.mo, languages/nl_NL/LC_MESSAGES, languages/nl_NL, languages/en_GB/LC_MESSAGES/messages.mo, languages/en_GB/LC_MESSAGES, languages/en_GB, languages/pt_BR/LC_MESSAGES/messages.mo, languages/pt_BR/LC_MESSAGES, languages/pt_BR, languages/el_GR/LC_MESSAGES/messages.mo, languages/el_GR/LC_MESSAGES, languages/el_GR, languages/da_DK/LC_MESSAGES/messages.mo, languages/da_DK/LC_MESSAGES, languages/da_DK, languages/de_DE/LC_MESSAGES/messages.mo, languages/de_DE/LC_MESSAGES, languages/de_DE, languages/es_PY/LC_MESSAGES/messages.mo, languages/es_PY/LC_MESSAGES, languages/es_PY, languages/ja_JP/LC_MESSAGES/messages.mo, languages/ja_JP/LC_MESSAGES, languages/ja_JP, languages/nb_NO/LC_MESSAGES/messages.mo, languages/nb_NO/LC_MESSAGES, languages/nb_NO, languages/cs_CZ/LC_MESSAGES/messages.mo, languages/cs_CZ/LC_MESSAGES, languages/cs_CZ, languages/it_IT/LC_MESSAGES/messages.mo, languages/it_IT/LC_MESSAGES, languages/it_IT, languages/ru_RU/LC_MESSAGES/messages.mo, languages/ru_RU/LC_MESSAGES, languages/ru_RU, languages/sv_SE/LC_MESSAGES/messages.mo, languages/sv_SE/LC_MESSAGES, languages/sv_SE, languages/fi_FI/LC_MESSAGES/messages.mo, languages/fi_FI/LC_MESSAGES, languages/fi_FI, languages/es_PE/LC_MESSAGES/messages.mo, languages/es_PE/LC_MESSAGES, languages/es_PE, languages/nl_NL/LC_MESSAGES/messages.mo, languages/nl_NL/LC_MESSAGES, languages/nl_NL, languages/en_GB/LC_MESSAGES/messages.mo, languages/en_GB/LC_MESSAGES, languages/en_GB, languages/pt_BR/LC_MESSAGES/messages.mo, languages/pt_BR/LC_MESSAGES, languages/pt_BR, languages/el_GR/LC_MESSAGES/messages.mo, languages/el_GR/LC_MESSAGES, languages/el_GR, languages/da_DK/LC_MESSAGES/messages.mo, languages/da_DK/LC_MESSAGES, languages/da_DK, languages/de_DE/LC_MESSAGES/messages.mo, languages/de_DE/LC_MESSAGES, languages/de_DE, languages/es_PY/LC_MESSAGES/messages.mo, languages/es_PY/LC_MESSAGES, languages/es_PY, languages/ja_JP/LC_MESSAGES/messages.mo, languages/ja_JP/LC_MESSAGES, languages/ja_JP, languages/nb_NO/LC_MESSAGES/messages.mo, languages/nb_NO/LC_MESSAGES, languages/nb_NO, languages/cs_CZ/LC_MESSAGES/messages.mo, languages/cs_CZ/LC_MESSAGES, languages/cs_CZ

# concrete5 Cache Settings
Block Cache - On
Overrides Cache - On
Full Page Caching - Off
Full Page Cache Lifetime - Every 6 hours (default setting).

# Server Software
Apache

# Server API
apache2handler

# PHP Version
5.6.28

# PHP Extensions
apache2handler, bz2, calendar, Core, ctype, curl, date, dom, ereg, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, intl, json, libxml, mbstring, mhash, mysql, mysqli, mysqlnd, openssl, pcre, PDO, pdo_mysql, pdo_sqlite, Phar, posix, Reflection, session, shmop, SimpleXML, sockets, SPL, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tokenizer, wddx, xml, xmlreader, xmlwriter, xsl, zip, zlib

# PHP Settings
max_execution_time - 30
log_errors_max_len - 1024
max_file_uploads - 20
max_input_nesting_level - 64
max_input_time - 60
max_input_vars - 1000
memory_limit - 128M
post_max_size - 10M
sql.safe_mode - Off
upload_max_filesize - 10M
mysql.max_links - Unlimited
mysql.max_persistent - Unlimited
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
pcre.backtrack_limit - 1000000
pcre.recursion_limit - 100000
session.cache_limiter - <i>no value</i>
session.gc_maxlifetime - 7200

Browser User-Agent String

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36

Hide Post Content

This will replace the post content with the message: "Content has been removed by an Administrator"

Hide Content

Request Refund

You may not request a refund that is not currently owned by you.