Blog

  • WordPress Security Hardening in 2026: The 21-Point Checklist

    WordPress Security Hardening in 2026: The 21-Point Checklist

    Every WordPress site gets attacked. Not “might get” — does. Automated bots scan the entire IPv4 space looking for exposed login pages, exploitable plugins, and misconfigured servers. Your site is being probed right now. In 2026, security plugins alone aren’t enough. Here’s the actual hardening checklist I apply to every client site.

    The Reality of WordPress Attacks in 2026

    The three attack types that account for 90% of successful WordPress compromises:

    • Credential stuffing on wp-login.php — attackers try leaked email/password combos from other breaches.
    • Vulnerable plugin exploits — a plugin ships a security patch, sites don’t update, bots weaponize the CVE within days.
    • Weak or reused admin passwords — often on abandoned accounts that were never removed.

    Everything below addresses one of these three vectors.

    The Non-Negotiable Baseline

    1. Change the login URL

    Move wp-login.php to something obscure. WPS Hide Login (free) does it in one setting. This blocks 95% of automated login attacks — bots hit /wp-login.php, get a 404, move on.

    2. Enforce strong passwords and 2FA on all admin accounts

    Two-Factor Authentication is not optional in 2026. Wordfence Login Security (free) or the built-in Google Authenticator plugin. Require it for administrator, editor, and shop_manager roles at minimum.

    3. Limit login attempts

    Limit Login Attempts Reloaded (free). Ban an IP after 4 failed attempts for 20 minutes. Combined with hidden login URL, brute force becomes computationally impractical.

    4. Disable file editing from the admin

    Add to wp-config.php:

    define('DISALLOW_FILE_EDIT', true);
    define('DISALLOW_FILE_MODS', true);

    If an admin account gets compromised, the attacker can’t inject PHP through the theme editor.

    5. Keep everything updated

    Core, plugins, themes, PHP version. Every serious breach I’ve cleaned up in the last three years traces back to an outdated component. Enable auto-updates for minor releases at minimum.

    Server-Level Hardening

    6. Force HTTPS everywhere

    Let’s Encrypt is free and every decent host installs it in one click. Add HSTS header once you’re confident nothing loads over HTTP.

    7. Disable XML-RPC (unless you actually use it)

    XML-RPC is used by the WordPress mobile app and Jetpack. If you don’t use either, disable it. It’s a common vector for amplified brute force attacks.

    8. Protect wp-config.php

    Add to your .htaccess:

    <Files wp-config.php>
    order allow,deny
    deny from all
    </Files>

    9. Disable directory browsing

    Add Options -Indexes to .htaccess. Prevents attackers from listing your /uploads/ or /plugins/ directories.

    10. Change the database prefix

    New installs — set a custom prefix in wp-config.php (e.g. wp_a3k9x_). Existing sites — leave it, the migration risk isn’t worth the marginal security benefit.

    Plugin and User Hygiene

    11. Audit installed plugins quarterly

    Every plugin is attack surface. Deactivate and delete anything not actively used. “Deactivated but installed” plugins can still be exploited — WordPress serves their files.

    12. Only install plugins from wp.org or known vendors

    Nulled plugins from Google search results almost always contain backdoors. I’ve cleaned up dozens of sites where “free premium plugin” was the entry point.

    13. Remove unused user accounts

    Old developer accounts, ex-employees, “test” accounts created two years ago. Delete them. Rotate the passwords of accounts you keep.

    14. Rename the default admin username

    If your admin account is literally “admin”, change it. Bots try this username first.

    Web Application Firewall

    15. Put Cloudflare in front

    Cloudflare’s free plan blocks the vast majority of known bad traffic before it reaches your server. Turn on Bot Fight Mode. Set the security level to Medium at minimum.

    16. Add a WordPress-specific WAF

    Wordfence (free tier), Sucuri, or Patchstack. They know the WordPress-specific attack patterns Cloudflare doesn’t.

    17. Rate-limit sensitive endpoints

    Cloudflare rules to limit requests to /wp-login.php, /xmlrpc.php, and /wp-json/wp/v2/users. Even if bots find them, they can’t hammer them.

    Backups Are a Security Control

    18. Automated off-site backups

    UpdraftPlus (free) to Google Drive, or your host’s built-in backup to their remote storage. Test restores quarterly — an untested backup is not a backup.

    19. Version your wp-content in Git

    For serious sites — put your theme and mu-plugins in Git. If a compromise injects PHP, a git diff shows exactly what changed.

    Monitoring

    20. Set up file integrity monitoring

    Wordfence’s free scan runs weekly. Sucuri Sitecheck. If a core file changes, you get an alert. Most malware injections modify existing PHP files — integrity monitoring catches them.

    21. Log admin actions

    WP Activity Log (free tier) records who logged in, who changed what. Essential for figuring out what happened if something goes wrong.

    What to Do If You’re Compromised

    Don’t try to clean it yourself unless you know exactly what you’re doing. The steps:

    1. Take the site offline (maintenance mode).
    2. Change all admin passwords, wp-config.php salts, database password.
    3. Restore from a clean backup (before the compromise).
    4. Update everything — core, plugins, themes, PHP.
    5. Scan with Wordfence + Sucuri Sitecheck to confirm clean.
    6. Investigate how they got in and close that vector.

    The 30-Minute Emergency Hardening

    If you’re reading this and your site is unprotected, do these five things right now — takes 30 minutes total:

    1. Install WPS Hide Login and set a custom login URL.
    2. Install Limit Login Attempts Reloaded — set to 4 attempts.
    3. Install Wordfence Login Security — enable 2FA on your admin account.
    4. Update all plugins, themes, and core.
    5. Add DISALLOW_FILE_EDIT to wp-config.php.

    That’s not comprehensive but it puts you ahead of 90% of WordPress sites.

    Need a full security audit and hardening for your site? I do this for a living. Get in touch.

  • Advanced Custom Fields (ACF) in 2026: When to Use It, When to Skip It

    Advanced Custom Fields (ACF) in 2026: When to Use It, When to Skip It

    Advanced Custom Fields is either the most useful WordPress plugin ever built, or an over-engineered crutch that turns simple sites into unmaintainable spaghetti. Depends who you ask. Here’s when I use it, when I don’t, and what the WP Engine acquisition actually means for your project in 2026.

    What ACF Actually Does

    ACF lets you add custom fields to any post type, page, taxonomy, user, or options page — without writing PHP. You define a field (text, image, repeater, relationship, etc.), assign it to a post type, and it appears in the editor. On the frontend you fetch the value with get_field().

    That’s it. It’s a UI wrapper around WordPress’s built-in post_meta table.

    When ACF Is the Right Tool

    1. Portfolio / case study sites. Structured data like “Client Name”, “Project Duration”, “Tech Stack”, “Live URL” — perfect for ACF fields on a custom post type.
    2. Team / staff pages. Name, role, bio, photo, social links per person. Cleaner than pasting into the editor.
    3. Complex product data (beyond WooCommerce). Real estate listings, cars, event tickets — anything with structured attributes.
    4. Landing page templates for marketers. Instead of teaching them Elementor, give them a template with 8 fields and let them fill in the blanks.
    5. Site-wide options. ACF Options Pages let you build a proper theme settings panel in 20 minutes.

    When ACF Is the Wrong Tool

    1. Simple blogs. If you have a title, featured image, and body content — you don’t need ACF. Native Gutenberg is fine.
    2. Sites where the client will edit layout. If they want to move things around, use Gutenberg blocks or Elementor. ACF fields are rigid.
    3. Sites you’ll hand off to another developer who doesn’t know ACF. They’ll have to relearn your custom field structure. Native code is more portable.
    4. Simple contact forms. Use a form plugin. ACF isn’t a form builder.

    Free vs Pro (2026 Pricing)

    Free gives you: text, textarea, image, file, WYSIWYG, select, radio, checkbox, true/false, relationship, post object, page link, taxonomy, user, date, color picker. That covers 80% of real projects.

    Pro ($49/year single site, $149/year unlimited) adds: Repeater, Flexible Content, Gallery, Clone, Options Pages, and Blocks (turns ACF fields into Gutenberg blocks).

    Repeater alone is worth Pro. Every real project needs a repeater eventually — testimonials list, FAQ list, service list, team roster.

    The WP Engine Acquisition Drama

    Delicious Brains sold ACF to WP Engine in 2022. In late 2024, Automattic (WordPress.org’s controller) forked ACF into “Secure Custom Fields” and removed the original ACF plugin from the WordPress.org repository during a public dispute with WP Engine.

    What this means for you in 2026:

    • ACF Pro (paid) is unaffected — you update directly from WP Engine.
    • ACF Free is still maintained by WP Engine but you install it from their site, not WordPress.org.
    • Secure Custom Fields (SCF) is the WP.org fork. It’s compatible with existing ACF field groups but is diverging over time.

    For new projects in 2026: if you’re already paying for ACF Pro, keep using it. If you were on ACF Free and want to stay on the WordPress.org repository for auto-updates, migrate to SCF — it’s a one-click swap right now.

    Performance Considerations

    ACF stores every field as a row in wp_postmeta. Every get_field() call is a database query unless cached. On sites with lots of fields per post, this adds up.

    Mitigations:

    • Use get_fields() once at the top of your template — it fetches everything in one query.
    • Enable object cache (Redis). ACF caches heavily when object cache is available.
    • Don’t use relationship or post_object fields with hundreds of options — the admin dropdown becomes slow.

    ACF + Elementor

    The combination is powerful. Create ACF fields, then use Elementor’s Dynamic Tags to display them in any widget. This is how you build editable landing pages without teaching clients how to use Elementor’s editor.

    ACF + Gutenberg Blocks

    ACF Pro’s Blocks feature lets you build custom Gutenberg blocks with a PHP template and ACF fields for the settings. Much faster than writing React. I use this for client sites that want Gutenberg but need custom blocks.

    The Honest Verdict

    ACF Pro is one of the two or three plugins I install on almost every custom build. It saves days of work per project and produces cleaner, more maintainable sites than trying to force everything into Gutenberg or Elementor.

    But don’t reach for it on a simple blog. Use the right tool for the job.

    Building something that needs structured content? Let’s discuss the right architecture.

  • Elementor Containers vs Sections: The 2026 Migration Guide

    Elementor Containers vs Sections: The 2026 Migration Guide

    Elementor introduced Flexbox Containers in 3.6 and Grid Containers in 3.16. In 2026 they’re the default for new layouts — the classic Section/Column model is officially legacy. But should you migrate existing sites? Here’s the real answer.

    What Changed and Why It Matters

    The old Section → Column → Widget model wraps every layout in three nested divs, with fixed 12-column grid math. Containers replace all that with a single flexbox parent. On a typical page that’s roughly 40% less DOM output.

    Less DOM means faster rendering, better Lighthouse scripting scores, and easier responsive design. On top of that, containers give you flex-direction, gap, and alignment controls that used to require custom CSS.

    The Real Performance Impact

    I rebuilt a client’s homepage from sections to containers and re-tested. Numbers:

    • DOM nodes: 892 → 541 (down 40%)
    • Total blocking time: 210ms → 90ms
    • Lighthouse performance (mobile): 74 → 88
    • CSS size: unchanged (Elementor still ships both stylesheets on hybrid sites)

    The performance win is real but conditional — you only get the full benefit if the entire page uses containers. Mixed pages still load the section CSS.

    When Migration Is Worth It

    1. You’re already redesigning. Migrating during a planned refresh costs zero extra time.
    2. The site is small (under 20 pages). Manual rebuild is feasible in a day or two.
    3. Performance is a business problem. If Core Web Vitals are failing and sections are the bottleneck, migrate.
    4. You want to use Grid layouts. Grid containers only work in the new system.

    When It’s Not Worth It

    1. Large content sites with hundreds of pages. Manual migration is weeks of work. Automated tools miss custom CSS and animations.
    2. Sites with heavy custom widget usage. Third-party addons often don’t behave inside containers, especially older ones.
    3. Sites that already perform well. If your page loads in under 2s and Lighthouse is 90+, don’t touch it.
    4. Client sites where you charge per hour. Migration is invisible work — the site looks identical when done. Clients don’t pay for invisible.

    The Migration Process (If You’re Doing It)

    1. Update Elementor first. Make sure you’re on the latest 3.x. Test on staging.

    2. Enable Flexbox Container experiment. Elementor → Settings → Features → Flexbox Container (Active).

    3. Set container as the default for new pages. Elementor → Settings → General → Default widget: Container.

    4. Rebuild page by page. There is no official one-click converter. Some third-party tools attempt it (Element Pack, Nexter) but they miss custom CSS. Manual is safer.

    5. Delete legacy sections after verification. Once all pages are containers, disable the legacy CSS in Elementor → Advanced → CSS Print Method → External.

    Common Gotchas

    Third-party widgets breaking. Some old addon libraries assume the section/column hierarchy. Test each widget in a container before assuming it works.

    Custom CSS targeting .elementor-section or .elementor-column. These selectors don’t exist in containers. Rewrite any custom CSS that targets them.

    Responsive breakpoints behave differently. Container widgets have their own responsive controls. Don’t assume your section-based mobile settings will carry over.

    Nested containers can get confusing. Keep hierarchy shallow — a container inside a container inside a container is a debugging nightmare.

    Flexbox or Grid?

    For 90% of layouts use Flexbox containers. They’re simpler and better supported by Elementor’s UI. Use Grid only when you actually need a grid — image galleries, product cards, dashboard layouts. Grid containers are more finicky and have fewer built-in animation controls.

    The Honest Verdict

    If you’re building a new Elementor site in 2026, use containers from day one. If you have an existing site with performance problems, migrate. If you have a working site that’s not slow, leave it alone — Elementor supports both systems and will for years.

    Migrating for the sake of “using the latest thing” isn’t a business reason. Migrating because your site is slow is.

    Building a new Elementor site or want an existing one migrated cleanly? Let’s talk.

  • Rank Math vs Yoast SEO in 2026: Which One Actually Ranks Better?

    Rank Math vs Yoast SEO in 2026: Which One Actually Ranks Better?

    Every “Rank Math vs Yoast” post online is written by an affiliate. I don’t have skin in either game — I install whichever one the client asks for and I’ve used both for years. Here’s the actual comparison, no BS.

    The Short Answer

    For 90% of sites, Rank Math is the better choice in 2026. It’s lighter, more feature-complete in the free tier, and its schema implementation is more flexible. But Yoast still wins in three specific scenarios I’ll cover below.

    Feature Comparison (Free Tiers)

    Rank Math free gives you: unlimited keyword tracking per post, redirection manager, 404 monitor, rich schema types (Article, Product, Recipe, FAQ, HowTo, Local Business, Event, Course, Job Posting, and more), Google Search Console integration, sitemap customization, breadcrumbs, and role-based access control.

    Yoast free gives you: single keyword tracking per post, basic schema (Article, WebPage, Organization), sitemap, breadcrumbs, and readability analysis. Redirections, 404 monitoring, multi-keyword, and advanced schema all sit behind Yoast Premium ($99/year).

    On feature-per-dollar Rank Math free ≈ Yoast Premium.

    Performance

    I ran both plugins on identical staging sites (Twenty Twenty-Four, no other plugins, LiteSpeed cache off). Rank Math added roughly 40ms to TTFB; Yoast added 90ms. On the frontend both are near-zero if configured right. Yoast loads slightly more JS in the admin — noticeable on cheap hosting.

    Schema — The Real Differentiator

    This is where it matters most. Schema.org markup drives rich results in Google, and rich results drive click-through rate.

    Rank Math lets you edit any schema property in the UI without code. Want to add a custom “review” schema with author, publisher, and aggregate rating? Two clicks. Want to nest Product schema inside an Article? Doable. The schema generator is genuinely the best in the market right now.

    Yoast generates a rigid schema graph you can’t customize without filters (i.e. code). For basic sites this is fine. For anything custom — local service business with multiple locations, e-commerce with product bundles, publishers with author schema — you’ll fight it.

    Where Yoast Still Wins

    1. Multi-author publishing sites. Yoast’s author archives, breadcrumbs, and consistency across a big editorial team just work better. Rank Math is catching up but not there yet.
    2. WooCommerce integrations. Yoast WooCommerce SEO ($79) has better product schema handling for large catalogs than Rank Math’s built-in.
    3. Client familiarity. Marketing teams have been trained on Yoast’s red/yellow/green light system for a decade. If your client’s marketing team knows Yoast, don’t switch.

    The Migration Question

    Switching from Yoast to Rank Math is safe — Rank Math imports Yoast data automatically (meta titles, descriptions, focus keywords, redirects, schema settings). I’ve done this dozens of times without ranking drops.

    Switching the other way is harder. Yoast doesn’t import from Rank Math cleanly; you’ll lose your keyword tracking history and some schema config.

    What About AIOSEO and SEOPress?

    AIOSEO is decent but bloated — too many upsell notices in the dashboard. SEOPress is genuinely underrated, especially the Pro version at $49/year (cheaper than Yoast Premium, more features). If you want an alternative to both giants, SEOPress is worth a look.

    My Actual Recommendation

    • Small business / local service site: Rank Math free
    • E-commerce (under 500 products): Rank Math free or Pro ($59/year)
    • E-commerce (500+ products): Yoast + Yoast WooCommerce SEO
    • News / publisher site: Yoast Premium
    • Portfolio / freelancer site: Rank Math free — it’s what I use on this site

    Don’t Overthink It

    The plugin doesn’t rank you. Content, links, technical SEO, and site speed do. Both Rank Math and Yoast are competent at outputting the tags Google needs. Pick one, configure it once, and stop switching.

    Need SEO setup done properly? I’ve configured both on 90+ sites. Get in touch.

  • WordPress Speed Optimization 2026: The Core Web Vitals Playbook

    WordPress Speed Optimization 2026: The Core Web Vitals Playbook

    Every WordPress speed guide in 2026 still says “install a cache plugin and enable lazy load.” That gets you a 60. Getting to a 95+ Lighthouse score on a real client site — with Elementor, WooCommerce, a Facebook pixel, and three tracking scripts — takes actual work. Here’s the playbook I use on every build.

    Start With Real Data, Not Lighthouse

    Lighthouse is a lab test. Google ranks you on field data from the Chrome UX Report (CrUX). Open PageSpeed Insights and scroll past the score — the “Discover what your real users are experiencing” section is what matters. If your LCP is 3.2s in the field but 1.8s in the lab, your caching isn’t reaching real traffic.

    The Three Metrics That Rank You

    LCP (Largest Contentful Paint) — must be under 2.5s. On WordPress this is almost always the hero image or an above-the-fold background. Fix by preloading the hero, serving AVIF, and dropping any hero slider (they’re LCP killers).

    INP (Interaction to Next Paint) — replaced FID in 2024. Must be under 200ms. This is where WordPress sites die. Every third-party script (Hotjar, Intercom, Meta Pixel, Google Tag Manager) adds INP debt. Delay or gate them behind consent.

    CLS (Cumulative Layout Shift) — under 0.1. Almost always caused by web fonts loading late, images without dimensions, or Elementor sections without explicit heights on mobile.

    The Fix Order That Actually Works

    1. Kill unused plugins. Every active plugin loads PHP, CSS, and often JS on every page. Audit with Query Monitor. If a plugin isn’t used on the homepage, dequeue its assets there.
    2. Move to a real host. Shared hosting caps you at ~800ms TTFB no matter what you do. Rocket.net, Kinsta, or Cloudways with LiteSpeed. This alone shaves 400ms on a bloated site.
    3. Object cache. Redis via your host’s control panel. WooCommerce sites without object cache are running dozens of extra database queries per page. Free win.
    4. Page cache with proper exclusions. WP Rocket or LiteSpeed Cache. Exclude cart, checkout, my-account. Cache the rest aggressively.
    5. Critical CSS + defer everything else. Elementor sites ship 200KB+ of CSS unused above the fold. Extract critical CSS with a tool like CriticalCSS.com or WP Rocket’s built-in feature. Defer the rest.
    6. Optimize the hero image. Preload the LCP element. Serve AVIF with WebP fallback. Set explicit width and height. Add fetchpriority="high".
    7. Delay JavaScript until interaction. Analytics, chat widgets, marketing pixels — none of these need to fire before the user scrolls or clicks. WP Rocket’s “Delay JS” or FlyingScripts does this in one setting.
    8. CDN with edge caching. Cloudflare APO for WordPress serves cached HTML from the edge. Sub-100ms TTFB globally.

    Elementor-Specific Wins

    Elementor sites need extra care. Turn off “Google Fonts” in Elementor settings and self-host with a plugin like OMGF. Disable “Font Awesome” and “eicons” if not used. Remove “Elementor Overlay” if you’re not using it. Enable “Improved CSS Loading” and “Optimized DOM Output” experiments — they’ve been stable since 3.20.

    The single biggest Elementor speed win is switching from Sections to Containers. Containers use flexbox instead of nested divs — the DOM is roughly half the size. On big pages that’s a 300ms scripting reduction.

    WooCommerce-Specific Wins

    WooCommerce sites are heavier by nature. Cart fragments are the classic killer — every page loads a WooCommerce AJAX call to update the cart count. Disable cart fragments on non-shop pages with a snippet, or use “Disable Cart Fragments” plugin. Instant TTFB improvement.

    Also: cache your product images at multiple sizes, use a CDN for media, and if you have 500+ products, run wp transient delete --all weekly.

    What Not to Waste Time On

    Minifying HTML (worth ~5KB), removing query strings (SEO myth), gzipping if your host already Brotli-compresses, or chasing 100 on Lighthouse. A 92 that’s stable is better than a 98 that breaks the site when a marketer adds a Facebook pixel.

    The 30-Minute Audit

    If you’re auditing a site right now, in this order: PageSpeed Insights → GTmetrix waterfall → Query Monitor. That triangle tells you 90% of what’s slow, in 30 minutes.

    Need this done for you? I optimize WordPress and WooCommerce sites for a living. Book an audit.

  • Elementor SEO Best Practices (2026): 27 Rules That Actually Move Rankings

    Elementor SEO Best Practices (2026): 27 Rules That Actually Move Rankings

    Elementor Isn’t Anti-SEO. Bad Setup Is.

    Elementor sites rank at scale — Neil Patel, Semrush blog, WPBeginner all use Elementor. The “Elementor bad for SEO” myth traces to bad configuration, not the tool.

    Configure right. Rank.

    1. Install Rank Math (Not Yoast)

    Rank Math beats Yoast in 2026 for:

    • Cleaner UI
    • Schema markup built-in (Yoast free = zero schema)
    • Instant Indexing to Google/Bing
    • Free tier covers 95% of needs

    Deactivate Yoast → install Rank Math → import Yoast settings automatically.

    2. Set Focus Keyword Per Page

    Every page/post → Rank Math tab → Focus Keyword.

    Rules:

    • One primary keyword per page
    • Include in: title tag, H1, first 100 words, URL slug, meta description, at least one H2
    • Don’t stuff — natural placement

    3. Meta Title Optimization

    Rank Math → Snippet Editor:

    • 50-60 characters max
    • Primary keyword near the start
    • Brand at end: “Best Elementor Developer 2026 | CofCode”
    • Emotional/curiosity trigger word: “Ultimate,” “Complete,” “Real”

    4. Meta Description

    • 140-160 characters
    • Include primary keyword once
    • Sell the click — what does reader learn?
    • End with soft CTA: “Learn how” or “See examples”

    5. URL Slugs

    Elementor pages: WP page → Permalink → edit slug:

    • Short: 3-6 words
    • Include primary keyword
    • Hyphens between words, no underscores
    • No stop words (the, and, of) unless natural

    Example: /elementor-expert-developer/ not /we-are-the-best-elementor-experts-for-hire/

    6. Heading Hierarchy

    Elementor Heading widget → set correct HTML tag:

    • H1: exactly one per page (usually page title)
    • H2: main sections
    • H3: subsections
    • H4-H6: rarely needed

    Include primary keyword in H1 + at least one H2. Related keywords in other H2s.

    7. Image SEO

    Every Image widget:

    • Alt text: describes image + includes keyword where natural
    • Title: optional, less important than alt
    • Filename: descriptive-with-hyphens.webp, not IMG_2847.jpg
    • Compress via ShortPixel/Imagify
    • Convert to WebP
    • Lazy load (default in WP 5.5+)

    8. Schema Markup

    Rank Math → General Settings → Schema:

    • Article schema on blog posts (default)
    • Product schema on WooCommerce products
    • Local Business schema for service businesses
    • FAQ schema on pages with FAQ sections
    • Review schema for testimonial sections

    Advanced: inject custom JSON-LD via wp_head in functions.php or Elementor Custom Code.

    9. FAQ Schema (Every Money Page)

    Adds rich results in Google. Setup:

    1. Add Elementor Accordion widget with FAQ Q&A
    2. Rank Math → Page → Schema Generator → FAQ Schema
    3. Add same questions/answers
    4. Save

    Result: expandable FAQ in search results — huge CTR boost.

    10. Internal Linking

    Every blog post links to:

    • 2-3 related blog posts
    • 1-2 money pages (your service pages)
    • Homepage (via nav)

    Anchor text: descriptive, not “click here.” Vary anchor text — don’t always link with same exact phrase.

    11. Sitemap

    Rank Math auto-generates: yoursite.com/sitemap_index.xml

    • Submit to Google Search Console → Sitemaps
    • Submit to Bing Webmaster Tools
    • Verify all pages indexed via GSC coverage report

    12. Instant Indexing

    Install Rank Math Instant Indexing plugin. Configure Google Indexing API + IndexNow.

    Result: new posts pinged to Google/Bing within seconds. No waiting for crawl.

    13. Core Web Vitals

    Google ranking factor since 2021. Targets:

    • LCP < 2.5s (Largest Contentful Paint)
    • CLS < 0.1 (Cumulative Layout Shift)
    • INP < 200ms (Interaction to Next Paint)

    Elementor sites hit these with proper config. Full guide: Elementor speed optimization.

    14. Mobile-First Indexing

    Google indexes mobile version primarily. Mobile-broken sites don’t rank.

    Full guide: Elementor mobile responsive design.

    15. Content Length + Depth

    Money pages: 2,000-3,500 words. Blog posts: 1,500-2,500 words minimum for competitive keywords.

    Not fluff. Depth. Answer every related question searcher might have.

    16. Semantic Keywords (LSI)

    Google understands topic clusters. Include related terms:

    • Primary: “elementor expert developer”
    • Related: “hire elementor developer, custom elementor pro, elementor freelancer, elementor pro builds”

    Use tools: Ahrefs Related Keywords, Semrush Keyword Magic, or free — People Also Ask on Google.

    17. Table of Contents

    Long posts: add Elementor Table of Contents widget or manual anchor links.

    Benefits:

    • Google sometimes shows jump-to links in search results
    • Reduces bounce rate
    • Improves dwell time

    18. Canonical URLs

    Rank Math auto-handles canonicals. Verify:

    • Each URL has one canonical pointing to itself
    • Duplicate content (e.g. paginated pages) canonicals to main page

    19. 301 Redirects

    URL changes = broken links + lost rankings. Fix with 301s:

    1. Rank Math → Redirections
    2. Add source URL (old)
    3. Add target URL (new)
    4. Type: 301 Permanent

    20. External Linking

    Link out to authoritative sources (Wikipedia, .gov, .edu, big publications) — signals topic expertise to Google.

    Rule: 1-2 external links per 1,000 words. Set rel=”noopener” (auto in WP).

    21. Robots.txt

    Rank Math auto-generates. Verify:

    • Sitemap included
    • No blocked essential pages
    • Admin/login blocked

    22. HTTPS Everywhere

    Non-HTTPS = tank. Verify:

    • SSL certificate valid
    • All internal links use HTTPS
    • Mixed content warnings resolved
    • 301 redirect: HTTP → HTTPS site-wide

    23. Structured Data Testing

    After schema setup, test each page:

    • Google Rich Results Test
    • Schema.org Validator
    • Fix warnings, ignore info notices

    24. Search Console Setup

    Non-negotiable:

    1. Add property (domain verification)
    2. Submit sitemap
    3. Monitor Coverage report weekly
    4. Fix crawl errors immediately
    5. Check Performance for keyword rankings

    25. Content Freshness

    Google favors updated content. Rules:

    • Update stale posts every 6-12 months
    • Change publish date on major updates
    • Add “Updated 2026” in title
    • Expand thin posts

    26. Common Elementor SEO Mistakes

    • Multiple H1 tags per page (use Heading widget correctly)
    • Heavy hero images blocking LCP
    • Elementor Kits imported without cleanup — bloat
    • Alt text missing on 50%+ images
    • No focus keyword set in Rank Math
    • Slow mobile Lighthouse (under 70)
    • No schema markup
    • Duplicate meta descriptions site-wide

    27. Blog Structure for Topical Authority

    One money page (hub) + 10-15 supporting blogs (spokes). Each blog:

    • Targets related long-tail keyword
    • Internal links to hub
    • Cross-links to 2-3 other spokes

    Google reads this as “domain expert on X” → ranks all pages higher.

    Real Result

    Client site — proper Elementor SEO stack applied:

    • Month 1: 340 impressions/day
    • Month 6: 4,200 impressions/day
    • Organic traffic: 9x
    • Money page: page 1 for target keyword within 4 months

    Same Elementor. Same content team. Just configured right.

    Need SEO-Ready Elementor Build?

    Full technical SEO + Elementor Pro build: book here. Schema, Core Web Vitals, mobile optimization included.

    FAQ

    Is Elementor good for SEO? Yes when configured with Container flexbox, Rank Math, schema, Core Web Vitals optimization. Bad config = bad SEO.

    Does Elementor slow SEO down? No — properly configured Elementor sites hit 90+ Lighthouse. Slow = misconfigured.

    Rank Math vs Yoast? Rank Math free tier beats Yoast free tier. Rank Math wins on schema, instant indexing, UI.

    How long until Elementor site ranks? New domain: 3-6 months for competitive keywords. Existing domain with authority: 2-8 weeks.

    Does Elementor support FAQ schema? Not natively. Add via Rank Math schema generator or manual JSON-LD injection.

  • Elementor Pro Form Integrations (2026): CRM, Webhooks, Multi-Step Forms Setup

    Elementor Pro Form Integrations (2026): CRM, Webhooks, Multi-Step Forms Setup

    Native Integrations Beat Third-Party Forms

    Elementor Pro Form widget = native integrations with 15+ services. Skip WPForms, Contact Form 7, Fluent Forms if you have Pro.

    Setup for each integration below.

    Form Widget Basics

    Drag Form widget → Content tab → configure:

    • Form Fields (add/remove/reorder)
    • Buttons (submit + steps)
    • Actions After Submit (email, redirect, integrations)

    1. Email Notifications (Default)

    Actions After Submit → Email:

    • To: your@email.com
    • Subject: [field id=”name”] submitted a form
    • Message: [all-fields]
    • From Email: noreply@yourdomain.com (must exist)

    Critical: install WP Mail SMTP and configure Gmail/SendGrid/Mailgun. WordPress default mail() fails on 60% of hosts.

    2. Mailchimp

    1. Get API key: Mailchimp → Account → Extras → API Keys
    2. Elementor Site Settings → Integrations → Mailchimp → paste API key
    3. Form widget → Actions After Submit → add Mailchimp
    4. Select audience/list
    5. Map form fields to Mailchimp fields
    6. Optional: tag new subscribers

    3. ActiveCampaign

    1. Get API URL + key: ActiveCampaign → Settings → Developer
    2. Elementor → Integrations → ActiveCampaign → connect
    3. Form → Actions → ActiveCampaign
    4. Select list, map fields
    5. Add tags for segmentation

    4. HubSpot

    1. HubSpot → Settings → Integrations → API Key
    2. Elementor Integrations → HubSpot → connect
    3. Form Actions → HubSpot
    4. Map to HubSpot properties
    5. Contact automatically added to CRM

    Pro tip: use “hidden” form field for lead source (e.g. UTM source) to segment leads by campaign.

    5. ConvertKit

    1. ConvertKit → Account Settings → API
    2. Elementor Integrations → ConvertKit
    3. Form Action → ConvertKit → select form

    6. GetResponse

    Similar flow: API key from GetResponse → Elementor Integrations → connect → Form Action → map fields.

    7. MailPoet

    Native WordPress plugin. No API needed. Install MailPoet → Form Action → MailPoet → select list.

    8. Slack

    Send form submissions to Slack channel:

    1. Slack → create Incoming Webhook
    2. Copy webhook URL
    3. Form → Actions → Slack → paste webhook
    4. Configure message format with [field] tags

    Result: every form submission = instant Slack notification.

    9. Discord

    Same as Slack — Discord webhook URL → Form → Actions → Discord.

    10. Webhook (Universal)

    Connect ANYTHING via webhook:

    1. Form → Actions → Webhook
    2. Paste webhook URL from destination service
    3. Enable Advanced Data option for full field data

    Use with:

    • Zapier → connects to 5,000+ apps
    • Make (Integromat) → cheaper Zapier alternative
    • n8n → self-hosted automation
    • Pabbly Connect → one-time payment alternative

    11. Google Sheets (via Webhook + Zapier)

    1. Zapier → new Zap → Trigger: Webhook
    2. Action: Google Sheets → Create Spreadsheet Row
    3. Copy webhook URL from Zapier → paste into Elementor Form Webhook action
    4. Test submission → verify row created

    12. Google Sheets (Direct, No Zapier)

    Use Google Apps Script webhook:

    1. Create Google Sheet
    2. Extensions → Apps Script
    3. Paste webhook receiver script (available on GitHub)
    4. Deploy as web app → copy URL
    5. Paste into Elementor Webhook action

    Free forever. No Zapier task limits.

    13. Notion Database

    Via webhook → Zapier → Notion. Every lead = new Notion database row. Great for lightweight CRM.

    14. Airtable

    Similar — webhook → Zapier → Airtable → create record.

    15. Redirect After Submit

    Form Actions → Redirect:

    • URL: /thank-you/
    • Enable “Redirect to” with dynamic tags for personalized thank-you pages

    Thank-you page = key conversion tracking event for Google Ads / Meta Pixel.

    16. Popup After Submit

    Form Actions → Popup → select Elementor Popup template. Use for:

    • Lead magnet delivery (“Check your email for the PDF”)
    • Upsell offer
    • Survey follow-up

    17. Meta / Facebook Pixel Event

    Track form conversions:

    1. Install Meta Pixel via GTM or Elementor Site Settings → Custom Code
    2. Form → Actions → Custom Code (or thank you page has: fbq('track', 'Lead');)

    18. Google Ads Conversion Tracking

    Similar — fire Google Ads conversion pixel on thank-you page or via Form Action → Custom Code.

    19. Conditional Logic

    Form field → Advanced → Conditional Logic:

    • Show field only if another field matches condition
    • Example: show “Company Name” only if user selects “Business” role

    Reduces perceived form length.

    20. Multi-Step Forms

    Add Step widget between form fields. Each step = new “page”:

    • Progress bar shows position
    • Users see 3 fields at a time instead of 12
    • Conversion lift: 20-40% on long forms

    21. File Uploads

    Form Field → Type: File Upload:

    • Set max file size (usually 10MB)
    • Allowed file types: pdf, jpg, png, docx
    • Files attached to email notification OR uploaded to media library

    22. Honeypot / Anti-Spam

    Form → Content → Additional Options → enable Honeypot. Invisible field bots fill, humans skip. Reduces spam ~95%.

    Add reCAPTCHA v3 for stronger protection:

    1. Google reCAPTCHA → create v3 site key
    2. Elementor Integrations → reCAPTCHA
    3. Form → add reCAPTCHA field (invisible on frontend)

    23. Save to Database

    Form → Actions → Collect Submissions.

    All submissions saved to WordPress database (Elementor → Submissions). Export as CSV anytime.

    24. Custom Confirmation Pages Per Form

    Different forms need different post-submit UX:

    • Newsletter form → thank-you popup
    • Contact form → thank-you page
    • Booking form → calendar redirect
    • Lead magnet form → email delivery + thank-you

    Configure per form via Actions After Submit.

    Real Case

    SaaS client — contact form:

    • Native email notification
    • ActiveCampaign add + tag “website_lead”
    • Slack notification to #sales channel
    • HubSpot contact create
    • Zapier webhook → Google Sheets backup
    • Redirect to Calendly booking page

    Lead-to-sales-call time: 8 hours → 15 minutes. Same form, multi-action.

    Need Complex Form Integration?

    Multi-step forms with CRM + payment + booking integration: book here. Typical delivery: 2-3 working days.

    FAQ

    Can I use multiple actions on one form? Yes. Add unlimited Actions After Submit — email + CRM + Slack + redirect all fire in sequence.

    Do I need Zapier? Only for services Elementor doesn’t natively integrate. Native integrations cover Mailchimp, HubSpot, AC, ConvertKit, MailPoet — no Zapier needed.

    Can I edit form styling in Elementor? Yes — Style tab has full control over labels, inputs, buttons, spacing per breakpoint.

    Is Elementor form widget better than WPForms? If you have Pro: yes. Integrations broader, no separate plugin. WPForms shines in free tier — Elementor free form is basic.

  • Elementor Mobile Responsive Design (2026): 17 Rules for Perfect Mobile Sites

    Elementor Mobile Responsive Design (2026): 17 Rules for Perfect Mobile Sites

    Mobile-First or Die

    65% of traffic mobile. Google indexes mobile-first. Bad mobile = tanked rankings + lost conversions.

    Elementor makes mobile easy — most people configure it wrong. Fixes below.

    1. Use Container Flexbox, Not Legacy Sections

    Old Sections/Columns break on mobile constantly. Container flexbox handles reflow natively.

    Elementor → Settings → Features → Container → Active.

    Convert existing pages: Elementor → Tools → Convert to Containers.

    2. Set Breakpoints Right

    Elementor → Site Settings → Layout → Breakpoints. 2026 recommended:

    • Mobile: 767px
    • Tablet: 1024px
    • Desktop: 1025px+

    Add extra: Mobile Extra (480px) for small phones, Tablet Extra (1200px) for large tablets.

    3. Design Mobile-First

    Old habit: design desktop → adapt to mobile. Wrong.

    New habit: design mobile → expand to desktop.

    Elementor editor → switch to mobile view first. Build layout. Then scale up.

    4. Hide/Show Widgets by Device

    Widget → Advanced → Responsive:

    • Hide On Desktop
    • Hide On Tablet
    • Hide On Mobile

    Use case: complex desktop hero image, simpler mobile hero. Two widgets, hide the wrong one per device.

    5. Responsive Font Sizes

    Every heading/text widget → Style → Typography → device toggle → set different sizes per breakpoint.

    Rule of thumb:

    • H1 desktop: 48-72px → mobile: 32-40px
    • H2 desktop: 36-48px → mobile: 24-32px
    • Body desktop: 16-18px → mobile: 15-16px

    6. Responsive Spacing

    Container padding/margin → device toggle → adjust:

    • Section padding desktop: 80-120px → mobile: 40-60px
    • Column gap desktop: 40px → mobile: 20px

    7. Reverse Column Order on Mobile

    Desktop: image left, text right. Mobile: text should stack ABOVE image (usually).

    Container → Advanced → Responsive → Reverse Columns (Mobile). Done.

    8. Mobile Menu Setup

    Nav Menu widget → Layout → set breakpoint where hamburger appears (usually tablet).

    Style dropdown:

    • Toggle button color, size
    • Menu background, item padding
    • Item hover states

    9. Sticky Header on Mobile

    Container → Advanced → Motion Effects → Sticky → Top → Devices: Desktop, Tablet, Mobile.

    Also configure: sticky background (differentiate from non-sticky), reduce padding on stick.

    10. Touch-Friendly Buttons

    Minimum tap target: 48x48px (Google recommendation).

    Button widget → Style → Padding → mobile: 16px vertical, 24px horizontal minimum.

    11. Image Sizing

    Default: same image loads all devices. Waste.

    Fix:

    • Image widget → set separate images per breakpoint if using Elementor Pro dynamic tags
    • OR use WebP + lazy load + let browser handle srcset (Elementor does this by default)

    12. Custom CSS for Edge Cases

    Sometimes Elementor’s built-in controls don’t cover:

    @media (max-width: 767px) {
      .my-hero-heading { font-size: 28px !important; }
      .my-cta-btn { width: 100% !important; }
    }

    Widget → Advanced → Custom CSS.

    13. Mobile Speed = Ranking Factor

    Core Web Vitals measured on mobile primarily. Slow mobile = tanked rankings.

    Focus on:

    • LCP (Largest Contentful Paint) < 2.5s
    • CLS (Cumulative Layout Shift) < 0.1
    • INP (Interaction to Next Paint) < 200ms

    Full stack: Elementor speed optimization guide.

    14. Test on Real Devices

    Chrome DevTools mobile view lies. Real behavior differs:

    • Test on cheap Android (4G throttled)
    • Test on iOS Safari
    • Use BrowserStack for device coverage
    • Ask 3 friends to test on their phones

    15. Common Mobile Mistakes

    • Text too small — under 14px unreadable
    • Horizontal scroll — content overflowing viewport (check with html { overflow-x: hidden; })
    • Tiny tap targets — under 44px unreachable
    • Forms too tall — mobile keyboards cover half the screen; stack form fields tighter
    • Popup blocks entire mobile screen — Google penalizes intrusive popups on mobile
    • Video autoplay with sound — kills user experience + battery
    • Sticky elements too big — sticky header + WhatsApp button + cookie banner = zero content visible

    16. Mobile Hero Best Practices

    • Hero text above the fold (no image pushing text below)
    • Single CTA, not three buttons
    • Image height max 60vh mobile
    • Load hero image with fetchpriority=”high”

    17. Testing Checklist

    1. Every page renders correctly on 375px width (iPhone SE)
    2. No horizontal scroll anywhere
    3. All CTAs tappable without zoom
    4. Forms submit successfully on mobile
    5. Menu opens/closes smoothly
    6. Sticky elements don’t stack disastrously
    7. Mobile Lighthouse 90+
    8. PageSpeed Insights → mobile tab → 90+ green

    Real Fix Example

    Client site: 4-column desktop feature grid stacked awkwardly on mobile (columns too narrow, text truncated).

    Fix (5 min):

    1. Container → Layout → Columns per Device → Desktop 4, Tablet 2, Mobile 1
    2. Reduce mobile heading size
    3. Reduce section padding on mobile

    Result: clean single-column stack, readable text, tap-friendly cards.

    Need Mobile Optimization Audit?

    Book here. Full mobile audit + fixes typical delivery: 1 working day.

    FAQ

    Do I need to design separately for tablet? Recommended if tablet traffic >10%. Otherwise mobile design scales up okay.

    Is mobile-first still relevant in 2026? Yes. Google Mobile-First Index applies. Desktop-first sites tank in search.

    How do I test mobile without a device? Chrome DevTools (F12 → toggle device toolbar) covers 80%. BrowserStack or LambdaTest for real devices.

    Should popups show on mobile? Google penalizes intrusive interstitials on mobile. Use exit-intent only, or after significant scroll.

  • Elementor WooCommerce Customization: Custom Product Pages, Checkout & More (2026)

    Elementor WooCommerce Customization: Custom Product Pages, Checkout & More (2026)

    Default WooCommerce Kills Conversion

    Stock WooCommerce product pages convert at ~1.5%. Custom Elementor Pro product templates hit 3-5%. Same traffic, 2-3x revenue.

    This guide covers the exact stack. Elementor Pro required.

    1. Custom Single Product Template

    Setup:

    1. Templates → Theme Builder → Single Product → Add New
    2. Layout: 2 columns — left 60% (images), right 40% (info)
    3. Left: Product Images widget (gallery + zoom)
    4. Right: Product Title, Product Rating, Product Price, Short Description, Add to Cart, Product Meta
    5. Below: Product Data Tabs (description, additional info, reviews)
    6. Below: Custom section — trust badges, shipping info, FAQ
    7. Related Products at bottom
    8. Display Conditions: Include → All Products

    2. Sticky Add-to-Cart on Scroll

    Mobile conversion killer fixed:

    1. Duplicate Add to Cart widget in a new Container
    2. Container → Advanced → Custom Positioning → Fixed
    3. Position: Bottom, offset 0
    4. Add background, padding, box-shadow
    5. Responsive: show mobile only

    Result: cart button always visible on mobile. +15-25% mobile conversion typical.

    3. Custom Shop Archive

    1. Templates → Theme Builder → Products Archive → Add New
    2. Structure: Filter sidebar (left) + Products Grid (right)
    3. Products widget: 3-4 columns desktop, 2 mobile
    4. Add: Archive Title, Archive Description, breadcrumbs
    5. Display Conditions: Include → In Product Archive → All

    4. Product Filter Sidebar

    Elementor Pro doesn’t ship filters. Use one:

    • WooCommerce Blocks (free) — basic price + attribute filters
    • YITH WooCommerce Ajax Filters (free/paid) — advanced
    • Crocoblock JetSmartFilters — deepest Elementor integration

    Insert via shortcode or widget in Elementor filter sidebar container.

    5. Custom Cart Page

    1. Templates → Theme Builder → Cart → Add New
    2. Left column: Cart items table (WooCommerce Cart widget)
    3. Right column: Cart Totals + Checkout button + trust badges
    4. Add: coupon field, cross-sells row, “continue shopping” link

    6. Custom Checkout Page

    Highest ROI customization. Default checkout leaks conversions.

    1. Templates → Theme Builder → Checkout
    2. Reduce form fields — remove company name, address line 2 unless required
    3. Add trust badges: SSL, payment icons, money-back guarantee
    4. Progress indicator: Cart → Info → Payment → Done
    5. Order summary sticky on right column (desktop)
    6. Guest checkout enabled (Woo settings)

    7. Thank You / Order Received Page

    Upsell + reduce buyer’s remorse:

    1. Templates → Theme Builder → Thank You Page
    2. Order details (WooCommerce widget)
    3. Social share (“share your purchase”)
    4. Cross-sell block: related products
    5. Video message from founder
    6. Referral CTA

    8. Dynamic Content in Product Templates

    Any widget → dynamic tag → pull:

    • Product Title, Description, Price, SKU
    • Custom ACF fields (materials, care instructions, dimensions)
    • Stock status
    • Product attributes (color, size)

    Combined with ACF: fully custom product pages per product type without theming code.

    9. Variable Products — Custom Variation Selectors

    Default variation dropdowns look cheap. Fix:

    • Install Variation Swatches for WooCommerce (free)
    • Enable color swatches for color attribute
    • Enable image swatches for print variants
    • Style via Elementor CSS in Advanced tab

    10. WooCommerce Product Add-Ons

    Sell custom products (gift wrapping, engraving, extended warranty):

    • Product Add-Ons Ultimate ($49) — pre-built
    • YITH Product Add-Ons — cleaner UI
    • Integrate via widget insertion inside Elementor product template

    11. Upsells & Cross-Sells Placement

    Where matters:

    • Product page: “Frequently bought together” below description
    • Cart page: “Complete your order” row
    • Checkout: One-click upsell (needs plugin like CartFlows)
    • Thank you: “Customers also purchased”

    Elementor Pro Related Products + Cross-Sells widgets handle 80% out of box.

    12. Custom Product Categories

    1. Templates → Theme Builder → Products Archive → Add New
    2. Display Conditions: Include → In Product Category → [specific category]
    3. Build category-specific design (hero image, custom filters, unique layout)
    4. Each category becomes its own microsite

    13. Speed on WooCommerce Sites

    WooCommerce is heavy. Fixes:

    • Enable Elementor experiments (as always)
    • Disable WooCommerce cart fragments on non-cart pages (Perfmatters)
    • Optimize product images: WebP + lazy load
    • Use LiteSpeed Cache or WP Rocket with WooCommerce compatibility
    • Consider Object Cache (Redis) on hosting

    See full Elementor speed guide.

    14. Schema for Products

    Product schema = rich results in Google (price, rating, availability).

    • WooCommerce ships basic Product schema — usually incomplete
    • Rank Math WooCommerce module enhances it
    • Verify with Google Rich Results Test

    15. Multi-Currency + Multi-Language

    International stores:

    • WPML + WooCommerce Multilingual — translation gold standard
    • WooCommerce Multi-Currency — geo-based pricing
    • YayCurrency — cheaper alternative

    All work with Elementor templates via dynamic content.

    Real Case

    UAE service business rebuilt product/service pages in Elementor Pro:

    • Before: default WooCommerce, 1.4% conversion, 6-second mobile load
    • After: custom product template, sticky mobile add-to-cart, trust badges, schema. 3.8% conversion, 1.9-second mobile load
    • Revenue lift: 2.7x same traffic

    Need It Done?

    Custom WooCommerce + Elementor Pro builds: see packages here. Product pages, checkout optimization, full stores.

    FAQ

    Do I need Elementor Pro for WooCommerce customization? Yes for visual template editing. Free Elementor + code works but requires PHP.

    Is Elementor WooCommerce Builder better than default WooCommerce customizer? Yes for design. Default customizer covers only basic branding.

    Does custom checkout hurt conversion? Not if done right. Simplified checkout beats default by 20-40%. Bloated custom checkout loses.

    Can Crocoblock replace Elementor Pro for WooCommerce? Partial. JetWooBuilder handles product templates. Still need Pro for Form widget, Popups.

  • Elementor Developer Pricing 2026: Freelancer vs Agency (Real Costs)

    Elementor Developer Pricing 2026: Freelancer vs Agency (Real Costs)

    What Elementor Development Actually Costs

    Real 2026 numbers. No affiliate spin. Ranges from cheapest freelancer to top agency.

    Freelancer Tiers

    Tier 1: Junior ($10-25/hr)

    Who: New freelancers, 0-1 year experience. Fiverr $5-50 gigs.

    Ship: Template installs. Basic color/text swaps. Copy-paste Elementor Kit imports.

    Landing page: $150-500 fixed.

    Full site: $500-1,500.

    Reality: Fine for personal blog. Expect rework within 3 months. No schema, no Core Web Vitals, no post-launch support.

    Tier 2: Mid-Level ($30-60/hr)

    Who: 2-4 years experience. Regular Upwork earners.

    Ship: Custom Elementor designs. ACF basics. Decent performance (75-85 Lighthouse). Standard forms.

    Landing page: $500-1,500 fixed.

    Full site: $1,500-4,000.

    Reality: Solid for small business sites. Watch for template reuse and generic layouts.

    Tier 3: Expert / Top Rated Plus ($50-120/hr)

    Who: 5+ years experience. Upwork Top Rated Plus badge. Own portfolio site with SEO traction.

    Ship: Custom Theme Builder templates. Full ACF integration. 90+ mobile Lighthouse. Schema markup. Post-launch support 30 days. Video documentation.

    Landing page: $1,500-3,500 fixed.

    Full site: $3,500-10,000.

    Reality: Right tier for revenue-generating sites. Cost pays back in conversion lift.

    Tier 4: Senior Specialist ($100-250/hr)

    Who: 8+ years, complex Elementor + custom code + WooCommerce + headless CMS work.

    Ship: Custom Elementor widgets in PHP. Headless integrations. Enterprise-grade e-commerce. Multi-language + multisite.

    Landing page: $3,000-8,000.

    Full site: $8,000-25,000.

    Reality: Overkill for most SMBs. Right for SaaS, e-commerce over $500k/yr, complex custom builds.

    Agency Tiers

    Boutique Agency ($150-250/hr)

    Team: 3-10 people. Designer + developer + PM per project.

    Full site: $8,000-25,000. Minimum $5,000.

    Landing page: $3,000-7,000.

    Value: Design polish + project management. Slower turnaround.

    Mid-Market Agency ($200-350/hr)

    Team: 15-50 people. Multiple roles per project.

    Full site: $25,000-75,000.

    Landing page: $5,000-15,000.

    Value: Enterprise contracts. Compliance/security paperwork. Ongoing account management.

    Enterprise Agency ($300-600/hr)

    Team: 100+ people. RFP-driven.

    Full site: $75,000-500,000+.

    Value: Enterprise buyers need signed SOWs, legal teams, procurement. Not building better sites — meeting buyer requirements.

    What Drives Price

    Scope

    • Pages: 1 landing vs 15-page site vs 100-page WooCommerce = 10x range
    • Custom design vs template adaptation = 3-5x
    • Content included vs client-provided = 20-30% swing
    • Post-launch support (14d vs 90d vs retainer) = adds 15-30%

    Technical Requirements

    • ACF + custom post types = +25-40%
    • WooCommerce customization = +40-80%
    • Schema markup + Core Web Vitals SLA = +15-25%
    • Multi-language (WPML/Polylang) = +30-50%
    • Multisite = +50-100%
    • Custom Elementor widgets in PHP = +$500-2,000 each
    • Third-party integrations (CRM, payment, ERP) = +$500-3,000 each

    Geography

    US/UK developers: baseline rates.

    Western Europe: 80-100% of US rates.

    Eastern Europe: 60-70%.

    South Asia (Pakistan, India): 30-50%.

    Southeast Asia (Philippines, Vietnam): 40-60%.

    Cost isn’t quality signal. Top Rated Plus freelancers in Pakistan often ship at Tier 3 quality with Tier 2 pricing.

    What Cheap Actually Costs

    Case study: US small business paid $500 for a Fiverr Elementor landing page.

    • Site loaded in 8 seconds mobile
    • No form validation — 40% form abandonment
    • No schema, no rich results
    • No mobile optimization

    Estimated cost of poor conversion over 6 months: $12,000 in lost leads.

    Rebuild with Tier 3 expert: $2,800 fixed. First month recovered $4,500 in leads.

    Cheap upfront is expensive downstream.

    Retainer vs Project Pricing

    Project-Based

    Fixed scope, fixed price. Best for defined deliverables.

    Hourly

    Best for ongoing changes, undefined scope. Bill-as-you-go.

    Retainer

    Monthly fixed: $500-3,000/mo. Includes:

    • Site updates and maintenance
    • New page builds within cap
    • Bug fixes and troubleshooting
    • Monthly Core Web Vitals check
    • Backup verification

    Best for: businesses with active site development. Saves 20-30% vs ad-hoc project costs.

    What Should You Actually Pay?

    Personal blog / hobby site

    DIY with free Elementor OR Tier 1 freelancer ($500-1,000 total).

    Small business, single location

    Tier 2 or Tier 3 freelancer. $1,500-4,000 full site.

    Growing business, 50-500 employees

    Tier 3 expert. $5,000-15,000 full site + retainer.

    E-commerce, $500k-5M revenue

    Tier 3-4 specialist or boutique agency. $10,000-40,000.

    Enterprise, $10M+

    Mid-market to enterprise agency. $50,000-500,000+.

    Red Flags in Any Tier

    • No portfolio URLs (screenshots don’t count)
    • No live PageSpeed data on portfolio
    • No written scope before starting
    • No post-launch support included
    • Payment 100% upfront
    • Communication delays before contract signed

    Green Flags

    • Portfolio has 3+ live URLs you can test
    • Discovery call before quote
    • Written scope document
    • Milestones with partial payments (30/40/30 typical)
    • 30-day support included
    • Response time under 12 business hours

    The Right Question to Ask

    Not “how much?” — every developer has a range.

    Ask: “What Lighthouse mobile score do you guarantee on my site’s key pages?”

    Tier 1: silence or “I install a caching plugin”

    Tier 2: 80+

    Tier 3: 90+

    Tier 4: 95+

    Book a Real Quote

    See Tier 3 expert-tier pricing and packages here. Fixed-price landing pages, full sites, and retainers.

    FAQ

    Why do Elementor developers charge so much? Real Elementor experts write custom PHP, engineer performance, handle schema markup, and ship maintainable code. The $500 tier does none of that. Different service entirely.

    Is $2,000 fair for a landing page? If it’s expert-tier work with schema, 90+ Lighthouse, custom design, and 30-day support: yes.

    Should I pay hourly or fixed? Fixed for defined projects. Hourly for maintenance. Retainer for ongoing dev.

    Do Pakistani/Indian developers ship expert quality? Top Rated Plus freelancers in these regions often ship Tier 3 quality at Tier 2 pricing. Filter by Upwork Top Rated Plus badge, not location.

    What’s included in expert-tier landing pages? Custom design, schema markup, mobile 90+ Lighthouse, form-to-CRM integration, on-page SEO, 30-day support, video handoff.