An Elementor Marketing Site Built for Technical SEO From the Ground Up
Building a multilingual marketing agency site on Elementor with a full modular SEO stack — structured data, E-E-A-T, IndexNow, and precise hreflang.
- WordPress
- Elementor
- Polylang
- AIOSEO
- PHP
The brief
A marketing agency needed its own site to practice what it sold: fast, structured, and genuinely competitive in search — not just a pretty page-builder template. The build ran on Elementor, which meant the interesting engineering wasn’t “how do we build a page” (the page builder handles that) but “how do we make sure a page-builder site doesn’t ship the loose, non-semantic markup that page builders are notorious for in Google’s eyes.”
The SEO stack, chosen deliberately
Rather than one all-purpose SEO plugin left on defaults, the site runs a modular SEO suite where each capability is its own enabled module — a conscious choice over a single monolithic plugin, because it makes it obvious which SEO features are actually active and lets each one be reasoned about independently:
- E-E-A-T signals — author and expertise markup, because Google’s own guidelines now explicitly reward demonstrable experience and authority, not just keyword match.
- Image SEO — automated alt text and image sitemap handling, so a page builder’s
habit of dropping decorative images doesn’t leave a trail of empty
alt=""tags. - IndexNow — pings search engines the moment content changes, instead of waiting for the next crawl cycle. For a marketing site publishing on a schedule, that’s the difference between same-day and same-week visibility for new content.
- Local business schema — structured data so the agency’s business details are machine-readable, not just visible text in a footer.
- News sitemap, redirects, and a REST API module — a proper redirect map (so old URLs never 404 during a redesign) and sitemap coverage tuned to what’s actually worth crawling.
Multilingual, done at the protocol level
The site runs in multiple languages via Polylang, and the default hreflang output
was subtly wrong — English pages were tagged hreflang="en" when the actual
audience and canonical signal needed en-US, and there was no x-default fallback
for language-less traffic. Both were real ranking and international-targeting bugs,
fixed with two small filters in the child theme:
add_filter('pll_rel_hreflang_attributes', function ($hreflangs) {
if (isset($hreflangs['en'])) {
$hreflangs['en-US'] = $hreflangs['en'];
unset($hreflangs['en']);
}
return $hreflangs;
});
add_filter('pll_rel_hreflang_attributes', function ($hreflangs) {
$hreflangs['x-default'] = $hreflangs['uk'];
return $hreflangs;
});
Two filters, four lines each — but hreflang mistakes are exactly the kind of thing
that silently costs a multilingual site international rankings for months before
anyone notices, because nothing about them throws an error. You only find them by
actually reading the emitted <head> against the spec.
The rest of the stack
- Conversion tooling wired in rather than bolted on: an email capture platform, UTM-tagged campaign tracking, and analytics, so marketing campaigns had attribution from click to signup.
- A booking/events layer for webinars and consultations — scheduling handled by a dedicated booking plugin rather than a contact form pretending to be a calendar.
- Deliberate performance trade-offs. Native lazy-loading was turned off site-wide for above-the-fold Elementor sections after it was found to hurt perceived load speed on hero imagery — a case where the “correct by default” browser behavior was wrong for this specific layout, and turning it off was the right call.
The takeaway
Page builders get a bad reputation for SEO because most sites run them on defaults. The actual lesson from this build: Elementor isn’t the ceiling. The ceiling is whether someone goes through the modular SEO surface area — structured data, hreflang correctness, sitemap and redirect hygiene, image markup — one piece at a time instead of trusting a single plugin’s out-of-the-box settings.