The most important SEO tool for your EmDash site isn’t a plugin. It’s the architecture itself.
For two decades, WordPress taught us that SEO requires a dedicated plugin like Yoast or Rank Math. You install it, configure it, and hope the developer keeps it updated. EmDash flips that assumption. Its built-in SEO controls are not an afterthought — they’re baked into the content model, the routing system, and the edge infrastructure. You don’t need a plugin because the whole CMS was designed with SEO as a first-class feature.
EmDash's SEO is not a feature you install. It's the default state of the system.
And the result? Faster pages, cleaner code, and fewer vulnerabilities. Here’s how to use every built-in SEO tool without installing a single third-party plugin.
What EmDash Ships With (Out of the Box)
When you create a new EmDash site using the CLI (npm create emdash@latestcodecodecodecode), you get a working CMS with SEO already active. No configuration required for the basics. But to really leverage it, you need to know where the controls live.
The admin panel has a dedicated SEO settings section under Settings > General. That’s where you set your site title, tagline, and social links. But the real power is in the per-content-type configuration.
Step 1: Enable SEO for Each Content Type
EmDash treats every content type — pages, posts, custom types — as a schema. Inside the admin, go to Admin > Content Types. Click on a type (like “Posts”) and toggle the “SEO enabled” switch.
What this does: It adds meta fields to every new item of that type: meta title, meta description, canonical URL, and open graph image. It also includes that content type in the automatic sitemap.
This is a huge departure from WordPress, where you need a plugin to attach SEO fields to custom post types. EmDash makes it native.
Step 2: Fill Per-Item Meta Fields
When you edit a page or post, look at the right sidebar. There’s an “SEO” panel. Expand it.
- Meta Title: Defaults to the content title. Override it if you want a different length or focus keyword.
- Meta Description: Write a compelling 155-character summary. EmDash doesn’t force a character limit but Google’s snippet does.
- Canonical URL: Leave blank to auto-generate from the slug. Set manually if you’re syndicating content.
- Open Graph Title & Description: These control how your post looks when shared on social media. They default to the meta values but can be customized independently.
- Open Graph Image: Upload a dedicated social image. Falls back to the featured image if none is set.
All these fields are stored as structured JSON (portable text), not as HTML blobs. That means they’re machine-readable and easy to query via the API or MCP server.
Step 3: Manage Your Sitemap
EmDash automatically generates an XML sitemap for all SEO-enabled content types. You don’t need to install a plugin or configure a cron job. The sitemap is served from the edge and updates in real time as you publish or unpublish content.
To find it, visit yoursite.com/sitemap.xmlcodecodecodecode. EmDash also includes the sitemap in its robots.txtcodecodecodecode by default.
What you can’t do (yet): Exclude individual posts from the sitemap. That’s a feature that will likely come in a future release. For now, the sitemap includes all published content. If you need to exclude something, unpublish it.
Step 4: Set Up Redirects and 404 Handling
Under Manage > Redirects, you can create 301 or 302 redirects for any URL pattern. This is native — no plugin needed. Useful when you migrate from WordPress and need to preserve link equity.
EmDash also has a 404 page that you can customize in the theme. Since themes are built with Astro, you can edit the error layout directly in your codebase.
Step 5: Leverage Infrastructure-Level SEO
This is where EmDash leaves WordPress behind. Because EmDash runs on Cloudflare’s edge network (Workers, D1, R2), every page is served from the closest data center. Google rewards fast Time to First Byte (TTFB), and EmDash’s architecture delivers sub-100ms globally.
Additionally:
- Zero egress fees on R2 means you can serve images from the same edge without paying extra.
- Automatic HTTP/3 and Brotli compression are enabled by default.
- Built-in caching through Cloudflare’s CDN means static pages don’t hit the database at all.
None of these require a plugin. They’re the result of choosing a serverless, edge-based architecture.
Comparison: EmDash Built-In vs WordPress SEO Plugins
| Feature | EmDash (Built-In) | WordPress + Yoast | WordPress + Rank Math |
|---|---|---|---|
| Meta fields per content type | Native, no plugin | Requires plugin activation | Requires plugin activation |
| Sitemap generation | Automatic, edge-served | Plugin-generated, cached | Plugin-generated, cached |
| Open Graph tags | Per-item, customizable | Per-item, customizable | Per-item, customizable |
| Redirects | Built-in manager | Requires separate plugin | Requires separate plugin |
| Infrastructure-level speed | Edge-based, zero-config | Depends on hosting + caching | Depends on hosting + caching |
| Cost | $0 (included) | Free tier; premium $89/year | Free tier; premium $59/year |
The table shows that EmDash’s built-in tools cover the essentials without recurring plugin costs. The infrastructure advantage is unique — no WordPress host can match Cloudflare’s edge network without additional setup.
The AI Edge: SEO Through Agents
EmDash ships with a built-in MCP server. That means an AI coding agent can read your content, analyze SEO fields, and suggest improvements — all without a plugin.
For example, you can prompt Claude or Cursor: “Find all posts where the meta description is missing or too short. Write a new description for each one.” The agent connects to the MCP server, queries the content, and updates the fields programmatically.
This isn’t a bolt-on feature. It’s architected from day one. WordPress is still trying to figure out how to make AI work with its plugin ecosystem. EmDash already has the API ready.
One Thing to Watch Out For
The built-in SEO tools are powerful, but they don’t include advanced features like schema markup generation (unless you code it yourself), internal linking suggestions, or keyword analysis. For those, you’ll either need a plugin (once the ecosystem grows) or an AI agent that can generate the necessary schema JSON.
That said, for 95% of content sites — blogs, portfolios, small business pages — EmDash’s built-in SEO is more than enough. You save money, reduce plugin bloat, and eliminate a major attack surface.
The Takeaway
EmDash’s SEO is not a feature you install. It’s the default state of the system. The architecture itself — edge delivery, structured content, automatic sitemaps, passkey authentication (no password leaks) — gives you a head start that no plugin can match.
WordPress made SEO a plugin problem. EmDash makes it a solved problem. The only thing you need to do is fill in the fields.
- What makes EmDash's built-in SEO better than WordPress plugins?EmDash's SEO is baked into the content model, routing system, and edge infrastructure, resulting in faster pages, cleaner code, and fewer vulnerabilities.
- How do you enable SEO for each content type in EmDash?Go to Admin > Content Types, select a type like 'Posts', and toggle the 'SEO enabled' switch to add meta fields and include it in the automatic sitemap.
- What SEO fields can you set per item in EmDash?You can set meta title, meta description, canonical URL, open graph title, open graph description, and open graph image in the SEO panel of the editor.
- Does EmDash automatically generate an XML sitemap?Yes, EmDash automatically generates an XML sitemap for all SEO-enabled content types without any configuration.