Skip to content
This repository has been archived by the owner on Oct 4, 2023. It is now read-only.

[C-2941] Modify cloudflare worker to pull in SEO data from discovery nodes #3858

Merged
merged 3 commits into from
Aug 8, 2023

Conversation

raymondjacobson
Copy link
Member

Description

Most (95+%) of pages aren't recognized by google at all right now.
This does a nifty on the fly html rewrite on the cloudflare side (which is then cached) and injects the proper tags from a request sent to discovery nodes.
This is a fairly well supported pattern:
https://developers.cloudflare.com/workers/runtime-apis/html-rewriter/#async-handlers

This will cause a minor slowdown when things aren't cached, but I think well worth it for discovery purposes.

Dragons

Is there anything the reviewer should be on the lookout for? Are there any dangerous changes?

Touches main serving.

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide repro instructions & any configuration.

npx wrangler preview --watch --env ray

Verified page source to see the right tags populated for

  • track page
  • playlist page / album page
  • user page
  • home page
  • /audio page (just to test some other pages)

How will this change be monitored?

For features that are critical or could fail silently please describe the monitoring/alerting being added.

Feature Flags

Are all new features properly feature flagged? Describe added feature flags.

@audius-infra
Copy link
Collaborator

Preview this change https://demo.audius.co/rj-seo

Copy link
Contributor

@sliptype sliptype left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very cool! Would be good to see how much this slows uncached page loads on average

I mean this is basically SSR for the metadata, I wonder if we could SSR the entire app using cloudflare workers

packages/web/scripts/workers-site/index.js Outdated Show resolved Hide resolved
Co-authored-by: Sebastian Klingler <sliptype@gmail.com>
@raymondjacobson
Copy link
Member Author

Very cool! Would be good to see how much this slows uncached page loads on average

I mean this is basically SSR for the metadata, I wonder if we could SSR the entire app using cloudflare workers

The discovery requests are all <200ms, so hopefully not substantially enough to tell! I'll watch the cloudflare metrics on this though

https://dash.cloudflare.com/3811365464a8e56b2b27a5590e328e49/audius.co/analytics/traffic?host=audius.co

https://dash.cloudflare.com/3811365464a8e56b2b27a5590e328e49/audius.co/analytics/workers

@audius-infra
Copy link
Collaborator

Preview this change https://demo.audius.co/rj-seo

@raymondjacobson raymondjacobson merged commit 20476ee into main Aug 8, 2023
2 checks passed
@raymondjacobson raymondjacobson deleted the rj-seo branch August 8, 2023 19:11
schottra added a commit that referenced this pull request Aug 8, 2023
* origin/main:
  Add nodes to env for SEO support (#3859)
  [C-2941] Modify cloudflare worker to pull in SEO data from discovery nodes (#3858)
  [C-2879] Add validation to single track upload flow (#3855)
  [C-2940] Update google analytics tags and fix embed build (#3856)
  [C-2852 PLAT-1094 PLAT-1093] Add fetch collection by permalink (#3751)
  v1.5.36
  Add DirectMessages Banner and Update All Banners (#3851)
  [PAY-1692] Rewrite 'Share to DMs' using less stateful logic (#3852)
  [C-2675][C-2692] Add multi track navigation sidebar and form controls (#3847)
  Fix send audio flow (#3850)
  Update SDK to latest 3.0.3-beta.109 (#3849)
raymondjacobson added a commit that referenced this pull request Aug 9, 2023
…nodes (#3858)

Co-authored-by: Sebastian Klingler <sliptype@gmail.com>
audius-infra pushed a commit that referenced this pull request Aug 12, 2023
[3436c20] [PAY-1701] Fix "Share to DMs" to work through InboxUnavailableModal (#3874) Marcus Pasell
[a740243] Add sdk:update-hotfix (#3875) Dylan Jeffers
[a25fd19] [C-2759] Make donation link external (#3872) Dylan Jeffers
[15f056c] [PAY-1630] Wire up purchase content sagas (#3834) Randy Schott
[998d44b] Fix mobile crash on drawer dismiss (#3871) Reed
[7d0e0b3] [PAY-1430] "Leaving Audius" Warning for External Links (and createModal helper) (#3860) Marcus Pasell
[bee8bd1] Remove .only on upload cypress test (#3869) Raymond Jacobson
[4c0b25f] [C-2926] Implement selected values for upload contextual menu fields (#3848) Dylan Jeffers
[5773578] Preserve CIDs for track and collection cover arts (#3866) Marcus Pasell
[be0d278] [C-2930] Fix extra space after username in tip to unlock modal (#3845) nicoback2
[f5320be] QA-588 Fix collection card profile link  (#3853) nicoback2
[360416e] Fix broken playlist fetch via resolve (#3863) Raymond Jacobson
[2dc2c29] [PAY-1695] DMs: Entrypoint Analytics (#3862) Marcus Pasell
[f80d366] Minor improvements to SEO flow merged in #3859 (#3861) Raymond Jacobson
[b99d62f] Add nodes to env for SEO support (#3859) Raymond Jacobson
[20476ee] [C-2941] Modify cloudflare worker to pull in SEO data from discovery nodes (#3858) Raymond Jacobson
[7f79830] [C-2879] Add validation to single track upload flow (#3855) Kyle Shanks
[6f4fc89] [C-2940] Update google analytics tags and fix embed build (#3856) Raymond Jacobson
[3469c89] [C-2852 PLAT-1094 PLAT-1093] Add fetch collection by permalink (#3751) Dylan Jeffers
dylanjeffers pushed a commit that referenced this pull request Aug 15, 2023
…nodes (#3858)

Co-authored-by: Sebastian Klingler <sliptype@gmail.com>
@AudiusProject AudiusProject deleted a comment from linear bot Sep 11, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants