SEO audit widget
UpdatedAn embeddable SEO audit tool for your own website: a visitor types their domain, gets a scored technical audit in about a minute, and becomes a qualified lead in your pipeline with the findings already attached. One script tag, three display modes, your branding on everything the visitor sees.
The embed code
This is the whole integration. Replace YOUR_EMBED_KEY with the key from Widget Studio and paste the tag before your closing </body> tag.
Inline
Renders the audit form in the flow of the page, wherever you drop the tag. Best on a landing page or a dedicated /free-seo-audit page, because the form is visible without an interaction.
<script async src="https://lemaudit.com/widget.js"
data-key="YOUR_EMBED_KEY"
data-mode="inline"></script>Floating button
A pinned button in the corner of every page that opens the audit form in a panel. Best sitewide, where you want the offer available without giving up layout space.
<script async src="https://lemaudit.com/widget.js"
data-key="YOUR_EMBED_KEY"
data-mode="float"
data-position="bottom-right"></script>Exit-intent popup
Opens once when the cursor leaves toward the browser chrome, or after a delay or scroll depth you set. Best on blog posts and service pages where the visitor arrived to read, not to convert.
<script async src="https://lemaudit.com/widget.js"
data-key="YOUR_EMBED_KEY"
data-mode="popup"
data-trigger="exit-intent"></script>The widget mounts inside an iframe, so your stylesheet cannot break its layout and its stylesheet cannot leak into your page. That isolation is also why it is safe to put on a client site you did not build.
Which mode converts best
Across the installs we can see, inline placement on a page whose whole purpose is the audit outperforms every interruption pattern, because the visitor arrived intending to use the tool. The floating button earns its place on sites where most traffic lands on service pages rather than a dedicated tool page. Exit intent is worth running only on content pages, and only with a frequency cap — firing it at someone who already submitted an audit is the fastest way to make a useful tool feel like a pop-up ad.
You do not have to guess: the widget ships with A/B testing on copy and mode, and a sticky first-party cookie keeps a visitor in the same variant across pages so the split stays honest.
Where the tag goes, by platform
Most failed installs are not a code problem — they are a "this platform no longer has the file the tutorial mentions" problem. The current locations:
- WordPress (block theme)
- Appearance → Editor → Patterns → Footer, add a Custom HTML block and paste the snippet. Block themes have no footer.php to edit, which is why the older instructions found online fail.
- WordPress (classic theme or WPCode)
- Classic themes: Appearance → Theme File Editor → footer.php, before </body>. Safer: install WPCode, add a new header/footer snippet set to Site Wide Footer. WPCode survives theme updates and is allow-listed by most security plugins.
- Shopify
- Online Store → Themes → Edit code → layout/theme.liquid, paste before </body>. For a single page instead, use a Custom Liquid section.
- Webflow
- Project Settings → Custom Code → Footer Code for sitewide, or Page Settings → Before </body> tag for one page. Publish after saving — custom code does not appear in the Designer preview.
- Squarespace
- Settings → Developer Tools → Code Injection → Footer. On a single page use a Code block in the page editor.
- Framer
- Project Settings → General → Custom Code → End of <body> tag. Framer strips scripts from canvas preview, so test on the published URL.
- Next.js
- Use the next/script component: <Script src="https://lemaudit.com/widget.js" data-key="..." strategy="afterInteractive" />. A raw script tag in a server component will not hydrate the attributes reliably.
- Plain HTML / Vite
- Paste directly before </body> in your template or index.html.
Two things silently remove the tag after a correct paste. Security plugins (Wordfence, Sucuri, iThemes) sanitise custom HTML — allow-list the widget script URL or insert via WPCode. Optimisation plugins (WP Rocket, Autoptimize, LiteSpeed) combine and defer scripts — add the widget to their defer/minify exclusions and purge the cache. The install verifier names which of the two happened rather than just reporting failure.
What the visitor gets, and what you get
The visitor gets a real audit, not a teaser: six weighted pillars covering performance, technical SEO, on-page, mobile, security and AI search readiness, with the measured evidence under each finding. Withholding the result behind an email is the standard playbook and it converts worse than showing the score and asking for an email to send the full report.
You get the lead with the audit attached, a hot/warm/cold classification derived from how bad the site actually is, the UTM parameters of the embedding page, and an outreach message generated from the specific findings. Webhooks push all of it to your CRM as it happens. You can see the whole artefact before installing anything — the sample audit report is a real report from a real site, downloadable in full.
Consent, privacy and what is stored
The email field will not submit without an explicit consent checkbox, and the consent state is written alongside the lead so you can evidence it later. The widget sets no advertising cookies, no cross-site identifiers and no third-party pixels. Audits are run against publicly available pages only, exactly as a search crawler would fetch them.
Frequently asked questions
- What is an SEO audit widget?
- An embeddable form that runs a live technical SEO audit on whatever domain a visitor types, shows them a scored report, and captures their email as a lead in your dashboard. It is the difference between a contact form that asks people to describe their problem and a tool that tells them what their problem is.
- How do I embed an SEO audit tool on my website?
- Paste one script tag with your embed key before the closing </body> tag. The widget mounts in an isolated iframe, so it inherits none of your CSS and breaks nothing. There is no plugin to install, no build step, and no server-side component on your side.
- Does the widget slow my site down?
- The loader is under 8 KB and loads with the async attribute, so it never blocks rendering. The audit itself runs on our infrastructure, not in the visitor's browser, so a running scan costs your page nothing. In inline mode the iframe is lazy-mounted when it scrolls into view.
- Can I white-label the widget?
- Yes on paid plans. Your logo, colours, fonts, button copy and the report itself carry your agency's branding, and reports can be served from your own domain rather than ours. Nothing in the visitor-facing flow says LemAudit unless you want it to.
- Is the widget GDPR compliant?
- The email field requires an explicit consent checkbox before it will submit, and the consent state is stored against the lead. The widget sets no advertising cookies and no cross-site identifiers. It does set one first-party cookie to keep an A/B variant sticky, which you can disable.
- What happens to the leads the widget captures?
- They land in your LemAudit pipeline with the full audit attached, scored hot/warm/cold, tagged with the UTM parameters of the page they came from. From there you can trigger an email, fire an outbound webhook to your CRM, or generate an outreach message from the audit findings.
- Does it work on WordPress, Shopify and Webflow?
- Yes — all three, plus Squarespace, Framer, Wix, Next.js, Vite and plain HTML. WordPress block themes need the snippet added through a Custom HTML block or WPCode rather than the old footer.php edit; Shopify goes in theme.liquid; Webflow in Project Settings → Custom Code.
- Can I test the widget before putting it on a client site?
- Yes. Widget Studio previews all three modes against a mock site and a live render, and the install verifier fetches your page and tells you whether the script is present, whether the key matches and whether a security or caching plugin has stripped it.
Put the widget on your site
The free plan includes the embeddable widget. Paid plans remove our branding and add custom report domains.