All Website Dashboard is empty



I do not know exactly since which version of Piwik I have this, but suddenly when I click on All Websites in the Top menu, Piwik just says: 0 - 4 of 4 and show an empty page.

Since I did not have the time to investigate this, I never post a forum topic. Now I have installed a fresh piwik installation with a new and empty database, and I have the same problem I have installed 2.3.0 and 2.6.1, both the same issue. The reason for me to use 2.3.0 is that Wesbiste Management is messed up when I install Piwik 2.4 <. For that I will post another topic.

For this issue, All Website dashboard is empty I attached a printscreen. I have searched for maybe a setting ‘show in all website dashboard’, but I cannot find such a setting, nor find anything regarding this issue on the forum. I tested in both Chrome and Firefox.

Does anyone have a solution?

(Matthieu Aubry) #2

hello, look in your browser console, do you see some messages there? maybe errors ? or look in your server error log files ?


Try deleteing tmp folder contents, and checking memory setting of if low raise it(low being 128 megs or lower).
good luck


The tmp folder is empty and PHP has 320 megs, still shows 0 from 5 websites.

I need to find the browser console (?) and the error logs on my server to see if there are messages regarding this.


I'm having the same problem too. I'm on 2.6.1.

When I clear the Browser Console and refresh the All Websites page, I get this error in the console:

"Error: [$compile:tplrt] Template for directive 'piwikMenudropdown' must have exactly one root element. plugins/CoreHome/angularjs/menudropdown/menudropdown.html?cb=cd7951638d3d05a602fd60d2b2e21c4d$compile/tplrt?p0=piwikMenudropdown&p1=plugins%2FCoreHome%2Fangularjs%2Fmenudropdown%2Fmenudropdown.html%3Fcb%3Dcd7951638d3d05a602fd60d2b2e21c4d
createHttpBackend/" index.php:659

"Error: [$compile:tplrt] Template for directive 'piwikMultisitesSite' must have exactly one root element. plugins/MultiSites/angularjs/site/site.html?cb=cd7951638d3d05a602fd60d2b2e21c4d$compile/tplrt?p0=piwikMultisitesSite&p1=plugins%2FMultiSites%2Fangularjs%2Fsite%2Fsite.html%3Fcb%3Dcd7951638d3d05a602fd60d2b2e21c4d
createHttpBackend/" index.php:659


I will put my hand up as another person getting the second error:
Error: [$compile:tplrt] Template for directive 'piwikMultisitesSite' must have exactly one root element. plugins/MultiSites/angularjs/site/site.html?cb=550bc51dcd8412e289966c53e41022f9$compile/tplrt?p0=piwikMultisitesSite&p1…tes%2Fangularjs%2Fsite%2Fsite.html%3Fcb%3D550bc51dcd8412e289966c53e41022f9
at wrappedCallback (
at Scope.$eval (
at Scope.$digest (
at Scope.$apply (
at done (
at completeRequest ( index.php?module=Proxy&action=getCoreJs&cb=550bc51dcd8412e289966c53e41022f9:659(anonymous function) index.php?module=Proxy&action=getCoreJs&cb=550bc51dcd8412e289966c53e41022f9:659(anonymous function) index.php?module=Proxy&action=getCoreJs&cb=550bc51dcd8412e289966c53e41022f9:570wrappedCallback index.php?module=Proxy&action=getCoreJs&cb=550bc51dcd8412e289966c53e41022f9:735(anonymous function) index.php?module=Proxy&action=getCoreJs&cb=550bc51dcd8412e289966c53e41022f9:740Scope.$eval index.php?module=Proxy&action=getCoreJs&cb=550bc51dcd8412e289966c53e41022f9:762Scope.$digest index.php?module=Proxy&action=getCoreJs&cb=550bc51dcd8412e289966c53e41022f9:759Scope.$apply index.php?module=Proxy&action=getCoreJs&cb=550bc51dcd8412e289966c53e41022f9:763done index.php?module=Proxy&action=getCoreJs&cb=550bc51dcd8412e289966c53e41022f9:594completeRequest index.php?module=Proxy&action=getCoreJs&cb=550bc51dcd8412e289966c53e41022f9:610xhr.onreadystatechange

I have tried clearing my cache files, tried over http and https... cant seem to figure out the cause.


OK :slight_smile: so having a look I now know WHY this is happening but cant seem to find the cause.

If you have a look at (also below) you will see a rogue tag at the front… which I believe shouldn’t be there.

Hmm… now just to find where it is coming from.

{{ website.label }}
    <span style="width:10px;margin-left:3px">
        <a target="_blank" title="{{ 'General_GoTo'|translate:website.main_url }}" ng-href="{{ website.main_url }}">
        <img src="plugins/Morpheus/images/link.gif"/></a>
<td ng-if="website.isGroup" class="multisites-label label">
    {{ website.label }}
<td class="multisites-column">
    {{ website.nb_visits }}
<td class="multisites-column">
    {{ website.nb_pageviews }}
<td ng-if="displayRevenueColumn" class="multisites-column">
    {{ website.revenue }}

<td ng-if="period != 'range'" style="width:170px">
    <div class="visits" ng-if="!website.isGroup">
        <span ng-show="website[evolutionMetric] > 0"><img src="plugins/MultiSites/images/arrow_up.png" alt=""/> <span style="color:green">{{ website[evolutionMetric] }}%&nbsp;</span></span>
        <span ng-show="website[evolutionMetric] == 0"><img src="plugins/MultiSites/images/stop.png" alt=""/> <span>{{ website[evolutionMetric] }}%</span></span>
        <span ng-show="website[evolutionMetric] < 0"><img src="plugins/MultiSites/images/arrow_down.png" alt=""/> <span style="color:red">{{ website[evolutionMetric] }}%&nbsp;</span></span>

<td ng-if="showSparklines" style="width:180px">
    <div ng-if="!website.isGroup" class="sparkline" style="width:100px;margin:auto">
        <a target="_blank" ng-href="index.php?module=CoreHome&action=index&date={{ date }}&period={{ period }}&idSite={{ website.idsite }}" title="{{ 'General_GoTo'|translate:('Dashboard_DashboardOf'|translate:website.label) }}">
            <img alt="" ng-src="{{ sparklineImage(website) }}" width="100" height="25"/>


RIGHT :smiley: and I has a resolution (at least for my particular case).

For future reference the cause was mod_pagespeed and the add_head filter. Essentially it was adding a rogue tag to the HTML file loading the dashboard which was giving the template compiler grief.

SO I just disabled it as I have no immediate need for it anyway.

Add Head is the location and I just added it to the DisableFilters directive in pagespeed.conf.

Hope that helps some others too :slight_smile:


Oh and SSMPM yep looks like you have the same issue just checked the same HTML file (for your piwik install) and mod_pagespeed is adding the header tag (and some other funky stuff too)


Yes! mod_pagespeed did the trick.

I disabled mod_pagespeed and restart Apache. Then I refreshed the All Websites page in Piwik. After that I enabled mod_pagespeed again, restarted Apache and the All Websites page in Piwik keeps on working fine! No need to exclude Piwik from the mod_pagespeed.


@stuartcryan, great job sleuthing.

And thanks to @pubuse. I was testing removing Add Head but you’re right, that’s not necessary. I disabled pagespeed, did a ‘service nginx reload’, refreshed Piwik to check that it worked, reenabled pagespeed, another ‘service nginx reload’ and checked that all is still good with Piwik.


Woot :slight_smile: glad we are all sorted, and interesting I will have a play and see if I can get it to work while enabled, tho I am guessing you may have a cached working version somewhere so when that expires the problem may resurface.

Anyhoo haha I am just happy I can see my dashboard again :smiley:


Just wanted to confirm that ngx_pagespeed’s Add Head filter is the sole reason that the Websites settings page wasn’t listing any sites.

And I’ve just confirmed that the Add Instrumentation filter is the sole reason that user link and drop-down wasn’t displaying for me either.

This is true for ngx_pagespeed at least.

(Matthieu Aubry) #14

@ssmpm thanks for letting us know! I’ve added a comment in the pagespeed issue Warn in System check that Piwik is not compatible with Apache modspeed and ngx_pagespeed · Issue #5081 · matomo-org/matomo · GitHub


@matt - happy to help out


Thanks. Finally the problem is solved after almost 2 months in a row. Disabling GoogleSpeed worked really well.