Skip to content

feat: template SEO titles and descriptions - #1212

Merged
Siumauricio merged 3 commits into
Dokploy:canaryfrom
imrja8:seo/template-meta
Oct 15, 2026
Merged

Siumauricio merged 3 commits into
Dokploy:canaryfrom
imrja8:seo/template-meta

Conversation

@imrja8

@imrja8 imrja8 commented Oct 10, 2026 •

Copy link
Copy Markdown
Collaborator

What is this PR about?

SEO improvements for 84 templates and the templates.dokploy.com homepage.

Two new fields (seoTitle and seoDescription) have been added to 84 template meta.json files. The description field in each has also been updated with better SEO copy. Additionally, app/index.html now includes proper meta tags and a canonical link.

A newConfig boolean 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 seoTitle and seoDescription to each template's meta.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.com site 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.html now includes:

  • A proper title and meta description matching what dokploy.com/templates uses, so both sites show consistent information in search results
  • OpenGraph and Twitter card tags so the page looks good when shared on social media
  • A canonical link pointing to dokploy.com/templates

Why a canonical link?

When someone searches "dokploy templates", Google sometimes shows templates.dokploy.com instead of dokploy.com/templates. But dokploy.com/templates is actually the better page because it has a dedicated URL for each template (like /templates/n8n or /templates/grafana), each with its own SEO metadata, structured data, and server rendered content.

On the other hand, templates.dokploy.com is 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 visiting templates.dokploy.com directly 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: true flag was added only to those 55 templates. This approach provides more granular control while keeping the other 513 templates unchanged.

What changed

  • 84 blueprints/<id>/meta.json files: updated description with better copy, added seoTitle and seoDescription fields
  • 55 blueprints/<id>/meta.json files: added newConfig: true flag
  • app/index.html: added meta description, OpenGraph tags, Twitter card tags, canonical link, and updated the title

Checklist

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, and newConfig fields from template data.

Screenshots or Videos

No visual changes. This PR only updates metadata fields and HTML meta tags.

Copilot AI balanced review requested due to automatic review settings October 10, 2026 17:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions

github-actions Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

Name Status Preview Last Commit
templates ✅ Ready (View Log) Visit Preview 1acb81b

Copilot AI balanced review requested due to automatic review settings October 10, 2026 18:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI balanced review requested due to automatic review settings October 10, 2026 18:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@Siumauricio Siumauricio left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Approved, thanks!

@Siumauricio
Siumauricio merged commit 084d1cb into Dokploy:canary Oct 15, 2026
3 checks passed
@imrja8
imrja8 deleted the seo/template-meta branch October 25, 2026 05:34

This branch was successfully deployed

1 active deployment
Preview — 1acb81bf Deployed Oct 10, 2026 by github-actions[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants