Skip to content
CMO & CTO
CMO & CTO

Closing the Bridge Between Marketing and Technology, By Luis Fernandez

  • Digital Experience
    • Experience Strategy
    • Experience-Driven Commerce
    • Multi-Channel Experience
    • Personalization & Targeting
    • SEO & Performance
    • User Journey & Behavior
  • Marketing Technologies
    • Analytics & Measurement
    • Content Management Systems
    • Customer Data Platforms
    • Digital Asset Management
    • Marketing Automation
    • MarTech Stack & Strategy
    • Technology Buying & ROI
  • Software Engineering
    • Software Engineering
    • Software Architecture
    • General Software
    • Development Practices
    • Productivity & Workflow
    • Code
    • Engineering Management
    • Business of Software
    • Code
    • Digital Transformation
    • Systems Thinking
    • Technical Implementation
  • About
CMO & CTO

Closing the Bridge Between Marketing and Technology, By Luis Fernandez

Aem and seo content and fragments

Posted on February 24, 2019 By Luis Fernandez

AEM and SEO always end up in the same meeting. One side wants clean URLs, rich snippets, fast pages, and control of titles and descriptions. The other side wants reuse, governance, and a sane authoring story. If you are kicking off an Adobe Experience Manager rollout or tuning a current setup, this is the week where those choices start to lock in. Google keeps pushing mobile first, voice keeps creeping in, and content teams need to ship without begging a developer every time. So let’s talk about content fragments, experience fragments, and the tradeoffs that show up when search traffic decides to judge your architecture.

Problem framing

Adobe has been nudging everyone to use Content Fragments for structured copy and Experience Fragments for reusable blocks with layout. Sounds tidy. In practice, search engines do not rank fragments. They rank pages that answer intent. That means the way you stitch fragments into a page matters more than the fragments themselves.

Here is the base tension:

  • Marketing wants fast authoring, reusable assets, and consistent voice across regions and channels.
  • SEO folks want one clear topic per URL, unique titles, one real H1, rich structured data, and canonical rules that do not flip flop.
  • Developers want a model that does not collapse under compexity, a dispatcher that caches well, and a content tree that does not become a junk drawer.

Mobile first indexing is already here for a lot of sites, and JavaScript heavy pages still need care. If your team is experimenting with SPAs inside AEM, make sure bots see content without waiting for client side rendering magic. Pre rendering or server side rendering helps. If that is out of scope, keep the critical content in the HTML that ships from AEM.

On top of that, AEM brings its own quirks. URLs end with .html by default. Authoring can create many near duplicates. MSM makes language copies easy, then hreflang gets forgotten. Tag pages look tempting, then you discover they are thin. None of this is unsolvable. You just need habits that fit the tool.

Patterns and anti patterns

Let’s start with the good patterns. These play well with AEM and keep search traffic happy.

  • Use Content Fragments for source of truth. Define models for product copy, FAQs, and long form. Keep fields atomic. Title, teaser, body, rating, price, image ref, and so on. Authors edit once and publish everywhere. Pages pull fragments and wrap them with the right template.
  • Reserve Experience Fragments for promo blocks. Think hero banners, cross sell strips, footers, and nav slices. These carry layout and style. They should never own the main story of the page. That keeps duplication low.
  • Page owns SEO. Titles, meta description, canonical, hreflang, robots, and schema go in page properties or in a dedicated SEO component. Fragments feed content, not metadata. The page composes the final output.
  • One H1 per page. If a fragment ships with a heading, make it configurable. Let editors set it to H2 or H3 when it lands inside a page that already has the main H1.
  • Schema with JSON LD. Product, Article, FAQPage, and BreadcrumbList are great fits. Output it from the page based on the fragments in use. Do not let each fragment inject its own script tags.
  • Clean internal linking. Use link components that point to AEM resources, not pasted full URLs with query strings. Keep a consistent trailing slash policy and stick to it.
  • Sitemap from the tree. Generate XML sitemaps from a whitelist of paths. Include lastmod. Exclude utility pages, search results, tag listing, and anything gated.
  • Author guardrails. Length checks on titles and descriptions, required fields on SEO props, warnings when two pages share the same H1 and title. Small guardrails save traffic.
  • Dispatcher friendly caching. Vary on minimal headers. Avoid random query params for content. When you must personalize, keep it outside the main content block so the core body still caches.

And now for the anti patterns. These look handy on day one and then hurt.

  • Experience Fragment as content dump. Dropping a whole article or product spec inside an experience fragment makes reuse easy but creates duplicate bodies across many URLs. The bot sees the same main text everywhere and gets confused about which one should rank.
  • Fragment owned metadata. If an author edits a fragment and it pushes a meta title into every page where it sits, you just lost control. Two pages can end up with the same title and description without anyone noticing.
  • Automatic tag pages. Turning on public tag pages by default produces many thin URLs. Keep tags for authors and build curated collections instead.
  • Multiple canonicals. Do not let both the template and a component render rel canonical. You will get duplicates or worse, mismatched values.
  • Client only content. If the main text arrives only after a script runs, bots can miss it. Keep core copy server rendered from AEM.
  • Global fragments with local language. Pushing the same English banner into every market where you actually want Spanish and French is a quick way to tank engagement and send weird signals to Google. Tie fragments to language roots and wire hreflang properly.

Case vignette

A retail group moved from a custom CMS to AEM. The goal was to scale content across twenty regions without losing organic traffic. The team did the classic split. Content Fragments carried product copy and FAQs. Experience Fragments carried headers, footers, and promo strips. On paper it looked clean.

In sprint three the promo team asked for a reusable gift guide block. It was an experience fragment with a title, intro, product grid, and a call to action. Editors loved it. They placed it on the gift guide hub, then on every category page, and then on several articles. Within weeks, search console showed duplicate title warnings. Crawl stats also showed a heavy spike on category pages.

The problem was subtle. The experience fragment shipped with an H1, a meta title override, and schema for Article. Dropping it into a category page created a page with two H1s, a second Article schema inside a non article page, and a meta title that no longer matched the URL. To make it worse, the fragment text was long and identical across a hundred URLs. Rankings for the category pages softened. The gift guide hub itself fought for its own terms against all those categories.

We paused new placements and mapped the content model. The fix had three layers:

  • Move long copy to a Content Fragment. The intro and the product details became fields in a model. The experience fragment now referenced that content but did not own it. That allowed the hub page to be the main owner while the category pages used a shorter blurb.
  • Strip metadata out of the experience fragment. Titles, meta description, and schema are now page only. The fragment exposes knobs for heading level so authors can set H2 or H3 when they drop it in.
  • Guardrails in the SEO component. The page template renders canonical, hreflang, and JSON LD in one place. It checks for duplicate titles across siblings and warns the author before publish.

We also cleaned the URL policy. The site already used extension based URLs. Rather than fight it, we kept .html, enforced no trailing slash, and made sure every internal link matched that shape. Dispatcher rules normalized stray variants. Sitemap generation switched to a curated list of roots with a maximum depth for inclusion.

Two weeks after the change, category pages started to recover and the gift guide hub stopped cannibalizing. Authors still used the experience fragment for layout, but the heavy copy lived in a fragment that the hub truly owned. The SEO component took over metadata. The system felt lighter to run.

Lessons learned

Content Fragments are for meaning. Experience Fragments are for layout. When you keep that line clear, pages tell a more coherent story and search engines reward that.

  • Let the page be the boss. Centralize canonical, hreflang, and schema in the template or a single SEO component. Do not scatter them.
  • Make headings flexible. Fragments can ship with a heading field but the page decides the level. That stops double H1 mistakes.
  • Design for mobile first crawling. Ship primary copy in the initial HTML. Fancy is fine, but core text and links should not wait on scripts.
  • Be picky with reuse. Reuse layout freely. Reuse long copy with care. If the same paragraph shows up on fifty URLs, expect confusion.
  • Wire language correctly. Use MSM for structure, translation projects for copy, and generate hreflang pairs from the tree. Add x default when you have a global fallback.
  • Keep sitemaps clean. Only include pages that you actually want indexed. No tag indexes, no filters, no search results.
  • Build author feedback into AEM. Character counters for titles and descriptions, warnings for duplicates, required fields for canonical and language. Small nudges prevent big drops.
  • Plan for SPA carefully. If you are testing the SPA editor, use pre rendering or a service that can render HTML on the server. Or keep the main copy outside the client app until you are confident.
  • Agree on URL rules once. Slashes, extensions, lowercase, and query params. Pick a shape and stick to it across links, sitemaps, and canonicals.
  • Measure and adjust. Watch Search Console for duplicate titles, soft 404s, and crawl anomalies. Watch analytics for time on page and scroll depth on pages that use heavy fragments.

None of this requires a moonshot. AEM already gives you the knobs. Content Fragments let you model meaning across teams. Experience Fragments let you move faster without reinventing blocks. The trick is to keep control of the page that goes to the crawler and the person with a phone on a slow connection.

The teams that win are the ones that decide these rules early. They give editors simple defaults, they keep metadata centralized, and they treat reuse like a power tool that can also cut the wrong thing. If you are about to spin up a new site, start with that checklist. If you are already live and seeing softening, look for experience fragments with long copy and fix those first. You will feel the difference in a couple of crawls.

Bottom line AEM can absolutely ship pages that rank and convert. Keep meaning in content fragments, keep layout in experience fragments, let the page own SEO, and give authors guardrails. That is a setup you can scale without losing sleep or traffic.

Content Management Systems Digital Experience Marketing Technologies SEO & Performance AEMSearch Engine Optimizationseo

Post navigation

Previous post
Next post
  • Digital Experience (94)
    • Experience Strategy (19)
    • Experience-Driven Commerce (5)
    • Multi-Channel Experience (9)
    • Personalization & Targeting (21)
    • SEO & Performance (10)
  • Marketing Technologies (92)
    • Analytics & Measurement (14)
    • Content Management Systems (45)
    • Customer Data Platforms (4)
    • Digital Asset Management (8)
    • Marketing Automation (6)
    • MarTech Stack & Strategy (10)
    • Technology Buying & ROI (3)
  • Software Engineering (310)
    • Business of Software (20)
    • Code (30)
    • Development Practices (52)
    • Digital Transformation (21)
    • Engineering Management (25)
    • General Software (82)
    • Productivity & Workflow (30)
    • Software Architecture (85)
    • Technical Implementation (23)
  • 2025 (12)
  • 2024 (8)
  • 2023 (18)
  • 2022 (13)
  • 2021 (3)
  • 2020 (8)
  • 2019 (8)
  • 2018 (23)
  • 2017 (17)
  • 2016 (40)
  • 2015 (37)
  • 2014 (25)
  • 2013 (28)
  • 2012 (24)
  • 2011 (30)
  • 2010 (42)
  • 2009 (25)
  • 2008 (13)
  • 2007 (33)
  • 2006 (26)

Ab Testing Adobe Adobe Analytics Adobe Target AEM agile-methodologies Analytics architecture-patterns CDP CMS coding-practices content-marketing Content Supply Chain Conversion Optimization Core Web Vitals customer-education Customer Data Platform Customer Experience Customer Journey DAM Data Layer Data Unification documentation DXP Individualization java Martech metrics mobile-development Mobile First Multichannel Omnichannel Personalization product-strategy project-management Responsive Design Search Engine Optimization Segmentation seo spring Targeting Tracking user-experience User Journey web-development

©2025 CMO & CTO | WordPress Theme by SuperbThemes