On a report when say I change the data the report is refreshed if I change the date from 1/1/2018 to 22/12/2019 the vizs reffershes which takes 20 seconds, when then I change the date back to 1/1/2018, it then refreshes the page but still takes around 20 seconds when I would think it would be instant as that querty had just run. The report has 10 filters in total.
In web pages basically why does it not cache previous filtered results to show quickly ?
Because that's not how Tableau works.
Tableau caches the DATA that is available to the workbook so that the viz does not have to do a round trip to the database.
It does not cache query results: every time you interact with a filter, Tableau has to recalculate what it's being asked to display.