SEO basics for Exponential sites
This page is for website creators who want a site search engines understand. Most of what matters is already built in or one extension away; this page lists it as a checklist and points to the page that explains each item.

Contents
What Exponential gives you
| Need | Built in or extension | Read |
|---|---|---|
| Readable addresses from content names | built in: URL aliases | URL aliases and nice URLs |
| Old addresses keep working after a rename or move | built in: history aliases redirect | Redirects and moved content |
| Your own short addresses and patterns | built in: global aliases and wildcards | URL wildcards and custom aliases |
robots.txt | shipped at the web root | robots.txt for your site |
| XML sitemaps | bcgooglesitemaps or xrowmetadata | XML sitemaps |
| Titles, descriptions, Open Graph per page | xrowmetadata, or fields of your own | Page metadata and social sharing |
| Feeds | built in: RSS exports | RSS feeds for your site |
| Fast pages | caches, Velocity response cache | Performance and caching |
The checklist
- To do: Every page has a unique
<title>and a description. - To do: One
<h1>per page, the page's name; headings in order below it. - To do: Addresses are readable and stable; folder names chosen with care (Structuring the content tree).
- To do: Moved and renamed content redirects (it does by default; do not remove history aliases).
- To do:
robots.txtlists your sitemap and keeps crawlers out of search results and print views. - To do: A sitemap is generated by cron and submitted to search engines.
- To do: Images have alternative texts and sensible file names.
- To do: Each language version has its own address and the others are named as alternates (Language switchers and addresses per language).
- To do: Pages are fast and work on phones (Performance and caching).
- To do: HTTPS everywhere, one host name (redirect the others) (Going live).
- To do: Error pages return the right status codes (12. Response headers of error pages).
One address per page
The same content can be reached by several addresses: /content/view/full/123, its URL alias, a second location,
another siteaccess. Search engines prefer one. Do this:
link only to URL aliases in templates (
$node.url_alias|ezurl), never tocontent/view/full/...;for content with several locations, print a canonical link to the main location in the pagelayout:
{if is_set( $module_result.node_id )} {def $n = fetch( 'content', 'node', hash( 'node_id', $module_result.node_id ) )} <link rel="canonical" href={$n.object.main_node.url_alias|ezurl( , 'full' )}> {undef $n} {/if}send visitors of the other host names (with and without
www) to one host with a redirect in the web server.
Content editors control
Editors write the titles, intros, image alternative texts and link texts that search engines read. Give them a short guide: the name becomes the title and the address; the intro becomes the description when no metadata field is filled; link texts say where they lead ("Opening hours", not "click here").
What to measure
- Search statistics of the site's own search show what visitors look for and do not find (URL aliases, wildcards and search statistics).
- The search engines' own webmaster tools show indexing and errors.
- The link check finds broken outgoing links (Broken links and content checks).
Related pages
- Page metadata and social sharing
- XML sitemaps
- Accessibility for site builders
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.