Closed svenseeberg closed 4 months ago
I think this really has a lot of potential. It is always better to render SEO tags on the initial render. Therefore, directly injecting them on the server makes lots of sense and is also how SEO is implemented traditionally. Currently, it feels like a mix between the responsibilities in the nginx and the frontend.
As a minimum requirement <title>, <description>
tags, the Open Graph protocol tags and twitter card tags should be present.
We could also inject JSON-LD for events or breadcrumbs in the backend, which we are currently implementing in the frontend.
I am not sure if all sites in the frontend are also present
For more context check out IGAPP-100
• Facebook: Beitrag teilen, Sharing-Text als Beitragstext • WhatsApp: Auswahl öffnet sich, an wen es geschickt werden soll, Sharing-Text als Beitragstext • Twitter: Beitrag teilen, Sharing-Text als Beitragstext • Mail: neue E-Mail zum Verfassen öffnet sich, Sharing-Text als E-Mail-Text, Betreff: „Integreat Leseempfehlung: Titel des Beitrags“ (Betreff-Text in die jeweilig genutzte Sprache in der Web App übersetzen) • PDF: Format öffnet sich
Anzeigebild (vorhandenes Bild aus der Web App (wenn kein Bild vorhanden ist, dann vom Promo Team ausgewähltes Bild benutzen), Titel, Anfang vom Text (Teaser)
Anzeige in der jeweilig genutzten Sprache
„Gerade in der #IntegreatApp entdeckt. Was hältst du davon?“ • Auch in die jeweilige Sprache übersetzen, die für den Integreat Inhalt genutzt wurde
I added a bug label because there is a bug in our current implementation outside this CMS. The current solution does not work for HTTP/2 connections.
Motivation
We currently have a quick and dirty solution for rendering social media headers (https://git.tuerantuer.org/Integreat/social-media-meta-tags/src/branch/master/meta.php). This should be replaced by a long term solution within the CMS.
Proposed Solution
We probably need to keep the part with the Nginx Server Side Includes. However, we should move the functionality of the PHP script directly into the CMS and also support events, locations, etc.
Alternatives
Implement the full URL pattern and API functionality in our hacky PHP script. :-(
Additional Context
Design Requirements