We're interested in using AMP for the load time optimizations, but there's some concern about depending on external CDNs and having our page cached by organizations outside of our control (ie, Google). Is it possible to create a page using the AMP toolkit that takes advantage of the performance optimizations, but allows us to retain control of the CDNs and cacheing strategies?
Doesn't matter to us if it actually validates as AMP or not, so long as it's fast and under our control.
Thanks.
It depends on your requirements. Valid AMP pages require serving the AMP script from Google's servers.
From the documentation:
AMP HTML documents MUST:
(...)
Contain a <script async src="https://cdn.ampproject.org/v0.js"></script> tag
as the second child of their <head> tag (this includes and loads the AMP JS
library).
As far as I've seen, embedding the AMP script(s) locally or from another CDN will render your pages correctly - but it's not valid AMP anymore. You could use AMP as a mobile toolkit, ideally by forking the AMP project and editing the validator to make it work properly. Of course, Google would not evaluate the resulting pages as AMP, deny any privileges in the search engine, and not include you into the AMP cache.
In other words: If you want to use AMP, Google demands that you'll tell them about every single call to every single AMP page and depend on their CDN.