Repository navigation
feat: template SEO titles and descriptions - #1212
Merged
Merged
Conversation
built with Refined Cloudflare Pages Action⚡ Cloudflare Pages Deployment
|
4 tasks done
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What is this PR about?
SEO improvements for 84 templates and the templates.dokploy.com homepage.
Two new fields (
seoTitleandseoDescription) have been added to 84 templatemeta.jsonfiles. Thedescriptionfield in each has also been updated with better SEO copy. Additionally,app/index.htmlnow includes proper meta tags and a canonical link.A
newConfigboolean flag has been added to 55 templates to enable dynamic configuration text that includes the template name.This PR works together with Dokploy/website PR #199, which updates the website code to read and use these new fields when rendering the page title and meta description on
dokploy.com/templates/<id>pages.Why seoTitle and seoDescription?
Right now, every template page on
dokploy.com/templates/<id>uses the same formula for the title tag. It always says "Deploy {name} on Dokploy". The meta description also just takes the template description and adds some boilerplate text at the end.This means every template page looks almost the same to Google, and none of them target the actual keywords people search for. For example, people search for "n8n self hosted" (1000 searches/month) or "jellyfin docker compose" (400 searches/month), but the pages don't mention those terms in the title or meta description.
By adding
seoTitleandseoDescriptionto each template'smeta.json, there is now full control over what Google shows for each template page. The website code (in the other PR) picks up these fields when they exist, and falls back to the old formula for templates that don't have them yet.Why update app/index.html?
The
templates.dokploy.comsite had almost no SEO setup at all. The title was just "Dokploy Blueprints", there was no meta description, no OpenGraph tags, and no Twitter card tags. Because of this, search engines had nothing useful to show and were just pulling random text from template cards on the page as the search snippet.The updated
index.htmlnow includes:dokploy.com/templatesuses, so both sites show consistent information in search resultsdokploy.com/templatesWhy a canonical link?
When someone searches "dokploy templates", Google sometimes shows
templates.dokploy.cominstead ofdokploy.com/templates. Butdokploy.com/templatesis actually the better page because it has a dedicated URL for each template (like/templates/n8nor/templates/grafana), each with its own SEO metadata, structured data, and server rendered content.On the other hand,
templates.dokploy.comis a single page app that shows templates in popups. It doesn't have separate URLs for each template, so Google can't index individual templates from it. It mainly exists as a data provider for the main website.The canonical tag tells Google "the main version of this page lives at
dokploy.com/templates, please rank that one instead." It does not redirect users. Anyone visitingtemplates.dokploy.comdirectly will still see the site working normally.Why the newConfig boolean flag?
The configuration section text could have been made dynamic for all 568 templates (using the template name directly in the website code). However, the original specification only requested this change for 55 specific templates. To respect the scope of the request and maintain explicit control over which templates receive this enhancement, a
newConfig: trueflag was added only to those 55 templates. This approach provides more granular control while keeping the other 513 templates unchanged.What changed
blueprints/<id>/meta.jsonfiles: updateddescriptionwith better copy, addedseoTitleandseoDescriptionfieldsblueprints/<id>/meta.jsonfiles: addednewConfig: trueflagapp/index.html: added meta description, OpenGraph tags, Twitter card tags, canonical link, and updated the titleChecklist
Before submitting this PR, please make sure that:
PR related
Works together with Dokploy/website PR #199, which updates the website code to read the new
seoTitle,seoDescription, andnewConfigfields from template data.Screenshots or Videos
No visual changes. This PR only updates metadata fields and HTML meta tags.