Dinge über ein CDN einzubinden war einmal eine gute Idee
Mit LTE/4G ist die Menge an übertragenen Daten nicht so wichtig, das war aber einmal anders.
Daher band man zb jQuery oder andere JavaScript-Bibliotheken über ein CDN ein.
Was war die Idee?
Wenn viele Webseiten das machten, dann war die Bibliothek schon im Browser-Cache und musste nicht jedes mal erneut heruntergeladen werden.
WordPress bindet jQuery ja standardmäßig ein, daher war fast sicher, dass man als Websurfer irgendwann mal die Bibliothek in den Browser-Cache geladen hat.
Privatsphäre macht cross site ressource caching zunichte
Jede Webseite hat jetzt ihren eigenen Browser-Cache.
Aus Datenschutz- und Security-Gründen sind Browser-Hersteller dazu übergegangen, dass jede Webseite einen eigenen Cache bekommt.
Google bzw das Chrome-Team nennt das „Cache Partitioning„.
Google erklärt das hier in einem Blogartikel https://developers.google.com/web/updates/2020/10/http-cache-partitioning und Heise versucht das auf Deutsch aufzubereiten https://www.heise.de/news/Browser-Cache-Google-Chrome-laedt-mehr-Inhalte-neu-4926524.html und hier wird näher darüber diskutiert.
Apple ist schon länger an dem Thema dran, was man hier nachlesen kann: https://bugs.webkit.org/show_bug.cgi?id=110269
Aus diesem Cache kann die Seite nicht ausbrechen und auch nicht in anderen Cache-Bereichen zugreifen.
Die oben genannte jQuery-Bibliothek wird also für jede Webseite separat heruntergeladen.
Damit kann ich mich also nicht darauf verlassen, dass jQuery schon irgendwann einmal im Browser-Cache geladen wurde.
Geschwindigkeitsnachteil durch weiteren DNS-Lookup.
Eine weitere Domain abzurufen erzeugt einen DNS-Lookup. Das erhöht die Ladezeit.
Der Punkt ist jetzt eher nachrangig, aber dennoch:
Jedes weitere Ansprechen einer Domain erzeugt einen DNS-Lookup. Der Domainname muss aufgelöst und ein weiterer Server angesprochen werden.
CDN = ein weiterer Dienst, der ausfallen kann
Durch die Verwendung eines CDN mache ich mich von einem weiteren Baustein abhängig.
Hoste ich nicht selbst ein CDN, dann begebe ich mich in die Abhängigkeit eines weiteren Dienstes.
Der irgendwann einmal down sein kann.
Dadurch wird die eigene Webseite nicht richtig dargestellt, im besten Fall.
Im schlimmsten Fall wird die eigene Seite unbenutzbar.
Die liebe DSGVO mag keine CDNs.
Für die meisten Abrufe eines externen Dienstes braucht es vorab die Zustimmung.
Ja, richtig gelesen.
Werden Ressourcen von anderen Domains abgerufen, braucht es vor dem Abruf eine Zustimmung der Besucher. In den meisten Fällen.
Erst danach darf ich die Ressource laden.
Viele WordPress-Core-Contributor wollten das jahrelang nicht hören, aber das Laden von Drittressourcen widerspricht in den meisten Fällen der DSGVO. Wenn nicht vorab eine Zustimmung eingeholt wurde.
Conclusio
Dinge selbst hosten und einbinden ist der sicherste Weg!
Oft werden in Performance-Checks CND-Dienste als Verbesserungsmöglichkeit angeboten. Dast ist mEn aber eher Geschäftsmacherei.
Der kleine Onlineshop oder die Vereins-Seite oder die Firmenpräsenation im Web brauchen kein CDN. Absolut nicht.