WordPress HubSpot integration: plugin, Forms API or keep your own forms
There are three ways to integrate WordPress with HubSpot: the official HubSpot plugin, HubSpot forms embedded on WordPress pages, or your existing WordPress forms submitting to the HubSpot Forms API. All three create contacts. The difference is attribution, page weight and how much control you keep over the form markup.
By HubReven Engineering
Most WordPress sites that use HubSpot got there by installing the plugin and moving on. That works. It also loads more than the site needs and gives up control of the form, which matters once someone starts caring about page speed or conversion rates.
There are three real options. Here is what each one does.
Option 1: the official HubSpot plugin
The HubSpot WordPress plugin installs the tracking code, gives you HubSpot forms and chat inside the WordPress editor, and connects the site to a portal in a few clicks.
Good for: a small team, no developer, and a site where HubSpot forms are fine as they are.
What it costs you: the plugin adds its own scripts and admin screens, and every form renders from HubSpot's embed. You style it with CSS overrides rather than owning the markup. On a site that is already heavy, it is one more thing on the page.
If the site is simple and the team needs to move fast, use it. It is the right default more often than developers like to admit.
Option 2: HubSpot forms embedded directly
Skip the plugin. Add the tracking code once in the theme, and embed HubSpot forms with the embed snippet where you need them.
Good for: sites with a developer who wants fewer plugins, but where marketing still edits forms in HubSpot.
You keep everything HubSpot forms do well: progressive fields, dependent fields, automatic contact creation, and the submission tied to the visitor's browsing history. You drop the plugin overhead.
The form is still HubSpot's markup in an iframe or injected script, and it still loads after the page. On a form heavy landing page that can show up as layout shift.
Option 3: your own forms, posting to the Forms API
Keep the WordPress forms you already have, or build them natively in the theme, and send each submission to HubSpot's Forms API on submit.
Good for: performance sensitive sites, complex forms, and any case where the form has to do something HubSpot forms cannot, like validation against your own data or a multi step flow.
The detail that makes or breaks this: send the hutk cookie with the submission. That is the
HubSpot tracking cookie, and including it ties the new contact to every page they viewed before
submitting. Leave it out and the contact arrives with no history and an original source of
"offline", which ruins attribution reporting without anyone noticing for a quarter.
A correct submission includes the form fields, the hutk value, the page URL and the page name. It
also needs the consent fields if your forms collect marketing consent, or HubSpot will create the
contact with no lawful basis recorded.
Send it from the server, not the browser, and log failures. A form that shows a thank you message while the API call quietly failed is the worst possible outcome: the visitor thinks they reached you and nobody ever sees the lead.
What about collected forms?
HubSpot can capture submissions from non HubSpot forms through the tracking code alone, with no integration work. It is a reasonable safety net. It is not something to depend on: it guesses field mappings from labels, and it misses forms that submit in unusual ways. Use it, but do not build reporting on it.
WooCommerce is a separate integration
Forms create contacts. A store needs orders, products and customers in HubSpot as well, so that marketing can segment on what people bought, not only what they filled in.
Marketplace apps cover the standard sync of customers, orders and abandoned carts. A custom sync is worth it when order data needs to land on custom objects, when products carry attributes the app does not map, or when the store, the ERP and HubSpot all need to agree on one customer record.
How to choose
| Situation | Option |
|---|---|
| No developer, simple site | Plugin |
| Developer, want fewer plugins, HubSpot forms are fine | Embedded forms |
| Performance matters, or forms do custom logic | Forms API |
| Store on WooCommerce | Any of the above, plus an order sync |
Whichever you choose, check three things after launch: a test submission arrives with page history attached, original source is not "offline", and consent is recorded on the contact.
If you are deciding whether WordPress should stay at all, we compared it to HubSpot CMS here, and here is what a move between the two involves.
Frequently asked questions
Do I need the HubSpot plugin to connect WordPress to HubSpot?
No. The plugin is the quickest route, but adding the tracking code to the theme and embedding forms, or posting your own forms to the HubSpot Forms API, both work without it and keep the site lighter.
Can I keep Gravity Forms or Contact Form 7 and still use HubSpot?
Yes. Submit each entry to the HubSpot Forms API from the server, including the hutk tracking cookie, page URL and consent fields. The contact then arrives with full page history and correct attribution, exactly as if a HubSpot form had been used.
Why do my WordPress form leads show "offline sources" in HubSpot?
The submission reached HubSpot without the hutk cookie, so HubSpot could not tie it to a browsing session. Pass the cookie value with every Forms API submission and new contacts will carry their real original source.
Does the HubSpot WordPress plugin slow down my site?
It adds scripts to every page. On a lean site the difference is small. On a site already carrying many plugins it adds up, and installing only the tracking code plus the forms you need is lighter.
Get the next one