Guide to SEO tools
Learn how to manage SEO in ApostropheCMS, from meta fields and structured data to robots.txt, AI crawler control, and writing content that gets cited by LLMs.
-
- 16 min read
- Content Management
- Last Updated July 29, 2026
What is the SEO extension?
ApostropheCMS includes a free, officially supported SEO extension (@apostrophecms/seo) that your development team installs as part of your project. Once installed, it automatically adds SEO controls to every page and piece in the CMS — no additional setup required.
The extension handles:
Meta fields: the title and description search engines and AI tools display in results
Canonical URLs: preventing duplicate content issues
Robots meta tags: telling crawlers whether to index a page
Structured data (JSON-LD): enabling rich results across search engines and improving how AI systems understand and cite your content
Analytics integrations: Google Analytics, Tag Manager, Site Verification
Automated robots.txt: site-wide crawl rules for search engines and AI bots
llms.txt: a new, evolving standard for communicating AI content polic
The SEO tab: your page-level controls
When editing any page or piece, look for the SEO tab in the document editor, which is essentially the same as the document’s settings. This is where you control how that specific piece of content appears in search results.
To find this modal from the document itself:
Click the action menu (the three dots) in the top right corner to the left of “Preview” and “Update.”
Select “Edit.”
Navigate to the SEO tab.
You can also access it by clicking the title of the document from the manager modal that shows the full list of documents of a particular type. An example is the Pages Manager, which you can access by clicking “Pages” from the admin bar.

Once in the SEO tab, you can modify the following:
SEO title
The SEO Title field, also known as the title tag, is what appears as the clickable headline in search engine results and browser tabs.
How it works: If you leave this field empty, the page's main title is used as a fallback. Set a custom title here when you want search engines to see something different from your content's display title.
Best practices:
Keep it under 60 characters to avoid truncation in search results
Make it descriptive and specific rather than vague
Write for humans; keyword stuffing is over
Meta description
The meta description is the short summary that appears below the title in search results. It doesn't directly affect rankings, but it strongly affects click-through rate. You can find this field under the “Title” field in the SEO tab.
Best practices:
Keep it between 140–160 characters
Summarize the page's main value
Include a call to action when appropriate, such as “Learn how…"
Each page should have a unique meta description (don’t re-use across pages)
Note: If left empty, search engines will auto-generate a snippet from your page content. This is less predictable and typically less effective.
Robots meta tag
This controls whether search engines are allowed to index a page and follow its links. Most pages should use the default setting (Index, Follow). When the SEO extension is active in your project, this will appear as two checkboxes. If you keep them unchecked, the default setting of index and follow will be applied.
If you want to change the visibility of a particular document, you could select:
No Follow - Don’t follow links on this page
No Index - Don’t show this page in search results
This UI allows you to achieve any of these possible scenarios:
Setting | When to use it | Action |
|---|---|---|
Index, Follow (default) | All published, public content | Leave both unchecked |
No Index, Follow | Pages you don't want in search results but whose links should still be followed (e.g., thank-you pages, internal tools) | Check the “No index” box |
Index, No Follow | Pages that should appear in results but whose links shouldn't pass authority | Check the “No follow” box |
No Index, No Follow | Pages completely excluded from search (e.g., staging content, login pages) | Check both boxes |
Canonical URL
A canonical URL tells search engines which version of a page is the "official" one. This matters when the same content might be accessible from multiple URLs (e.g., filtered views, pagination, syndicated content).
When to use this field:
If your content is syndicated or republished elsewhere, set the canonical to the original source URL
For content that appears under multiple internal URLs, set the canonical to the preferred version
In most cases, though, you’ll want to leave this blank, because ApostropheCMS sets canonical URLs automatically based on your site's base URL configuration.
Schema type
Structured data is covered in detail in Section 4, but basically, the Schema Type dropdown lets search engines and AI systems understand what kind of content this page is, optimizing your content for answer engines and enabling rich results (star ratings, FAQ accordions, event details, etc.) in search. The SEO Extension comes with a default list of options, but your developers can add additional ones based on your use case or needs.
Global SEO settings
Editors with administrative access can configure site-wide SEO defaults through the Global settings area. These settings apply across the entire site and don't need to be set per-page.
How to access Global Settings
Look for the gear icon in the top right of the admin bar. Click this to open Global Settings.

What you can configure globally:
Structured data
You should see fields for Site Base URL, as well as Organization Information that includes your Organization Name, Organization Type, Description, logo, contact information, and address. This is important structured data that applies to your entire website.
Analytics
Google Analytics (GA4)
Enter your Measurement ID (formatted as G-XXXXXXXXXX) to enable analytics tracking across all pages.
Google Tag Manager
Enter your GTM container ID (formatted as GTM-XXXXXXX) if your team uses Tag Manager to manage tracking scripts.
Google Site Verification
Paste the verification code from Google Search Console to confirm ownership of your site with Google.
Robots.txt
See Section 5 for full details.
llms.txt
See Section 6 for full details.
Structured data and schema types
What is structured data?
Structured data is machine-readable information embedded in your pages that helps Google understand what your content is, not just what it says. When Google understands the type of content, it can display rich results, which are visually enhanced search listings that can include star ratings, FAQs, pricing, event dates, and more.
ApostropheCMS uses a format called JSON-LD (recommended by Google) to output this structured data automatically based on the Schema Type you select per page.
How do I choose a schema type?
In the SEO tab, use the Schema Type dropdown to select the type that best matches the page's content:
Schema Type | Best for |
|---|---|
WebPage | General pages (default for most content) |
Article | Blog posts, news articles, editorial content |
HowTo | Step-by-step guides and tutorials |
FAQPage | Pages built around questions and answers |
Product | Product detail pages |
Event | Concerts, conferences, workshops, etc. |
Recipe | Cooking or preparation instructions |
VideoObject | Pages featuring a primary video |
LocalBusiness | Pages representing a physical location |
JobPosting | Open job listings |
CollectionPage | Index or listing pages |
Review | Review or testimonial content |
What does structured data actually do?
The most immediate benefit is visual prominence in search results. The research on impact is consistent: pages with rich results see meaningfully higher click-through rates than standard listings.
Beyond click-through rates, structured data does something more fundamental: it gives search engines and AI systems an unambiguous, machine-readable description of your content. Rather than inferring what a page is about from text alone, they can read explicit labels, such as author, price, or event date. That clarity influences how your content is indexed, surfaced in AI-generated answers, and understood across platforms beyond Google, including Bing, Perplexity, and others. While AEO is relatively new, the most valuable tactics or methods are still a bit unclear and are always evolving. Microsoft has specifically confirmed that schema markup helps their LLMs understand content.
Here's what the active, well-supported schema types can do in practice:
Article: Unlocks distribution in Google Discover, Top Stories carousels, and news-adjacent surfaces. Displays author name, published date, and thumbnail. Particularly valuable for editorial and blog content where byline credibility matters.
Product: Displays price, availability, and star ratings directly in search results. One of the highest-impact schema types for e-commerce or any content with purchasable offerings.
Review / AggregateRating: Shows star ratings alongside your listing, increasing visual trust and click-through. Works alongside Product, LocalBusiness, and other types.
FAQPage: Allows questions and answers to expand inline in search results without a click, capturing valuable SERP real estate. Google has restricted this to authoritative sources, so quality and accuracy matter.
Event: Surfaces event date, location, and ticket availability directly in search, including Google's dedicated event listings view.
Recipe: Enables filtering by ingredient, cook time, and calorie count. One of the most visually rich result types in search.
VideoObject: Helps video content appear in video carousels and rich video snippets with title, thumbnail, and duration.
LocalBusiness: Surfaces address, hours, and contact information in search and maps contexts. Particularly relevant for voice search and "near me" queries.
Organization / WebSite: These sitewide schemas run on every page automatically and establish your brand's identity with search engines and AI systems — name, logo, social profiles, and site structure.
What to know about structured data in ApostropheCMS
Apostrophe’s SEO extension automatically generates structured data based on the content in your page. For most schema types to work well, the following content should be present:
Article, Review: Include author information. A byline strengthens both the schema and E-E-A-T signals
FAQPage, QAPage: Requires actual questions and answers present in the page content
Event: Should include address or location details
Recipe: Requires a featured image (Google's requirement for recipe rich results)
VideoObject: Requires a thumbnail and upload date
Product: Benefits from price, availability, and review data
Robots.txt: controlling who can crawl your site
The robots.txt file is a public text file at the root of your site that tells web crawlers which pages they can and cannot access. The SEO extension generates this file automatically and lets you control it through global settings.
Where do I access robots.txt settings in ApostropheCMS?
To access robots.txt settings, open your Global Settings and click the tab labeled SEO/AEO.

Available modes or options for robots.txt in the global settings
Allow All (Search + AI): the default. All crawlers, including AI bots, can access your content. Best for sites that want maximum indexing and AI visibility.
Allow Search, Block AI Training: traditional search engines can index your content normally, but AI training crawlers (like those used by OpenAI, Google AI, and Anthropic) are asked not to train on your content. Note: This relies on crawlers choosing to honor robots.txt. Well-behaved crawlers do; some may not.
Selective AI Crawlers: lets you block specific AI crawlers individually. This is useful if you want to block some AI training while allowing others (e.g., block OpenAI training but allow Google AI).
Block All: prevents all crawlers from indexing any part of the site. Use this for development or staging environments only. Never use this on your live production site.
Custom: write your own robots.txt content for precise control.
What crawlers can I manage in ApostropheCMS for AEO?
Crawler | Controlled by |
|---|---|
GPTBot | OpenAI (ChatGPT training) |
ChatGPT-User | OpenAI (real-time browsing) |
Google-Extended | Google AI training |
ClaudeBot | Anthropic AI training |
Claude-User | Anthropic real-time browsing |
PerplexityBot | Perplexity AI |
AI crawler guidance using llms.txt
llms.txt is a proposed convention for providing AI systems with additional information about your site and its content. Lllm.txt is not a magic bullet for AEO (answer engine optimization) or considered a web standard, and support varies across AI platforms and retrieval systems.
The SEO extension can generate an llms.txt file automatically, and its contents can be configured through global settings.
Why you might use llms.txt
As AI-powered search and answer engines become more common, some organizations are experimenting with llms.txt as a way to provide machine-readable guidance about their content, documentation, and site structure.
While there is currently limited evidence that llms.txt directly improves search rankings, AI citations, or visibility in AI-generated answers, it does not hurt to include it and can serve as a signal for understanding your site's content.
A practical perspective
We view llms.txt as a low-cost enhancement rather than a core SEO requirement.
If your site already has strong fundamentals such as crawlable content, an XML sitemap, clear site structure, and appropriate structured data, adding llms.txt may be worth considering as an experimental, forward-looking optimization.
Just don't treat it as a substitute for the technical SEO and content quality, both of which have a much larger impact on discoverability today.
How do you write to be cited by LLMs?
AEO refers to writing and structuring content so it's more likely to get picked up by LLMs and included in AI-generated answers (ChatGPT, Claude, Perplexity, Google's AI Overviews.). It overlaps significantly with good SEO, but has some specific emphasis.
1. Write direct, factual answers near the top of your content
AI systems and featured snippets both prefer content that answers a question immediately rather than building up to it. If your page addresses "What is a headless CMS?", the first paragraph should answer that directly.
Use clear heading structures
Headings and overall solid page structure has always been important for accessibility and SEO, and now there is one more reason to get it right. In case you need a reminder, AI is very much not human! The way it understands context is specific and unique, and machine-readable headings are important context clues. Clear headings help search engines and AI systems understand the scope and organization of a page, making relevant sections easier to retrieve and quote.
The same rules of good SEO still apply:
Use one H1 per page (the page title)
Use H2s for main sections
Use H3s for sub-topics within sections
For headings, tip the balance toward concise and clear over cute: "How to Install the SEO Extension" beats "Let's Get Started!"
Write (real) FAQ-style content when appropriate
Questions and direct answers are highly extractable by AI systems, but it’s important to be genuine and not create FAQ sections just for SEO or AEO. They should answer real questions your audience asks. When relevant, structure sections of your content as explicit Q&A:
Q: Does the SEO extension work with all page types?
Yes. The extension automatically adds an SEO tab to every page and piece in ApostropheCMS with no additional configuration.
If this format fits your content type, apply the FAQPage schema to unlock the ability to be featured in Google's rich results.
Use schema types intentionally
Structured data helps search engines and other systems understand the purpose of your content. Use schema types that accurately reflect the page's content, such as Article, Product, Event, or Recipe. Schema alone won't guarantee AI citations, but it can improve machine readability and eligibility for search features.
Keep your meta description accurate and specific
Meta descriptions still influence how your content appears in traditional search results and can sometimes be surfaced in AI-powered experiences. Accurate descriptions help users understand what they'll find on the page. Remember: The SEO extension adds this field to your schema, and the SEO Assistant makes it possible to generate descriptions using your AI model of choice.
Prioritize topical depth over keyword repetition
AI-powered search increasingly rewards topical authority — covering a subject comprehensively — over keyword frequency. When writing a piece, aim to address the full scope of the topic, including common questions, edge cases, and related considerations.
Make sure it's clear who the author is
For article content, include a clear author name and, where possible, a brief bio with relevant credentials. Clear authorship can contribute to overall trust and credibility signals, particularly for health, finance, legal, and other high-stakes content. In ApostropheCMS, authors are typically pieces, aka content types, so that you can update the author info in one place and have those updates carry through to any piece of content that author is attached to.
Connecting third-party SEO and analytics tools
ApostropheCMS doesn't try to bundle every SEO and analytics tool into the platform. Instead, it's designed to work openly with the tools your team already uses — or wants to use. This section explains what's possible, how it works, and what to ask your development team to set up.
How integrations work in ApostropheCMS
Most web analytics and SEO tools connect to a site through one of two mechanisms:
A tracking script placed in the
<head>of every page, which is common for analytics platforms and behavior toolsA site verification snippet that confirms to a third-party platform that you own the site — common for SEO tools and Google Search Console
ApostropheCMS makes both straightforward. For tools that need a persistent tracking script, a developer can add a custom field to your Global settings where you (or an admin editor) can paste the snippet provided by the tool — no code deployment required after the initial setup. For verification-only tools, the snippet gets added once during setup and doesn't need to be touched again.
What this means for editors: Once your development team has configured a field for a given tool, you can usually activate or update it yourself by pasting a code snippet directly into your Global settings — similar to how Google Analytics is already configured in the SEO extension.
What analytics tools do most teams use?
These fall into a few different categories. Understanding which category a tool belongs to helps you know how to bring it up with your development team.
Already built into the SEO extension
These don't require any additional developer work. They're configured directly in your Global Settings as long as the SEO extension is installed.
Tool | What it does |
|---|---|
Google Analytics 4 (GA4) | Tracks all site traffic, user behavior, conversions, and referral sources — including AI-driven traffic from ChatGPT, Perplexity, and others |
Google Tag Manager | A container that lets your marketing team deploy and manage tracking tags without requiring code changes |
Google Search Console (site verification) | Connects your site to Google's Search Console for indexing reports, Core Web Vitals, and search performance data |
Connect via a script snippet
These tools provide a JavaScript snippet you embed in every page's <head>. Your dev team can create a simple global field so you can manage this yourself going forward.
Web analytics
Tool | What it does | Why teams use it |
|---|---|---|
Plausible | Lightweight, privacy-first analytics | No cookies, GDPR-compliant by default, clean dashboard |
Fathom | Privacy-first analytics | Similar to Plausible; strong on simplicity and data compliance |
Umami | Open-source, self-hostable analytics | Full data ownership; a good fit for privacy-conscious teams |
Microsoft Clarity | Free behavior analytics | Session recordings and heatmaps; pairs well with GA4 |
Hotjar | Behavior analytics and user feedback | Heatmaps, session recordings, and on-page surveys |
SEO platform verification
Many professional SEO platforms require a small verification snippet to confirm site ownership. Once your dev team adds this, you get access to the platform's full audit and tracking features, but the ongoing work happens entirely outside the CMS.
Tool | What it does |
|---|---|
Ahrefs Webmaster Tools | Free site audit, backlink monitoring, and keyword tracking for your own domain |
Semrush | All-in-one SEO platform; site verification connects your domain to their Site Audit and rank tracking features |
Bing Webmaster Tools | Bing's equivalent of Google Search Console — worth setting up given Bing's role in powering Microsoft Copilot search results |
External analytics tools (no ApostropheCMS connection needed)
These platforms connect to your site through crawling or your Google credentials, not through anything in the CMS. Your development team doesn't need to configure anything for you to use them.
Tool | What it does |
|---|---|
Monitors your site's presence in Google Search: indexing status, Core Web Vitals, search queries, and click data. Connect it to GA4 for a fuller picture. | |
Full-featured research platforms used by SEO specialists for keyword research, competitor analysis, and backlink auditing. These are analyst tools — they don't live in the CMS. | |
A site crawler used by developers and SEO specialists to audit technical issues: broken links, missing meta tags, redirect chains, and more. | |
Free dashboard tool that combines GA4, Search Console, and other data sources into custom visual reports. No CMS connection required. |
This guide reflects the capabilities of the free @apostrophecms/seo extension, as well as @apostrophecms/sitemap. AI-powered meta generation (auto-writing titles and descriptions from page content) is available separately as an Apostrophe Pro feature via the SEO Assistant extension.