Wie in den letzten Tagen berichtet, kann es bei der Ausspielung von AMP-Seiten in Verbindung mit dem Content Delivery Network (CDN) von Cloudflare zu Problemen kommen. Der Grund ist, dass eine Funktion des Cloudflare-CDNs zusätzliche JavaScript-Tags in den Quellcode der AMP-Seiten einfügt. Doch es gibt immerhin eine Zwischenlösung.
Das Accelerated Mobile Framework (AMP) nutzt ein Google-eigenes CDN. Bei Webseiten, die über das CDN von Cloudflare ausgeliefert werden, kann es allerdings zu Problemen bei der Validierung von AMP-Seiten kommen. Der Grund ist, dass Cloudflare zusätzliches JavaScript in den Quellcode einfügt. Genauer gesagt geht es um die Funktion "Rocket Loader", die für asynchrones Laden der JavaScript-Dateien sorgen soll. Entsprechende Stellen im Code sehen so aus:
<script type="text/javascript">
//<![CDATA[
[Cloudflare javascript loader code here]
//]]>
</script>
Damit wird Code von Cloudflare geladen, der nicht Bestandteil von AMP ist, so dass die Validierung der Seiten fehlschlägt. Zur Validierung kann man zum Beispiel die Konsole in Google Chrome verwenden. Dazu muss man an die zu prüfende URL das Suffix #development=1 anhängen.
Die Zwischenlösung besteht einfach darin, die Rocket Loader-Funktion für das CDN zu deaktivieren. Im Test führte das zu einer erfolgreichen Validierung. Leider lässt sich die Funktion jedoch derzeit nur für die komplette Domain deaktivieren, so dass auch alle anderen Seiten betroffen sind, die ansonsten von Rocket Loader profitieren würden.
Ein Vorschlag wäre, dass Cloudflare AMP-Seiten selbständig erkennt und in diesen Fällen kein JavaScript einfügt. Cloudflare ist informiert. Es bleibt abzuwarten, ob und wann das Unternehmen darauf reagieren wird.
Siehe auch die zugehörige Diskussion in GitHub